Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
6663 Discussions

IPP 2020.0.0 Gold - doesn't work on some older CPUs

Ralf_K_
Beginner
574 Views

we have upated our product to IPP 2020.0.0 Gold and we got some feedback in our Helpdesk system from customers who have problems on some older processors

i.e.

xeon e3 1225 v3

and

i5-34??

it seems, that the initialization of IPP fails on these systems, unfortunal we don't have access to these sytstems and we can't debug.

Are there any known issues on older processors with IPP 2020?

IPP2019 works on the old processors fine.

 

 

Ralf

0 Kudos
8 Replies
Gennady_F_Intel
Moderator
574 Views

Ralf, the v.2020 has to work on these systems as well. We know nothing about such kind of problems. Could we have more details? Do you know which IPP routine causes the problem? 

Ralf_K_
Beginner
574 Views

 

thanks for your answer.

As i said, i have no access to these production systems for debug. We solved the issue by downgrading to IPP 2019

 

I have no access to a system where the problem occurs atm.

All accessible systems, where we can debug, are working fine with IPP 2020.0.0 Gold, too

 

The issue seems to be in an initialization routine for IPP, that is what i can see from our internal Log-Files.

 

 

Ralf

Abhinav_S_Intel
Moderator
574 Views

If possible, can you please share the log file? This is important for us to narrow down this issue.

Ralf_K_
Beginner
574 Views

the log is from our program, - the entry says only, that it failed to initialize IPP, there are no info about the called functions etc.

If there appears another system with this issue, i'll try to narrow down.

I will let you know as soon as i have more info ...

 

Gennady_F_Intel
Moderator
574 Views

which is the first IPP function from this application pipeline? did this application call some Init function?

Ralf_K_
Beginner
574 Views

 

here is the init function:

 

void App::initIPP() const

  {

    LogIntend li(LogManager_->SysLog_, "Init IPP");

    ippInit();

    auto lib = ippGetLibVersion();

    IPPLog_->log("Version " + string(lib->Name) + " " + string(lib->Version));

    Ipp64u mask, emask;

 

    /* Get CPU features and features enabled with selected library level */

    auto status = ippGetCpuFeatures(&mask, 0);

    if (ippStsNoErr == status) {

      emask = ippGetEnabledCpuFeatures();

      IPPLog_->log(string("Features supported by CPU\tby IPP\n"));

      IPPLog_->log(string("-----------------------------------------\n"));

      IPPLog_->log(string("  ippCPUID_MMX        = " + strFromInt((mask & ippCPUID_MMX) > 0)));

      IPPLog_->log(string("  ippCPUID_SSE        = " + strFromInt((mask & ippCPUID_SSE) > 0)));

      IPPLog_->log(string("  ippCPUID_SSE2       = " + strFromInt((mask & ippCPUID_SSE2) > 0)));

      IPPLog_->log(string("  ippCPUID_SSE3       = " + strFromInt((mask & ippCPUID_SSE3) > 0)));

      IPPLog_->log(string("  ippCPUID_SSSE3      = " + strFromInt((mask & ippCPUID_SSSE3) > 0)));

      IPPLog_->log(string("  ippCPUID_MOVBE      = " + strFromInt((mask & ippCPUID_MOVBE) > 0)));

      IPPLog_->log(string("  ippCPUID_SSE41      = " + strFromInt((mask & ippCPUID_SSE41) > 0)));

      IPPLog_->log(string("  ippCPUID_SSE42      = " + strFromInt((mask & ippCPUID_SSE42) > 0)));

      IPPLog_->log(string("  ippCPUID_AVX        = " + strFromInt((mask & ippCPUID_AVX) > 0)));

      IPPLog_->log(string("  ippAVX_ENABLEDBYOS  = " + strFromInt((mask & ippAVX_ENABLEDBYOS) > 0)));

      IPPLog_->log(string("  ippCPUID_AES        = " + strFromInt((mask & ippCPUID_AES) > 0)));

      IPPLog_->log(string("  ippCPUID_SHA        = " + strFromInt((mask & ippCPUID_SHA) > 0)));

      IPPLog_->log(string("  ippCPUID_CLMUL      = " + strFromInt((mask & ippCPUID_CLMUL) > 0)));

      IPPLog_->log(string("  ippCPUID_RDRAND     = " + strFromInt((mask & ippCPUID_RDRAND) > 0)));

      IPPLog_->log(string("  ippCPUID_F16C       = " + strFromInt((mask & ippCPUID_F16C) > 0)));

      IPPLog_->log(string("  ippCPUID_AVX2       = " + strFromInt((mask & ippCPUID_AVX2) > 0)));

      IPPLog_->log(string("  ippCPUID_AVX512F    = " + strFromInt((mask & ippCPUID_AVX512F) > 0)));

      IPPLog_->log(string("  ippCPUID_AVX512CD   = " + strFromInt((mask & ippCPUID_AVX512CD) > 0)));

      IPPLog_->log(string("  ippCPUID_AVX512ER   = " + strFromInt((mask & ippCPUID_AVX512ER) > 0)));

      IPPLog_->log(string("  ippCPUID_ADCOX      = " + strFromInt((mask & ippCPUID_ADCOX) > 0)));

      IPPLog_->log(string("  ippCPUID_RDSEED     = " + strFromInt((mask & ippCPUID_RDSEED) > 0)));

      IPPLog_->log(string("  ippCPUID_PREFETCHW  = " + strFromInt((mask & ippCPUID_PREFETCHW) > 0)));

      IPPLog_->log(string("  ippCPUID_KNC        = " + strFromInt((mask & ippCPUID_KNC) > 0)));

    }

  }

 

 

Ralf

Ralf_K_
Beginner
574 Views

i have solved the issue on a system with an i3-3220 CPU

 

It was not a problem attributable to Intel IPP 2020.0.0 Gold

 

it was an issue with Intel Media SDK 2019

the code sequence is
 

		mfxVersion ver = { { 1, 1 } };

		mfxSession auxSession;
		const auto result = MFXInit(MFX_IMPL_HARDWARE_ANY, &ver, &auxSession);

 

which works fine with SDK 2018 but generates an access violation in MFXInit with SDK 2019 on some old processors ( i3-3220 has Hardware API-Level 11)

i changed the code to

		mfxVersion ver = { { 13, 1 } };

		mfxSession auxSession;
		const auto result = MFXInit(MFX_IMPL_HARDWARE_ANY, &ver, &auxSession);

and now the code works with Intel Media SDK 2019 on an i3-3220 (no access violation in MFXInit)

 

Ralf

 

Gennady_F_Intel
Moderator
574 Views

thanks for letting us know, Ralf

Reply