hi
i have a system with 15 -750 cpu and windows 8.1 and I use IPP8.2 .
my program have a greate number Array Mul ,Div or sqrt.
i write a small code with ipp and use both ippm and ipps for mul array and compare that code performance with my simple array mul.
my code is this:
/-------------------------------------------------------------
Ipp64f* src=new Ipp64f[200]();
for(int i=0;i<200;i++)
{
src=i; // initialize source array with values
}
Ipp64f* res=new Ipp64f[200]();
double t1=GetTickCount();
for(int k=0;k<5000000;k++)
{
ippsMulC_64f(src,2,res,200);
}
double t2=GetTickCount();
double Ipp_Mul_Time=t2-t1;
for(int k=0;k<5000000;k++)
{
for(int i=0;i<200;i++)
{
res=src*2;
}
}
double t3=GetTickCount();
double MyMulTime=t3-t2;
//------------------------------------------------------------------------------------
i run this test program and in every test my simple Mul is faster than IPP Mul
i test this program for both small and big arrays and get same result.
i think that i can improve my progarm performance with intel ipp but it happend.
is exist a problem in my test code that lead to this abnormal behavor? or my test result is correct?
链接已复制
hi
my problem is solved
i find that if i mul to floating point number instead 2 , Ipp is faster.
i think in above case ipp doing 64 bit floating point mul and standard mul use another(i dont unknow) simpler operation.
with same operation ipp is winner.
Hi!
Please, be careful with measurements like these[:smile:])).
I have seen cases when optimizing compiler (like Intel C/C++) simply ignored some source code (even loops), if found that the results were not used later on.