This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Calculating cosinus/sinus


On 11/05/13 17:20, jacob navia wrote:
Le 11/05/13 16:01, OndÅej BÃlka a Ãcrit :
As 1) only way is measure that. Compile following an we will see who is
rigth.

cat "
#include <math.h>

int main(){ int i;
   double x=0;

   double ret=0;
   double f;
   for(i=0;i<10000000;i++){
      ret+=sin(x);
     x+=0.3;
   }
   return ret;
}
" > sin.c
OK I did a similar thing. I just compiled sin(argc) in main.
The results prove that you were right. The single fsin instruction
takes longer than several HUNDRED instructions (calls, jumps
table lookup what have you)

Gone are the times when an fsin would take 30 cycles or so.
Intel has destroyed the FPU.


What makes you so sure that it takes more than 30 cycles to execute hundreds of instructions in the library? Modern cpus often do several instructions per cycle (I am not considering multiple cores here). They can issue several instructions per cycle, and predicted jumps can often be eliminated entirely in the decode stages.

The moral here is that /you/ need to benchmark /your/ code on /your/ processor - don't jump to conclusions, or accept other benchmarks as giving the complete picture.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]