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

IntelがディスクリートGPUのプロトタイプを発表

IntelのGPU研究開発の1つ

IntelがISSCCで発表したテストチップGPUの概要

 Intelが“ディスクリートGPU”のプロトタイプを発表した。

 Intelは、AMDからRadeon GPU部門のトップであるRaja Koduri(ラジャ・コドゥリ)氏を引き抜き、Core and Visual Computing GroupのChief Architect兼Senior Vice Presidentに据えた。この劇的な移籍から、IntelがディスクリートGPUに参入するのでは、という観測が一部で流れていた。そんなタイミングで、Intelは、米サンフランシスコでの半導体の国際会議ISSCC(IEEE International Solid-State Circuits Conference)で、ディスクリートGPUの試作チップを発表した。

 といっても、今回の試作チップは、製品として市場に出せるレベルのものではない。あくまでも、技術検証のためのGPUチップ。既存のIntelの内蔵GPUアーキテクチャをベースに、IVR(Integrated Voltage Regulator:統合電圧レギュレータ)を使った電力とパフォーマンス制御の技術を検証したものだ。

 Intelは、過去にもこうした省電力機能の検証のための試作GPUチップを開発しており、2014年にもISSCCで22nnmのプロトタイプチップを発表している(「5.7 A Graphics Execution Core in 22nm CMOS Featuring Adaptive Clocking, Selective Boosting and State-Retentive Sleep」S. B. Nasir, et al., ISSCC 2014)。とはいえ、このプロトタイプチップは、GPUとしてのフル機能を備えており、拡張すれば製品にすることも不可能ではない。

 今回の試作のGPUアーキテクチャは、最新のIntel Graphics Gen9世代で、Intelの標準的なGPUコアそのもの。ただし、実装はLP(ローパワー)、つまりAtom系CPUアーキテクチャSoCに混載されている低電力のGPUコア実装となり、スタンダードセルライブラリなどがPC向けと異なると見られる。

 プロセスはIntelの14nmで、10メタル(配線)層。ダイサイズは8×8mm、1.5Bトランジスタ。動作周波数と電圧は50MHz/0.51Vから400MHz/1.2Vまで。トランジスタ数が多いのはキャッシュSRAMを大量に搭載しているためだ。

Intelの内蔵GPUコアをベースに新設計を導入

 IntelのGPUコアは、「EU(Execution Unit)」と呼ばれるベクタコアで構成される。1個のEUは、2つの4-wayベクタユニットを搭載する。FP32(32-bit浮動小数点演算)ユニットが4-wayで、128-bit長のベクタユニットだ。EUには2つのベクタユニットと7マルチスレッドの汎用レジスタ(GRF)、命令フェッチャやブランチユニットが含まれる。

 プロトタイプチップでは、EUが6個バインドされ「Sub-Slice(SS:サブスライス)」を構成している。サブスライスには、EUだけでなくサンプラ(テクスチャユニット)やL1/L2キャッシュ、スレッドディスパッチャ、データポートなどが付属する。

 今回のチップでは、3個のサブスライスで1個の「Slice(スライス)」を構成していると見られる。ダイ写真にはSS0からSS2までの3個のEUが見える。3個のEUのサブスライスのうち、今回の新しい電力制御機構が実装されているのは2個。SS1とSS2が新設計のEUとなっている。

 SS0は、比較用に従来どおりの設計となっている。3個のSSで構成されるスライスはフル機能のGPUコアとなっており、グラフィックス固定機能(FF:Fixed Function)やコマンドストリーマ、L3キャッシュなどを内包する。

プロトタイプチップ
IntelのGPUアーキテクチャの例
PDF版はこちら

 テストチップは1スライス構成で、合計で3個のサブスライス、18個のEUを搭載する。ベクタユニット内のFP32(32-bit浮動小数点演算)の積和算ユニットは、合計で144ユニットの計算だ。PC向けのIntelグラフィックスのローエンドGT1は、スタンダード実装で96 FP32となる。

 テストチップは周波数の低いLP実装で144ユニットなので、ラフに言って、ローエンドのPC向けグラフィックスレベルの性能と言えそうだ。また、通常のGPUコアには、動画コーデックなどを含むマルチメディアコアが付属するが、今回のプロトタイプチップには含まれているかどうか明記されていない。

 ISSCCで発表されたGPUチップには、GPUコアだけでなく、制御系やI/O回りを含むSystem Agent(SA: システムエージェント)が搭載されている。メモリインターフェイスはホスト側。そのためか、SAに4MBと大きめのページングキャッシュも搭載されている。ホストPCとは、FPGAのブリッジを経由して結ばれる。構成を見るかぎり、実証実験用のプロトタイプだ。

IVRを活用したきめ細かな電圧/周波数制御

 Intelの今回のテストチップの最大の特徴は、IVRを使ったきめ細かなV/F(Voltage/Frequency: 電圧/周波数)制御やパワーゲーティングを行なっている点。伝統的にGPUは、CPUと比べて、こうしたV/F制御や省電力機能が弱い。これは、伝統的なグラフィックスワークロードは、高負荷が一定期間続くか、あるいは負荷がきわめて軽いか、どちらかのことが多いと考えられていたからだ。GPUベンダーも、GPUの電力制御には、それほど注力してこなかった。

 しかし、IntelはGPUコアにきめ細かな電力制御を導入することで、条件によっては性能効率を向上させることができることを実証した。省電力制御に優れたIntel CPUコアのノウハウを活かし、CPUよりさらに進んだ電力制御をGPUコアに入れ込むことで、効果が発揮されることを示した。GPUに粒度が小さなさまざまなタスクを走らせるようになれば、こうした電力制御がより効いてくるはずだ。

 基本的なアイデアは、GPUを細粒度のブロック単位で、動作周波数と電圧を制御、必要なブロックが最適な周波数と電力で動作するようにする。そのさいに、オンダイ(On-Die)に統合したIVR(統合電圧レギュレータ)によって、高速な電圧切り替えを可能にする。アイドル状態のブロックは、レジスタなどのSRAMデータを保持できる限界のリテンション電圧にまで落としてリーク電流を抑える。パワーゲート(PG)はGPUに分散したPGドライバを通して、信頼性の高いウェイクアップ機構で制御する。

GPUの動的な周波数と電圧の制御とスリープ、パワーゲーティングの制御の概念図

IVRの導入でユニット毎の電圧の切り替えが可能に

 従来のIntelの設計では、GPU全体に対してIVRから単一の電圧(Vgpu)で電力が供給されていた。下のスライドの左の図のような形だ。それに対して、今回の設計では、GPUの中の演算ユニットであるEUと、そのほかのユニットには個別の電圧で電力が供給される。スライドの右の図のようになる。それぞれ独立したIVRが割り当てられる。

新設計の電力供給の概念図

 従来の実装の場合は、コンピュートインテンシブのタスクの場合、EUの負荷が高まり、その結果、GPU全体の電圧が高く遷移し、クロックはPLLのリロックで高クロックに切り替えられる。そのとき、EU以外のユニットは負荷が低くても、EUと同電圧、同クロックに押し上げられ、GPUコア全体の消費電力が上がってしまう。

従来の実装でのコンピュートインテンシブタスクの場合の電圧と周波数

 それに対して、EUとほかのユニットを個別に周波数と電圧制御する場合は、より柔軟になる。EUの電圧だけが負荷に応じて引き上げられ、EUの動作周波数は通常周波数の2倍に切り替えられる。個別に応答性の高いIVRを実装することで、電圧の引き上げを短時間に可能とする。

ISSCCで発表された独立した電圧周波数切り替えの概念図

 また、周波数は倍速へと切り替えることで、PLLのリロックを不要とする。Intelはこれを「EU Turbo(EUターボ)」と呼んでいる。ベースクロックを2xで供給し、通常時はそのクロックを半分にして供給、ターボ時には本来の2xクロックに切り替える。結果として、負荷の上下に迅速に応答する電圧/周波数の切り替えが可能となる。

EUへの倍速クロック供給

 逆に、EUが短時間のストールに入ったときは、EU部の電圧をリテンション電圧に落として、クロック供給を止めスリープ状態にする。従来は、クロックゲート時に電圧を落とすことができなかったが、ISSCCの実装ではEUのIVRが独立しているため、EUの電圧をSRAMが保持できる下限の電圧に落として電力を削減できる。

リテンティブスリープ

 さらに、EUそれぞれに個別にIVRを設置することで、動作できる最低電圧Vminのばらつきを調整することもできる。プロセス自体のばらつきだけでなく、温度によるばらつきもあるが、IVRで動的に各ユニットそれぞれにVminを調整できる。そのため、Vminをユニット毎に最低の電圧にすることができる。

ブロック単位のVminの調整

2種類のIVRをGPUに統合

 今回の試作チップのIVRの特徴は、2種類の異なるVRを統合したハイブリッド設計を取ったことにある。Intelが以前から導入していた「Switched Capacitor VR (SCVR)」だけでなく、「Digitally Controlled Low Dropout(DLDO)」を併用している。2種類のIVRによって、幅広い電圧レンジにわたって高い電圧変換効率を実現するという

DLDOとSCVRの2種類のIVRのハイブリッド設計

 入出力間の電位差が小さな場合に有効なDLDOを通常の動作時に使う。1.15Vの入力電圧(Vin)に対して、0.785V~1.11V程度の出力電圧(Vout)。細粒度の制御はDLDOをベースとする。MIMキャパシタを内蔵するSCVRは、出力電圧が0.3V~0.7Vと低い場合に使う。入力に対する出力の電位が3:2、2:1、3:1の比率になる。

DLDOとSCVRの2系統のIVRとその電力効率

 EU内部では、SCVRが6タイル配置されている。そして、DLDOはEUの中央に脊髄のようにコントローラが配置され、DLDOで制御されるパワーゲート(PG)がEU全体にチェッカーボードパターンで配置されている。1,400以上のPG配置となるという。

DLDOの統合

 新設計の12 EUに対して、EUのワークロード占有率が54%のケースでは、EUターボの性能向上は最大40%、平均37%になるという。100%のEU占有率のときは、EUターボによって、ベースラインより最大32%、平均29%の電力低減が可能になるという。また、EUターボを使ってEUの動作周波数を引き上げつつ、一部のEUをパワーゲートすることで、電力低減と性能向上を実現できる。

EUターボによるパフォーマンスゲイン
EUターボによる電力低減
EUターボとゲーティングの組み合わせの例

 今回Intelが発表したプロトタイプGPUは、製品化に向かうといったレベルではない。しかし、Intelのプロセッサに対する電力制御の設計の方向性が見える点では興味深い。

 Intelは、IVR実装に継続して真剣に取り組んでおり、Haswell世代より進んだ設計を試みている。それも、CPUだけでなく、GPUコアにもおよぼそうとしている。Intelの省電力制御は、じつはIntelの見えない強みであり、AMDが急速に追い上げている部分でもある。今後の進化が注目される。