I am using Intel IPP in a project and it works great most of the time, but I still have few unexpected memory access violations.
Could you confirm that memory alignment is optional in every ipp function? I often work with ROI in images and so ROI buffers are no necessary aligned.
Is there any known bug with ippiCopy, ippiScale or ippiSwapColor? In my program I removed all the code except image format conversion based on the three listed functions and it occasionnaly crash.
For information, my main app is C# and WPF and I have a C++ DLL which contains calls to IPP function. I only use SSE2 optimized dlls.
I checked and double-checked everything. This is really strange...
Also, does any one know if we could use IPP with Visual Studio 2017? At the moment it is not listed at the install stage and I did not found any information on update for VS2017.
The memory alignment is desirable by performance reason but not necessary in most of IPP function. Also some IPP functions have different code branches for aligned and nonaligned case. So if there is bug in one of branches - you will see crash if memory is aligned/not aligned. Also may be your application allocates not enough memory and IPP functions read extra memory assuming that this memory is available. Also there can be a lot of reasons of such crash. Could you please provide small C reproducer of your case?
Thanks for your question.
Thanks for confirming that memory alignment is just recommended for performance reasons, but not required.
My app is huge but I will try to see I am could provide a repro code in a small sample app.