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

ipp 7.0 crash on Intel(R) Core(TM) i3-2100 CPU

songzhe
Beginner
2,259 Views
ipp version: 7.0.4

code:
#include
#include

int main()
{
IppCpuType cpuType = ippGetCpuType();
if(ippInitCpu(cpuType) != ippStsNoErr)
printf("ippInitCpu(%d) failed", cpuType);
else
printf("ippInitCpu(%d) successed", cpuType);

char buffer[1024];
ippsZero_8u(buffer, sizeof(buffer));
return 0;
}

os: CentOS release 5.5 (Final)
CPU type: Intel Core i3-2100 CPU @ 3.10GHz
compile command line: gcc -o t main.c -I$IPPROOT/include -L$IPPROOT/lib/intel64 -lipps_l -lippcore_l
gcc version: 4.1.2 20080704 (Red Hat 4.1.2-48)

run result: Illegal instruction (core dumped)

gdb where:

(gdb) where
#0 0x0000000000400d96 in e9_ownsZero_8u_E9 ()
#1 0x0000000000400627 in e9_ippsZero_8u ()
#2 0x00000000004005e8 in main ()

Does ipp 7.0.4 sitll has bug on this CPU(Intel Core i3-2100 CPU @ 3.10GHz)?

0 Kudos
5 Replies
songzhe
Beginner
2,259 Views
core dump occurs on both 7.0.3 and 7.0.4
0 Kudos
songzhe
Beginner
2,259 Views
it's ok in dynamic link mode, but static link mode will core dump
0 Kudos
Chao_Y_Intel
Moderator
2,259 Views

Hi songzhe,

Thanks for your report. We are checking this problem now. Does it only happen with ippsZero_8u function, or you find the problem when you call other IPP function?

Thanks,
Chao

0 Kudos
songzhe
Beginner
2,259 Views
Hi Chao:

I think it happans on all functions;My application crashed on this CPU in static link mode, so I just choose a simple funtion ( ippsZero_8u ) to ensure weather it's my bug.
0 Kudos
Chao_Y_Intel
Moderator
2,259 Views


Hi,

The AVX instruction needs explicit operating system support: http://en.wikipedia.org/wiki/Advanced_Vector_Extensions

Could you please check this version Linux distribution support the AVX instructions?
Also, Could you please remove the following code, this will force IPP run AVX instruction.


IppCpuType cpuType = ippGetCpuType();
if(ippInitCpu(cpuType) != ippStsNoErr)
printf("ippInitCpu(%d) failed", cpuType);
else
printf("ippInitCpu(%d) successed", cpuType);

Instead, you can use ippInit() function to let IPP select the dispatching code.

Thanks,
Chao

0 Kudos
Reply