I am writing a direct line in VC ++ using the built-in AVX tools. I call this code through PInvoke in C #. My performance when calling a function that calculates a large loop, including the exp () function, is ~ 1000 ms for a 160M loop. As soon as I call any function that uses embedded AVX and then uses exp (), my performance drops to about ~ 8000 ms for the same operation. Note that the function evaluating exp () is standard C, and a call that uses the built-in AVX tools may not be completely related to the data being processed. Some flag is reset somewhere at runtime.
In other words,
A();
B();
A();
or, curiously,
C();
A();
I get lost as to what is going on here, or how to chase the salt. I am on Intel 2500K cpu \ Win 7. Express version of VS.
Thank.
source
share