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

A list of FFT and FIR function in IPP 7.1 are broken ('ippsFFTInv_CToC_32f_I', 'ippsFFTInitAlloc_C_32f' etc )

rohitspandey
Beginner
406 Views

Hi,

 

We use following  IPP function in our appliation. These function are crahing my application after a upgrade has been done to  7.1.  The same appliaction is working fine with the IPP 7.0 release libaray.

These function are sloted to be depreicated. Kindly have a look and let us know what could be the problem. If more inforequired with the usage or crash then kindly let me know.

Regards

Rohit

C:\Program Files (x86)\Intel\Composer XE 2013\ipp\include\ipps.h(4346) : see declaration of 'ippsFFTFree_C_32f'

C:\Program Files (x86)\Intel\Composer XE 2013\ipp\include\ipps.h(4282) : see declaration of 'ippsFFTInitAlloc_C_32f'

C:\Program Files (x86)\Intel\Composer XE 2013\ipp\include\ipps.h(4483) : see declaration of 'ippsFFTFwd_CToC_32f_I'

 C:\Program Files (x86)\Intel\Composer XE 2013\ipp\include\ipps.h(4487) : see declaration of 'ippsFFTInv_CToC_32f_I'

c:\program files (x86)\intel\composer xe 2013\ipp\include\ipps.h(2250) : see declaration of 'ippsMulC_32f_I'

 C:\Program Files (x86)\Intel\Composer XE 2013\ipp\include\ipps.h(5030) : see declaration of 'ippsDFTFree_C_32f'

c:\program files (x86)\intel\composer xe 2013\ipp\include\ipps.h(7462) : see declaration of 'ippsFIRInitAlloc_32f'

        c:\program files (x86)\intel\composer xe 2013\ipp\include\ipps.h(7551) : see declaration of 'ippsFIRFree_32f'

c:\program files (x86)\intel\composer xe 2013\ipp\include\ipps.h(7462) : see declaration of 'ippsFIRInitAlloc_32f'

c:\program files (x86)\intel\composer xe 2013\ipp\include\ipps.h(7511) : see declaration of 'ippsFIRMRInitAlloc64f_32f'

 

0 Kudos
1 Reply
Ying_H_Intel
Employee
406 Views
Hi Rohit, What exact error message when you run your application. Could you please provide us a small test case? Include the information of ipp version const IppLibraryVersion* lib = ippsGetLibVersion(); printf("%s %s %d.%d.%d.%d\n", lib->Name, lib->Version, lib->major, lib->minor, lib->majorBuild, lib->build); As i knew, The functions was deprecated, but they are just in compile warning. They should be still workable in IPP 7.1. ): warning C4996: 'ippsFFTInitAlloc_C_32f': is deprecated. This function is obsolete and will be removed in one of the future IPP releases. Internal memory allocation will not be supported - use GetSize and Init pair for this functionality. Use the following link for details: http://software.intel.com/en-us/articles/intel-ipp-71-deprecated-features/ 1> c:\program files (x86)\intel\composer xe 2013\ipp\include\ipps.h(4282) : see declaration of 'ippsFFTInitAlloc_C_32f'These functions are deprecated. I just did a quick check about some of the functions as below (output and source code). The program seems run fine with 7.1 32bit dll link. Best Regards, Ying ippSP AVX (g9) 7.1.0 (r36264) 7.1.0.36264 0 pDst 36.000000 pDst -4.965686 pDst -4.400000 pDst -4.165686 pDst -4.000000 pDst -3.834315 pDst -3.600000 pDst -3.034314 pDst -107374176.000000 pDst -107374176.000000 ippStsNoErr: No errors. Press any key to continue . . . #include "stdio.h" #include "stdlib.h" #include "memory.h" #include "math.h" #include "ipp.h" int main(int argc, char* argv[]) { ippInit(); const IppLibraryVersion* lib = ippsGetLibVersion(); printf("%s %s %d.%d.%d.%d\n", lib->Name, lib->Version, lib->major, lib->minor, lib->majorBuild, lib->build); // Declarations Ipp32f pSrcRe[8]={1,2,3,4,5,6,7,8}; Ipp32f pSrcIm[8]={0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8}; Ipp32f pDstRe[10]; Ipp32f pDstIm[10]; int i=0; IppsFFTSpec_C_32f* pData; int iBufSize; Ipp8u* pBuffer; IppStatus inStatus; inStatus = ippsFFTInitAlloc_C_32f(&pData,3,IPP_FFT_DIV_INV_BY_N, ippAlgHintNone); inStatus = ippsFFTGetBufSize_C_32f(pData, &iBufSize); pBuffer = ippsMalloc_8u(iBufSize); printf("%d\n",iBufSize); inStatus = ippsFFTFwd_CToC_32f(pSrcRe,pSrcIm, pDstRe, pDstIm, pData, pBuffer); for (i=0;i<10; i++) printf(" pDst %lf\n",pDstRe); inStatus = ippsFFTFree_C_32f(pData); printf("%s\n",ippGetStatusString(inStatus)); return 0; }
0 Kudos
Reply