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

AMDの新GPU「Radeon HD 6800」のアーキテクチャ



●Northern Islandsファミリの中のスイートスポット価格GPU
Northen Islandsの製品構成

 AMDは、次世代GPUファミリ「Northern Islands(ノーザンアイランズ)」の第1段として、ミッドレンジのパフォーマンスGPU「Radeon HD 6800」(コードネームBarts:バーツ)系を発表した。Northern Islandsは、新旧の異なるマイクロアーキテクチャのGPU群で構成されるファミリだ。Bartsは、前世代のEvergreen(エバグリーン)アーキテクチャを拡張したGPUとなっている。上位のエンスージアスト向けGPUには、新アーキテクチャの「Cayman(ケイマン)」(11月後半出荷)と、Caymanをデュアルダイ構成にした「Antilles(アンティリーズ)」がある。コードネームは全てカリブ海の北側の島の名前となっている。

 Bartsの製品としては、1,120プロセッサで900MHz動作、2TFLOPSの「Radeon HD 6870」と、ユニットを一部無効にして960プロセッサで775MHz動作、1.5TFLOPSにした「Radeon HD 6850」が提供される。GPUでは、歩留まり向上のため、欠陥ブロックを無効にした下位製品を作る必要があり、ほぼ必ず同ダイで、ユニット数の異なる複数階層の製品構成となる。価格レンジは150~250ドル(日本なら2万円台)の、パフォーマンスGPUクラスの製品だ。いわゆる、ゲーマーのスイートスポット価格帯となる。

Radeon HD 6870の概要Radeon HD 6850の概要

 Bartsの大きなポイントは5つ。(1)ダイを小型化し経済性と電力効率をさらに高めた、(2)DirectX 11の最大の機能であるテッセレーションの性能を増した、(3)ビデオアクセラレーションのUVD(Universal Video Decoder)を強化したUVD3へとアップグレードした、(4)立体視映像の伝送を規格化したHDMI 1.4aとDisplayPort 1.2をサポートした、(5)異方性(Anisotropic)フィルタリングを強化した。

 また、製品構成上の出力ポートとしては、DVIポートを2つ(Dual-Link DVIとSingle-Link DVI)、HDMI 1.4aポートを1つ、mini DisplayPortを2つ備え、前世代から導入された6画面までのマルチディスプレイテクノロジ「Eyefinity」を継承している。

Bartsの狙いはRadeon HD 5800の性能をより安価に提供することNorthern Islandsへの移行計画
Bartsの強化点ディスプレイ出力

●前世代のハイエンドGPUの4分の3のサイズと性能

 ダイサイズの違いは明瞭だ。Evergreenの「Radeon HD 5870」(Cypress)が334平方mmのサイズだったのに対して、Bartsは255平方mmと約76%に縮小している。同時に、プロセッサ(浮動小数点(FP)積和演算ユニット)数は、Cypressの1,600個より減って、70%の1,120個となっている。動作周波数は若干向上して、900MHzなので、ピークの演算パフォーマンスは2.016TFLOPSとなる。Cypressのピーク性能は2.72TFLOPSなので約74%の性能となる。

 つまり、前世代のハイエンドGPUの4分の3の演算パフォーマンスを、4分の3のダイサイズで実現したのがBartsだ。トランジスタ数では、Cypressダイが21.5億で、Bartsダイが17億と約79%。価格ラインはCypressから大きく下がるため、パフォーマンス/価格カーブは大きく向上する。つまり、性能に対してのお買い得の度合いが高いGPUとなっている。カード電力は151Wなので、電力効率の面でも優れた製品だ。

GPUのダイサイズとプロセスの移行図(PDF版はこちら)
GPUのトランジスタ数とプロセスの移行図(PDF版はこちら)
1ドル当たりの性能の変遷

●地味な機能拡張によってパフォーマンスを引き出す

 AMDのMatt Skynner氏(Vice President and General Manager of GPU Division, AMD)によると、Northern Islandsシリーズは元もと32nmプロセス版として計画されたという。しかし、TSMCがハーフノードプロセスである32nmを、GPU向けのプロセスロードマップから外してしまったため、TSMCでGPUを製造するAMDは、Northern Islandsを現行の40nmプロセスのまま設計しなければならなくなった。

TSMCのロジック技術ロードマップ(PDF版はこちら)

Matt Skynner氏

 Radeon HD 4000(RV700)系の世代では、AMDは55nmで製品を投入、その後、フラッグシップであるRadeon HD 4800(RV770)の機能をほぼそのままに40nmに縮小したRadeon HD 4770(RV740)を投入した。この時は、微細化によってパフォーマンス/ダイが大きく向上した。今回はそれができないため、別なアプローチを取らなければならなかった。

 そのため、AMDは設計上の工夫を凝らしている。1つは、プロセッサ数を削りながらパフォーマンスを維持するための動作周波数の向上。地味だが、AMDはBartsの設計段階でクリティカルパス潰しをGPU全体に渡って行ない、動作周波数の向上を達成している。また、新しいアプリでのパフォーマンスの影響が大きいテッセレーションなど、ピンポイントでの機能強化を行なった。例えば、テッセレーションの強化は、ハードウェアテッセレータに付属するアウトプットバッファの量を増やすというマイナーな拡張だけで、性能を効率的に上げている。

 このほか、すでに触れたように、HDMI 1.4への対応など、新しいトレンドへの対応によって製品としての魅力の向上も図った。また、ハードウェア機能ではないが、DirectComputeによるポストプロセッシングである「Morphological Anti-Aliasing」にも対応した。

 全体で見ると、マイナーな変更の積み重ねによって、単純な機能削減版GPU以上の魅力を加えたのがBartsだ。

AMD GPUダイサイズ戦略(PDF版はこちら)
Radeon HD 5870とのテッセレーション性能比較Morphological AAに対応AFも強化

●デュアルコア構造を維持したBartsアーキテクチャ

 下はBartsのブロックダイアグラム図(一部推定)だ。Bartsは、Cypressと基本アーキテクチャは同じだ。しかし、図自体は、新たに判明した事実を加えて修正しており、Cypressの記事で掲載した図より詳細になっている。

Bartsのダイヤグラム(一部推定、PDF版はこちら)
AMDが公開しているBartsのダイヤグラム

 AMD GPUでは、プロセッサはSIMD(Single Instruction, Multiple Data)実行する単位である「SIMDコア(SIMDエンジンとも呼ぶ)」としてまとめられている。CypressとBartsの大きな違いは、Bartsでは内蔵するSIMDコアの数が20個から14個に減ったこと。SIMDコアの内部の構造や、SIMDコア以外の部分はほとんど変わっていないが、SIMDコアだけが70%へと削減されている。

AMD GPUプロセッサ数比較(PDF版はこちら)

 AMDはCypressで、2個のGPUコアへと分割する、デュアルコアに似た設計を選択した。Cypressには、SIMDコアをまとめた「SIMDアレイ」が2つある。この構成はBartsにも引き継がれている。これは重要なポイントで、そのためにBartsでは相対的に、演算パフォーマンスに対しての、テッセレーションやピクセルアウトの性能が高くなっている。プロセッサ数を減らしたBartsでシングルコアに戻さなかったのは、デュアルコアのパフォーマンス上の利点を維持するためだと見られる。

 そもそも、AMDがGPUをデュアルコア化した理由は2つ。1つは、DirectX 11時代で増えるプロセッシングパフォーマンスに対して、固定機能のラスタライザなどのパフォーマンスのバランスを取るため。もう1つは、クロスバースイッチを簡略化するためだ。同じことはNVIDIAも行なっており、GeForce GTX 480(GF100)はクアッドコアのような構造となっている。GPUのマルチコア化は、今の技術トレンドだ。

DirectX 11世代GPUの“マルチコア"化(PDF版はこちら)

 マルチコア化によって、AMDは1GPUにラスタライザが2個、NVIDIAは4個の構成となった。頂点からピクセルへと変換するラスタライザは、シリアルな処理しかできないため、頂点データが増えるにつれてボトルネックとなる。GPUのマルチコア化は、そのボトルネックを軽減することができる。これは、後の記事で説明するテッセレータの強化と連動している。

 バス構造では、AMDは下り方向のクロスバースイッチを2分割した。Cypress発表時にAMDでバスの設計を担当するFritz Kruger氏(Architect, AMD)は「(GPUの内部バスの)クロスバースイッチはあまりスケールアップできない。だから、CPUがコアを2つに分けるのと同じ理由で、我々もコアを2つに分けて、バス構造を簡単にしている」と説明した。Kruger氏は図の中央のテクスチャバスを通って2つのコアに分かれ、2つのコアからは図の両側を通ってメモリへと戻るというパスを指し示した。

●バスとメモリ階層は従来と変わらない

 もう少し詳しく見ると、メモリコントローラからプロセッサへの上りのパスは、L2キャッシュを経由して上りのクロスバーで2つのコアのSIMDコア群に接続されている。このパスは、基本は上り一方向で、テクスチャキャッシュもリードオンリーのバッファとなっている。実際には、平行してバーテックス(頂点)キャッシュも存在しており、こちらもリードオンリーの一方向となっている。

 テクスチャのパスは上り一方向だが、SIMDコアとの間には双方向のバスが、クロスバーと結合するか、あるいは並列に設けられている。それは、こちら側のパスに、SIMD間でデータを共有するためのメモリ「グローバルデータシェア(Global Data Share)」が接続されているためだ。グローバルデータシェアは、SIMDプロセッサ側から、リードとライト両方が可能なスクラッチパッドメモリであり、双方向パスを必要とする。Bartsのメモリ階層とパスは、概念的には下の図のようになっていると推定される。

Bartsのメモリ階層構造(PDF版はこちら)

Eric Demers氏

 それぞれのSIMDからは、アウトプットのシェーダエクスポートバスが出ている。シェーダエクスポートは機能ブロックではなく、データパスにつけられた単なる名称だ。Eric Demers氏(GPG Chief Technology Officer, AMD)は、次のように説明する。

 「SIMDコアは、それぞれ独立したシェーダエクスポートを備えている。そして各SIMDアレイ毎に、16ピクセルデータ/サイクルの出力ができる。それが、我々のアーキテクチャが32個のROP(Rendering Output Pipeline)を必要とする理由だ。2つの分離されたアレイが、それぞれ16ピクセルずつ出力するため、2倍(のピクセル出力)となる。だから16の2倍の32個のROPが必要となる。実際には、(シェーダエクスポートは)クロスバースイッチとなっている。どのピクセルがどのROPに行くかは固定されていないためだ」。

 2つのSIMDアレイは、それぞれクロスバーを備えており、SIMDアレイに含まれるSIMDコアと、ROPユニットを結んでいる。内部バスの構造は次の図のようになっていると推測される。AMDアーキテクチャは、NVIDIAアーキテクチャよりプロセッサ数が多いため、出力データ量も多く、データバス幅が広いと見られる。そのため、クロスバーの複雑度の問題は切実だ。GPU設計上の最大の困難は、AMDとNVIDIAのどちらも配線の複雑さにある。

Bartsの内部接続(推定、PDF版はこちら)

 ちなみに、2つのSIMDアレイは、画面を分けてレンダリングする。このアプローチはNVIDIAも同様だ。ただし、NVIDIAアーキテクチャでは、分割された画面リージョンに対してのジオメトリからピクセルまで全ての処理を、分割されたGPUコアの中で行なう。それに対して、AMDアーキテクチャでは、ジオメトリ処理とピクセル処理の間で、2つのアレイの間でのロードバランスが可能だとKruger氏は説明している。

 こうして見ると、Bartsはバスとメモリ階層のアーキテクチャについては、前世代を踏襲していることがよくわかる。これは、DirectX 11世代でバスとメモリ階層を大きく変えたNVIDIAと大きくアプローチが異なる。次の記事では、Caymanアーキテクチャの予想とともに、Bartsの強化ポイントをさらに詳しくレポートしたい。