1カ月もっと見るもっと見るもっと見るもっと見る最新記事Excelの「しましま」ワザ3選。ストレージ運用のコツイマドキのHDDの復旧方法。Watch“悪役はiPhoneを使えない”。全国高校eスポーツ選手権運営の舞台裏。980/970(GM204)」を発表した。最大2,048個のCUDAコア(浮動小数点積和算FMADユニット)を備え、ベースクロックで4.6TFLOPSを叩き出す。550ドルクラスのハイエンドGPUとしては、極めてパワフルなGPUだ。その上で、効率の高いマイクロアーキテクチャに変えることで、TDPは165Wに抑えた。性能/電力は、前世代のKeplerの同クラスGPUと比べて約2倍近い。GM204の投入で、NVIDIAはいよいよ新世代Maxwellを“本格的”に市場に出すことになる。Ti/750(GM107)」でMaxwellアーキテクチャを導入しているからだ。GM107と今回のGM204では、GPUの規模が違う。GM204の概要PDF版はこちらGM204のブロックダイアグラム上はGM204の全体構成だ。Cluster)」で構成されている。Multiprocessor)を含む。SMは合計16個で、各SMは128個のCUDAコアや8個のテキスチャユニットなどを備える。7Gtpsをサポートする。それに対して、GM107は下の図のように、1個のGPCに5個のSMの構成で、メモリインターフェイスも128-bitだった。GM107の概要PDF版はこちらしかし、GM204は、単にGM107を大構成にしたGPUではない。アーキテクチャ面で多くの新技術が加えられており、同じMaxwellでも、アーキテクチャ的に全く別物となっている。グラフィックス専用ユニットを大幅に強化したGM204Maxwellでは、GM107と比べると、グラフィックス機能の面で拡張が大きい。目立つのは、これまで多かったシェーダ実装(=ソフトウェア実装)のグラフィックス機能拡張ではなく、固定ハードウェアの拡張を伴う機能拡張が多い点だ。言い換えれば、グラフィックス専用のハードウェア機能を拡張した部分が多いのがGM204だ。Raster」、高効率のピクセルデータ圧縮技術など。Pipeline)やジオメトリパイプライン、ラスタライザといったグラフィックス固定機能ハードウェアの拡張を含む。980/970とは、コアアーキテクチャをMaxwellに変えて性能/電力を大幅に向上しながら、グラフィックス固定機能を各所で拡張したGPUだ。NVIDIAは、現在、最上位のGPUはGPUコンピューティング向けの機能を充実させ、その1つ下のGPUはグラフィックスにフォーカスする路線を取っている。GM204は、後者のGPUであり、NVIDIAのMaxell世代のグラフィックス製品のフラッグシップとなる。ハイエンドグラフィックス&GPUコンピューティング向けの、さらに大きなMaxwellが後に控えていることになる。NVIDIAのKepler/Maxwell世代の各GPUのダイサイズとユニット構成のチャートPDF版はこちらMaxwell世代のグラフィックス向けのフラッグシップ今回は、Maxwellのアーキテクチャを概観し、仕様とアーキテクチャ面での変更にフォーカスしたい。980のコードネームGM204は、多くのことを意味している。GMはグラフィックス製品でMaxwell世代を示す。3桁目の2は2世代目のアーキテクチャを、1桁目の4は性能レンジの製品であることを示している。トップエンドGPUの場合は1桁目が0になる。1桁目が4の製品は、その下の300~600ドルレンジのグラフィックスボード製品向けのGPUとなるのが一般的だ。ちなみに、1桁目が6~9のGPUは、さらに下のメインストリーム&バリュー市場向けとなる。680(GK104)」の後継となる。TITAN(GK110)の後継ではない。演算性能では、GM204はGK110に迫っており、メモリ帯域とテクスチャ性能を除けば両者は非常に近い。ちなみに、1桁目が4のハイエンドGPUはメモリインターフェイスが256-bit、最上位GPUはメモリインターフェイスが384-bitで、これがメモリ帯域の違いの源となっている。MaxwellとKeplerの性能とハイエンドGPUのスペック比較。参考にメインストリームのMaxwellも加えてあるPDF版はこちら上のスペック比較で目立つのは、GPUクラスタであるSMの数が増えたこと。CUDAコアになった。SM当たりのCUDAコアの数が3分の2になり、SMがコンパクトになった。CUDAコアを搭載している。動作周波数はベースが1,126MHzで、ブーストが1,216MHz。ピークで4,612GFLOPS、ターボ周波数では4,980GFLOPSと5TFLOPS近くなる。伸びに対して、GM204のテクスチャユニット数は128でGK104と変わらないが、これはテクスチャはメモリ帯域に縛られるからだ。メモリ帯域は、GK104がGDDR5の6,008Mtps転送レートで192.3GB/secのピークメモリ帯域だったのに対して、GM204は7,000Mtpsで224GB/secの帯域。生のメモリ帯域的にはピークで17%程しか伸びていない。GDDR5技術が、転送レート引き上げの限界に近づいているからだ。特徴的なのはROPで、GM204は64ユニットのROPを備えており、これはGK104の32ユニットどころか、GK110の48ユニットよりも多い。ROPもメモリ帯域に縛られるのに、GM204のROPが大幅に強化された理由は、カラー圧縮技術によってメモリアクセスのデータ量を減らし、グラフィックス時の実効メモリ帯域を引き上げたからだ。NVIDIAは、圧縮技術によって9,300Mtps相当のメモリ帯域になると説明する。計算上のメモリ帯域は297GB/secに達する。ピンク色になっている部分はデータが圧縮されている部分ゲームによって異なるが、Kepler世代より高い17~29%も圧縮率が高くなるGM204でROPが64ユニットになったのは、ROPはメモリコントローラに付属し、8ユニットで1単位となっているため、ROPを増やす場合は8の整数倍でなければ難しいからだ。GK104のDRAMコントローラ当たり8ROPから、GM204では16ROPへと倍加させた。これを1.5倍に留めようとすると、増やす8ROPユニットを2つのDRAMコントローラにまたがる形で配線しなければならず難しい。MaxwellではL2キャッシュが強化された。GM204は2MBのL2を備えており、GK104に比べて4倍となっている。これは、GPUコンピューティングではキャッシュのヒット率が高くなることを意味している。TDPはGM204が165Wで、GK104の195Wより低い。そのため、GFLOPS/TDPはベース周波数で28、ターボ時に30と非常に高い。GK104と比べた場合、ほぼ2倍となっている。公平に言えば、演算ユニット比率が高まるとTDPに対する電力効率は高まる傾向があり、Kepler世代でもGK110は電力効率が20.5と高い。Maxwellで電力効率がKeplerの2倍になったというのは大げさな比較だ。Keplerでの電力効率追求をさらに発展させたMaxwellなぜ、Maxwellは性能/電力が高いのか。さまざまな理由が複合するが、最も大きな要素は、MaxwellではSMのマイクロアーキテクチャが変わった点にある。そもそも、NVIDIAは、前々世代の「Fermi」から、前世代のKeplerに移る時に、性能&面積最適化設計から、性能/電力最適化設計へと切り替えた。ハードウェアベースのwarpスケジューリングの大半をソフトウェア(コンパイラ)ベースへと切り替え、命令ユニットを簡素化した。KeplerではGPUのパイプライン段数をFermiまでの世代より半分に減らして動作周波数を抑え、その代わりにコア(演算ユニット)数の並列性を増やした。KeplerとFermiのアーキテクチャ比較PDF版はこちらKeplerのパイプラインPDF版はこちらしかし、KeplerのSMも、まだ非効率な部分が多かった。Keplerでは4個の命令ユニットから最大8命令をディスパッチするが、命令ユニット間で共有する実行ユニットが多かった。そのため、命令スケジューリングが複雑で、効率よく稼働させることが難しく、ハードウェアも複雑だった。SMは大きく2つに分かれており、それぞれの2分の1のSMに2つの命令ユニットが命令を発行する。KeplerのSMXブロックPDF版はこちらそこで、NVIDIAはMaxwellでは、SMをKeplerから刷新した。ポイントは、SM内部の実行ユニットの稼働率を高めて、より少ない演算ユニットで高効率の性能を得られるようにしたこと。SM自体の構造を階層化とシンプル化することで設計上の効率性を高めたこと。SM自体をコンパクトにして、1個のGPUにより多くのSMを搭載できるようにしたことにある。下はMaxwellのSMだ。最初のMaxwellであるGM107と今回のGM204では、SM自体の構成にも若干違いがあるが、図はGM204のものだ。見て分かるように、MaxwellではSMの内部が4つのサブユニットに明確に分かれた。それぞれが32ユニットずつのCUDAコアを搭載する。Register×16,384)を備える。2個のサブユニットで、テクスチャユニットとテクスチャ/L1キャッシュを共有する。4個のサブユニットで、共有メモリや命令キャッシュなどを共有する。Keplerとの最大の違いは、個々の命令ユニットの下に、実行ユニットが明瞭に分割されたこと。共有する実行ユニットはレイテンシの長いテクスチャユニットだけとなった。CUDAコアは32-wayの構成となった。Keplerでも、当初のNVIDIAの説明と異なり、CUDAコアは32-wayの可能性がある。warpスケジューリングを向上させたMaxwellアーキテクチャMaxwellのSM構成の何が有利かというと、それはwarpのスケジューリングが極シンプルになることだ。Thread)実行するスタイルを取っている。Maxwellの命令ユニットは、warpスケジューラが1つのWarpから1から2命令をピック、それらを実行ユニットにディスパッチする。Maxwellアーキテクチャでは、1命令ユニットに、32-wayのCUDAコアベクトルプロセッサが1個の構成だ。毎サイクル、1個のwarpから1命令をCUDAコアにディスパッチし続けるというシンプルなスケジューリングができる。MaxwellでのスケジューリングPDF版はこちらこれがKeplerの場合、1命令ユニットに対して1.5倍のCUDAコアがある。warpに対する命令を実行する。すると、KeplerのCUDAコアは32-wayの構成かもしれないが、いずれにせよ、命令ユニットはCUDAコアで実行する命令についても並列性を見つける必要がある。Unit(SFU)も命令ユニット間の共有リソースになっていた可能性が高い。Keplerでは、こうした構成のために、命令発行は非常に複雑だった。実行ユニットの構成は、各サイクルに8個のwarp分のスレッドに対する命令を実行できるようになっていた。そのため、スケジューラがフルに命令をピックできなければ、実行ユニットをフル稼働させることができなかった。物理的にも命令ユニット間で共有するユニットは、命令ユニット毎に分かれたレジスタファイルへの接続が必要で、複雑だった。KeplerのCUDAコアが32-wayだった場合は、共有されるCUDAコアは2つのレジスタへのパスを持っていることになる。各GPUの命令実行PDF版はこちらこうした構成から、KeplerではSMの構成は複雑で、実行ユニットの稼働率が悪く、ムダに電力を消費していた。これは、Keplerが命令ユニットに対する実行ユニットの比率を追求して、ゴリゴリに最適化しないとフル稼働が難しい構成を取っていたためだ。それに対して、Maxwellでは、命令発行と実行ユニットの関係を変え、余裕を持たせた。実行ユニットの比率が低いので、稼働率が高くなる。CUDAコアに対する命令発行がシンプルになったことは大きい。warpの演算命令を投げればいいだけなので、効率はよくなる。電力消費を抑え構成をシンプルにするというMaxwellの設計思想は、メモリ階層にも及んでいる。Keplerのメモリ階層では、L1キャッシュは共有メモリとのコンフィギュラブルメモリ構成部分と、テクスチャキャッシュと共通化されたリードオンリーL1の2系統に分かれていた。コンフィギュラブルメモリは、共有メモリとL1キャッシュのサイズを切り替えることができた。Keplerではグローバルロード/ローカルロードのどちらもL2キャッシュから取りこんでおり、L1はバイパスされている。L1キャッシュの用途は、主にレジスタや共有メモリのスピル受けとなっていた。Keplerのメモリ階層PDF版はこちらMaxwellでは、メモリ階層はすっきりと整理され、L1キャッシュはテクスチャキャッシュと共通化された1系統だけになった。コンフィギュラブルメモリはなくなり、単一の共有メモリだけとなり、共有メモリからL1へのスピルもなくなった。その代わり、GM204では共有メモリが96KBへと50%増量(GM107は64KBのままだった)されている。Maxwellのメモリ階層PDF版はこちらNVIDIAがKeplerでL1をスキップするようになったのは、L1アクセスが電力のムダになるとみなしたからだという。GPUの場合、少量のL1にヒットする率は限られている上に、膨大な書き込みが生じる。それをなくすことで、GPU全体の電力の効率化を図った。Maxwellでは、その思想をさらに進めて、L1キャッシュをシンプル化し、再び重要度が高まった共有メモリを強化した。したNVIDIAの設計思想は、電力効率を第1に考えれば正しいが、プログラミングの容易性という点では一歩後退となる。L1が当たっていたFermi世代に対して、Keplerでは再び共有メモリを活用しなければ性能が上がりにくくなり、Maxwellでも積極的な共有メモリの活用が求められる。その一方で、L2は大幅に増量されているため、L2でヒットする確率は高まった。L2はレイテンシが長いため、共有メモリを活用しないとストールなしで回すことが難しくなる。実際には、こうしたSMの構成だけでなく、各所に省電力化の仕掛けがあるが、SMのアーキテクチャ変革の要素は大きいと見られる。結果として、MaxwellではKepler世代より電力効率が大幅に上がっている。かかわらず、TDPを下げながら、性能が上がっている。現在のMaxwellが28nmプロセスに留まっているのには、複雑な事情がある。後の記事で詳しい説明を行なうが、GPUでは次の20nmプロセスに早期に移行する意味があるのは、ハイエンドGPUだけだ。そのため、これまでと比べると、プロセスの移行のペースは非常に遅い。そのために、GPUのダイは大型化している。今回のGM204は、ダイサイズが398平方mmとほぼ400平方mmクラスだ。Intelと比較すると8コアのHaswell-Eの354平方mmよりもまだ一回りダイが大きい。OneのAPUの363平方mmと比べても大きい。同じハイエンドGPUのGK104は294平方mmだったので、35%も大きくなったことになる。トランジスタ数は52億で、GK110の71億に近づいた。GPUのダイサイズ推移PDF版はこちらGPUのトランジスタ数推移PDF版はこちら現在、ロジックプロセスのムーア法則のペースは鈍化しつつある。Maxwellは、本来20nmプロセスだったはずが、半導体技術のトレンドの変化のために、28nmプロセスでのスタートを余儀なくされた。Maxwellで最大のハイエンドGPUは20nmプロセス世代になるだろう。