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

Download an older version to workaround a crash

gil_moses
Beginner
3,681 Views

Hi, I've downloaded and installed m_onemkl_p_2022.1.0.208_offline.dmg. 

The problem with this version, is that my product crashes when attempting to run on a Mac M1 machine via Rosetta.

The errors I get are:

Intel MKL FATAL ERROR: This system does not meet the minimum requirements for use of the Intel(R) Math Kernel Library.
The processor must support the Intel(R) Supplemental Streaming SIMD Extensions 3 (Intel(R) SSSE3) instructions.
The processor must support the Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) instructions.
The processor must support the Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions.

This doesn't happen when running the product while using an older MKL version (from 2018).
My suspicion is that previously there was code dispatching in the library, detecting when it could run on the given CPU.
My guess is that Intel have removed the dispatch and now the advanced extensions can't be circumvented.

Based on a StackOverflow post (https://stackoverflow.com/questions/70830755/intel-mkl-fatal-error-this-system-does-not-meet-the-minimum-requirements-for-us), I'd like to try installing an older version of oneMKL.

I tried to find a repository of previous versions but couldn't come across one.

Where can I find older versions?

Also, any suggestions on how to resolve this crash are welcome.

Thanks!

Gil.

0 Kudos
19 Replies
VidyalathaB_Intel
Moderator
3,662 Views

Hi Moses,

 

Thanks for reaching out to us.

 

>>Where can I find older versions?

For queries related to download older versions of MKL, we suggest you post your concerns in the below forum link from where you can get better assistance

https://community.intel.com/t5/oneAPI-Registration-Download/bd-p/registration-download-licensing-instal

 

>>any suggestions on how to resolve this crash are welcome.

Coming to the issue that you are facing with the latest MKL version (please find the system requirements of MKL here), It would be a great help if you could provide us with a sample reproducer and steps to reproduce the errors that you are getting so that we could check it from our end as well.

 

 

Regards,

Vidya. 

 

0 Kudos
VidyalathaB_Intel
Moderator
3,589 Views

Hi Gil,


As we haven't heard back from you, could you please provide us with an update regarding the issue?


Regards,

Vidya.


0 Kudos
gil_moses
Beginner
3,478 Views

Hi Vidya,

I finally managed to create a minimal reproduction scenario for the issue, and I'm attaching the following files:

  1. MKL crash project: an Xcode project for building the reproduction binaries. I used it to build the two attached executables, one using MKL 2021, and the other using MKL 2022. 
    In order to switch MKL version, you need to (a) include the correct mkl file at the top of main.cpp, and (2) in the linker settings, replace the two occurrences of the version with the desired one, ie. choose between 2022.1.0 and 2021.1.1 .

  2. MKL crash binaries.zip: contains two binaries, each built using a different version of MKL.

Run the binaries on an M1 machine. With 2021 you will get no errors, and with 2022 you'll get:

 

Intel MKL FATAL ERROR: This system does not meet the minimum requirements for use of the Intel(R) Math Kernel Library.
The processor must support the Intel(R) Supplemental Streaming SIMD Extensions 3 (Intel(R) SSSE3) instructions.
The processor must support the Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) instructions.
The processor must support the Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions.

 

Important note: you must have the full MKL packages (2021, 2022) installed for building/running the executables.

 

Would you be able to take a look?

Thanks,

Gil.

0 Kudos
Soumya_M_Intel
Moderator
3,561 Views

Hi Gil,

 

The post has been routed to this forum for the product version download concern. Thanks for posting regarding it on the thread.

 

Kindly note that the Intel® Parallel Studio XE 2018 and its components are old and unsupported. It has undergone deprecation and has been removed from the download repositories. Due to this, the product version could not be found in the 'Download' options. You may visit the below link for more information.

 

Link: https://software.intel.com/content/www/us/en/develop/articles/intel-parallel-studio-xe-supported-and-unsupported-product-versions.html

 

However, we understand your situation and requirement. We would be checking our archives for the required product version. Anyhow, before we proceed, we would need to confirm if there is a specific update number of the Intel® MKL Library 2018 (for macOS) that you are searching for.

 

It will allow us to assist you better. Looking forward to your response.

 

Regards,

Soumya

 

0 Kudos
gil_moses
Beginner
3,549 Views

Hi Suomya,

 

I'm interested in MKL versions that are previous to the current shipping one, meaning 1 before current, 2 before current etc. The more the better, since I want to find out when a specific degradation in the library has happened.

 

Thanks,

Gil.

0 Kudos
gil_moses
Beginner
3,523 Views

Hi Suomya,

As I replied by email, this is much appreciated.

Meanwhile I won't need the mac versions. I'll reply to this thread should I need them.

 

Thanks,

Gil.

0 Kudos
Soumya_M_Intel
Moderator
3,515 Views

Hi Gil,


Thanks for the update on the thread and via email. Glad that we could help. Proceeding further, I am moving the post back to the product component's queue for further assistance, post-reproduction with the versions.


Nonetheless, if you require any other product version, please feel free to post regarding it in this forum (link below). We will be glad to assist you.


Link: https://community.intel.com/t5/oneAPI-Registration-Download/bd-p/registration-download-licensing-instal


Hope you have a nice day ahead!


Regards,

Soumya


0 Kudos
VidyalathaB_Intel
Moderator
3,448 Views

Hi Gil,


Thanks for sharing the details.


Recently released Macs with the Apple M1 chips have an ARMv8.5-A architecture/instruction set and oneMKL does not support this instruction set, and therefore cannot be used with the Apple M1 chip that you are using. You can check the processor with the command (sysctl -n machdep.cpu.brand_string). These Apple M1 chips no longer contains x86/x86_64 architecture/instruction sets (Apple's newest Macs don't come with Intel processors. Instead, they use the brand-new Apple M1 chip) so that is the reason you are getting errors saying MKL doesn't meet the system requirements

 

According to the system requirements of oneMKL

the list of supported processors and operating systems are as follows


Supported Operating Systems


macOS*:-


macOS* 12

macOS* 11


Supported Hardware Platforms


CPU:-


Intel Atom® Processors

Intel® Core™ Processor Family

Intel® Xeon® Processor Family

Intel® Xeon® Scalable Performance Processor Family


Reference link:https://www.intel.com/content/www/us/en/developer/articles/system-requirements/oneapi-math-kernel-library-system-requirements.html


So, we suggest you to try with the supported versions of macOS and hardware platforms as mentioned in above link and you can get back to us if you run into any issues.


Hope the provided information helps.


Regards,

Vidya.


0 Kudos
gil_moses
Beginner
3,439 Views

Dear Vidya,

 

I fully understand that M1 will not run AVX instructions.

 

HOWEVER, as I've demonstrated with the code & executables:

Code using MKL 2021 DID NOT output any errors when run on M1 using Rosetta, whereas

Code using MKL 2022 DID output the errors even when using Rosetta.

This makes me suspect that MKL 2021 was released with code branching that circumvented the AVX, SSE3 etc. instructions,

and that in MKL 2022 the branching had been removed.

 

Otherwise could you or an engineer please explain the findings?

thanks,

Gil.

0 Kudos
VidyalathaB_Intel
Moderator
3,433 Views

Hi Gil,


>>This makes me suspect that MKL 2021 was released with code branching that circumvented the AVX, SSE3 etc. instructions,

and that in MKL 2022 the branching had been removed. Otherwise could you or an engineer please explain the findings?


Yeah, sure! we will let you know about the findings. we are working on this issue. we will get back to you soon with the updates.


Regards,

Vidya.


0 Kudos
VidyalathaB_Intel
Moderator
3,416 Views

Hi Gil,


We completely understand your concern about getting errors on Mac M1 machine with latest MKL 2022.1 but not with MKL 2021.1

We want to inform you that those operating systems that are mentioned in the system requirements of oneMKL are tested by Intel rigorously and we can provide support for the same if you run into any issues.

The operating systems which are untested might also work but since it is not tested by Intel, we are unable to provide the information further in this case.


Regards,

Vidya.


0 Kudos
VidyalathaB_Intel
Moderator
3,377 Views

Hi Gil,


As we haven't heard back from you, could you please confirm if we can close this thread from our end?


Regards,

Vidya.


0 Kudos
gil_moses
Beginner
3,361 Views

Hi Vidya,

 

I do understand that M1 with Rosetta is not in the supported processors list.

However, I assume that even for the supported CPUs, there's a code branching mechanism that allows MKL to run on an Intel processor without the advance extensions. For example, a supported Intel processor that doesn't implement AVX will run the appropriate code branch that avoids AVX (and of course with a lower performance).

Is that correct?

If that is true, then I'd expect the same code branching to work with M1 & Rosetta (although not officially supported).

Thanks,

Gil.

0 Kudos
VidyalathaB_Intel
Moderator
3,354 Views

Hi Gil,


Here is some information mentioned in Developer Guide of MKL about the Instruction Set Specific Dispatching on Intel® Architectures.

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-macos-developer-guide/top/managing-behavior-of-onemkl-with-env-vars/instruction-set-specific-dispatch-on-intel-archs.html

Please refer to the above link for more details.


Regards,

Vidya.


0 Kudos
gil_moses
Beginner
3,345 Views

Hi Vidya,

The link shows how to ENABLE instructions. What I need is a function call that DISABLES instructions, to be used on the non-Intel CPU.

Is there such a call?

Thanks,

Gil.

 

0 Kudos
VidyalathaB_Intel
Moderator
3,328 Views

Hi Gil,


>>What I need is a function call that DISABLES instructions, to be used on the non-Intel CPU...Is there such a call?

There is no such function call available for disabling.


Regards,

Vidya.


0 Kudos
VidyalathaB_Intel
Moderator
3,242 Views

Hi Gill,


As we haven't heard back from you, could you please confirm if we can close this thread from our end?


Regards,

Vidya.


0 Kudos
gil_moses
Beginner
3,224 Views

Hi Vidya,

We can close this for now, thanks.

Gil.

0 Kudos
VidyalathaB_Intel
Moderator
3,189 Views

Hi Gil,


>>We can close this for now

Thanks for the confirmation.

Please post a new question if you need any additional assistance from Intel as this thread will no longer be monitored.


Regards,

Vidya.


0 Kudos
Reply