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

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

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'

 

2 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

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[i]);

inStatus = ippsFFTFree_C_32f(pData);

printf("%s\n",ippGetStatusString(inStatus));
return 0;

}

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!