後藤弘茂のWeekly海外ニュース

格安TFLOPS GPU「Radeon HD 4770」の詳細



●普及価格帯に必須の140平方mm程度のダイサイズのRadeon HD 4770(RV740)

 AMDは、1TFLOPSに近いパフォーマンスのGPU「Radeon HD 4770」を、ターゲット価格109ドルで発表した。GPUは、昨年(2008年)、TFLOPSの性能レンジに到達したが、TFLOPSは瞬く間にメインストリームの市場に降りてきた。いよいよ、TFLOPS GPUの普及時代を迎えようとしている。そのカギは、AMDがATI Radeon HD 4770で達成したダイサイズの小型化にある。

 RV740のダイサイズは136平方mmと、パフォーマンスGPUであるRadeon HD 48xx(RV770)系の260平方mmの約半分に当たる。140平方mm前後のダイサイズは、伝統的にメインストリーム向けの手頃価格GPUのサイズだ。さらに、この下に100平方mm以下のバリュー市場向けのダイサイズのGPUがある。AMDのGPUは、このように、きれいにダイサイズによって階層化されている。

 AMDは、2007年前半までは、さらに大型のダイのエンスージアスト向けGPUを作っていた。Radeon HD 2900(R600)は420平方mmの巨大ダイのGPUだったが、AMDは過去2年間ですっかり方針を転換。巨大ダイのGPUの開発を停止し、代わりにエンスージアスト市場には、200平方mm台のパフォーマンスGPUを2チップ載せたボードによる、デュアルプロセッサソリューションで対応するようになった。R600/R700系GPUのダイサイズの変化は、下の図の通りだ。

R700のダイサイズ
スイートスポットへの製品投入
GPUのダイサイズ

●難しいプロセス技術の立ち上がり期に合わせたGPU

 ATIブランドGPUのダイサイズ構成は、CPUメーカーであるAMDの目から見て納得が行くものだろう。それは、AMD CPUラインナップのダイサイズ構成とほぼ重なるからだ。下の図は、AMD CPUとGPUのそれぞれのダイサイズを比較したものだ。65nm世代のパフォーマンスCPUであるPhenom系は283平方mmのダイサイズ、メインストリーム向けのAthlon X2は126平方mm、バリュー向けのシングルコアのAthlon/Sempronは80平方mm以下。ATIブランドGPUの現在のラインナップと、ダイがほぼ重なる。

 そして、AMDは今年(2009年)中盤までは最上位のサーバーCPUのダイサイズが空席となっている。つまり、420平方mmのRadeon HD 2900(R600)のような巨大チップは、CPU側にはなかった。その代わり、AMDではマルチプロセッサ構成を容易にすることで、Intelに対抗した。こうした経緯があるため、AMDに飲み込まれたATI GPUでも、ダイサイズはパフォーマンスCPUの規模までに止め、それ以上はデュアルプロセッサでカバーする形がAMDにとっては自然だったのだろう。チップのダイサイズが大きくなると、1枚のウェハから採れるダイ個数が減り、歩留まりも悪化して製造コストが跳ね上がる。

GPUとCPUのダイサイズ
ダイサイズの違いによる歩留りの違い

 AMDが、巨大ダイのGPUを止めるダイサイズ戦略を取り始めてからのプロセス技術は55nmプロセスだった。そのため、小型ダイの派生GPUは、いずれも機能を削って実現していた。しかし、今回のRV740は、新戦略で初めてのプロセス技術の移行となる。55nmから40nmへと1世代微細化することで、1ランク上のセグメントのパフォーマンスが下へと滑り降りてきた。今後は、同様に他のセグメントにもスライドが起こることになる。

 もっとも、40nmプロセスが成熟するには時間が、ある程度の時間が必要だろう。TSMCの40nmプロセスは、昨年(2008年)11月に量産に入ったばかり。立ち上がり期の新プロセス技術は、どうしてもウェハ上の欠陥が多くなる。すると、ダイ上に欠陥が増え、歩留まりが低くなる。そして、ダイサイズが大きなチップほど、歩留まりの低下が激しくなる。

 そのため、AMDもNVIDIAも、新プロセス技術にGPUを載せる時は、比較的ダイサイズが小さく技術的に安定したチップからスタートしている。今回、AMDは枯れたアーキテクチャであるRV700系の設計で、140平方mmクラスの標準的なサイズのチップを、新しい40nmプロセスのテストビークルとして使った。それがRV740だ。

 また、後にレポートするがTSMCの40nmプロセスは、リーク電流(Leakage)の面でそれほど有利なプロセスではない。そのため、40nm GPUは消費電力問題にも、依然として悩まされていると推測される。

●RV770から削りだしたRV740のマイクロアーキテクチャ

 RV740のプロセッサとしてのマイクロアーキテクチャの基本は、ATI Radeon HD 4800(RV770)から変わっていない。1グラフィックスインスタンスを実行する単位であるシェーダプロセッサは「VLIW型の5-way Superscalar Shader Processor」。各プロセッサが、VLIW命令で制御される5個のスカラ演算ユニットを備える。そして、VLIWプロセッサが16個で、SIMD制御されるプロセッサクラスタ「SIMD Core」を形成する。

 RV770ではSIMD Coreが10個あったが、RV740では8個に減らされた。しかし、各SIMD Coreの中のVLIWプロセッサの数はRV770と同じ16個となっている。これまで、AMDは、市場セグメントが異なるGPU製品毎に、SIMD制御するプロセッサ個数を変えて来た。例えば、Radeon HD 4600(RV730)系列は、SIMD Coreに8個のVLIWプロセッサしか含まない。そのため、ベクタ条件分岐の際の、コントロールフローの制御の粒度がGPUによって異なる。

 こうした差異は、汎用コンピューティングをGPUで行なう際の、プログラミングの最適化では問題になる。上位GPUと下位GPUで、共通した最適化メソッドが通じないためだ。しかし、RV740ではRV770/RV790系と同様の粒度であるため、共通のプログラミングのチップスを使うことができる。ちなみに、NVIDIAはどのGPUでも一貫して同じ構成のクラスタ「Streaming Multiprocessor(SM)」を使っている。

 また、RV770ではSIMD Core間での共有メモリGlobal Date ShareとSIMD coreの比率が2のべき乗である1対8となり、共有メモリは使いやすくなった。RV770では、この比率は1対10で使いにくかった。しかし、GPU間で比率が異なるため、SIMD Core間の共有メモリは、やはり使いにくいままに留まるだろう。

RV740の概要
RV770の概要
SIMD発行されるRV770のVLIW命令

 

●メモリ帯域と演算性能のバランスが悪いGPU

 演算パフォーマンスを倍々で増やし続けるGPUは、急速に壁に近づきつつある。それはメモリの壁だ。

 GPUが浮動小数点演算のピーク性能を実際に達成するためには、演算に必要なデータを供給しなければならない。そのためには、膨大なメモリ帯域が必要となる。しかし、GPUの外に接続するDRAMチップのメモリ帯域は、GPU内部のコンピューティング性能ほどは向上して行かない。そのため、コンピューティング性能とメモリ帯域の間のギャップはどんどん広くなって行く。

 この問題に対処するため、GPUベンダーはひたすら高速なメモリを求め、メモリインターフェイス幅も広げ続けてきた。AMDのラインナップで最高峰のRadeon HD 4890(RV790)は、256-bit幅のGDDR5インターフェイスを備えている。GDDR5のデータ転送レートは3.9Gtps(Transfer per sec)で、メモリ帯域は124.8GB/secを達成する。デュアルチャネルのDDR2-800の10倍のメモリ帯域だ。

 AMDのRV700世代GPUは、上位がGDDR5、下位でもDDR3をサポートできるように設計されている。GDDR5やDDR3は、メモリセルアレイからデータを読み出す粒度である「プリフェッチ」幅がDDR2やGDDR3より広い。DDR2のPrefetch 4に対してPrefetch 8となっている。そのため、DRAMコントローラのチャネルの幅を狭めなければ、メモリアクセスの粒度が上がってしまう。

 一般的な64-bit幅のDRAMコントローラのアクセス粒度は、DDR2が32bytes、プリフェッチ8のDDR3やGDDR5では64bytesとなる。メモリアクセス粒度が大きくなると、メモリにアクセスする際の無駄が発生する可能性が高くなる。そのため、RV700系はDRAMコントローラのチャネルの幅を、従来の64-bit幅から32-bit幅に減らして、メモリアクセス粒度を保っている。

●新GPUではますます狭くなるメモリ帯域

 高価なGDDR5を使い、128-bit幅インターフェイスでも広いメモリ帯域を実現したRV740。しかし、それでも足りない。RV790の浮動小数点演算パフォーマンスは1.36TFLOPS。メモリ帯域と演算性能の比率は0.09B/FLOPSとなる。つまり、浮動小数点演算を1回行なう間に、0.09 bytesのデータしか読み書きできない。どう見てもメモリ帯域が足りない。

 皮肉なことに、AMDの小さなGPUダイ(半導体本体)が、この問題の複雑化に拍車をかけている。チップサイズが小さくなると、ダイのエッジ長が短くなり、配置できるI/O PHYの面積が限られるからだ。

 AMDのGPUでも、ダイが420平方mmと巨大だったRadeon HD 2900(R600)では、メモリインターフェイスの幅を512-bitと広くとることができた。しかし、260平方mmのRV770では256-bit幅インターフェイスと狭くなり、136平方mmのRV740では128-bit幅しか取ることができなかった。理由はRV770のダイレイアウトを見れば一目瞭然だ。RV770では2エッジと1/2が256-bit幅のGDDR5インターフェイスで占められている。エッジ長の短いRV740では、これだけのインターフェイス幅を取ることはできないだろう。

Radeon HD 4800シリーズのアーキテクチャ

 こうした事情から、RV740ではメモリをパフォーマンスGPU同様に高速にすることでメモリ帯域を維持している。現在のメモリはGDDR5で転送レートは3.6Gtps。メモリの速度だけなら、パフォーマンスGPUと同じだが、インターフェイス幅は半分であるため、メモリ帯域は51.2GB/secと半減してしまっている。メモリと演算の比率は0.05B/FLOPSにまで下落する。

●GPUもメモリ帯域の究極の解決手段は3Dダイスタッキング

 AMDはDirectX 11世代のGPUの開発も進めている。AMDのダイサイズロードマップを見れば、DirectX 11だと推定されるRV800系の位置は明白だ。AMDは、40nmプロセスでの200平方mm台のダイサイズのGPUが空欄になったままだからだ。おそらく、RV800系のパフォーマンスGPUは、ここに位置するだろう。

 40nmプロセスで、200平方mm台となると、トランジスタ数はおそらく15億を超える。DirectX 11では、固定ハードウェアとして高機能なテッセレータ(Tessellator:平面分割ユニット)が加わるが、その他の機能の多くは、既存のアーキテクチャの拡張と改良で対応できそうだ。グラフィックスの論理パイプラインで、新たに加わるシェーダは、既存のシェーダプロセッサの拡張で対応できると推測される。そのため、RV800世代でも、トランジスタの多くは演算パフォーマンスや効率を上げることに費やされると推測される。

 その段階での最大の問題は、性能を発揮できるだけのデータを供給できるメモリの仕組みを整えることだ。GDDR5の転送レートは伸び続けているが、それでもGPUの浮動小数点演算パフォーマンスの伸びにはとても追いつかない。それどころか、メモリへの信号線の転送レートは、現実的な実装での限界に近づきつつある。

 そのため、GPUベンダーも一定量のメモリをGPUに近いところに配置するソリューションを模索している。最も理想的な解決策は、DRAMダイをGPUダイに3Dダイスタッキングで重ね合わせて、数千のバンプで接続する方法だ。現在台頭しつつある「シリコン貫通ビア(TSV:Through Silicon Via)」を使えば、このソリューションが現実的になる。1TB/secのメモリ帯域を実現できるようになり、メモリ帯域と演算能力の比率を1B/FLOPSに近づけることができる。グラフィックス処理の場合は、ある程度のメモリ量があれば、ワークセットの多く載せることもできる。

 こうした理由から、GPUベンダーは2年ほど前からスタックメモリソリューションでDRAMベンダーと接触している。CPUよりも前にGPUの方がメモリ帯域の壁と衝突する時期が早く来るため、GPUからメモリスタッキングが採用される可能性もある。いずれにせよ、GPUはメモリ帯域ネックのために、これまでと同じペースで性能を拡張し続けることは難しくなりつつある。