Intel Signal Processing Library from 1996 advice needed

Intel Signal Processing Library from 1996 advice needed

Dear community,
Dear Intel support,

We had some legacy software from awhile ago. And there is a piece of code that uses nsp.dll, nspa6.dll, nspm5.dll, nspm6.dll , etc. Which are the part of Interl Signal Processing library. And application calls these functions:

void  _cdecl nspsRealFftl(float* samps, int order, int flags);

void  _cdecl nspsCcsFftl(float* samps, int order, int flags);

Here is how they called:

nspsRealFftl(&TrfmData[ctr * ChunkSize], 11, 0x81);  // NSP_Forw|NSP_OutBitRev

nspsCcsFftl(&TrfmData[ctr * ChunkSize], 11, 0x0202); // NSP_Inv|NSP_OutRCPerm

DLLs creation date is 30.07.1996

1. Does anyone know what are those functions inside?

2. Is there a document fully describing these functions and which exactly algorithm is used to compute FFT? Would anyone be so kind to provide a manual that came with that old version?

I took a look at the manual to Intel Signal Processing Library version 4.5 from year 2000 (the oldest one we have) and there is indeed a description of these functions. But when we try to replace original DLLs with DLLs from version 4.5 the application crushes.

3. Our goal is to update implementation and,maybe, replace these calls  with open-source implementations of FFT if possible. If not - we will go with Intel IPP. But we want to ensure complete backwards compatibility, so the output from new application would be 100% identical to the old one. What would be your suggestion, respected friends? What is the best way to migrate this algorithm to a new codebase? Is there a way to migrate and keep output results to be the same?

Thanks.

 

publicaciones de 6 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.

And application calls these functions:

void _cdecl nspsRealFftl(float* samps, int order, int flags);

void _cdecl nspsCcsFftl(float* samps, int order, int flags);

Here is how they are called:

nspsRealFftl(&TrfmData[ctr * ChunkSize], 11, 0x81); // NSP_Forw|NSP_OutBitRev

nspsCcsFftl(&TrfmData[ctr * ChunkSize], 11, 0x0202); // NSP_Inv|NSP_OutRCPerm

3)  Ruslan, using this version will not take your application to extract all performance benefits from the latest microarchitectures. May be taking the eval version of IPP ( 30 days ) will help you and with this issue?  

Yes, it will surely extract. And we would be glad to migrate. 
But let me explain my concern again. First, we need to understand what those methods were originally doing,which algorithm they were using under the hood, etc. Then we need to find what methods in latest IPP will give us the same(!) results.
In order to do it, we probably need documentation or any other sort of information about that original package. Thats why I approached you, as an Intel Support Representative, and a whole Intel Development community.
We would appreciate your sincere cooperation on this matter.
Thanks. 

You can look at the IPP FFT into CCS format and make the comparision of ourput results.   At the  first glance the desrciption of nspsRealFftl and CCS format are similar.  Thanks.

 

Hi Ruslan,

what do you mean under "crashes"? Do you see something like exception, abort, or just the result of IPP FFT differs from NSP one?

Regarding IPP - could you provide a piece of code how do you use FFT functions? The right order is GetBufSize, Init, only then FFT itself.

regards, Igor

Deje un comentario

Por favor inicie sesión para agregar un comentario. ¿No es socio? Únase ya