後藤弘茂のWeekly海外ニュース
AMD、新GPU「Tonga」がHSAの最終形であることを明らかに
(2014/9/26 14:05)
AMD GPUアーキテクチャの飛躍となるTongaコア
AMDのパフォーマンスGPU「Radeon R9 285」(Tonga:トンガ)の正体が明らかになった。Tongaは「Radeon R9 290」(Hawaii:ハワイ)の縮小版ではなく、マイクロアーキテクチャを大きく拡張したGPUだった。また、Radeon R9 285として発表された製品は、Tongaのフルスペックではなく、そのダイ(半導体本体)には、実際には32個のCU(Compute Unit)と6個のメモリコントローラが実装されていることも明らかになった。
下が、Tongaのフルスペックの想定図だ。このフルスペック版Tongaも近いうちに発表されると見られる。このほか、将来のアーキテクチャ拡張として、条件分岐の性能を飛躍させるWavefrontの再パックなどの実装の検討もしていることを明らかにした。
Tongaは、位置付けとしては、AMDが目指すHSA(Heterogeneous System Architecture)のゴールとなるGPUコアだ。下はAMDが掲げているHSAロードマップだ。AMDはこれらのAPU(Accelerated Processing Unit)やGPUコアの拡張を、世代毎に段階的に実装してきた。これまで実装されたのは、右から2番目の「アーキテクチャル統合(Architectural Integration)」だった。現在のAPU「Kaveri(カヴェリ)」で、右から2番目のアーキテクチャ拡張を達成したが、右端の機能はまだ実装されていなかった。
それに対して、Tongaは右端の最終機能である「GPUコンピュートコンテクストスイッチ(GPU Compute Context Switch)」や「GPUグラフィックスプリエンプション(GPU Graphics Preemption)」などをサポートする。つまりAMDは、Tongaで、ついにHSAのゴールとなるGPUアーキテクチャに到達した。Tonga世代のGPUコアがAPUに統合された段階で、HSAアーキテクチャは完成形となる。
CPUライクな柔軟なコンテクストスイッチ
現状では、AMDはTongaのHSAロードマップ上での革新性を謳っていないが、実際にはTongaはHSAの最後の鍵となるGPUコアだ。現在のGPUの課題の1つは、柔軟なコンテクストスイッチングができないことにある。あるコンテクストを走らせている最中に、中断して別なコンテクストにスイッチすることができない。いったんカーネルを全て走らせ終えてからしかコンテクストを切り替えることができない。走らせているコンテクストをメモリにストアして、別なコンテクストをロードし、そのコンテクストから復帰する際には再びストアしたコンテクストをロードするという仕組みを持っていない。
そのため、現在のGPUではGPUコンピュートで柔軟に仮想化をサポートすることができない。グラフィックス処理の場合は、フレームを描画した段階でコンテクストはフラッシュしてしまうため、問題がない。しかし、GPUコンピュートでは、カーネルを実行途中で切り替えることができないため、実用的な仮想化が難しい。Tongaコア以降は、この問題が最終的に解決され、CPU風のコンテクストスイッチングが可能となる。コンテクストスイッチは、CPUと同様にハードウェアで制御されている。
ちなみに、現在のAMD GPUは、演算コンテクストは最大8まで並列させることができる。マルチコアCPUのようなコンテクスト制御になっており、また、各CU(Compute Unit)毎に2コンテクスト(=2ページテーブル)のサポートができる。つまり、CUよりもさらにコンテクストの粒度を小さくできる。NVIDIAもMaxwell(マクスウェル)世代でコンテクストスイッチングを実装するとしているが、現在はまだ実装または有効化されていない。
インドでTongaの詳細を発表
AMDはこうしたTongaの詳細や将来技術ビジョンなどを、インドのゴアで開催したイベント「AMD Technology Showcase 2014」で明らかにした。Raja Koduri氏(Corporate Vice President, Visual and Perceptual Computing)は、Tongaをバージョン8のアーキテクチャで、Hawaiiから革新されたと説明。コンテクストスイッチングについては「Tongaでは、コンピュートコンテクストのセーブとリストアができる。そのために仮想化に優れる。グラフィックス(プリエンプション)も、コマンドバッファの途中でできる」と説明した。
GPUのコンテクストは大きいため、メモリのストアにレイテンシがあるが、AMDアーキテクチャでは、CU単位でコンテクストを走らせることができるため、レイテンシは相対的に短いという。旧来のGPUは、GPU全体で1つのコンテクストを走らせるため、スイッチする場合はGPU全体のコンテクストをセーブ&リストアする必要があった。AMDのGCNでは、コンピュート用のコマンドプロセッサACE(Asynchronous Compute Engine)で、個別のコンテクストを扱うことが可能となっている。
Tongaのプロセッサマイクロアーキテクチャは、GCN(Graphics Core Next)で、大枠の構造はほとんど変わりがないという。AMDは、GCNの基本アーキテクチャの小刻みに改良する形で進化させている。Koduri氏は「NVIDIAのMaxwellがGCNそっくりの構成を取ったことからも、この構成の利点が分かる」と語っていた。
Tonga全体の構成は32個のCUを備え、各CUがそれぞれ64個のFMAD演算ユニットを備えるためチップ全体では2,048個のFMADの構成となる。メモリコントローラは6ユニットで、メモリインターフェイス幅は384-bit。5,500MtpsのGDDR5を使うなら、メモリ帯域は264GB/secに達する。
実装されているROP(Rendering Output Pipeline)は、Tahiti(Radeon HD 7900)と同じ32ユニットなのか、メモリコントローラと対応する48ユニットなのかは分からない。ROPクラスタは通常はメモリコントローラに対して1対1または1対2で対応する。しかし、AMDは1対1.5というイレギュラーな構成を以前から可能にしているため、Tahitiと同じ32ユニットの可能性が高い。ただし、Tongaではメモリ帯域圧縮を行なうため、48ユニットの可能性もないわけではない。
現在発売されているTonga(Radeon R9 285)は、上の図のような構成となっている。CUのうち4個が、メモリコントローラのうち2個が無効となっている。MADユニットの数は1,792個となる。動作周波数は918MHzで、単精度の浮動小数点演算パフォーマンスは3,290GFLOPS。フルに32個のCUを同じ周波数で走らせるなら3,760GFLOPSとなる。
拡張ポイントが多いTongaアーキテクチャ
Tongaアーキテクチャでは、HSAに関わるコンテクストスイッチング以外にも大きな拡張がいくつもある。
1つは、カラー&テクスチャ圧縮技術の改良で、ロスレスデルタカラー圧縮と呼ぶ技術を搭載した。フレームバッファのピクセルも圧縮することで実効メモリ帯域の拡張を行なう。カラー圧縮技術の搭載はトレンドだが、これはGDDR5メモリの高速化が頭打ちになり始めているためだ。
メモリが高速化しない状態でメモリ帯域を拡張するために、より高度なカラー圧縮技術を搭載する流れとなっている。Tongaでは、圧縮ロジックは、ROPとCUのテクスチャユニットの両方に実装されている。圧縮処理によって電力消費が若干上がっても、それによってセーブされるメモリ帯域の圧縮による省電力効果の方が大きいと判断したと見られる。
このほか、テッセレーションの性能も向上した。これは、頂点爆発を起こすテッセレーションの頂点データの受け皿となるジオメトリパイプ内のバッファを拡張することで実現しているという。また、同クラスの前世代GPU「Tahiti」(Radeon HD 7900)と比べると、ジオメトリユニットの数が2倍の4ユニットとなっており、ジオメトリパイプの性能が上がっている。
また、目立たないが重要な拡張として16-bitの浮動小数点演算と整数演算の演算命令の拡張が行なわれている。これは、メディアプロセッシングで効果があるだけでなく、16-bit精度で済ませることが可能な省電力GPUコンピュートタスクでも効果がある。また、AMDはデータ並列プロセッシング命令と呼ぶ拡張も行なっている。これは、複数のSIMDレーンをまたいで制御する命令だと見られる。
このほかに、スケーラやビデオコーデックも拡張されている。
28nmプロセスのまま拡張
Tongaの構成は、上位のHawaiiとよく似ている。下はHawaiiの構成図だ。大枠の設計では、違いはCUとメモリコントローラ、そしてROPの数程度に見える。特に、GPUコンピュートタスクの発行やスケジュールを制御するACEを、Hawaiiと同じ8ユニット備える点が目立つ。PlayStation 4(PS4)もkaveriもACEは8ユニットであり、8 ACE構成はAMDの標準となりつつあるようだ。
Tongaのダイサイズは359平方mmでトランジスタ数は50億。Hawaiiの438平方mm、62億トランジスタより一回り小さい。製造プロセス技術は28nmプロセス。AMDもNVIDIAと同様に20nmプロセスへの移行が難しい状況にある。すでに説明したように、GPUが必要とするプロセスオプションでは、ダブルパターニング露光を多用するため、プロセッシングコストが上がってしまうからだ。
現在、GPUやゲーム機APUは、この300平方mm台後半にダイサイズが集中していて、図が非常に混み合っている。パフォーマンスGPUクラスの性能のチップを製造しようとすると、どうしてもこのあたりのダイサイズに集中する。プロセスの移行が滞っているため、パフォーマンスGPUクラスのダイサイズが徐々に大型化していることがよく分かる。
AMDのGPU同士で、ダイサイズと構成を比べると下の図のようになる。実際には、AMDには下の図にマップしたダイ以外にメインストリーム&バリューのダイがあるが、今回は省いてある。こうして比べると位置付けは明瞭で、Tahitiと同格のダイとなる。AMDは、TahitiからHawaiiでは、同じ28nmプロセスで性能を向上させるためダイサイズを大型化した。今回は、Tahitiと同クラスのダイでアーキテクチャを刷新した。
Tongaはトランジスタ数の割にダイがTahiti並と小さい。これはEDAツールの最適化の結果か、セルライブラリの変更か、トランジスタ密度の高いセルの比率が高いのか、理由は明瞭ではない。いずれにせよ、28nmではそろそろ拡張も限界に近づいている。AMDも今後、20nmプレーナプロセスに行くか、14/16nm FinFETに行くかが大きな分かれ目となる。