This is currently emerging on the Internet: Page URL
Bug 24979 - sysdeps: dl_platform detection effectively performs "cripple AMD"
Glibc received the capability to transparently load libraries for specific CPU families with some SIMD extensions combinations in 2017, a move that should be beneficial for a lot of x86 users. However, the current form of the implementation[1] limits two "good" sets of modern SIMD instructions to Intel processors only, preventing competitor CPUs with equivalent capabilities to fully perform, something that should not happen in any free software package. This feels quite like a flashback to the icc/mkl "cripple AMD" routine from 2009.[2]
Here on this page is how it works. The open source MathLibrary OpenBLAS is used for build in functionality for Python, SQL, R, SAS used by over 90% of data-scientist and it can be called from many other languages like C/C++, Java and so on.
Multiple sets of ISA extensions such as AVX2, FMA, BMI are not recognized individually but as a whole as the "haswell" platform. Intel made a Linux patch to use some deprecated parameters for this. If the patch sees all the extensions than it will set the dl_platform parameter to "haswell". This patch was introduced shortly after the Ryzen launch in 2017.
Even when Zen1 and Zen2 have all the required extensions (AVX2, FMA, BMI....) the AMD CPU's will not get the dl_platform set to Haswell even though they are Haswell ISA compatible. The result is that all calls to OpenBLAS go to a non-optimized dynamic openBLAS library while in case of newer Intel processors, another optimized dynamic library is used which does contain all the AVX2, FMA, BMI optimized function.
Here is de code:
Bug 24979 - sysdeps: dl_platform detection effectively performs "cripple AMD"
Glibc received the capability to transparently load libraries for specific CPU families with some SIMD extensions combinations in 2017, a move that should be beneficial for a lot of x86 users. However, the current form of the implementation[1] limits two "good" sets of modern SIMD instructions to Intel processors only, preventing competitor CPUs with equivalent capabilities to fully perform, something that should not happen in any free software package. This feels quite like a flashback to the icc/mkl "cripple AMD" routine from 2009.[2]
Here on this page is how it works. The open source MathLibrary OpenBLAS is used for build in functionality for Python, SQL, R, SAS used by over 90% of data-scientist and it can be called from many other languages like C/C++, Java and so on.
Multiple sets of ISA extensions such as AVX2, FMA, BMI are not recognized individually but as a whole as the "haswell" platform. Intel made a Linux patch to use some deprecated parameters for this. If the patch sees all the extensions than it will set the dl_platform parameter to "haswell". This patch was introduced shortly after the Ryzen launch in 2017.
Even when Zen1 and Zen2 have all the required extensions (AVX2, FMA, BMI....) the AMD CPU's will not get the dl_platform set to Haswell even though they are Haswell ISA compatible. The result is that all calls to OpenBLAS go to a non-optimized dynamic openBLAS library while in case of newer Intel processors, another optimized dynamic library is used which does contain all the AVX2, FMA, BMI optimized function.
Here is de code: