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サン! いくつもある間違いを気がついたところだけ修正した。

AMD Developer Inside Trackエピソード12 AMD SimNowの導入方法

All of AMD ADIT Episode #12 Introduction to AMD SimNow August 18 2010 by Sharon Troia より。

AMD Developer Inside Trackエピソード12 AMD SimNowの導入方法

こんなソフトウエアがあるとはしらなんだ。

AMDの新しいCPUではXOPやAVXに対応しているが、そのCPUやマザーボードを開発する際に必要なシミュレータらしい。名前はAMD SimNow™。

  • Bit slice DES(暗号化アルゴリズムの一種で、演算時最も時間のかかる部分を最適化するためビット入出力を減らして処理時間を削減する手法)に有効なXOP命令の導入
  • AVX命令群のシミュレート

動作環境は下記の通り。

  • OS Distribution
    • Any of the following 64-Bit Linux distributions. SuSE 9 Pro and newer
    • RedHat 64Bit Enterprise 3 and above
    • Fedora Core 2 and newer.
    • SuSE 9.1 or newer for AMD64 (recommended)
    • Windows® XP Professional x64 Edition OR Windows Server 2003 x64 Edition.
  • Memory
    • Approx. 64MB of memory, plus Approx. 150 MB of memory for each simulated processor, plus the amount of simulated RAM
  • Processor
    • AMD Athlon™ 64 or AMD Opteron™.

ダウンロードはAMD SimNow™ Simulatorのページより。

IntelがOpenCL向けSDKを年度末に発表 ただしCPUのみを利用する

hardware-infos.com Intel springt auf den OpenCL-Zug auf より。

概要は下記の通り。

  • Intelが自社製品向けにOpenCL SDKを2010年末に提供すると発表した。
  • OpenCLはKhronos Groupによって策定されたヘテロジニアスアーキテクチャ向けパラレルプログラムライブラリ
  • ヘテロジニアスシステムとは、CPU+GPUという異なるアーキテクチャシステムの組み合わせのこと。現在のPC向けCPUは、コア毎に機能に違いのないホモジニアスアーキテクチャ。
  • Intelは自社のCPU向けにAVXやSSEに対応させたOpenCL SDKを提供する。これで15%前後性能が改善する。
  • 現在IntelはCPUとGPUが連動したSDKは提供する意向は見られない。
  • だが疑問点として、Sandy BridgeのようなGPU統合型CPUでOpenCLを実行する場合はGPUの機能を活用するのだろうか?

—-

AMDはFusion APUでOpenCL環境を提供するといううわさがあるんで、Intelも時期が来たら提供はするだろうけど積極的に推進することは当面無さそう。

うわさ AMDの次世代CPU「Bulldozer」は動的パフォーマンスブースト機能はないらしい

xbitlabs.com AMD Bulldozer Microprocessors May Not Bring Dramatic Performance Boosts.AMD Expects 16-Core Microprocessors to Be 50% Faster than 12-Core Chips [08/03/2010 02:10 PM] by Anton Shilov より。

うわさ AMDの次世代CPU「Bulldozer」は動的パフォーマンスブースト機能はないらしい

AMDは12コアチップよりも16コアチップCPUが50%高速であると予測している。

アナリストと市場観測者はAMDのコードネーム「Bulldoser」CPUは現在AMD出荷しているCPUと比較して明確に性能が向上していると予測している。しかしアーキテクチャとしての視点からは素晴らしく観えるが、AMD自身は桁外れの性能向上について大きく主張していない。事実、新しい「Bulldozer」ベースのCPUの「コアあたりの性能」は現在のチップと比較してほんのわずかだけ良いだろう。

「性能面における視点からは、もし私たちの16コア「Interlagos」と現在の12コアAMD Opteron 6100シリーズプロセッサ(コードネーム「Magny Cours」)を比較すると消費者からは33%増加したコアから50%のより高い性能を見て取れるだろうと私たちは予想している。これは私たちがコアあたりの性能が正しい上向きの方向性にぴったりと合っていると評価していることを意味する。」とAMDサーバ・ワークステーション製品マーケティング取締役のJohn Frueheは説明した。

「Bulldozer」の「コアあたりの性能」が高い期待を持てないのなら、新しいチップはAMDにこれからのマイクロプロセッサが消費電力の増加や熱損失を伴わずに達成させるだろう。

去年の11月の定期アナリストデイでAMDによって提供された情報を元にすると、最初の「Bulldozer」マイクロアーキテクチャはコードネーム「Zambezi(ほぼ確実にOrochiファミリーに属している)」と呼ばれるデスクトップ・ワークステーション向けCPUチップは、マルチスレッディングテクノロジを持つ8コアのx86コアで、2つの128bit FMAC浮動小数点演算ユニット、共有L2キャッシュ、メモリコントローラ統合型共有L3キャッシュを特徴とするだろう。AMDはまたその新しいCPUは「大きな新しい電力管理の革新」を特徴とするであろうと記載している。「Bulldozer」ファミリーに属している新しいチップはまた256bit浮動小数点演算命令をサポートするAdvanced Vector Extensions(AVX – ※従来のSSEの新しいバージョン)を特徴としている。過去にAMDがデモを行なった際の模式図を元に、AMDは4コアが互いにより良く動作させるために分割されたデータキャッシュと一つの浮動小数点スケジューラ、二つの整数演算ユニットの助けを借りて劇的に改善することを目的としてる。

2010年第2四半期世界で2番目に巨大なCPU会社は最初の「Bulldozer」マイクロプロセッサを「テープアウト」した。「テープアウト」とは集積回路の露光用フォトマスクのための設計図を生産工場に送ったことを意味する。AMDが既に生産し組み立てられた「Bulldozer」プロセッサのサンプルを受け取ったか、少なくともGlobalfoundries(※AMDの半導体生産工場会社。複数の資本が参加している)から半導体ウエハースを製造したかどうかという点ははっきりとしていないが、AMDは火曜日には最初の「Bulldozer」の性能に関連した声明を発表するとしており、その時がおそらく最初のサンプルを手に取る時であろうと思われる。

—-

そろそろBulldozerの性能に関する新しい情報が出てきそうである。たのしみ。