真のグラフィックス革新をもたらすTuringアーキテクチャ 「2006年にCUDA(とGeForce 8800を)導入して以来の最大の飛躍だ」。 NVIDIAのジェンスン・フアン氏(Founder and CEO, NVIDIA)は、カナダのバンクーバで開催されたCG学会「SIGGRAPH」の基調講演で、新グラフィックス向けGPUアーキテクチャ「Turing」をこう表現した。Turingは、NVIDIAのグラフィックス製品(GeForceとQuadroブランド)に向けた新GPUだ。そして、これまでにない革新的なグラフィックス製品である。 NVIDIAは、現在の3DグラフィックスGPUが登場して以来のレンダリングパイプラインを、Turingで変革しようとしている。伝統的なラスタライズ式のグラフィックスに加えて、レイトレーシング(Ray Tracing)、さらに深層学習ベースのレンダリングテクニックを統合したハイブリッドなレンダリングを実現する。レイトレーシングまでを、ハードウェアでアクセラレートすることでリアルタイムグラフィックスで現実的な性能に引き上げる。 10年に一度の飛躍といった謳い文句は、メーカーの誇大なマーケティングトークのように聞こえる。しかし、今回は本当だ。レンダリングパイプラインの本質的な変革が見えている。フアン氏は、GPUコンピューティングの導入以来の変革と位置づけているわけだが、実際には、リアルタイム3Dグラフィックスが現在のシェーダグラフィックスになったDirectX9世代以来の改革と言ってもいい。その意味では、2002年以来の改革となり、15年に1度の変わり目となる。 ハイブリッドなレンダリングモデルも、今回が初めてのコンセプトではない。NVIDIAは2010年頃からこの構想を語っている。しかし、これまでは現実的なビジョンではなかった。それは、ハードウェアとソフトウェアが追いついていなかったからだ。レイトレーシングのアクセラレーション、深層学習のグラフィックスへの適用などが、Turingのタイミングまでそろわなかった。満を持して、NVIDIAはハイブリッドレンダリングを本格的に導入する。NVIDIAが発表したNVIDIA RTXのソフトウェアスタックも、このための布石だったことがわかる。

レイトレーシングではインタセクションとBVHトラバーサルをアクセラレート NVIDIAは今回、Turingアーキテクチャのプロフェッショナルグラフィックス製品「Quadro RTX」をSIGGRAPHで発表した。Quadro RTXの最大のポイントは、シェーダプロセッシングだけでなく、ほかのプロセッシング機能を付加したことだ。シェーダのCUDAコア(FP32積和算ユニット)の個数は4,608個で、演算性能はFP32で16TFLOPS。深層学習のテンサーコア(Tensor Core)の性能はINT4の場合500TOPS。そして、新しいレイトレーシングアクセラレータ「RTコア(RT Core)」は、10 Giga Rays/sとなる。また、マルチGPU接続のために、NVLinkを2リンク備える。 Turingの世代でなんらかのレイトレーシングの支援ハードウェアを搭載することは予想されていたが、ここまでの性能は予想を超えている。10 Giga Rays/sという数字は凄まじいのだが、数字がピンと来なくても、デモを見ると一目瞭然だ。Turingは、今までのGPUではリアルタイムに動かすことができなかったレイトレーシングを、伝統的3Dレンダリングと同様にスムーズに動かす。 RTコアの概要は、まだ明らかにされていない。しかし、スライドには「レイ･トライアングル･インタセクション(Ray Triangles Intersection)」と、「BVHトラバーサル(Bounding Volume Hierarchy Traversal)」とある。レイトレーシングでは、バーチャルな視点からの光線(レイ)を逆に辿るが、そのさいに、レイとポリゴンの交差を判定する必要がある。その処理が重いが、インタセクションのハードウェア化でそれが高速化されることになる。また、空間を階層化することでトラバーサル(Traversal)を効率化するBVHも、ハードウェアで管理されると見られる。 これらの要素は、レイトレーシングで処理量の多い部分をアクセラレータで処理することを意味しており、NVIDIAが本格的なレイトレーシングアクセラレータを実装したことがわかる。10 Giga Rays/sというレイトレーシングスペックのポイントは、これまでレイの処理数をギガの単位で測るチップがなかった点にある。この数字が多ければ、一定時間の間に1ピクセルあたりつき飛ばすことができるレイの数が多いことを意味している。Quadro RTX版のTuringのケースでは、リアルタイムレイトレーシングに十分以上のスペックだ。 NVIDIAの自社比では、リアルタイムレイトレーシングでは、TuringはPascalの6倍高速だという。6倍だけと思うかもしれないが、これはトータルの処理時間で比較したものだ。また、深層学習ベースのDLAAを含んだ時間となっている。ちなみに、この比較は、MicrosoftのDirectX Ray Tracingでの比較となっており、MicrosoftがいきなりレイトレーシングAPIを持って来た理由がTuringにあったことをうかがわせる。

新設計のSMにカスタマイズされたテンサーコアを内蔵 強力なRTコアを備えたTuringアーキテクチャ。半導体チップとしての全体像も非常にインプレッシブだ。NVIDIAのグラフィックス向けの現行の最高峰チップはPascalアーキテクチャの「GP102」。TSMCの16nmプロセスでダイサイズは471平方mm、118億トランジスタ。それに対して、Turingは12nmプロセスでダイは754平方mm。トランジスタは186億。GPUコンピューティング向けの最高峰であるVolta GV100に迫る超巨大チップだ。 シェーダのCUDAコア(FP32積和算ユニット)の個数は4,608個で、演算性能はFP32で16TFLOPSなので、動作周波数のブーストは約1.7GHzであることがわかる。SM(Streaming Multiprocessor)が64個のCUDAコアを備えているとすると、SM数は72となる。 ただし、SMは新設計となっており、浮動小数点演算ユニットと整数演算ユニットを並列に動作させることが可能になっている。そのため、シェーダのピーク性能は16TFLOPSプラス、整数演算が16TIPS(Tera Integer operations Per Second)となる。SM内の命令イシューとレジスタアクセス帯域が拡張された可能性がある。 Turingはグラフィッックス向けダイとしては初めてテンサーコアを搭載した。テンサーコアのサポートする演算制度はFP16とINT8、INT4。より推論寄りとなり、8-bit整数と4-bit整数がサポートされた。これは、グラフィックス向けGPUのテンサーコアのスタンダードになるのかもしれない。 INT8とINT4ではSIMD(Single Instruction, Multiple Data)となり、演算性能はそれぞれFP16の2倍と4倍となる。FP16で125TFLOPS、INT8で250TOPS(Tera Operations Per Second)、INT4で500TOPS。この数字は、CUDAコアに対するテンサーコアの比率がVoltaアーキテクチャから変わっていないことを示している。Voltaをベースに拡張した可能性が高いと見られる。

レイトレーシングに向いたメモリ回りのスペック メモリはGDDR6となり、転送レートは14Gbps、メモリインターフェイスは384-bit幅でメモリ帯域は672GB/s。GDDR6になったことで、GDDR5Xに対してメモリアクセスグラニュラリティ(粒度)が半分になる。これは、メモリチャネルが従来の半分の幅になるからで、GDDR6では1チップが2メモリチャネルとなる。メモリ容量は最大で48GB、これはGDDR6では16Gb容量のチップが量産されているからだ。また、オンダイでL2キャッシュを、GPUとしては多めの6MB搭載する。 メモリ回りのスペックも、レイトレーシングに有利となっている。レイトレーシングでは、レンダリングしなければならない3D空間が広がるため、より大きなメモリが必要となる。また、メモリアクセスパターンがより細かくなるケースがありうるため、メモリアクセスグラニュラリティが小さいほうがいい。キャッシュも効きやすいケースが出るため、キャッシュ容量も効いてくる。 NVIDIAはチップ間接続ファブリックとしてNVLinkを開発したが、TuringにはNVLinkが2リンク搭載されている。1リンクで50GB/sの双方向帯域で、合計100GB/sの帯域となる。Quadro RTXには、NVLinkコネクタが装備されており、NVLinkブリッジを介することで2つのカードを100GB/sの帯域で接続できる。ホストとの接続は従来どおりPCI Expressだが、GPU間のダイレクトリンクがNVLinkになり高速化される。現在は、2 NVLinkで2カードの接続だけがサポートされている。NVLink経由でメモリをシェアすることで、2枚のカードによるシステムのメモリ容量は96GBの計算となる。 ディスプレイ回りでは8K DisplayPortのサポートなどのほか、「Virtuallink」のサポートが入った。おもにVR向けに、USB type-C経由でのビデオ出力と制御の1本化を可能とする規格だ。そのために、USB type-CのPHYをダイに載せている。