むンテルは、AMDプロセッサヌ向けに意図的に䞍良コヌドを生成する関数をコンパむラヌから削陀する必芁がありたすか

倚くのプログラマヌは、Intelコンパむラヌが垂堎で入手可胜な最適な最適化コンパむラヌであり、最も芁求の厳しいパフォヌマンスプログラムに䜿甚するこずを奜みたす。 さらに、むンテルはさたざたな技術的および科孊的目的のために、高床に最適化された倚くのラむブラリを提䟛しおいたす。 倚くの堎合、Intelラむブラリの適切な代替手段はありたせん。



残念ながら、Intelコンパむラヌたたはラむブラリヌを䜿甚しおコンパむルされたプログラムは、AMDおよびVIAプロセッサヌ䞊で著しく動䜜が悪くなりたす。 その理由は、プログラムコヌドの堎合、コンパむラたたはラむブラリは耇数のバヌゞョンのマシンコヌドを生成でき、それぞれが特定のプロセッサず呜什セットSSE2、SSE3などに察しお最適化されるためです。 システムには、実行しおいるプロセッサヌのタむプを刀別し、最適なバヌゞョンを遞択する機胜が含たれおいたす。 この機胜は、プロセッサマネヌゞャず呌ばれたす。 Intelプロセッサマネヌゞャは、プロセッサでサポヌトされおいる呜什セットだけでなく、 プロセッサメヌカヌの識別子もチェックしたす 。 識別子が文字列「GenuineIntel」の堎合、コヌドの最適なバヌゞョンが遞択されたす。 ただし、プロセッサがIntel補でない堎合、プロセッサが最適なバヌゞョンず完党に互換性がある堎合でも、ほずんどの堎合、可胜な限り䜎速のオプションが遞択されたす。



私は、他の倚くの人々ず同じように、長幎この行動に぀いお䞍満を述べおいたしたが、Intelはディスパッチャの倉曎を拒吊したした。 IntelがコンパむラをIntelプロセッサずのみ互換性があるず宣蚀した堎合、ほずんどの堎合、苊情はありたせん。 問題は、圌らがしおいるこずを隠そうずしおいるこずです。 倚くのプログラマヌは、IntelコンパむラヌがAMDプロセッサヌず互換性があるず考えおいたす。 これはそうですが、プログラマヌからの秘密により、圌はプログラムに偏ったプロセッサヌマネヌゞャヌを含めおおり、Intelを陀くすべおの䌁業のプロセッサヌで䜜業するずきに最悪のバヌゞョンのコヌドを遞択したす。 プログラマがこの事実を知っおいれば、おそらく別のコンパむラを䜿甚するでしょう。 AMDプロセッサで動䜜が䞍十分なプログラムを販売したいのは誰ですか



Intelは、そのサむズにより、他のプロセッサメヌカヌよりも倚くのコンパむラを投資する䜙裕がありたす。 Intelコンパむラは比范的安䟡に販売され、優れたパフォヌマンスを提䟛し、優れたサポヌトを提䟛しおいたす。 そのようなコンパむラを販売するこずは、確かにそれ自䜓が有益なビゞネスではありたせん。 それどころか、明らかにIntelプロセッサの販売をサポヌトする方法です。 マむクロプロセッサに䜿甚するツヌルがなければ、マむクロプロセッサに新しい呜什セットを远加しおも意味がありたせん。 AMDもコンパむラを補造しおいたすが、珟圚のバヌゞョンはLinuxでのみ動䜜し、Windows甚のバヌゞョンはただありたせん。



倚くの人々は、この偏ったマネヌゞャヌがパフォヌマンスを評䟡するための䞀般的なプログラムで䜿甚されおいるずいう疑念を衚明しおいたす link link 。 これは非垞に深刻な質問です。 倚くのお客様が公開されおいるテスト結果に基づいお賌入を決定し、偏ったテストが数十億ドルずいう䞍公平な垂堎優䜍性をもたらすこずを知っおいたす。



法的戊い



AMDは、少なくずも2005幎から䞍圓な競争でむンテルを繰り返し蚎え、2009幎11月に和解に達したした 。 Intelコンパむラを含む、明らかに䞍公平な競争の倚くの問題に関係しおいたす。 ここから匕甚です

2.3技術的慣行


むンテルは、むンテル補品に人工性胜障害を含めたり、このサヌドパヌティ補品に人工性胜障害を含めるこずを第䞉者に芁求したりするこずはできたせん。 このセクション2.3で、「人工的なパフォヌマンスの䜎䞋」ずは、i特定のAMD補品のパフォヌマンスたたはパフォヌマンスを䜎䞋させる、iiむンテル補品の改善の結果ではない、Intelの積極的な゚ンゞニアリングアクションたたはIntelの蚭蚈ただし、非行動ではないアクションを指し、iii AMD補品のパフォヌマンスたたはパフォヌマンスを䜎䞋させるように意図的に蚭蚈されおいたす。 このセクション2.3の目的においお、「補品の改善」ずは、生産性、運甚、䟡栌、コスト、補造可胜性、信頌性、盞互運甚性、たたは他の補品の動䜜たたはパフォヌマンスを改善する胜力の点での利益、利点、たたは改善を意味したす。



いかなる状況においおも、このセクション2.3は、IntelがiAMD補品たたはサヌドパヌティの補品改善を目的ずする行為を行う矩務を課すものではなく、課すものず解釈するこずはできたせん。このAMD補品たたはサヌドパヌティ補品を個別に、たたは他の補品ず組み合わせお、ii特定のAMD補品甚に補品を最適化するか、iiiAMDに技術情報、文曞、たたはノりハりを提䟛したす。



これはAMDの勝利に䌌おいたす。 「すべおのむンテル補品」がむンテルのコンパむラヌおよびラむブラリヌであり、「サヌドパヌティ」がこれらのコンパむラヌおよびラむブラリヌを䜿甚するプログラマヌであり、「人工的なパフォヌマンス障害」がメヌカヌの識別子のプロセッサヌ識別子チェックであるず考える堎合、この契玄はむンテルに矩務付けられたすディスパッチャを倉曎したす。 Intelコンパむラずラむブラリの次のバヌゞョンを確実にチェックしお、これを行うか、この契玄に抜け穎があるかどうかを確認したす。



興味深いこずに、物語はそこで終わりたせんでした。 AMDずIntelの合意からわずか1か月埌、米囜連邊取匕委員䌚FTCはIntelに察しお独占犁止法違反の申し立おを行いたした。 FTCの苊情申し立おは異垞に匷い

むンテルは、コンパむラヌやラむブラリヌなどの゜フトりェア補品を再蚭蚈および配垃する際に、むンテルx86プロセッサヌに察する他瀟のx86プロセッサヌのパフォヌマンス䞊の利点を損なうこずを詊みたした。

[...] [...]

パブリック、OEM、独立系゜フトりェアベンダヌ、およびテスト組織は、Intel補品を䜿甚しおコンパむルされたアプリケヌションで他瀟のプロセッサのパフォヌマンスが䜎䞋したのは、Intel゜フトりェアではなくプロセッサが原因であるずいう印象を受けたした。 むンテルは、2003幎以降たたはその前埌に゜フトりェアに加えた倉曎の圱響を顧客や䞀般に公開したせんでした。 むンテルは、コンパむラヌおよびラむブラリヌに関する誀ったドキュメントたたは誀解を招くドキュメントも配垃したした。 むンテルは、独立した゜フトりェアベンダヌ、OEM、テスト組織、および䞀般の人々に、プログラムが最初に競合他瀟よりも高速にむンテルプロセッサで実行されるこずを保蚌したした。 実際、倚くの違いは䞻にたたは完党にIntel゜フトりェアによるものです。 むンテルの゜フトりェアに関する誀解を招くたたは虚停の䞻匵ず䞍䜜為は、プロセッサを賌入しお䜿甚する際に、独立系゜フトりェアベンダヌ、OEM、テスト組織、および䞀般倧衆によっお考慮されたした。 したがっお、Intelのプログラムは、競合他瀟のプロセッサよりもむンテルのプロセッサで最初に優れた結果を最初に衚瀺するずいう保蚌は、虚停たたは誀解を招くものです。 むンテルは、これらの違いは䞻にむンテルの゜フトりェアによるものであるずいうこずを開瀺するこずを拒吊したした。 さらに、これらのゆがみや欠萜は、x86プロセッサの他のメヌカヌの評刀を傷぀け、競争を傷぀ける可胜性がありたす。

[...] [...]

䞀郚のサヌドパヌティ゜フトりェアベンダヌは、Intelおよび他のプロセッサで起動したずきの同様のプログラムの速床の明らかな違いに関する情報をIntelに芁求しおいたす。 このような芁求に応えお、むンテルはこの問題の原因ず解決の可胜性を盎接的たたは間接的に繰り返し䞍圓に䌝えたした。

[...] [...]

Intel゜フトりェアの倉曎により、正圓な技術的利益なしに、他のメヌカヌのx86プロセッサのパフォヌマンスが䜎䞋したした。 むンテルの欺de的な行動により、消費者はむンテルチップず競合他瀟の間、およびむンテル゜フトりェアず競合他瀟の間の意識的な遞択を奪われ、それぞれのプロセッサ垂堎での競争コストが増加したした。 Intelコンパむラずラむブラリによるパフォヌマンスの䜎䞋は、Intel以倖の䌁業のx86プロセッサを䜿甚しおいる消費者にも盎接的な被害をもたらしたした。



FTCが芁求する制裁も非垞に行き過ぎおいたす。

苊情に蚘茉されおいるように、Intel以倖のマむクロプロセッサヌの実際の性胜たたは芋かけの性胜を匕き起こすたたは有害なコンパむラ「損傷したコンパむラ」をIntelから賌入したIntelのお客様の堎合、以䞋が必芁です。

  1. Intelは、ダメヌゞコンパむラではない代替コンパむラを远加料金なしで提䟛したした。
  2. Intelは、Damage Compilerを䜿甚しおコンパむルした゜フトりェアを再コンパむルしお亀換する費甚、および再コンパむルした゜フトりェアを顧客に配垃する費甚を払い戻したした。 そしお
  3. Intelは、Intel Damaged Compilersでコンパむルされた゜フトりェアを賌入した個人が、亀換が必芁な可胜性があるこずを通知できるように、公瀺ず譊告を行っおいたす。


おそらくFTCは、AMDずIntelの間の合意は、Intelの排他的行為に察する公正か぀十分な防埡ではないず刀断したした。 AMDの損害を補償したすが、VIA、他のマむクロプロセッサヌメヌカヌ、および䞍十分な競争ずIntelコンパむラヌを䜿甚しお䜜成された「欠陥」゜フトりェアに苊しんでいる顧客には䜕もしたせん。



私自身の発芋



数幎前にむンテル®コンパむラヌのテストを開始したずき、すぐにそのプロセッサヌ・マネヌゞャヌに偏りがあるこずがわかりたした。 2007幎1月、Intelに䞍公平なプロセッサマネヌゞャヌに぀いお䞍満を蚀いたした。 私はこの問題に぀いおむンテルの゚ンゞニアず長い間連絡を取りたした。 圌らは絶えず問題を吊定し、私はたすたす倚くの蚌拠をもたらしたした。 圌らは次のように䞻匵した

最適化ず組み合わされたプロセッサマネヌゞャは、すべおのIntelおよびAMDプロセッサのパフォヌマンスを最適化しお、可胜な限り最高の結果をもたらすように蚭蚈されおいたす。 これが私たちの目暙であり、1぀の䟋倖を陀き、私たちはそれを達成したず信じおいたす。 この䟋倖は、リリヌス日のために、コンパむラヌのバヌゞョン9.xのAMDプロセッサヌでSSE3がサポヌトされおいないこずですAMDがSSE3をサポヌトする前にコンパむラヌが開発されたした。 ベヌタテストが今四半期に開始され、最終バヌゞョンが今幎の半ば頃にリリヌスされる10.xコンパむラの次のバヌゞョンは、新しいAMDプロセッサに適応する十分な時間があったため、この問題を解決したす。



良さそうに聞こえたすが、実際には、プロセッサマネヌゞャは、AMDプロセッサのSSEずSSE2さえもサポヌトしおいたせんでした。新しいバヌゞョンは蚀うたでもなく、ただサポヌトしおいたせんIntelコンパむラバヌゞョン11.1.054。 埌に、他の人も同様の苊情でむンテルに連絡し、同じ圹に立たない蚀い蚳を受け取ったこずがわかりたした リンク リンク 。



Intel Processor Managerは、プロセッサの補造元IDずサポヌトされおいる呜什セットを確認するだけではありたせん。 たた、特定のプロセッサモデルをチェックしたす。 圌は、ファミリヌ番号が6ずは異なる将来のIntelプロセッサヌを認識できなくなりたす。これに぀いおむンテルの゚ンゞニアに尋ねるず、圌らは答えたした。

あなたは、コンパむラを曎新しないず、「6」以倖のファミリ指定を持぀将来のIntelプロセッサをサポヌトできないず述べたした。 はい、それは真実で意図的です。 コンパむラヌによっお発行されたプログラムが将来動䜜を停止しないずいう高い信頌性が必芁です。 したがっお、むンテル、AMD、たたはその他のメヌカヌの将来のプロセッサに぀いおは䜕も想定できたせん。 あなたは私たちがもっず積極的に行動できるこずに気づきたした。 これは、コンパむラでコンパむルされたコヌドが遠い将来も機胜し続けるこずを確認したいお客様にずっおは䞍合理だず考えおいたす。 あなたが提案した方法は合理的ず思われたすが、私たちの非垞に最適化されたコンパむラにずっおは保守的ではありたせん。 私たちの経隓は、控えめなコヌド出力に぀ながりたす。 新しいIntelおよびAMDプロセッサで機胜をテストした埌、コンパむラを曎新したす。 これは、コンパむラの公匏バヌゞョンでの新しいプロセッサのサポヌトに遅れがあるこずを意味したす。



぀たり、特定の呜什セットではなく、特定のプロセッサモデル甚に最適化するず䞻匵しおいたす。 trueの堎合、これはIntelに欠陥のあるAMDプロセッササポヌトを支持する議論を提䟛したす。 ただし、Intelコンパむラを䜿甚するすべおの゜フトりェア開発者は、新しいIntelプロセッサが垂堎に登堎するたびにコヌドを再コンパむルし、新しいバヌゞョンを顧客に配垃する必芁がありたす。 それは3幎前です。 叀いバヌゞョンのむンテル®コンパむラヌでコンパむルされたプログラムを最新のむンテル®プロセッサヌで実行しようずするずどうなりたすか 掚枬圌女はただ最高のコヌドブランチを遞択したす。 理由を掚枬するのはさらに困難です。むンテルは、新しいプロセッサヌのCPUIDファミリヌ番号を操䜜しお、叀いむンテルコンパむラヌがそれらを既知のモデルず芋なすようにしたす。 別の蚘事で技術的な詳现を説明したした。



最初は、将来のモデルを考慮せずに、有名なプロセッサモデルのみを最適化するために、Intelプロセッサマネヌゞャが実際に呌び出された可胜性がありたす。 私の生埒の䞀人がそのような決定に合栌した堎合、私はそれを重倧な欠陥ずみなしたでしょう。 おそらくむンテルの゚ンゞニアは、将来のプロセッサのサポヌトが䞍足しおいるために修正するには遅すぎるこずに気付き、既存のむンテル゜フトりェアが有名なモデルに察応するように次䞖代のプロセッサを蚭蚈するこずを䜙儀なくされたした。



Intelがディスパッチャを倉曎するこずをきっぱりず拒吊した埌、私は圌らに圌らの心を倉える最も効果的な方法はこの問題に関する情報を広めるこずだず決めたした。 私はいく぀かの雑誌に連絡したしたが、誰も圌女に぀いお曞きたくありたせんでした。 申し蚳ありたせんが、これらはすべおIntelの広告配眮に䟝存しおいるため、驚くこずではありたせん。 これをカバヌするこずができた唯䞀の堎所は、プログラムを最適化するための私自身のガむドでした。そこでは、状況を詳现に説明し、䞍公平なディスパッチャを眮き換える方法を瀺したした。 AMDがこの情報を広めなかった理由はわかりたせん。 おそらく、圌らは裁刀の進行に぀いお沈黙を保぀必芁があったのでしょうか VIAずケンタりロスはどうですか



䞀時的な解決策



珟時点では、むンテルが補造元の識別子を怜蚌しない新しいコンパむラヌず新しいラむブラリをリリヌスするかどうか、およびリリヌスする堎合はその時期はわかりたせん。 しかし、この前にできるこずは次のずおりです。

  1. 別のコンパむラを䜿甚しおください。 私のテストによるず、 Linux甚のGnuコンパむラヌはIntelコンパむラヌず同様のレベルでパフォヌマンスを最適化したすが、Gnu関数ラむブラリヌGlibcはIntelよりも劣っおいたす。 他のすべおのコンパむラは、パフォヌマンスが䜎䞋したす。 Windowsでは、Intelコンパむラに近いパフォヌマンスのコンパむラは存圚したせん。
  2. Intelコンパむラヌを䜿甚しお、ディスパッチャヌを眮き換えたす。 私のC ++マニュアルでは、Intelコンパむラヌの代替プロセッサヌディスパッチャヌのコヌドず、関数のラむブラリヌ、およびそれらを埋め蟌む方法の説明を公開したした。 もちろん、圌らはIntel゜フトりェアデバむスに関する文曞化されおいない詳现を䜿甚したす。 この倉曎により、倚くの堎合、Intel以倖のプロセッサヌのパフォヌマンスが倧幅に向䞊したす。
  3. ゜ヌスコヌドが閉じおいるか、GnuやMicrosoftなどの䞭立なコンパむラヌを䜿甚しおいない堎合、単䞀のパフォヌマンステストを信頌しないでください。
  4. AMD仮想化の指瀺により、AMDプロセッサヌのCPUIDを倉曎できたす。 誰かがこのためのプログラムを䜜成するこずを願っおいたす。 これにより、特定のテストが公正であるかどうかを簡単に確認でき、AMDプロセッサヌ䞊のIntelコンパむラヌでコンパむルされた゜フトりェアのパフォヌマンスが向䞊したす。




参照資料



2007幎のAceshardwareフォヌラムでの私の議論 。



開発者フォヌラムでの議論

AMD、2008幎 。



AMDzone 2009での私の議論 。



グルヌプディスカッション

comp.arch、2004幎 。



Intelの苊情、slashdot.orgでの議論、2004幎 。



2005幎のIntelにおけるMackeyの苊情 。



PCMark 2005テスト、Arstechnicaの䞍正が蚌明されおいたす。



蚌蚀

テスト組織BAPCoに関するJohn Oram 。



2005幎AMD Developer Centralにコメントしおください 。



AMDは2005幎に蚎蚟を起こしたした 。



独占犁止法に関する苊情AMD、2005幎 。



AMDずIntelの間の友奜的な合意、2009幎 。



FTC苊情、2009幎 。



C ++最適化ガむドの技術的な詳现 。



XtremeSystemsフォヌラムでのディスカッション 。



All Articles