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

Illegal Instruction crash with ippsFFTInit_C_32fc under 64Bit compiler

Wolfram_B_
Beginner
923 Views

Hi,

-the following code snippet works under 32 Bit compiler, but never under 64 Bit compiler (using Embarcadero C++ Builder)

-it always crashes in ippsFFTInit_C_32fc()

void __fastcall TIppTestForm::FftButtonClick(TObject *Sender)
{
#define  FFT_ORDER         18

    int                   FftOrder=FFT_ORDER;
    int                   FftFlag=IPP_FFT_DIV_FWD_BY_N;
    IppHintAlgorithm     hint=ippAlgHintNone;
    int                    SpecSize;
    int                    SpecBufferSize;
    int                    BufferSize;

    IppStatus    IppState;

    IppLibInfo();

    // get sizes
    IppState=ippsFFTGetSize_C_32fc(FftOrder, FftFlag, hint, &SpecSize, &SpecBufferSize, &BufferSize);
    if(IppState!=ippStsNoErr)
    {
        PrintMsg("E: ippsFFTGetSize_C_32fc() failed");
    }
    else
    {
        PrintMsg("M: ippsFFTGetSize_C_32fc() success");
    }

    IppsFFTSpec_C_32fc    *pFFTSpec=NULL;

    // get mem
    Ipp8u*    pSpec;
    Ipp8u*     pSpecBuffer;

    pSpec            =ippsMalloc_8u(SpecSize);
    pSpecBuffer =ippsMalloc_8u(SpecBufferSize);

    // FFT Init
    IppState=ippsFFTInit_C_32fc(&pFFTSpec, FftOrder, FftFlag, hint, pSpec, pSpecBuffer);
    if(IppState!=ippStsNoErr)
    {
        PrintMsg("E: ippsFFTInit_C_32fc() failed");
    }
    else
    {
        PrintMsg("M: ippsFFTInit_C_32fc() success");
    }

   // do some FFTs...
    ippsFree(pSpec);
    if(pSpecBuffer)
        ippsFree(pSpecBuffer);
}

-if its run in Debug mode (under 64 Bit), I get an external exception C000001D, think is an illegal instruction

-OS is Windows 2012 R2

-CPUs are two Xeon Gold 6140

-about 90GB memory

Am I doing something wrong (it is working under 32 Bit) or why does it not work on the new CPUs under 64 Bit. We use similar code in another program that works on Haswell Xeon CPUs but also not on Skylake CPU (under 64 Bit).

But we really need it working under 64 Bit and we want make use of the AVX-512 instruction set(s).

Can somebody please help  and tell me what is the problem?

btw. I am using Intel IPP 2018 Initial Release

 

Kind Regards

Wobo17

0 Kudos
5 Replies
Wolfram_B_
Beginner
923 Views

forgot to mention, Intel IPP 2018 Initial Release is used

0 Kudos
Wolfram_B_
Beginner
923 Views
Hi, to exclude the possibility that our used compiler/linker (Embarcadero C++ Builder) causes some strange effects, I used the Intel tool ps_ipps.exe (distributed with the Intel IPP library) on the Intel(R) Xeon(R) Gold 6140 CPU computer and tested the 64-Bit version DLLs. This test was fine on my Haswell Computer, however on the Skylake, AVX-512 enabled computer under 64 Bit this test ended in a catastrophe. Even the Intel tool ps_ipps.exe itself could not come to a regular end. It crashed itself somewhere in between. I attach the logfile from this test ps_ipps_results.txt. So I ask myself, is the IPP AVX-512 stuff still that buggy or is something wrong with this computer powered by two Intel(R) Xeon(R) Gold 6140 CPUs or am I doing something fundamentally wrong? Hope somebody can help? Kind regards
0 Kudos
Chao_Y_Intel
Moderator
923 Views

Hi Wolfram,

Thanks for submit this problem. Could you submit a ticket into a support website:
http://www.intel.com/supporttickets

Our engineer want to deliver you one test tools to verify the system information, and we need to deliver the tool by your support website.
Let us the ticket number, and we will follow with you on the files.  I attached steps on submit issues.

regards,
Chao

0 Kudos
Wolfram_B_
Beginner
923 Views

Hi Chao,

I tried the link http://www.intel.com/supporttickets. From there I can either sign-in with my forum account, but after that I am not able to go on with your suggestions, or I try to create a new account for this support area, then the webform tells me my e-mail address is already connected to an account (my forum account) and I cannot create another account, I should sign in with that already existing account (username Wobo17). If I sign-in again with this account, I am again stuck on the website and cannot do anything according to your suggestions.

However, I cannot submit a ticket as suggested. It does not work with my account (Wobo17) and I can't create another account obviously, because my e-mail address is already used for the forum account.

However, if the testtool that you want to send to me is not too big. You could easily send it to me to my e-mail address or you can provide an account with that I could submit a ticket, obviously I can't create such an account via Intel websites.

If the testtool is too big for transmitting it to an e-mail address, I could ask my company If there is an ftp account available where you/your engineers could upload the testtool.

Please tell me how we can proceed.

Perhaps, I should still mention I use the free version of IPP library, but this version surely does support AVX512 instruction set(s) too?

Kind Regards, Wolfram

 

0 Kudos
Chao_Y_Intel
Moderator
923 Views

Wolfram,  Thanks.
I will contact you to learn your login in problem, and the file transfer.

 

0 Kudos
Reply