Agner`s CPU blog

Software optimization resources | E-mail subscription to this blog | www.agner.org

Intel's "cripple AMD" function
Author:  Date: 2021-11-28 22:43
I think there may be some misunderstanding here.
Nobody thinks that Intel should go out of their way to help AMD, such as by making optimizations specific for AMD processors.

Rather, Intel licensed out an instruction set called x86, and there are standardized extensions to it that must be implemented exactly the same as Intel did or not at all.
All other compilers on Earth check if these extensions (such as SSE, AVX, AES-NI, etc.) are present from the CPUID flags, and Intel is also checking the CPUID flags, but they are checking for what brand of CPU it is rather than which extensions it supports.
If a compiler has a way to use AVX to run 16 computations at once (per thread) using AVX, for example, it does not need to make an AMD version.
It just needs to check if AVX is supported by the current CPU (not all Intel CPU's, nor all AMD CPU's, have this extension) and make use of that if available (in code that can be vectorized, the throughput increases 1600%, whereas micro-optimization is generally a gain far less than 10% or so.)

The brand name is not in any way related to which extensions the currently running CPU supports. Intel's compiler is still going out of its way to cripple competitors. This has nothing to do with going out of their way to accomodate AMD or not.
Imagine if when you tried to set a default browser, Microsoft made it so Windows would not let you unless the browser was from Microsoft, even if all browsers were standardized and it was easier to just check if the browser was supported on your computer.
Microsoft did this and got taken to court for it. They lost billions of dollars. Just for preventing competing browsers from bundling with Windows!
What Intel is doing here is far worse. No project run by volunteers with limited time, nor any commercial project with budgetary/tinme constrants, can afford to port everything they own to another compiler. Remember, many people start using Intel's compiler without any warning of this anticompetitive behaviour.

And no, unless you are talking about a personal pet/toy project, it is not trivial to port everything to a new compiler.
There are intrinsics (heavily promoted by Intel) which must all be rewritten.
There are cross-organization interactions of code that require everyone to use the same compiler for the duration of a project.
There are all sorts of legacy issues where you may end up with some binaries/libraries that you no longer have the source code to (or never had the source to,) and they may not have been certified to be used with code generated from other compilers. All throughout industry the costs of this could be infeasible, even where it is possible at all (which is mostly small projects.)

 
thread Intel's "cripple AMD" function new - Agner Fog - 2009-12-30
reply Intel's new - Felid - 2010-01-01
replythread Intel's "cripple AMD" function new - inhahe - 2010-01-03
last replythread Intel's new - Agner Fog - 2010-01-04
replythread Intel's compiler is the best? new - Weber - 2010-01-04
last reply Intel's compiler is the best? new - Agner Fog - 2010-01-09
reply Intel article new - Agner Fog - 2010-01-22
last replythread Intel's new - Deng - 2016-12-11
last replythread Intel's "cripple AMD" function new - Biplab Raut - 2019-12-20
last reply Intel's cripple AMD function new - Agner - 2019-12-29
replythread Web Parallels new - Jeff Craig - 2010-01-04
last replythread More Parallels new - Agner Fog - 2010-01-23
reply Early Examples new - Yuhong Bao - 2010-02-01
last reply More Parallels new - Yuhong Bao - 2010-02-20
replythread New CPUID manipulation program new - Agner Fog - 2010-01-22
replythread CPUID manipulation through virtualization new - Andrew Lofthouse - 2010-08-16
reply CPUID manipulation through virtualization new - Agner Fog - 2010-08-16
replythread CPUID manipulation program for AMD new - Agner - 2010-10-01
last replythread CPUID manipulation program for AMD new - Ralf - 2012-01-30
last reply CPUID manipulation program for AMD new - Agner - 2012-01-31
last reply CPUID manipulation through virtualization new - akshay - 2015-07-08
last replythread New CPUID manipulation program new - AVK - 2011-02-09
last reply New CPUID manipulation program new - Agner - 2011-02-09
reply AMD Blog on compilers/benchmarch new - margaret lewis - 2010-02-01
replythread New version is still crippling Intel's competitors new - Agner Fog - 2010-06-29
last reply New version is still crippling Intel's competitors new - granyte - 2014-09-16
reply Out of court settlement with FTC new - Agner Fog - 2010-08-05
reply AMD library contains Intel's cripple-AMD function! new - Agner Fog - 2010-08-11
replythread Common math programs are affected new - Agner Fog - 2010-08-20
last reply Preliminary test results for Matlab new - Agner Fog - 2010-09-16
replythread Overview of CPU dispatching in Intel software new - Agner Fog - 2010-08-23
last reply Overview of CPU dispatching in Intel software new - Mingye Wang - 2020-08-31
replythread New Intel compiler version - still the same! new - Agner Fog - 2010-09-22
reply GCC now has support for function dispatch new - Jean-Luc - 2010-09-27
replythread Intel compiler question new - James Russell - 2010-10-11
last reply Intel compiler question new - Agner - 2010-10-12
reply New Intel compiler version - still the same! new - Don Kretsch - 2010-11-29
last replythread New Intel compiler version - still the same! new - Daniel - 2011-12-23
last replythread New Intel compiler version - still the same! new - Agner - 2011-12-25
last replythread New Intel compiler version - still the same! new - Stanley Theamer - 2012-02-12
last reply New Intel compiler version - still the same! new - Stretcho - 2012-03-14
replythread Still no library that is optimal on all processors new - Agner - 2012-04-18
replythread Still no library that is optimal on all processors new - Guest - 2012-05-17
last replythread Still no library that is optimal on all processors new - Agner - 2012-05-17
last replythread Still no library that is optimal on all processors new - David - 2012-05-19
last replythread Still no library that is optimal on all processors new - Agner - 2012-05-20
last reply Still no library that is optimal on all processors new - Bubba_Hotepp - 2012-06-16
last replythread Still no library that is optimal on all processors new - Marat Dukhan - 2013-05-20
last replythread Still no library that is optimal on all processors new - Agner - 2013-05-21
last replythread This is still going on, wow just wow new - Vuurdraak - 2016-11-10
last replythread This is still going on, wow just wow new - Agner - 2016-11-10
last replythread This is still going on, wow just wow new - Vuurdraak - 2016-11-11
last replythread This is still going on, wow just wow new - Denis - 2017-01-02
last replythread This is still going on, wow just wow new - Agner - 2017-01-02
replythread RYZEN thoughts? new - Noob programmer - 2017-03-10
last replythread RYZEN thoughts? new - Chromatix - 2017-03-16
last replythread RYZEN thoughts? new - Peter - 2017-04-11
replythread RYZEN thoughts? new - Agner - 2017-04-12
last replythread RYZEN thoughts? new - Ballsystemlord - 2019-02-12
last reply RYZEN thoughts? new - Agner - 2019-02-13
last reply RYZEN thoughts? new - itsmydamnation - 2017-04-21
last reply This is still going on, wow just wow new - Naoki Shibata - 2017-07-19
replythread A long history of legal antitrust battles new - Agner - 2017-07-27
last replythread A long history of legal antitrust battles new - Jorcy Neto - 2017-07-27
last replythread A long history of legal antitrust battles new - Royi - 2018-02-19
last reply A long history of legal antitrust battles new - Agner - 2018-05-15
reply Intel's "cripple AMD" function new - PCPMD - 2019-02-27
replythread Patches and workarounds new - Neville C - 2019-11-21
last reply Patches and workarounds new - Mingye Wang - 2020-09-01
replythread Intel's "cripple AMD" function new - Walker - 2020-06-29
last replythread Intel's "cripple AMD" function new - Forsen - 2020-09-16
reply Intel's new - Agner - 2020-09-16
last replythread Intel's "cripple AMD" function - ETERNALBLUEbullrun - 2021-11-28
last reply Intel's new - Agner - 2021-11-28
last replythread New Intel compiler. Latest update new - Agner - 2022-08-08
last replythread MKL performance on AMD with the new compiler new - Gil Moses - 2022-08-22
last reply MKL performance on AMD with the new compiler new - Agner - 2022-08-22