Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

supported processors

Marshall__Michael_B
3,513 Views
Will MKL run on any processor or just Intel. I understand that the MKL takes advantage of Intel hardware but if it discovers it is running on an AMD or any x86 architecture, will it revert to a slower but still correct software only mode?
0 Kudos
5 Replies
JamesR
New Contributor II
3,513 Views

The Intel Math Kernel Library (MKL) supports Intel and compatible processors and should outperform other similar libraries regardless of the processor. MKL's goal is to be the best performing math library. Period.

We've done benchmarking against other libraries, on Intel and AMD processors, and we believe we have done an outstanding job beating other options.(I'd like to guarantee a "win" every time and tell you that we kick ass in every single case... but no one can promise that, and even though I believe we do deliver this and are way ahead of others, lawyers don't want us promising what no one can ever guarantee to deliver... there will always be a corner case to prove we aren't always best. I can't image anyone else showing they are in general better though! Trying it yourself should be the only real answer though.)

Being THE BEST is our goal - and our customers and benchmarks seem to support that. If not - let us know and we'll improve!

Now - there is a technical feature to select based on hardware, and run different versions. This feature is not hard to understand but does seems to create a lot of confusion.If we didn't do checks in MKL, MKL might try to run SSE4 code on processors (like AMD or older Intel processors) that do not support SSE4 and the programs would malfunction or possibly crash. We have similar versions and checks for AVX, SSE4.2, SSE4.1 and SSE3. Pretty much all processors support SSE2, so that is generally used as a baseline. SSE3 is getting common enough to become that some time soon.

For SSE4 (for example),MKL can only use these on processors that support the SSE4 instructions a particular MKL function uses - and fall back to versions that don't try to use SSE4... which is going to be true today for all AMD processors and most Intel processors today. The MKL product includes many versions of functions, to handle just these sorts of situations.

It's technically accurate that these may be "slower" versions, but it's not true that the other versions would be faster on a processor that can't run them... it would be accurateto say these are the versions (using SSE3 but not SSE4)"work" as opposed to "crash" (crash is likely if trying to run instructions that are not supported in a processor).

I hope this makes sense - if not, I'll be happy to try to clarify more.

The best thing, in my experience, is to try MKL and see the results that you get. I'm quite confident you'll find it the best, regardless of the processor you are using. My confidence comes from our testing and from customer feedback on their results in their programs. To get optimal results, you may need to understand and select the right build options which are covered in the MKL manuals. We try to make it automatic - so try it without worrying about options first.

0 Kudos
user__intel
Beginner
3,513 Views

Thank you James. I cannot test MKL on my old computer. Do you mean there may be issue if I use the Threadripper? Between the Intel i7-8700K and the Threadripper 1900X, which do you recommend? Is there any advantage in getting the higher cores 1950X? Will the i5-8400 do fine as well?

You mentioned about SSE4 a lot in terms of compatibility. Is having SSE4a, SSE4.1 and SSE4.2 not sufficient? Are they different from the SSE4 you mentioned? From the Threadripper product website, it only supports AES, AVX2 and FMA3. From wiki, it supports "AMD64/x86-64, MMX(+), SSE1, SSE2, SSE3, SSSE3, SSE4a, SSE4.1, SSE4.2, AES, CLMUL, AVX, AVX2, FMA3, CVT16/F16C, ABM, BMI1, BMI2, SHA". Not sure about what the up-coming Threadripper 2 will support.

0 Kudos
mecej4
Honored Contributor III
3,513 Views

user, intel wrote:
Thank you James. I cannot test MKL on my old computer.

Why not? I am using the current version of MKL on a 12 year old AMD Athlon 4200+ with Windows 10 X64, and it works fine. Try it!

You are adding a post after a gap of eight years. James Reinders retired from Intel many months ago.

0 Kudos
TimP
Honored Contributor III
3,513 Views

One would expect a CPU which follows on to one supporting AVX2 to continue supporting AVX2.  If a CPU tells MKL it supports AVX2 and not AVX512, MKL would be expected to use AVX2.  As Sham said, it's been 15 or more years since AMD had an "SSE2" CPU which didn't include enough of SSE2 for Intel tools to run.  If you found that AVX2 didn't work on a CPU which claimed to support it, MKL includes provisions e.g. CBWR to specify which ISA.

0 Kudos
Momen_Sani__Ali
Beginner
3,513 Views

mecej4 wrote:

Quote:

user, intel wrote:

Thank you James. I cannot test MKL on my old computer.

 

Why not? I am using the current version of MKL on a 12 year old AMD Athlon 4200+ with Windows 10 X64, and it works fine. Try it!

You are adding a post after a gap of eight years. James Reinders retired from Intel many months ago.

I get "21924 illegal hardware instruction (core dumped)" when I import numpy (intel-numpy) on an AMD Phenom(tm) II X4 810 Processor. :(

0 Kudos
Reply