レイトレーシング領域に踏み込むRTコア
Turingアーキテクチャの最大の売りは、リアルタイムレイトレーシング機能だ。現実の世界に近い映像をコンピュータで生成するには、ポリゴンで構成されたオブジェクトが、どんな風に見えるかを必死に計算して求める。
視点の位置からあるポリゴンが画面のどこに投影されるかを計算し、色や明るさ等を計算する「ラスタライズ法」と、視点からレイ{仮想的な光)を放ち、それがどのポリゴンに当たるか、さらにその反射した先にどんな光源があるかを調べて描画する「レイトレース法」の2つがある。前者は計算量が少ないためPCゲームはもちろん映像制作でも広く使われてきた。
それに対し後者でちゃんとした映像を作るには、無数のレイを投げ続ける必要がある。計算コストがあまりにも重いため、リアルタイムで処理はできなかったのだ。
Turingに搭載されたRTコアは、この仮想的なレイを投げて衝突判定を行う処理を専門に行う。これまではシェーダーでGPGPU計算をして処理するしかなかったので、この一番計算コストのかかる部分を専用ハードにまかせてしまおうというのがRTコアの狙いだ。
ただ、RTコアはレイトレーシングにおける全て処理を実行できる訳ではないし、Turing自体もラスタライズ法とレイトレース法は併用することが前提になっている。
「視点から見えない所にあるオブジェクトの映り込み」「光源の位置や形、色等の効果を考慮した自然な影」といった処理はラスタライズ法で実装するのは計算コストがかかる上に面倒なのだが、こういう部分をレイトレーシングに投げてしまうことで、いままでシェーダーテクニックを駆使して描画させていた映像が、ぐっとシンプルに表現できる。そして得られた映像のリアリティーも高いというわけだ。
このリアルタイムレイトレーシングの機能を型番の「RTX」なのである。RTXは様々な階層で構成されているが、注目すべきはドライバ層の部分にマイクロソフト版のリアルタイムレイトレーシング実装である「DXR」がすでに入っていることだ。つまりNVIDIAは、次世代PCゲームグラフィックスを体験し、もっと使ってもらうためのGPUとしてTuringを放ったとも言える。
ゲーム側のリアルタイムレイトレーシング対応も「RTX対応の有無」という形で表せる。直近では「Shadow of the Tomb Raider」「Battlefield 5」「Metro: Exodus」「Assetto Corsa: Competizione」等が挙げられているが、ここからどうRTX対応ゲームを増やしていくかがポイントになるだろう。
AIも活用するためのTensorコア
TuringではRTコアとは別にTensorコアも搭載されている。TensorコアとはVoltaで初めて実装された回路で、行列同士の掛け算、特にFP16のテンソル演算を超高速で実行することができる。深層学習に向いた回路ではあるが、なぜゲーミング向けGPUにTensorコアを付けたのか?
答えはNVIDIA自らが出している。レイトレーシングで映像を作る際、投げるレイの数が十分でないと、ノイズの非常に多い点描のような映像になる。だがAI、もっと言えばディープラーニングを使えばノイジーな映像から、キレイな絵を生成することができる。同様にアンチエイリアスもディープラーニングを利用してより低計算コストで高い効果が得られる。
ここで注意したいのは、TuringのTensorコアはこれらの処理のための学習をする側ではなく、学習データをもとにデータを処理するエッジAI部分を担当するためのものだ。RTコアとTensorコアは無関係のように見えるが、実は緊密につながっているのである。