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

HaswellのGPUコア「Iris」はなぜ強力なのか

GPUコアにIrisをブランディングしたIntel

 Intelの「Haswell(ハズウェル)」世代のGPUコアは、なぜ相対的に強力なのか。Intelは、次世代CPUマイクロアーキテクチャHaswellが内蔵するGPUコアのパフォーマンスを発表した。Haswell世代からGPUコアを強力に押し出すつもりでおり、GPUコアにわざわざ「Iris」というブランド名までつけた。無味乾燥なIntel Graphics XXではなく、Irisブランドにしたことで、IntelのGPUコアに対するイメージも一新しようという動きだ。

 ちなみに、Irisは「眼球の虹彩」で、眼に関係するネーミングだが、コンピュータグラフィックスでは別な意味も持つ。かつて一世を風靡したSGIのグラフィックスワークステーションのブランドが、IRISだったからだ。現在の3DグラフィックスAPIの主軸の1つOpenGLも、もとはと言えばSGIのプロプラエタリAPI「IRIS GL(Graphics Library)」をベースに開発された。Intelが意図したかどうかはわからないが、CG業界にとっては、懐かしい単語だ。

 HaswellのGPUコアは、ブランディングして打ち出す意味があると思えるほど強力だ。従来のIntelグラフィックスに対して、2~3倍のパフォーマンスというだけでなく、最も重要な点は、GPUコアを完全にスケーラブルな構造に作り直したことだ。スケーラブルな構造にして、演算ユニットの数を大幅に増やすことで、グラフィックスパフォーマンスを引き上げた。演算ユニットの数が従来の2.5倍に増えたのだから、パフォーマンスが伸びないわけはない。

 Intelは今回のHaswellのGPU構成だけでなく、将来はもっと拡張したGPU構成を取ることもできる。IntelがGPUコアを強化して行く、その出発点となるのがHaswell GPUコアだ。もっとも、スケーラブル構成のための基本的な仕組みは、実はIvy Bridge(アイビーブリッジ)のGPUコアの時点ですでに実装されており、Haswellのコアはその上で構成を拡張したものとなっている。

 Intelは、自社のCPUまたはチップセット内蔵GPUコアが急激にパフォーマンスを伸ばしていることを誇る。下のスライドはパフォーマンスカーブだ。2006年当時の、Intelがグラフィックスにやる気がなかった頃のGPUコアをベースラインとしているので、75倍と大きな伸びになっているが、過去2世代に対しても倍々でパフォーマンスを伸ばしている。

 IntelがGPUコアのパフォーマンスを伸ばしていることは、次の3つのことを示している。(1)汎用CPUコアのスレッド当たりの性能重視のIntelであっても、ヘテロジニアス(Heterogeneous:異種混合)構成に本気で取り組みつつある。(2)以前のLarrabee(ララビ)系コアを取り込むという方向は完全に捨て去り、代わりに内蔵GPUコアを汎用化して拡張して行こうとしている。(3)GPUコアを拡張する場合の最大の問題であるメモリ帯域問題について解決の目処を立てた。特に、最後のメモリについては、Intelが本気でeDRAMを自社製造して投入する可能性があるため、今、半導体業界の一番の話題となっている。

積和算ユニット数が世代毎に増えて行くIntel

 IntelのHaswell GPUコアは構成によって大きく4階層に分かれる。最小構成のローコストソリューション「GT1」、3倍の構成でグラフィックス性能を強化した「GT2」、7倍の構成の最大規模「GT3」、GT3にキャッシュ用のeDRAMを加えた「GT3e」の4つだ。GT3の構成になると、vec4構成の演算ユニットEU(execution unit)を合計で40個備えている。

 Haswell GPUのこうした構成を、過去2世代のIntel GPUコアと比べると、差は歴然としている。IntelがGPUコアをCPUダイ(半導体本体)に内蔵したのはSandy Bridgeからで、Sandy Bridgeは大規模な構成のGT2と小規模な構成のGT1のバリエーションがあった。Intel GPUコアは4個の単精度演算ユニットを備えたvec4のEUが基本で、Sandy BridgeのGT1は6個のEUで24個の積和算(MAD)演算ユニットだった。Sandy BridgeのGT2は、その構成で演算コアを倍増させた構成となっており、12個のEUで48個のMADだ。

Intelプロセッサ内蔵グラフィックス移行図(PDF版はこちら)

 Ivy Bridgeでも、GT1の構成はSandy Bridgeと同様で、24個のMADのまま。しかし、Ivy Bridgeの最大構成のGT2は16個のEUで、合計64個のMADユニットとなった。また、演算ユニット内部の設計も一新され、全体のスループットが大きく改善された。

 Haswellになると、6 EUで24 MADユニットのGT1と、20 EUで80 MADユニットのGT2、それに40 EUで160 MADユニットのGT3の構成になる。つまり、GT1の演算ユニットの構成は据え置きだが、GT2については16ユニットずつ増やされ、さらにHaswellでは大規模構成のGT3が加わった。

 演算ユニット数だけを見ると、単純に増やしただけのようだが、実際にはアーキテクチャ面でかなりの改良を加えている。GPUコア内部アーキテクチャの変遷を見ると、それがよく分かる。

Sandy Bridgeから進化を始めたIntelグラフィックス

 下のSandy BridgeのGT2の頃は、GPUコアは4-wayのEUを3ユニットずつ束ねた「ロウ(Row)」を基本単位として、4つのロウがグラフィックス固定機能を全て共有する作りになっていた。GT1は、このうち、シェーダコアだけが半分になっている。

Sandy Bridgeのグラフィックス(PDF版はこちら)

 Sandy BridgeのGPUコアは拡張はあまり考慮されておらず、決め打ちの構成で設計されている。簡単に説明すると、上流にまずグラフィックスコマンドをフェッチして発行するコマンドストリーマがあり、その下に固定機能グラフィックスユニット群が並ぶ。Vertex ShaderやPixel Shaderとあるのは、それぞれ頂点シェーダプログラムやピクセルシェーダプログラムを、下の演算ユニット群であるEU群に発行するためのセットアップエンジン群だ。固定機能からディスパッチされたタスクは、スレッドディスパッチで各ロウのEUに対して発行される。

 テクスチャやメディアのサンプラ&フィルタは、EU群で共有されている。EUからの出力は、ROP(Rendering Output Pipeline)に出したり、ストリームアウトで出力するほか、URB(Unified Return Buffer)という、AMDのGPUコアにもあったようなシェーダへ戻すためのメモリにバッファされる。Intelの場合、シェーダからのストリームアウトのバッファを、このURBが兼ねているのかどうかは、分からない。

 次のIvy BridgeのGT2 GPUコアになると、大分構成が変わってくる。まず、GPUコアがハーフスライス(Half-Slice)またはサブスライス(Sub-Slice)と呼ばれる単位に分離された。各ハーフスライスは、テクスチャユニットやL2キャッシュを共有する。また、ハーフスライスの中にピクセルシェーダのセットアップがあり、2階層目のスレッドディスパッチャが配置されている。

Ivy Bridgeのグラフィックス(PDF版はこちら)

 また、グラフィックス固定機能ユニットには、テッセレータハードウェアも加わった。テッセレーションステージのシェーダ発行のためのユニットも加わっている。さらに、新たにL3階層のキャッシュがURBの代わりに加わった。Ivy BridgeのGPUコアの構成は、これだけを見ると、意味がよく分からない。しかし、次のHaswellと比べると意図がよく分かる。

モジュール化したスライスを2倍にしたHaswell

 Haswell GPUコアGT3は、一言で言えば、Ivy BridgeのGPUコアの演算ユニットから下の構造を2重化したものだ。Ivy BridgeのGPUコアは、実はモジュラー化されたユニットの1つであり、Haswellではそのモジュールが2個になった。Ivy Bridgeでの伏線が、Haswellになって生きたとも言える。下のスライドはHaswellのGPUコアの構成で、GT3だとスライスがもう1連伸びている。

Haswellのプロセッサ推定構成図(PDF版はこちら)

 GPUの演算ユニットは、Haswellでも4-wayのEUを基本として構成されている。EUを5ユニット束ねてHaswell GT2/GT3のロウは構成されている。Ivy Bridgeのロウ当たり4 EUから5 EUへと増えた。GPUメーカーは、演算ユニットや実行単位(WavefrontやWarp)の構成時には、4の倍数にすることにこだわるが、Intelはそうした点にあまり頓着しない。GPUメーカーが4の倍数にこだわるのは、ピクセルやテクセルなどを4の倍数単位で扱う方が効率がいい場合が多いからだ。Haswellでは、ロウで共有するサンプラも強化された。モードによっては4倍の効率になったとIntelは説明している。

Haswellのグラフィックス推定図(PDF版はこちら)

 Haswell GPUコアでは、2個のハーフスライスで1個のスライス(Slice)が構成されている。2個のハーフスライスで共有するユニット群であるスライスコモン(Slice Common)も、スライスに含まれている。スライスコモンには、ポリゴンからピクセルに変換するラスタライザや、画面に表示するピクセルを加工するピクセルバックエンドやL3キャッシュ、レンダー/デプスキャッシュなどが含まれる。言ってみれば、スライスは、ディスパッチより前のパイプラインを除いたミニGPUコアのようになっている。スライスの構成は、Ivy BridgeのGPUコアの下半分とほとんど同じだ。

スライス内で共有されるスライスコモン
サブスライスは合計で4つに

 しかし、Haswellでは、このスライスという単位が2重化されている。Ivy Bridgeでは1個のスライスだったのが、Haswellでは2個のスライスに倍増された。明らかに、Ivy Bridgeの時からスライスを増やすことを前提に設計しており、Haswellで実際にスライスが2重化された形だ。各スライスにラスタライザが付属しているため、増えた演算コアに供給するピクセルの生成が追いつかないというラスタライザボトルネックを回避できる。ピクセルシェーダ以外のシェーダのディスパッチは、GPU全体で共有する固定機能ユニットに依存するが、その部分はGT3では強化されたという。また、固定機能ユニット群では、コマンドストリーマの部分にリソースストリーマと呼ばれる機能も加えられて強化されている。

 簡単に言うと、HaswellのGPUコアは入れ子構造で、ロウが2個でハーフスライス、ハーフスライス2個とスライスコモンでスライス、スライスが2個と固定機能ユニットでGPUコアとなっている。この構造は、現在のAMDやNVIDIAのGPUコアの構成に近く、両社のアーキテクチャと同様にスケーラブルだ。

 また、モジュラー構成は、GPUコアの省電力機能とも密接に結びついている。HaswellのGT3ではスライス単位でパワーゲーティングができる。メディアタスクなどで、演算パフォーマンスが一定以下しか必要とされない場合は、2個のスライスのうち、片方をシャットダウンして、リーク電流(Leakage)を抑えることができる。

Haswell GPUの最大のポイントはオンパッケージのeDRAM

 Haswellでは、このようにGPUコアをモジュラー化し、GT3構成でモジュールを増やすことで、演算ユニット数を大幅に増やした。GT3での合計のEU数は40個で、各EUが4-wayであるため、積和算ユニット数は合計で160になる。Sandy Bridgeの最大構成のGT2の64積和ユニットに対して約2.5倍だ。演算ユニットの構成を、AMDのAPU(Accelerated Processing Unit)と比べると下の図のようになる。

HaswellとTrinityの演算ユニット比較(PDF版はこちら)

 単純な演算ユニット数比べなら、Haswell GT3は、TrinityのGPUコアのほぼ半分の規模にまで追いつく。AMDが年内にGLOBALFOUNDRIES 28nmの「Kaveri(キャヴェリ)」を出荷して来ると、数字はまた変わるが、3倍といった数字にはならないだろう。32nmのTrinity/Richlandに対して28nmのKaveriでは、より多くのトランジスタを詰め込むことができるが、GPUコアアーキテクチャがGCN(Graphics Core Next)に変わることで、トランジスタ当たりの演算ユニット数は減るからだ。また、アプリケーションパフォーマンスは、演算ユニット数とは、また別な問題となる。

 演算ユニット数が増えると、増えたユニットにデータをフィードするためのメモリ帯域が必要になる。コモディティのDDRメモリを使わなければならないCPU/APUの弱点はここにある。GPUコアを強化して演算パフォーマンスを高めても、メモリ帯域が制約されていると、メモリフェッチ待ちでコアがストールしてしまう。GPUコアを取りこんだCPU/APUの、メモリ帯域/演算比率は非常に低く、大きな制約になっている。

 この問題を解決するために、Intelはラディカルな手を打つ。よく知られているように、HaswellのGT3構成のモバイル製品ではeDRAMをパッケージに取りこんだ「GT3e(Crystalwell)」構成が用意されている。Intelは、GT3eによって、Ultrabookで、ディスクリートGPUソリューションに対抗しようとしている。そして、このeDRAM自体が、実は、半導体業界での、話題の焦点になっている。それは、Intel自身がeDRAMを開発/製造する可能性が出てきたからだ。eDRAMについては、別な記事で説明したい。

ディスクリートGPUに対しての統合グラフィックスの利点
ディスクリートGPUに対してのHaswellの利点を強調するIntel

(後藤 弘茂 (Hiroshige Goto)E-mail