Intel tvungna att ta bort "Cripple AMD" funktion från Compiler

Permalänk
Medlem

Intel tvungna att ta bort "Cripple AMD" funktion från Compiler

Översatt av google:

Här är något du förmodligen inte vet, men borde verkligen - speciellt om du är en programmerare och speciellt speciellt om du använder Intels kompilator. Det är ett faktum som inte är allmänt känt, men Intels kompilator avsiktligt och medvetet krymplingar prestanda för icke-Intel (AMD / VIA) processorer.

Agner Fog detaljer detta särskilt obehagliga exempel på Intels konkurrensbegränsande metoder ganska bra. Intels kompilator kan ge olika versioner av delar av koden, med varje version är optimerad för en specifik processor och / eller instruktionsuppsättning (SSE2, SSE3, etc.). Systemet upptäcker vilken CPU den körs på och väljer den optimala koden väg om detta, CPU avsändaren, som det kallas.

"Men gör Intel CPU avsändaren inte bara kontrollera vilken instruktion som stöds av processorn, kontrollerar också strängen säljare ID," Fog detaljer, "Om säljaren strängen säger" GenuineIntel "då den använder den optimala koden vägen. Om är inte processorn från Intel då, i de flesta fall kommer den att köra den långsammaste möjliga versionen av koden, även om processorn är fullt förenligt med en bättre version. "

Det visar sig att medan detta är känt beteende, få användare av Intel kompilatorn faktiskt verkar veta om det. Intel inte annonsera kompilator som Intel-specifikt, så har företaget ingen ursäkt för att medvetet förödande resultat på icke-Intel-maskiner.

"Många mjukvaruutvecklare tycker att kompilatorn är kompatibel med AMD-processorer, och i själva verket är det, men visste inte att programmeraren det sätter i en partisk CPU avsändare som väljer en sämre kod väg när det körs på en icke-Intel-processor" Dimma skriver: "Om programmerare visste detta faktum att de troligen skulle använda en annan kompilator. Vem vill sälja en mjukvara som inte fungerar bra på AMD-processorer?"

Faktum är att Fog poäng även benchmarking program som påverkas av detta, upp till en punkt där riktmärke resultat kan variera kraftigt beroende på hur en processor identifierar sig. Ars upptäckte att genom att ändra CPUID av en VIA Nano processor till AuthenticAMD du kan öka prestanda i PCMark 2005 minne delsystem testa med 10% - att byta det till GenuineIntel ger en 47,4% prestandaförbättring! Det finns mer om det här [skriv ut version - Regelbunden en kommer inte att läsa för mig].

Med andra ord är detta ett mycket allvarligt problem. Lyckligtvis, dock verkar det som om den senaste tidens antitrust uppgörelse mellan AMD och Intel kommer att lösa detta problem för åtminstone AMD användare, som avtalet uttryckligen sägs att Intel måste fixa sin kompilator, vilket innebär att de blir tvungen att fixa sina CPU avsändaren.

Federal Trade Commission utreder Intel också, och det är också nå en lösning kompilatorn fråga, men FTC tar allt ett steg längre än den Intel-AMD uppgörelse. Eftersom den senare endast omfattar AMD kan VIA fortfarande vara i trubbel. Därför begär FTC att Intel gör mycket mer än vad som beskrivs i AMD uppgörelse:

Kräver att, med avseende på de Intel kunder som köpt från Intel ett program kompilator som haft eller har design eller verkan att försämra verkliga eller skenbara prestanda mikroprocessorer som inte tillverkats av Intel ("Defekt Compiler"), som beskrivs i klagomålet:

Intel ge dem, utan extra kostnad, ett substitut kompilator som inte är en defekt Compiler;
Intel kompensera dem för kostnaderna för att kompilera programmet de hade sammanställts på den defekta Compiler och att ersätta, och distribuera sina egna kunder, kompileras om för programvaruutveckling sammanställas på en defekt Compiler, och
Intel kungöra och varning, på ett sätt som kan komma att överlämnas till personer som har köpt programvara sammanställts på Defekt Kompilatorer köpt från Intel, för eventuellt behov av att ersätta denna programvara.

Fog erbjuder också upp ett antal knep, som att använda GNU GCC, vars optimeringar är liknande den i Intels kompilator, "men Gnu-funktionen bibliotek (glibc) är underlägsna". Du kan också patch Intels CPU dispatcher - Dimma även ger en patch för att göra det i "Optimera program i C + +: En optimering för Windows, Linux och Mac-plattformar".

Detta är en särskilt otäck typ av konkurrensbegränsande metoder, som den verkligen kräver djup kunskap om frågor för att få ut det. Gud vet hur många riktmärken har varit skev till förmån för Intel helt enkelt därför att människor omedvetet använda Intels kompilator i god tro. Intels kompilator ses som gräddan och ger överlägsen prestanda, men tydligen bara om man håller sig till GenuineIntel.
Google Translate för företag:ÖversättningsverktygWebbplatsöversättareGlobal Market Finder
Inaktivera snabböversättningOm Google ÖversättMobilSekretessHjälpSkicka feedback

http://www.osnews.com/story/22683/Intel_Forced_to_Remove_Crip...
http://www.agner.org/optimize/blog/read.php?i=49

Permalänk
Medlem

Intressant artikel, men den är över ett år gammal. Någon som vet om det har hänt något på detta området sedan dess?

Visa signatur

"We're paratroopers, lieutenant. We're supposed to be surrounded!" - Lt. Winters, Bastogne 1944

Permalänk
Skrivet av Scanian:

Intressant artikel, men den är över ett år gammal. Någon som vet om det har hänt något på detta området sedan dess?

Den är t.o.m över 2 år gammal så torde hänt en del sen dess. Eller? Nån som har mer info?

Permalänk
Medlem
Skrivet av EvilPuppy:

Den är t.o.m över 2 år gammal så torde hänt en del sen dess. Eller? Nån som har mer info?

Se på fan, det är ju 2012 nu, ja!

Visa signatur

"We're paratroopers, lieutenant. We're supposed to be surrounded!" - Lt. Winters, Bastogne 1944

Permalänk
Medlem

Vilka är krymplingarna och på vilket sätt är de farliga för mig?

Permalänk
Medlem

Varför programmera i Intels kompilator? Notepad++ eller Visual C++ 2008 Express är bättre.
Ett bra program ska kunna fungera på alla maskiner oberoende av hårdvara.

Permalänk
Medlem

Nästan tldr på denna post men jag orkade mig igenom! Intressant var det hursom. Borde inte alla problem läsa sig om Amd skaffar sig sin egna kompilator?

Visa signatur

You have earned my respect and my friendship.

Permalänk
Hedersmedlem
Skrivet av PerZerk:

Notepad++ eller Visual C++ 2008 Express är bättre.

Det där får du nog utveckla en smula (Notepad++ är inte en kompilator, visual studio 2008 är inte den senaste versionen (och express är budgetvarianten (även om den använder samma kompilator)) och intels kompilator brukar väl faktiskt vara bättre i många avseenden).

Skrivet av thorsama:

Borde inte alla problem läsa sig om Amd skaffar sig sin egna kompilator?

Problemet är väl främst att det inte är helt enkelt; särskilt inte om den till och med skall prestera bättre än de som redan finns.

Permalänk
Hjälpsam

Intels kompilator ger väldigt effektiv kod och är populär hos de som är ute efter maximal prestanda.
Det är tom ofta så att AMD presterar bättre på IC än GCC och MVS trots desoptimeringarna.
Möjligt att de andra börjar knappa in på försprånget.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk

Problemet är iofs rätt begränsat, eftersom väldigt många programmerare för Windows använder Microsofts kompilerare i Microsoft Visual Studio eller .NET och för Linux används väl ofta GCC.
Men i de fall man vill få ut det mesta ur hårdvaran används ofta Intels kompilator, då den är bäst på att optimera koden. då är det illa att ofördelaktiga optimeringsval väljs för AMD.
Det är synd att AMD inte har resurser att optimera sin egen kompilator så att den blir lika bra som intels (eller rättare sagt är det synd att ingen av de leveratörsoberoende kompilatorerna är lika bra optimerad som Intels).
Det är iofs lite förståeligt att Intel inte ägnar någon större tid på att optimera sin egen kompilator åt konkurrenternas processorer. Vill minnas att Intel numera tvingas klart ange att deras kompilator inte är optimal för AMD och VIA, dock verkar det vara svårt att tvinga dem att optimera den åt sina konkurrenter, då de inte baserar kodvalet på modellserie och vad den klarar av, utan på enskild processormodell (hävdar de i alla fall).

PS. En länkning till originalkällan skulle vara på sin plats, då översättningen ger en huvudvärk och det skulle vara lättare att läsa texten på engelska. DS.

Visa signatur

~Pelle~

Permalänk
Medlem
Permalänk
Medlem
Skrivet av WrongTarget:

Problemet är iofs rätt begränsat, eftersom väldigt många programmerare för Windows använder Microsofts kompilerare i Microsoft Visual Studio eller .NET och för Linux används väl ofta GCC.
Men i de fall man vill få ut det mesta ur hårdvaran används ofta Intels kompilator, då den är bäst på att optimera koden. då är det illa att ofördelaktiga optimeringsval väljs för AMD.
Det är synd att AMD inte har resurser att optimera sin egen kompilator så att den blir lika bra som intels (eller rättare sagt är det synd att ingen av de leveratörsoberoende kompilatorerna är lika bra optimerad som Intels).
Det är iofs lite förståeligt att Intel inte ägnar någon större tid på att optimera sin egen kompilator åt konkurrenternas processorer. Vill minnas att Intel numera tvingas klart ange att deras kompilator inte är optimal för AMD och VIA, dock verkar det vara svårt att tvinga dem att optimera den åt sina konkurrenter, då de inte baserar kodvalet på modellserie och vad den klarar av, utan på enskild processormodell (hävdar de i alla fall).

PS. En länkning till originalkällan skulle vara på sin plats, då översättningen ger en huvudvärk och det skulle vara lättare att läsa texten på engelska. DS.

http://www.osnews.com/story/22683/Intel_Forced_to_Remove_Crip...

Intressant läsning Agner`s CPU blog
http://www.agner.org/optimize/blog/read.php?i=49

Permalänk
Hedersmedlem
Skrivet av Jonathanknet:

Det har väl dock inte så mycket med ämnet att göra? Bulldozer fungerar väl till parallelliserabara heltalsoperationer och sämre till annat.

Permalänk
Hjälpsam
Skrivet av Elgot:

Det har väl dock inte så mycket med ämnet att göra? Bulldozer fungerar väl till parallelliserabara heltalsoperationer och sämre till annat.

I testet spöar tex en fyrkärnig Phenom en 2600K, koden har optimerats för både Intel och AMD.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Hedersmedlem
Skrivet av Ratatosk:

I testet spöar tex en fyrkärnig Phenom en 2600K, koden har optimerats för både Intel och AMD.

Det må vara en rolig observation, men det säger väl inte så mycket om så mycket och har väl fortfarande inte så mycket med ämnet att göra? Speciellt kan man väl inte dra slutsatsen "så här bra skulle världen vara om intels kompilator optimerade lika bra för alla" eller liknande?

Permalänk
Skrivet av Jonathanknet:

Jo, men nu vet vi ju inte i vilken kompilerare resten av testerna är kompilerade, det är ytterst osannolikt att alla är kompilerade med Intels kompilator och alla test ger något annorlunda resultat än de andra testerna. Testerna passar de olika arkitekturerna olika bra och i olika utsträckning, vilket är fullt normalt. För att veta om prestandan kunde varit bättre för AMD, måste man veta om de är kompilerade med Intels kompilator eller ej. Att ett test, som man råkar veta inte är kompilerat med Intels kompilator, fungerar bra på AMD's processorer är inte något bevis för att alla andra tester skulle vara vinklade. Det kan ju vara så att just det testet råkar passa AMD's arkitekturer ovanligt bra. Så det är lite långsökt att peka på detta enda test och säga att alla andra tester använder Intels kompilator.

Visa signatur

~Pelle~

Permalänk
Hjälpsam
Skrivet av Elgot:

Det må vara en rolig observation, men det säger väl inte så mycket om så mycket och har väl fortfarande inte så mycket med ämnet att göra? Speciellt kan man väl inte dra slutsatsen "så här bra skulle världen vara om intels kompilator optimerade lika bra för alla" eller liknande?

Nej den slutsatsen kan man givetvis inte dra, det här är ju bara ett test av många.
Intressant vore att se fler tester liknande detta.

http://arstechnica.com/hardware/reviews/2008/07/atom-nano-rev...

Det visar inte vad som kan hända om man optimerar för Via och AMD, vilket man givetvis inte kan begära av Intel, utan vad som händer om man slutar desoptimera.
Men jag skulle vilja se fler tester, bara PCMark05 är i tunnaste laget.

Visa signatur

AMD Ryzen 7 1700 | Saphire RX 5700 Pulse XT (Silent Mode) | 64 GB Kingston ECC | https://valid.x86.fr/z2ljhr | Stockkylaren | Bitfenix Whisper M 750W.
AMD Ryzen 9 5900X | AMD RX 5700 | 64 GB Micron ECC | https://valid.x86.fr/5krwxf
HTPC | https://valid.x86.fr/uuzli0 |

Permalänk
Medlem

Du kunde nog behållt den på engelska, då det verkar vara orginal-språket, blir väldigt mycket mera lättläst då.

Intressant dock.

Visa signatur

Nybörjare på Linux? Se hit! #15665841

Permalänk
Medlem

Haha, ja, jag läste igenom hela skiten på "svenska" då jag antog att det var översatt från kinesiska eller liknande.

Visa signatur

Speldator :[I] AMD 5600X - 16GB fläskigt ram - AMD 580RX - AOC 32" Wide
HTPC : i5 3450S - 8GB G.Skill - Streacom F8