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

IPP 7.0.5 crashes on AMD Athlon XP 2400+

Thomas_Frank
Beginner
410 Views
Hello.

Below you find a minimalistic ipp program which runs fine on recent x86 processor architectures (Intel as well as AMD), but crashes on an AMD Athlon XP 2400+. The crash occurs within ippsSet_8u (and also all other variants of ippsSet). I discovered this while tracing down crashes within the ipp implementation of zlib.

I compiled the program on VC2005, linked against the static ipp libraries. OS is WinXP SP3 with all the latest fixes and versions of the CRT on all test machines.

Is this a bug? Or is Athlon XP 2400+ just not supported? Is there a way to initialize the ipp library so that this code will work without crashing? I tried ippInitCpu() with ippCpuUnknown and some other CPU types, even left out ippStaticInit() completely... no success.

I'm quite new to IPP. Any help is appreciated.

regards
Thomas

Here is the minimal 'crash-'program:

#include "ipp/ipp.h"
#include

using namespace std;

#define MEM_SIZE 1024

int __cdecl main( int argc, char* argv )
{
ippStaticInit();
Ipp8u* Ptr = ippsMalloc_8u( MEM_SIZE );
cout << "Will it crash?" << endl;
ippsSet_8u( 42, Ptr, MEM_SIZE );
cout << "No it doesn't!" << endl;
ippsFree( Ptr );
return 0;
}

0 Kudos
4 Replies
Ying_S_Intel
Employee
410 Views
Thanks for your report, we will look into it and provide update shortly.

Ying
0 Kudos
Chao_Y_Intel
Moderator
410 Views

Hello,

You may notice that the default package in IPP 7.0 require that processors have SSE2 support for 32 bit application. The non-optimized layers of the library need to be downloaded separately. Please check the following article to know some details:
http://software.intel.com/en-us/articles/generic-library-dispatching-with-the-ipp-70-library/


It looks to me that the processor you are testing does not support SSE2. true?http://en.wikipedia.org/wiki/List_of_AMD_Athlon_XP_microprocessors

so,if you want to use IPP 7.0 on the processors without SSE2 support (Intel or Intel compatible processors), it needs to download and link with some additional generic static library. The following article provides the steps: http://software.intel.com/en-us/articles/generic-library-dispatching-with-the-ipp-70-library/

Thanks,
Chao

0 Kudos
Thomas_Frank
Beginner
410 Views
Thanks very much for the quick reply! So it seems, that I missed an important part of the documentation. I will try out the instructions and report the results...

Thomas
0 Kudos
Thomas_Frank
Beginner
410 Views
Well, it seems that this is it.

Thanks again
Thomas
0 Kudos
Reply