nVidiaはCUDAのx86アーキテクチャへの最適化にほとんど興味がない – アナリスト談

xbitlabs.com Nvidia Hardly Interested in Optimal Performance of CUDA on x86 Processors – Analyst. Despite CUDA x86 Cross-Compiler, Life of Programmers Will Not Get Easier [09/28/2010 07:49 PM] by Anton Shilov より。

nVidiaはCUDAのx86アーキテクチャへの最適化にほとんど興味がない – アナリスト談

CUDAのx86向けクロスコンパイラに反して、プログラマの生活はより良くはならないだろう。
Anton Shilov
2010年9月28日

nVidiaとPortland Groupは先週nVidia CUDAアーキテクチャからx86へ、又は逆にx86からCUDAへソフトウエアを開発することができる特別なコンパイラを登場させた。これはソフトウエア開発者が彼らのプログラムに広く互換性を保証し、高並列GPUアーキテクチャを活用できることを提案している。だけれども、ソフトウエアメーカの生活はより良くなることはないだろうと、Jon Peddie ResearchのAlex Herreraは語った。

異なるアプリケーションのため、これらにはスーパーコンピュータ分野も含まれるが、より高い性能を照らす光明があるにもかかわらずATI RadeonやnVidia Geforceのようなグラフィクスプロセッサのために作り直されることはない多くの理由がある。主な理由の一つは、これまでも使われているレガシーなコードがあり、既に業務で使用されているためほとんどど捨てることができない。コンパイラはPGIとnVidiaが共同でソフトウエア開発者にCUDAベースのソフトウエアをx86プラットフォームにアプローチすることでテストしてもらいたがっており、信頼度を測ってもらいたがっている。それにもかかわらず、十分に安定して動作しているが、CUDAベースのソフトウエアのx86アーキテクチャでの性能はほとんど最適化されていない、とHerrera氏は主張している。

GPUベースのnVidia PhysXがそうであるようにCUDAもまたSSE2等のSIMDインストラクションをサポートしていない。新しいコンパイラはAMD BulldozerやIntel Sandy Bridgeマイクロプロセッサで使われる予定のAVXのようなものもサポートしないだろう。その結果、アプリケーションソフトウエアはx86プラットフォームでは最高性能を発揮できないだろ。

「x86で動作するCUDAはCUDAを使用しないでx86アーキテクチャに最適化されたアプリケーションソフトより遅くなるだろう。そしてx86で動作するCUDAアプリケーションやFermiで動作するアプリケーションを動作させる開発者は、最初に簡便に最適化できるCUDA無しのx86プラットフォームのほうが他のCUDAベースのアプリケーションよりも速く動作するのを目撃するだろう。より大きな性能向上によるベンチマーク数値はnVidiaが多くの浮動小数点演算を多用するアプリケーションソフトウエアでCPUよりもGPUのほうがより速いと宣伝する目的で使用されるだろう。」とアナリストは語った。

最後に、特定の目的および一般向け商用ソフトウエアの設計者は異なるハードウエアのために異なるコードを実装する必要が出てくるだろうし、いくつかは既に行われている。


開発側の負担が大きくなるだけで誰も得をしないということだな、nVidiaのCUDAは。あくまでも宣伝用でしか無いと。

AMDの公式ブログで「Bulldozer」の20の質問パート3 懲りずにバカ訳

All of AMD Bulldozer 20 Questions, Part 3 September 13, 2010 by John Frueheより。

パート2はこちらから読めます。

AMDの公式ブログで「Bulldozer」の20の質問パート3

  • デュアルソケットでPCI Express x16 2スロット、x8 スロット、固体コンデンサもろもろついてパーツの頂点に立てるオーバークロック可能なマザーボードは出さないの?
    – David Hunt

    • 一般のシステムでは1ソケットバージョンなら可能だよ。
      2ソケットの一般向け市場は四半期毎に縮小しているんだ。デュアルコア(全部で4コア)が数年前にピークを迎えたけど、クアッドコア(4コア)CPUが根本から市場を乗っ取ってしまった。いま市場の残り少ない8コアで1ソケット市場が消えていくのが見えるだろう。去年の第4四半期には0.4%、全体の0.8%の市場にリソースを割くことは本当に難しいんだよ。
    • AMD Opteronはデュアルソケットシステムが可能だけど、君がさがしているオーバークロック可能な製品はないね。サーバ向けの顧客たちは手動でオーバークロックはしないから。彼らは確実な信頼性を求めているから。君が動作可能範囲を超えてCPUを動作させる(オーバークロッキングとはより高い周波数で動作させること)ことは可能だが、いくつかのリスクも背負わないと。
    • まず1番目に、CPUの使用可能寿命を減少させるよ。どのくらい減るかは全てのCPUで異なるから正確に言うのは難しい。だけどオーバークロックは潜在的な問題を増加させ、サーバーでは君が望まない動作をしてしまう。
      2番目に、君がオーバークロックして、君が予測しなかった2+2=5の結果が出る時もある。もしゲームをプレイしているのなら何の問題もないが、もし君がサーバーで自動システムを動作させて使うのなら現実の問題となり、ビジネス上の判断や金融情報に直接響くだろう。
    • AMD Opteronに「オーバークロック」のマーケティングは企業向けサーバ市場シェアには何の助けにもならない(やってしまうと確実に自殺行為だ)し、追求することもないだろう。
  • もし私が4ソケットBulldozerを使ってメモリにアクセスした場合、ローカルメモリへのアクセスとその他のCPUのローカルメモリアクセスとの間でNUMA(不均等メモリアクセス)アーキテクチャを採用したBulldozerでどのように、どのくらいの違いが出るのか?
    – Mikael Ronström

    • Non-Uniform Memory Access(NUMA)は各々のCPUが持っているメモリコントローラーとメモリバンク(ローカルアクセス)と共に利用可能だよ。CPUは同じシステムの他のCPUに接続しているメモリにアクセス可能(リモートアクセス)で、NUMAはそのようなアクセスを可能にするんだ。
    • かつて、4CPUシステムでは、いくつかのメモリは2ホップ離れていて、非常に大きなレイテンシを抱えていた。今日のAMD Opteron 4000と6000シリーズプラットフォームでは、HyperTransport技術により全てのリモートメモリを1ホップで充分呼び出せるよ。
    • それは私たちのメモリコントローラ強化で、まだ詳しくは話せないんだけど、私たちはローカルメモリとリモートメモリの両方でアクセス時間を減らすことができると予測しているよ。
    • HyperTransportによるアシスト機能は、6コアAMD Opteronから導入が始まり、既にメモリトラフィックの減少とリモートメモリアクセスのスピードアップを手助けしているよ。
    • 実際のメモリアクセス速度については、ローンチしたあとにね。
  • IntelのMulti-Threadingテクノロジとどのように、どれくらいのアドバンテージがあるか説明してもらえるかな?
    – Vygantas

    • 私たちは実際に、マルチスレッドを実コアに割り当てて使っているよ。Intelもまた同じだけど、彼らはHyperThreading技術をシングルコアで二つのスレッドを実行させているが、私たちはボトルネックが生じていると見ているよ。
    • HyperTthreadingの挑戦は実行パイプラインに2番目のスレッドに命令を実行させたときに性能ギャップが起きるんだよ。世界中で君が非効率的なアプリケーションを持っており、パイプラインにギャップを確認し、2番目のスレッドに実行させることができる。しかし、効率的なソフトウエアでは性能向上はほんの少しのみで、潜在的には結局本の少しか全く向上せずに終わってしまう。いくつかのアプリケーションでは実際にHyperThreadingを無効にする方がより性能が向上するため切ることを推奨しているんだよ。
    • 私たちは複数のコア、実際の物理的なコアでより大きなスケーラビリティにつなげているよ。非常に最適化されたシステムでは、各々のスレッドをそれぞれの整数演算コアに割り当てるために実行パイプラインと争わない。全てのコア群は等しく同じだからスレッドに優劣をつけることはシステムにオーバーヘッドを引き起こしてしまう。
    • 以下のようなシナリオを想定しよう。HyperThreadin機能を持つ4コアが4つ全ての物理コアでスレッドをハンドリングしたとしよう。いまあなたは5番目のスレッドを実行したい。既に動作中のコアにスレッドを割り当てると、2つのスレッドが同じ実行パイプラインを同時にシェアする必要があるためそのコアの処理スレッドは減少してしまうんだよ。または1サイクル待って、その他のコアが自由に使えるのを希望する? あなたが「ビッグコアとHyperThreadingコア」を持っている時たくさんの様々な判断をする必要があるが、AMDの世界では8コアか16コアが存在し、5番目のスレッドは単純に次の利用可能な物理コアに割り当てるだけだよ。これはより簡単でより拡張性の高いことだよね。
  • 御社のパートナーでBulldozerクラスのコアをサポートするコンパイラは何があるのか、またIntelのIntel ICCコンパイラはBulldozerのAVX命令群をサポートしているのか(あるいは以前のOpteronのようにCPUID経由で判別されないのか)?
    – Ivan

    • 私たちはBulldozerサポートを保証する全てのキーとなるコンパイラベンダーと作業しているよ。私たちはOpen64コンパイラをサポートするのにより多くの時間を割いているし、同じくらいPGI GroupGCC、そしてMicrosoftのコンパイラもサポートしているよ。
    • AVXは256bit浮動小数点演算を活用するためにはアプリケーションの再コンパイルが必要だね(それは競合相手も同じ)。
    • 私はICCコンパイラにはコメントできないけど、そのような質問について尋ねることは歓迎するよ。
  • どうか、何故二つの分割された整数演算コアがより巨大な一つの整数演算コアより良いのか説明してくれませんか? 例えば、もしそれぞれの整数演算コアに二つの論理演算ユニット(APU)と二つのアドレス生成ユニット(AGU)、16KBのL1キャッシュが存在し、もう一方には4つのAPUと4つのAGU、そして32KBのL1キャッシュが一つの整数演算コアに存在している場合はどうなるのででしょうか?理論的には、あなたはマルチスレッドプログラムでは同じ性能で、シングルスレッド性能では優れているになるようだけど。
    – Ryan

    • 私たちはそれについてたくさん尋ねられたよ。キーは、二つのより小さなコアの処理性能と競合する単一のコアはダイサイズと消費電力量が性能に比べて不釣合に大きくなってしまうことだ。Bulldozerにそれぞれのモジュールにいくつかのリソースを共有した二つのコアに対して一つの「ビッグコア」にすると酷い高値と大消費電力になってしまうだろう。
    • それは現実的に効果的に動作をさせるために私たちがしたことだ。シングルスレッドの性能については心配いらないよ。私たちは既にBulldozerのシングルスレッド性能は私たちの現在のコアアーキテクチャに比べて高いことを説明しているから。
    • 気に留めてほしいことは、私たちはイノベーションを提供し、未来に向けて進んでいるということだよ。2005年に私たちが最初のx86デュアルコアCPUを提供したとき、シングルコアのプロセッサの方が性能が高いという議論があったんだよ。
      a.) 彼らはより高いクロックを実現し、
      b.)アプリケーションソフトはマルチコアを実際には活用できないからとね。
      今その人達は何処に行ったんだい?
    • 私たちが最初の64bitのx86アーキテクチャを市場に提供しイノベーションをもたらしたとき、32bitアプリケーションがより良い性能だと言われたよ。
      彼らはその方がより速く、誰も2GB以上のメモリアクセスなんか必要無いとね。
      今その人達は何処に行ったんだい?
    • 今日のビジネスではあなたは風防から先を見通すことが可能で、そして将来やってくる技術の先に焦点を見定めるか、リアミラーから見える過去についてずっととらわれてしまうかどちらかだね。
    • ルールは今や変わっている。ちょうど彼らが過去に行なったように。AMDはイノベーションを続けていくだろう

—-

なんかカッコイーぞFrueheサン! いくつもある間違いを気がついたところだけ修正した。

Intelのより汚いうわさ話はFTCによって綺麗にされた。SemiAccurateのCharlie Demerjian氏記事パート3翻訳

semiaccurate.com More Intel dirt cleaned by the FTC Part 3: Disclosures, burdens of proof, and compilers by Charlie Demerjian August 6, 2010 より。

パート1パート2はこちらから。

Intelのより汚いうわさ話はFTCによって綺麗にされた

パート3 情報公開、証拠の数々、そしてコンパイラ

by Charlie Demerjian

2010年8月6日

SemiAccurateの最後のパートはIntelとFTCの和解文で、Intelに対する最も悪い告発の数々の分析について見ていく。コンパイラでの偽装、技術的な開放性、そして監視について。Intelはこれらのいくつかの改善措置を深刻なまでに骨抜きにさせることが出来た。またそれにもかかわらず更に悪いことに、Intel自身が骨抜きにされてしまった。

■数々の変化、手錠そして証拠の数々

セクションVでは最も興味深いもののの一つに、Intelに対しいくつかの重大な手錠をはめている。底に光が届くことがないくらい充分な深さの穴を掘ることをIntelに強要させられている事すべてである。そしてIntelはそこに座って笑っている。セクションVは、Intelはいつでも、つまり他の競合相手の製品性能を低下させる事がIntelが技術的に有益な目的であるとされているという証明をする必要があり、いかなる場合も変革させると述べている。

nVidiaのGPU製品を骨抜きにしたPCI Expressバスの変更について覚えているだろうか。よろしい、もし再び発生した場合、Intelによって証拠の隠蔽が現在も行われている。母めんどりが神経質にすべてのRed Bull(※清涼飲料水)から動き回って、そして誰かにぶつかるようさがしている最中である。それも強烈に。Intelはその穴から抜け出す必要があり、精神安定剤をめんどりに与え、そして結果踊り出す。それも素早く。そしてそれをしている間かっこよく見せて、そして強くぶち当たる。

このパートは大変不運にも結構な何かをすることができ、Intelを弱気にさせている。もしあなたがIBMで起こったことを思い起こせるのなら、幾人かは罰を与えるのは正当であるといい、IBMがそれらの有名な同意判決を受けた時、同じ事がIntelにも起こっているだけである。もしIntelがそれの2番目を推測し始めるとき、素早くイノベーションを止め、製品群は劣化していく。Intelは競合相手の喉元を素早く欠き切ることができ、そしてそれは非常に恥ずべきことであろう。

だけどもあなたはそれについて嘆いている人々についてAMDやVIA、nVidiaから見つけられないだろう。ほとんどのIntelの競合会社や多くの味方がこれは半導体業界の怪獣の運命からはあまりにも甘すぎるとあなたに語るだろう。Intelは高い確率で同意しないが、これは信じるか信じないかにかかわらず彼らの同意文章であり、同じ場所で終わろうとするダラダラと長期化した法的な戦いに比べればより良いかまたは悪くなる。実際のところ非常に悪くなるように見える。もし何かがIntelの息の根を止め、それがそうなるだろう時、ほかにはただ彼らは文章をチェックし記載するだけである。数十億ドルがここにあり、実際の痛みはなく、ただ野球バットと一緒の母めんどりがいるだけである。

■情報公開と開放性

パートVIに移動して、私たちは情報公開同意について集中するが、同意文章の重要点は他にある。それは原則としてIntelが競合会社にロードマップ(製品計画)やその製品のインターフェースの技術的な詳細を与えるよう命ずる。いくつかの事柄が語られていないが、いくつかのことがより正確で桁外れなことが指示された。

パートVIのA項目中で、Intelは不確かで惑わすようなロードマップを提供してはいけないと言っている。これは重要な要点の中心で、Intelはこれらのことを誠実に実行すべきであると長大な文章量で述べている。これは言わば「目に刺してはいけない」とフォークの警告ラベルのようなもので、あなたはこのような冗長な情報開示が促されていることに疑問を持つ必要がある。けれどもこれらの事柄についてIntelは昔からそのようなプレイをしており、それらはこれからも行われ、間違いを犯すだろう。現代ビジネスとはそのようなものだ。

さらに付け加えて、IntelはNDA(機密保持契約)に従った競合相手に4年以上に渡ってインターフェースの詳細すべてのロードマップを発表する必要がある。それに加え、Intelはそのロードマップとインターフェースについていかなる質問にも誠実に答える必要があり、時間的なマナーを守りながら。Intelは競合相手にサンプルや更新情報、何であれ彼らが合法的なビジネスを目的にしたくない事を提供する必要はない。

パートVIのB項目3には一つのことが突出しているが、その文章はこうだ…「接続が必要な関連するGPUチップを競合会社が開発し、そしてそれが接続する能力があるなら要求されたインターフェースで接続されたメインストリームマイクロプロセッサであると記載する」だれがこの同意文章のセクションについて提案したのかに関して推測できるだろうか?

■コンパイラと汚い仕掛け

パートVIIではすべてコンパイラについて記載されており、それはIntelが否定しているが、すべての人が彼らが行なっていることを知っているすべての事柄についてIntelを非難している。それは要するにいくつかのIntel製品群によく管理されたヨーロッパのタバコのパッケージのようにみえる注意書きが搭載されている。さらにIntelの出資によってIntelのコンパイラで再コンパイルされたソフトウエアの数値に騙された人々の山を築き上げている。

これについてはAMDとの和解文のなかで触れられいているが、解決策はシンプルで、Intelは彼らが自分たちのコンパイラでできることをすることが可能だが、彼らはそのコンパイラが如何なる他の製造会社のCPUのために最適化しないだろうと強調して述べなければならない。Intelはそのコンパイラを利用するすべての顧客に尋ねる必要があり、彼らのコンパイラが金津氏も公平である必要はないと指摘できないか暗に伝えることはできない。あなたは何故具体的に声をあげて伝えないのだろうかと不思議に思う必要がある。

いや、実際のところあなたは不思議に思う必要はないかもしれない。Intelが平たく否定する背景として、IntelのコンパイラはIntel製ではないCPUでは彼らの流儀で最適化されなくなる。Intelはそれをすべての競合他社性の製品と自分たちのコンパイラのテストをすることができないとしているが、どういう訳かあらゆる他の様々なコンパイラ会社は、そのようなテストを実行しているように見える。

その流儀は過去にIntelがCPUの機能を決めるために自身のやり口で明確に妨害している。十分不思議なことに、これは他社製造のCPU上でコードを実行することは単に不利益なだけであった。私たちが言ったように、Intelはこれを拒否しているが、2〜3分間程度バイナリエディタで「もしIntelCPUならXを実行せよ」というような実行文を「もしIntelのCPUでは無いなら、Xを実行せよ」と書き換えると性能が変化することを見てとれるが、なんのクラッシュも起きない。それは衝撃的なことだ。

これがIntelは自身のコンパイラにそのようなことを行うだろうと疑う理由であり、ソフトウエアはそのコンパイラでコンパイルするとベンチマークで突出した数値をはじき出す。そしてその「公平な」業界団体のベンチマークがAMDとVIAに対して直接偏見の目で見せる。Intelは無垢を装い、それについて避難されたとき口を尖らせてふくれっ面を見せる。悲しいことに、たくさんの企業顧客がこの非建設なバイアスについて気がついていなかった。そしてそれがIntelの目的であるように見える。

そのコンパイラはたくさんのワーニングメッセージを出力するだけでなく、FTCとその和解文はいくつものベンチマークがそれに加担していると告発している。セクションVIIで、彼らはIntelにSYSmark、MbileMarkそしてその他名指しされているここの部分に警告文を表示させるよう指導している。それはAMDやVIA、Transmetaやその他数々の会社が何年にも渡って骨抜きにされてきたIntelのシステムで動かされていたことが全く持って素晴らしく開示している。

「性能テストで使われたSYSmarkやMobileMarkのようなソフトウエアやワークロードはコンピュータシステム、コンポーネント、ソフトウエア、操作、そして機能の指標として測定に使われており、Intelのマイクロプロセッサでのみ性能が最適化されている。これらの要素の如何なる様々な変化が結果に変更を引き起こさせる。あなたは購入する予定の他の製品と組み合わせて比較する際に製品の性能を含んだすべての見積りを手助けする第3社の情報や性能テストに助言を求めるべきである。」ろくでもないことだ。子供の使いか?

より問題点を悪くすることに、パートVIIIでではIntelはコンパイラ以外のいくつかのコンパイラで再コンパイルする際の顧客負担分を支払う基金を設立する必要があると記載している。もしあなたが数千万ドルで「Intelコンパイラ返済基金」を設立したいなら、あなたはまた自分自身のコードをコンパイルするのにお金を支払うことになる。もし過去にIntelコンパイラを使っていたのなら。いくつかの制限事項は実行されるだろう。より詳細は「Intelコンパイラ返済基金」の印刷物を読みなさい。

それはIntelはタールと羽を塗りたくる必要があるという辱めであり、それはこのような防護柵で覆われた街をパレードして通り抜けるといういことである。警告文が貼られ、人々は再コンパイル作業を費やし、あけすけにそれは公平なことだと命令されるのか?Intelは彼らの強い主張で言われた公平さから遠いとされる様々な証拠の山や簡単な証明テストより他に彼らの方がふさわしいのだろうか。これらの「不公平な」問題を是正することは「そのようなことをすることではなく」、たくさんの現場レベルで実行することであろう。

■母めんどり、野球バット、そして監視員

最後に最も高い確率で非常に厳しい賠償はカフェインでイライラしている母めんどりのいるパートIXにある。それは委員会はIntelを見渡し監視する一人かそれ以上のの技術コンサルタントを指名することが可能で、Intelはそれについて費用負担する必要がある。その上限は200万ドルで、それはIntelの意地汚い銀行を壊すほどではない。その金額の合計は「強制的に引き上げられたコンサルタント料」で数時間のうちに燃え広げることができ、その方法はNovelにどのようにSCOを破綻に追いやったのかを尋ねるだけで良い(※英文。SCOがLinuxに対して、Novelから買い取ったUNIX関連の権利を侵害しているとして何故かIBMに対して裁判を起こした事件のこと。その訴訟費用はLinux陣営に嫌がらせをするためMicrosoftから出されたという。だがSCOは権利侵害の確かな証拠を法廷で示せず、かつNovelはSCOにUNIX関連の権利を譲渡していないことを法的に証明し、結果IBMに対し敗訴、会社は破産という事件。日本語情報はこちら。)。

私たちが最初に話したことについて言うが、Intelは今誰か、幸運にも独立していて、彼らを見渡し、そして知っている人間を求めている。もし彼らの如何なる競合他社がいくつか欠陥があっても、彼らを支配する方法を教えることが可能な待っているたくさんのカフェインと、野球バットと一緒の母めんどりが今そこにいる。Intelは告発されたが、間抜けにも何一つとして実行できない。

様々な幸運と共に、Intelはそれを行動し完了し、そして公平にプレイするだろう。陰険で不公平な商慣行を使うことなく、彼らは彼らがそれを指定内と主張するまで、彼らは優位に立ち向かうことができる。もし彼らがそれしないなら、コケッコケッと鳴き、ブルブル震えまた鳴き、爆発するだろう。もしその元で留まり、すべてのIntelの技術リソースで可能な限りベストな業務遂行の仕事を実行させるなら、私は彼らの競争に対し不快に思うだろう。

もしこの場所に半導体のパズルをすべて持っている一つの会社があり、誰も行うことができないことを実現できる技術リソースがあり、幸運な経営者がいるのなら、それはIntelのことである。技術的な情報開示、販売に対する制限、情報公開、警告文、そして神経質なめんどりにもかかわらず、Intelは優位に勝つことができる。幸運なことに彼らは次の6年のために代替案を全く持って不快なものとして、それを試し実行するだろう。

—-

以上。こんな長文読む方に負担がかかるなw。そのためか評価されにくい。

「leddownは英文記事を勝手に翻訳しただけであり、このブログ以外で宣伝行為は一切しておりません」