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

32nmプロセスのキャンセルで変わったAMDのGPU戦略



●ダイの大型化でRadeonの製品構成が変わる

 AMDは、11月に投入する新GPU「Radeon HD 6900(Cayman:ケイマン)」から、GPUの内部アーキテクチャを変える。GPUのプロセッサコアのマイクロアーキテクチャが変わるのは、Radeon HD 2900(R600)以来となる。同じ「Northern Islands(ノーザンアイランズ)」ファミリでも、メインストリームGPUのRadeon HD 6800(Barts)は、従来アーキテクチャなので、AMD GPUは上位と下位でアーキテクチャが異なることになる。

 ハイエンドだけ新アーキテクチャに変わるのは、以前のGPUでは一般的な製品戦略だった。しかし、AMDがこの戦略を選択する点には若干の疑問点がある。なぜなら、AMDはRadeon HD 3800(RV670)以降は、新アーキテクチャを上から下まで短期間で投入する新戦略に切り替えたと説明していたからだ。実際、過去3世代は、同じファミリで最上位GPUだけが異なるアーキテクチャであるケースはなかった。アーキテクチャの均一性が、同じGPUファミリで保たれていた。

NorthernIslandsのダイサイズ
PDF版はこちら

 実は、この戦略変更には明白な理由がある。それは、過去3世代、AMDがGPUの核であるプロセッサの構造自体を変更しなかったことだ。世代が変わってもクリティカルなプロセッサコアのアーキテクチャはほぼ同一に保っているため、AMDはGPUの世代交代をスムーズに進めることができた。同じ期間に、NVIDIAは下の図のようにプロセッサコアのアーキテクチャの完全刷新(GF100)を1回、部分改良を2回(GT200/GF104)行なっている。AMDのファミリ展開戦略の背景には、アーキテクチャをいじらないという戦略があった。

GF100の派生
PDF版はこちら

 しかし、Caymanでは、この戦略を変えてアーキテクチャを変更する。Caymanは、AMDがRadeon HD 2900以来、初めてプロセッサコアの内部アーキテクチャを一定以上の規模で変更するGPUである。そのリスクのために、AMDはGPUファミリ展開の戦略も変えて、ハイエンドだけ異なるアーキテクチャにせざるを得なかった。

 また、AMDはGPUダイサイズの戦略も変更しなければならなくなった。Radeon HD 3800以降、AMDはNVIDIAのような巨大ダイのGPUを作るのをやめた。最大サイズのダイはパフォーマンスGPUクラスに止めて、エンスージアストGPUはデュアルチップ構成にする戦略を取った。しかし、Radeon HD 5870(Cypress)以上のダイサイズになると推定されるCaymanでは、この戦略も修正される。

 AMDによると、Northern Islandsはもともと32nmプロセスで製造される予定だったという。現行の40nmプロセスから32nmにシュリンクすれば、アーキテクチャを変更してトランジスタ数が増えたとしても、ダイサイズの肥大化は抑えられる。しかし、TSMCがGPU向けの汎用プロセスで32nmをキャンセルし、40nmから2年で28nmへと移行する計画に切り替えたため、戦略が大きく変わった。AMDはCaymanでは、ダイを大きくせざるを得ない。

 Caymanの想定ダイサイズはどの程度アーキテクチャに手を加えるかによって変わるが、Radeon HD 2900が400平方mm台だったことを考えれば、400平方mmクラスであってもおかしくはない。ダイが大きくなれば、パフォーマンスもコストも上がるため、CaymanはエンスージアストGPUの位置づけだ。Caymanの型番はRadeon HD 6900番台で、900という三桁数字はエンスージアストGPUのものだ。つまり、CaymanはAMDにとって久々の単体ダイでのエンスージアストGPUとなる。Caymanのデュアルダイ版である「Antilles(アンティリーズ)」は、さらにその上という位置づけとなり、「Radeon HD 6990」とさらに型番の数字が上がる。

TSMCのプロセスロードマップ
PDF版はこちら
2009年~2010年のGPUのダイサイズ推移
PDF版はこちら
Radeonファミリの製品ロードマップ
Caymanの位置づけ

●小型化と高速化を図ったRadeon HD 6800の設計

 前の記事で説明した通り、現在わかっているヒントからでも、Caymanではマイクロアーキテクチャのある程度大きな改革が行なわれることは確実だ。しかし、こうしたアーキテクチャ上で見える改良だけでなく、AMDはより見えにくい部分でもGPUの改良を継続して行なっている。

 例えば、AMDは先週発表されたRadeon HD 6800の設計において、ダイを小さく効率的かつ高クロックにするために、設計上で改良を加えたと言う。AMDのEric Demers氏(GPG Chief Technology Officer, AMD)は、次のように説明する。

 「6800ではSIMD(コア)の数を減らしただけでなく、設計上でいくつもの変更も行なった。その結果、アーキテクチャはもっと効率的になり、トランジスタ数をより多く減らすことができた。チップも小さくなった。例えば、I/Oブロックを最適化して、以前よりサイズを小さくした。今までの製品と同じプロセス技術だが、そのまま同じ設計を使ってはいない。ほとんどのブロックを再設計している。

 再設計の成果として最も重要な要素は、高クロック化だろう。高クロック化は、プロセッサだけでなく、ROP(Rendering Output Pipeline)、ラスタライザといった固定機能も含めて全てのユニットに適用している。これら固定機能ブロックは、これまで高速化のボトルネックになりがちだった。各ブロックは、速度が上がらなかったものもあるが、最高2倍まで高速化されたものもある。全体で見ると、20%ほど高速化した」。

 Radeon HD 6800は、設計的には従来のEvergreenのブロックを流用したものではない。ほとんどのブロックを新たに設計し直すことで、ダイの縮小とクロック向上を図っている。Demers氏が指摘しているように、I/Oブロックは微細化でシュリンクしにくいため、ダイ面積を食いがちだ。そこを小さくすることは、チップの小型化に効果がある。実際、Radeon HD 6800は、Radeon HD 5870と比べると、プロセッサ数こそ70%に減らしたが、他のブロックはほとんど変わらない構成なのに、ダイは約76%(334平方mm→255平方mm)に縮小している。I/O部分をシュリンクできなければ、これだけの縮小はあり得ない。こうした設計は、Caymanでも共通だと推定される。

 また、クリティカルパスをこまめにつぶせば、固定機能ブロックであってもある程度高クロック化を図ることができる。ただし、AMDはGPU全体で、依然としてスタンダードセルベースの設計を行なっていると見られる。対するNVIDIAは、GPUのプロセッサコアの部分をスタンダードセルではなく、カスタム設計とすることでより高速化を果たしている。しかし、NVIDIAが40nmプロセスで苦労した原因の1つは、カスタム設計にあったと見られるため、AMDとNVIDIAのどちらの選択がいいかを判断することは難しい。

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

●3段階で制御するRadeon HD 6800の省電力機構

 Radeon HD 6800は、省電力機構でも充実している。省電力は、チップの各ブロックに供給するクロックを停止することで、アクティブ電流を減らして実現している。AMDのEric Demers氏は、3層のクロックゲーティング機構を備えていると説明する。

 「6800チップは3レベルのクロックゲーティングを行なっている。最もローレベルなのが、各ユニットブロック毎に行なう自動的なシャットダウン。これが、ローカルクロックゲーティングだ。その、上位にクロックツリー毎クロックを停止させるミディアムクロックゲーティングがある。最上位では、チップ単位でクロックを制御する。

 ローカルから説明しよう。6800のSIMDコアは、オートマチックのクロックゲーティング機構を備えている。もし、あるSIMDコアが、アイドル状態で働いていなければ、そのコアは自動的にシャットオフしてクロックを止める。例えば、負荷の軽い処理で、SIMDコアが1つしか動いていないような場合は、他のSIMDコアを全て自動的にシャットオフする。すると、電力が顕著に低下する。

 当社のGPUではピークのTDPとアイドル時の消費電力が公開されている。しかし、実際にはその間には、SIMDのシャットオフにより、いくつもの電力ステイトがある。6800では、ブロック単位のパワーゲーティングはできない。しかし、低消費電力ステイトに移行するだけで、電力をかなり抑えることができる。チップがアイドル状態の時のリーク電流(Leakage)は8~12Wに過ぎない(=リーク電流は少ない)。だから、SIMDコアを1つクロックゲーティングすると、そのブロックの電力は非常に小さく押さえられる。

 しかし、SIMDコアのクロックを止めた場合も、上位のクロックツリーにはクロックが供給されている。それを含めて停止させるのがミディアムクロックゲーティングだ。これは、GPUに搭載された電力管理ユニットが制御する。電力管理ユニットの実態は小さなマイクロコントローラ(MCU)で、電力状態を常に監視している。そのユニットが、シェーダアレイがあまりビジーではないと判断したら、それらのユニットに関連する全てのクロックツリーを停止させる。クロックツリーは10~20%もの電力を食っているので、ツリー単位でシャットダウンすると、より電力を削減できる。

 最後に、チップの全てのクロックを停止させるか、あるいは完全にチップをシャットダウンする。(完全にシャットダウンする場合には)ステイトをメモリに待避する必要がある。この3つのオペレーティングモードで、省電力制御を行なっている」。

 Radeon HD 6800は、きめ細かで階層的なクロックゲーティングによって、動的に電力を削減していることがわかる。こうした制御は、より進んだ形でCaymanでも実装されていると推定される。ただし、NVIDIAのFermi系GPUは、AMDのSIMDコアに当たる「SM(Streaming Multiprocessor)」単位でパワーゲーティングを行なうことができる。クロックゲーティングではリーク電流はカットできないが、電力供給自体を停止するパワーゲーティングではリーク電流も完全にカットできる。それと比べると6800は、やや大人しいアプローチだ。Caymanでユニット単位のパワーゲーティングを実装するかどうかが注目される。

Radeon HD 6800のアーキテクチャ
PDF版はこちら