Intel® IPP 2018 Beta is now available as part of the Parallel Studio XE 2018 Beta.
Check the Join the Intel® Parallel Studio XE 2018 Beta program post to learn how to join the Beta program, and the provide your feedback.
What's New in Intel® IPP 2018 Beta Update 1:
What's New in Intel® IPP 2018 Beta:
Removed the cryptography code dependency on the main package. The cryptography functions are now provided as the standalone packages that do not require installation of the main Intel® IPP packages.
Improved performance of LZO data compression functions on Intel® Advanced Vector Extensions 2 (Intel® AVX2) and Intel® Streaming SIMD Extensions 4.2 (Intel® SSE4.2).
Check Intel(R) 2018 Beta release notes to learn information.
I'm using them myself.
From this release:
"Threading Notes: Though Intel® IPP threaded libraries are not installed by default, these threaded libraries are available by the custom installation, so the code written with these libraries will still work as before. However, the multi-threaded libraries are deprecated and moving to external threading is recommended. Your feedback on this is welcome."
So, my feedback is basically as follows: I'm using IPP from a scripting language where I declare library calls to IPP, and in which I cannot do any external threading myself. That's why I need them.
As I wrote before, the reasoning as to why internal threading is deprecated now, doesn't make sense. If the current implementation of internal threading lames, it must be fixed, not removed.
Also, if I read this mailing-list, the most asked question is: my favorite function has been removed from IPP, please help me.I fail to understand such a policy. Is software there for the sake of change ? Or to help developers ? One often gets the impression that our – once intelligent – profession is all about fashion nowadays – the latest summer fashion dictates that we do things differently this season, we are not allowed to wear pink anymore, we must wear purple now.
Linus Torvalds believes the technology industry's celebration of innovation is "smug, self-congratulatory, and self-serving" https://www.theregister.co.uk/2017/02/15/think_different_shut_up_and_work_harder_says_linus_torvalds.... He thinks that real innovation is paying attention to all the tiny little details and getting the work done. I agree.
Dilbert agrees too http://dilbert.com/strip/1998-07-10
Adriaan van Os
2 Feature Requests:
Just a question, what is the new "Platform Aware" library?
What are the benefits? What has changed?
Hi Bruno Martinez, thanks for the feedback. I see both uint8_t, and Ipp8u is define as the "unsigned char", so if the code uses uint8_t, I expect it use the Ipp8u function. Besides the consistent naming for type uint8_t, is there any other reason that could benefit your code to move to this date type? Now, if it is changed, it will impact the existing code.
Yes, mixing uint8_t and Ipp8u works. I already do that. I think you should leave the typedefs to keep compiling old code but change the function prototypes and documentation to the standard types. I think the advantage is that int32_t could be long and Ipp32 could be int (under Windows where long and int are both 32 bits) and then you cannot mix them so freely.
The integration wrapper was a technical preview package, and it is provided as a standalone download( not part of IPP main package). Now, based on the users' feedback , we now add it into our IPP main package, and deliver it as a part of the product.
What is the Integration Wrapper? What does it do?
Any chance for a guide how to utilize efficiently the function in Multi Threaded Scenario?
With some test cases (Gaussian Blur, General Convolution, Median Filter, etc...).
IWs wrap around IPP functions to provide more user friendly interface for both C and C++. They are also designed specifically to improve tiling and threading experience by removing complex borders and buffers manipulations.
Here is dev guide for IWs, it describes API and features: https://software.intel.com/en-us/ippiw-dev-guide-and-reference
In IPP 2018 beta update IW headers are located in IPPROOT/include/iw and IPPROOT/include/iw++. IW sources and examples can be found in IPPROOT/components/<archive>/interfaces/iw
This is great.
Yet I wish there were more guides and example cases online where people can talk and comment about.
There are performance gains to be made on the table and we, the users of IPP and Intel Compiler, want to know how to pick them up.