全国高校eスポーツ選手権運営の舞台裏。P100(GP100)」を発表した。次世代GPUアーキテクチャ「Pascal(パスカル)」ベースのGPUコンピューティング向け製品だ。前回のレポートで説明したように、Pascalは、GPUマイクロアーキテクチャ、プロセス技術、メモリ&パッケージ技術、プロセッサ間インターコネクトの全ての面で技術的に飛躍した画期的なGPUとなっている。基調講演では、PC向けのメインストリーム向けと見られるPascalベースGPUもチラ見せされ、Pascalアーキテクチャが幅広いGPUラインナップで投入されることも示唆された。P100のNVLinkボードPascalはGPU内部のマイクロアーキテクチャが、前世代の「Maxwell」から刷新されている。一言で言えば、GPUコンピューティング重視路線に戻ったマイクロアーキテクチャだ。NVIDIAのGPUコンピューティング戦略に、ブレがないことが明らかになったGPUだ。どちらかと言えば、PCグラフィックスやモバイルに寄ったマイクロアーキテクチャとなっていた。当初はNVIDIAは、GPUコンピューティング市場ではその前の世代のKeplerを継続し、グラフィックス市場をMaxwell主導へと並列させるつもりだったと推測される。計算精度の要求が低いディープラーニングの勃興で、MaxwellもGPUコンピューティング市場に投入したことで、NVIDIAの戦略がやや分かりにくくなっていた。MaxwellでFP64を犠牲にしてFP32を強化したのは、同じ28nmプロセスノードで、性能をアップさせなければならない、という制約があったからだ。トランジスタが縮小しないため、何かを犠牲にしない限り、FP32の性能を伸ばすことができなかった。FinFETプロセスに移行したPascalでは、使うことができるトランジスタ数が大幅に増えるため、そうした制約がない。そこで、NVIDIAは、Pascalではマイクロアーキテクチャを刷新し、FP64性能をFP32の2分の1のバランスに一気に引き上げた。P100のFP64性能は25倍にもなる。K40(GK110)と比較しても3倍の性能だ。Computing)用途にも十分に耐えられるマイクロアーキテクチャとなっている。言い換えれば、NVIDIAにとっては3年半振りの、本格的なHPC向けTeslaの更新となる。Multiprocessor)と呼ばれるクラスタにまとめている。Block)に分割されている。プロセッシングブロックは、warpスケジューリングと命令発行、レジスタを共有するブロックで、CPU的にはコアに当たる。warpはNVIDIA用語での論理ベクタを示し、32エレメントで構成される。従来のGPU用語で言えば、分岐グラニュラリティがwarpだ。Thread)と呼んでいる。warpの32スロットの命令ストリームもスレッドと呼ばれており、1warpが32スレッドの構成となる。SMのブロック図PDF版はこちらMaxwellとPascalのマイクロアーキテクチャには共通性も強い。Unit:SFU)、2命令発行の命令ユニット、レジスタを含む。ユニット、SFUは超越関数などを実行するユニット、ロード/ストアはメモリからのデータの読み出し/書き込みを制御する。SMの構成は、PascalとMaxwellで大きく異なる。SMを半分に切ったような構造となっている。CUDAコアが合計128個の構成だった。CUDAコアが合計64個の構成となっている。SMでは、4個のプロセッシングブロックで96KBのシェアードメモリと命令キャッシュを共有する仕組みだった。SMでは粒度が下がり、2個のプロセッシングブロックで64KBのシェアードメモリと命令キャッシュを共有している。一言で言えば、リソースの共有の比率が減り、個々のプロセッシングブロックが、より多くの共有リソースと共有リソースの帯域を使えるようになった。プロセッシングブロック当たりのシェアードメモリの量はMaxwellが24KBに対してPascalが32KBだ。シェアードメモリ帯域は2倍になっている。MaxwellからPascalで、メモリ階層自体はあまり変わっていない。SMの構成PascalとMaxwellのメモリ階層PDF版はこちらPascalとMaxwellとも、各プロセッシングブロックの命令発行は2命令/サイクルで2命令は同じwarpから発行される。前回の記事で説明したように、PascalはMaxwellより、インフライトで立ち上げることができるwarp数は倍増しており、その分、より多くの命令を充填することができる。それに対応して、レジスタファイルもMaxwellより倍増されている。ちなみに、このブロック図はGPUコンピューティングについてのブロック図であり、グラフィックスでは多少表現が異なる可能性がある。Maxwellでは、SM毎にジオメトリ演算の固定機能ユニットが付属していた。頂点フェッチやテッセレータ、ビューポイントトランスフォームなどだ。PascalではSMが2個のプロセッシングユニット構成になるため、個々のSM毎にジオメトリユニットが付くとバランスが崩れる。(TPC)」クラスタを構成すると推測される。(TPC)の推定図PDF版はこちらスペック表にもPascalのTPCは2SM構成で記されている各ブロック毎に16ユニット相当のFP64性能PascalのSMでは、演算ユニットが大幅に強化された。Maxwellでは、FP64はSM当たり4命令/サイクル、つまり、1つのプロセッシングブロック当たり1ユニット相当のFP64性能だった。FP32に対してFP64性能は32分の1だった。それに対して、Pascalでは、FP64はFP32の2分の1の性能へとジャンプアップした。CUDAコアが図上で明記された。実際には、FP64とFP32は部分的にリソースは共有すると見られる。FP64は32スレッドのwarp命令を2サイクルに1命令発行となるため、warp命令を1命令/サイクルのFP32の半分のスループットとなる。CUDAコアとして描いている。ユニットとして描いている。左がPascalのプロセッシングブロック、右がMaxwellのプロセッシングブロックPDF版はこちらまた、Pascalでは、パックドFP16がサポートされた。CUDAコアで実行され、FP32と同じスループットだった。Maxwell世代なら、1プロセッシングブロック当たり、FP32とFP16ともに、32エレメント/サイクルだった。Data)型のFP16がサポートされた。そのため、32個のCUDAコアで、各サイクル32エレメントのFP16演算が可能となっている。クドFP16PDF版はこちらただし、このFP16は、SIMD型のパックド(SIMD)演算であるため、FP32やFP64のように、それぞれのエレメントに対する命令が異なる方向に分岐した場合に、見かけ上分岐したように処理するプレディケーションは行なうことができない。ある程度使い方が限定される。FP16を多用するディープラーニングの場合、分岐しないため、パックドFP16を有効に使うことができる。X1」のMaxwellコアで最初に採用されている。SIMD型のFP16フォーマットの導入パックドFP16の導入によって、PascalのFP16の性能は激増した。P100のスペックではFP16は21.2TFLOPS。M40の7TFLOPSに対して3倍だ。P100は10.6TFLOPSと1.5倍にしか上がっていないため、NVIDIAはマーケティング的にはFP16の性能を前面に押し出している。K40であるため、PascalでFP32の性能もKeplerの4.3TFLOPSから2.47倍に上がる。3部フォーマットからなる。23-bitのフォーマットだ。ダイナミックレンジは2の40乗。number)のハードウェアサポートもある。これがソフトウェア処理となると、性能が大幅に落ちるケースが出る。FP16は、GPUにとって新しくて古いフォーマットだ。グラフィックスで、整数から浮動小数点に移行する際に、データ量を抑えるためにFP16が導入され、盛んに使われた。グラフィックスでは現在も使われているが、同じくデータ量を抑える目的でディープラーニングにも採用が進んだことから、急に脚光を浴びている。FP16性能は、GPUアーキテクチャの新しい焦点となっている。NVIDIAがPascal(パスカル)をディープラーニングに向けて作ったと主張する根拠の大きな部分は、このFP16のサポートにある。マイクロアーキテクチャが一新されたPascalだが、それ以上に変わったのは、メモリとパッケージング、そしてインターコネクトだ。Expressボードではなく、NVLinkボードで提供される。メモリはスタックドのHBM2だ。このHBM2が、Pascalの強力な武器であると同時に泣き所となっている。P100の需要に追いつかないためだ。次回は、Pascalのインターフェイス回りをレポートしたい。