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

AMD support

Hanit_T_Intel
Employee
1,449 Views

Hi,

I'm a developer from OEM tools in IDC. We are using Intel® Integrated Performance Primitives (Intel® IPP) library in one of our tools. I'd like to know if IPP supports AMD A9-9430 processor? and if so, from which IPP version? currently we are using 8.1 version and a failure occurs on IPP init function (on HP platform).

 

Thanks,

Hanit

0 Kudos
8 Replies
Igor_A_Intel
Employee
1,449 Views

Hi Hanit,

could you be more specific and describe the "failure"? IPP doesn't differentiate cpus by vendor - Intel or non-Intel. It differentiates them by supported instruction sets. A9 supports AVX2 - therefore AVX2 code should be dispatched on it. The only thing is  different - ippInit should return status "NonIntelCpu" - but this means nothing - everything should work correctly.

regards, Igor

0 Kudos
Not applicable
1,449 Views

Hi Igor,

I'm a developer from Hanit's team.

IPPInit() is exactly the function we were facing issue with. We thought that the only return value that indicates a success status is ippStsNoErr.

Can you please describe the optional return values for this function and what are the return values that indicate a failure?

Thank you,

Gal

0 Kudos
Gal_P_Intel
Employee
1,449 Views

Jan met de Pet wrote:

Can you please describe the optional return values for this function and what are the return values that indicate a failure?

Thank you,

Gal

Fix:

Can you please describe the optional return values for this function and what are the return values that indicate a success?

0 Kudos
Igor_A_Intel
Employee
1,449 Views

Hi Gal,

all values below zero are errors, zero means ok status, all values above zero are just warnings (so the function performs the action for which it's intended but reports some minor issues). For ippInit() there are only 2 possible statuses - ippStsNoErr and ippStsNonIntelCpu (that warns you that IPP is optimized for Intel architecture and may not show the best performance for non-Intel cpus).

Regards, Igor

0 Kudos
Gal_P_Intel
Employee
1,449 Views

Hi Igor,

Thanks a lot for your answers!

So this function can't have any errors. Correct?

What about ippStsNotSupportedCpu? Can't it be returned? If so, is it a failure?

 

Thank you,

Gal

0 Kudos
Igor_A_Intel
Employee
1,449 Views

It can't be returned by ippInit, it can be returned only by ippInitCpu() or its new analogue - ippSetCpuFeatures().

Regards, Igor

0 Kudos
Ladislav_K_
Beginner
1,449 Views

I have received by ippInit() also ippStsWaterfall = 43,      (* Cannot load required library, waterfall is used. *)

0 Kudos
Igor_A_Intel
Employee
1,449 Views

Hi Ladislav,

you are talking about dynamic linking with IPP, when ippInit() doesn't make sense (as it is performed automatically at dllMain() level). Initial discussion was (I think) about static linking. Dispatching mechanisms are different for static and dynamic libraries. With "normal" installation you will not face with ippStsWaterfall - this status is returned in case of some cpu-specific dll missing in the search path,- for example detected arch is AVX2, but AVX2 (h9 or l9) dll has not been found, and IPP dynamic dispatcher is trying to load "lower" dll using waterfall mechanism - first AVX, then SSE42, etc. - in this case ippStsWaterfall warning is returned.

regards, Igor

0 Kudos
Reply