Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Fu__Yu
Beginner
112 Views

show the ipp function list which is optimize by AVX or AVX2?

Currently I am doing some benchmark comparing the time usage between enable / disable the AVX / AVX2 / SSE. And I found there is no remarkable difference for some math function such as add & multiply. I switch the flag by manually change the cpu variable and call function: ippSetCpuFeatures. Is it reasonable or not?

 status = ippGetCpuFeatures(&mask, 0);
  // chage instruction flag
  //ippCPUID_MMX
  printf("\nBefore set ippCPUID_MMX:      %c\t%c\t", (mask & ippCPUID_MMX) ? 'Y' : 'N', (emask & ippCPUID_MMX) ? 'Y' : 'N');
  if (a = (mask & ippCPUID_MMX))
  {
   emask = (emask - ippCPUID_MMX);
  }
  printf("\nAfter set ippCPUID_MMX:     %c\t%c\t", (mask & ippCPUID_MMX) ? 'Y' : 'N', (emask & ippCPUID_MMX) ? 'Y' : 'N');
  ...
  IppSts = ippSetCpuFeatures(emask);
  if (IppSts == ippStsFeatureNotSupported || IppSts == ippStsUnknownFeature) //ippStsNoErr
  {
   wStatus = IppSts;
   goto EXIT;
  }

More detailed pls. refer to below.

 

Intel Xeon CPU E5-2650 V4 @ 2.2GHz

 

Image sz: 2048 * 2048

 

Unit of time: ms

 

Ipp version

Instruction & Compiler setting

Add

 

Multiply

 

SobelX&Y

     

Integer
 (unsigned char)

Float

Integer

Float

Integer

 

Ipp New (2018)

AVX2 off + AVX off + SSSE3 off

0.55

5.96

0.67

5.69

14.84

31

Ipp New (2018)

AVX2 off + AVX off + SSSE3 on

0.56

5.99

0.62

5.68

4.29

 

Ipp New (2018)

AVX2 off + AVX on

0.56

5.99

0.62

5.68

4.49

61439

Ipp New (2018)

AVX2 on

0.56

5.84

0.57

5.61

2.99

 

Ipp New (2018)

AVX2 on + VS AVX Compiler on

0.54

5.91

0.55

5.72

3.06

 

Ipp New (2018)

AVX2 on + VS AVX2 Compiler on

0.55

5.85

0.55

5.67

2.98

Thanks & regards,

FY

0 Kudos
2 Replies
Fu__Yu
Beginner
112 Views

Could you provide a table to show the ipp function list which is optimize by AVX or AVX2?