Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Intel AVX optimized functions

arrahul
Beginner
513 Views
Hai, I have a query regarding the functions optimized for Intel AVX. I am developing a code which is using the Intel IPP functions. But the functions are not listed in the following link, which gives the set of functions optimized for Intel AVX.

http://software.intel.com/en-us/articles/intel-ipp-functions-optimized-for-intel-avx-intel-advanced-vector-extensions/

I am just getting a performance improvement of 10-12% with a simple compiler option switch from /QxSSE4.1 /03 to /QxAVX /03.

By directly using the above same compiler option switch in a scalar code not using the Intel IPP is giving a performance improvement of around 70-80%, as it is supposed to be for single precision floating point numbers.

Could you please tell me what will be the performance improvement for these functions that are not optimized for Intel AVX( from IPP libraries), with a simple compiler option switch. I just need a reference or a benchmark for these functions from Intel IPP, just to make sure that the methodology that I am using for these IPP functions is indeed correct. Please help.

Thanks
Rahul


0 Kudos
6 Replies
Chao_Y_Intel
Moderator
513 Views

Rahul,

Intel IPP performance benchmark tool is located at ipp\tools\xxx\perfsys, and its usage could be found at: http://software.intel.com/en-use/articles/measure-intel-ipp-function-performance

As noted in the AVA optimization article, the functions listed there are the ones directly and manually optimized with AVX instructions. But there are other functions that are compiled with AVX optimized switch. So these functions may also take the benefit of AVX functions.

As to adding the AVX switch when you compile your source code, it will impact the performance of your code. But since IPP functions are binary, which is only linked into the code. These switches will be impact IPP functions performance.

Thanks,
Chao

0 Kudos
arrahul
Beginner
513 Views
Thanks Chao. I appreciate.

Could you please tell me what is the kind of performance improvement that you have seen while working with Intel IPP functions by a simple compiler option switch from SSE to AVX. I just need a rough estimate If you have tested for any of the IPP functions using this tool. It would have been helpful.

Thanks
Rahul
0 Kudos
yuriisig
Beginner
513 Views

IPP functions contain a dial-up of instructions SIMD. During initialization library IPP registers processor possibilities, defines supported version Streaming SIMD Extentions (SSE, AVX) and sends the most suitable version of the functions supported by the processor.

0 Kudos
levicki
Valued Contributor I
513 Views
Rahul,

If the IPP functions you are using are not listed in that article, then those functions are not optimized for AVX.

Furthermore, if the functions you use are not operating on floating point data they cannot be optimized because AVX speeds up only floating point instructions.

Moreover, you cannot optimize those IPP library functions for AVX by turning on compiler AVX optimizations when you compile your program.

Finally, if you cannot understand how compilers and libraries work then perhaps you should consider another career.
0 Kudos
Chao_Y_Intel
Moderator
513 Views
Quoting arrahul
Could you please tell me what is the kind of performance improvement that you have seen while working with Intel IPP functions by a simple compiler option switch from SSE to AVX. I just need a rough estimate If you have tested for any of the IPP functions using this tool. It would have been helpful.


Rahul, since IPP is already compiled binary, the compiler will not compile the library. So IPP library performance is not expected to impact by the compiler switch.
But the compiler switch will impact your source performance.

Thanks,
Chao

0 Kudos
Naveen_G_Intel
Employee
513 Views
Quoting arrahul
Thanks Chao. I appreciate.

Could you please tell me what is the kind of performance improvement that you have seen while working with Intel IPP functions by a simple compiler option switch from SSE to AVX. I just need a rough estimate If you have tested for any of the IPP functions using this tool. It would have been helpful.

Thanks
Rahul

Hi Rahul,

In one of the article, compared Intel AVX vs. Intel SSE performance speedup. This might be useful for you.

http://software.intel.com/en-us/articles/image-processing-acceleration-techniques-using-intel-streaming-simd-extensions-and-intel-advanced-vector-extensions/

Regards,

Naveen GV

0 Kudos
Reply