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

アポロ計画並みとまで言われたTuring「RTコア」の開発プロジェクト

Bill Dally氏(Chief Scientist and SVP of Research, NVIDIA/Professor(Research), Stanford University)

リサーチGPUのプロジェクト「Einstein」

 「Einstein(アインシュタイン)」は、製品化されなかったNVIDIAのリサーチGPUプロジェクトだ。Einsteinは、実際の製品としてはVolta(ボルタ)アーキテクチャに受け継がれた。一方の「TTU」はNVIDIAのリアルタイムレイトレーシングハードウェアの開発プロジェクトだ。TTUは、実際の製品ではTuring(チューリング)アーキテクチャの、レイトレーシングアクセラレータである「RTコア」になった。

 米サンノゼで開催されているNVIDIA主催のGPUコンピューティングカンファレンス「GTC(GPU Technology Conference) 2019」に合わせて行なわれたNVIDIAのリサーチプロジェクトの説明会で、同社のリサーチ部門を率いるBill Dally氏(Chief Scientist and SVP of Research, NVIDIA/Professor(Research), Stanford University)は、EinsteinとTTUについて次のように説明した。

 「(リアルタイムレイトレーシングについては)はじまった頃は“ムーンショット(moonshot)プロジェクト(遠大な目標の計画という意味)”と呼んでいた。何年か前に『Einstein』というリサーチGPUがあった。Einsteinは、Voltaに変化(morph)して大成功した。

 そのリサーチの後にリアルタイムレイトレーシングを現実にしようというプロジェクトが立ち上がった。これは、グラフィックスグループと(GPU)アーキテクチャグループのメンバーで立ち上げたプロジェクトだった。社内ではこれを『TTU』と呼んでいた、Tree Traversal Unitの意味で、これがTuringの「RTコア」になった」。

 説明のなかに出てくるEinsteinは、過去にNVIDIA GPUのコードネームとしてウワサが流れた名前の1つだ。NVIDIAは、Voltaで、IDのベクタプロセッシングユニットをベースとしているGPUに、マトリックス同士のプロセッシングユニット「テンサーコア(Tensor Core)」を組み込むという荒技をやってのけた。その道程には、リサーチレベルでアーキテクチャの検討があったことがわかる。

NVIDIAがVoltaから導入したテンサーコア

パイプドリームではなかったリアルタイムレイトレーシング

 Dally氏の説明からは、Turingで加わったレイトレーシングアクセラレータハードウェアは、時系列ではVoltaへと変化したEinsteinのリサーチ後に立ち上がったことがわかる。

 NVIDIAは、レイトレーシング自体の研究はかなり前から行なってきたが、実際のアクセラレータハードウェアの開発は、Einsteinの後なので急ピッチで行なわれたことになる。

 “ムーンショット”という単語は、文字どおり月に届かせるような困難な目標のことを指す。アポロ計画並みの挑戦といった意味合いだ。

 つい数年前も、元Apple ComputerのCEOだったJohn Sculley(ジョン・スカリー)氏が、「Moonshot!」と題した回顧録を出版して話題となった。スカリー氏は、困難だが、達成するとゲームチェンジとなるチャレンジをムーンショットと呼んでいた。

 リアルタイムレイトレーシングも、難度はきわめて高いものの、実現するとゲームチェンジ(根底からの革新)をもたらす技術という意味で、ムーンショットと呼ぶのは正しいかもしれない。

TuringアーキテクチャのSM(Streaming Multiprocessor)構成
PDF版はこちら

 リアルタイムレイトレーシング実現の難度については、NVIDIAは開発者ブログの開発者インタビューでも説明している。今回のリサーチ内容の発表に合わせて公開されたブログ「Ignacio Llamas Interview: Unearthing Ray Tracing」だ。

 このIgnacio Llamas氏(Director of Real Time Ray Tracing Software at NVIDIA)のインタビューでも、リアルタイムレイトレーシングをすぐに実現するのは無理だと考えていたことがわかる。

 ブログのなかでLlamas氏は「2018年に(リアルタイムレイトレーシングの)ハードウェアとソフトウェアを投入するというのは、10年前なら“パイプドリーム(大風呂敷)”だった」と語っている。

 ちなみに、このパイプドリームという表現は、NVIDIAには因縁がある。NVIDIAが15年前にGeForce FX 5800(NV30)を出したときに、8ピクセルパイプだと説明していた。

 しかし、実際には、32-bit浮動小数点演算では4パイプであり、それ以外の命令を並列させたときに合計8パイプになるとカウントしていた。そのため、その当時ライバルだったATI Technologiesに、パイプ数の夢想とひっかけて「NV30はパイプドリーム」だと揶揄されたことがあった。

レイトレーシングユニットは元はTTUという名称

 Turingに組み込まれたレイトレーシングユニットは、開発段階では、TTU(Tree Traversal Unit)という名称だった。この名称は、発表時の名称「RT Core」よりも、ユニットの実態を、より正確に表している。

 RTはもちろんレイトレーシングの意味だが、実際のRTコアはレイトレーシングのフローのなかで、レイを伸ばす「トラバーサル(Traversal)」とレイとオブジェクトの交差を判定する「インターセクションテスト(Intersection Test)」しかやらないからだ。

 そして、RTコアのアーキテクチャでは、トラバーサルは3D空間のオブジェクトをツリー構造で管理するバウンディングボリューム(BVH)をサポートする。

 ツリートラバーサルユニットというコードネームは、実際のハードウェアの機能をそのまま表している。

 トラバーサルのための専用ハードウェアがRTコアの実像と言っても、それは理にかなっている。レイトレーシングのフローで、処理が重くハードウェア化の効果が大きいのは、トラバーサルの部分で、NVIDIAにかぎらず、ここをハードウェア化するのが一般的となっている。

上がラスタライズのレンダリングパイプ、下がレイトレーシングのパイプライン
専用ハードウェアを持たない場合はレイトレーシングの処理に数1,000命令が必要となる
PDF版はこちら
トラバーサルとインタセクションテストをハードウェア化すると処理はぐっと軽くなる
PDF版はこちら
RTコアはジオメトリデータをツリー構造で管理するBVHをサポートしている

ゲームエンジンではUnreal Engineが先陣を切ってサポート

 NVIDIAは、GPUコンピューティングのカンファレンスであるGTCでも、リアルタイムレイトレーシングを強く押し出している。GTC初日の基調講演でも、Jensen Huang(ジェンスン・フアン)氏(Founder and CEO, NVIDIA)は、1番目にレイトレーシングに紹介。実車の画像とレイトレーシングで生成した車の画像を並べて、GTC参加者に見分けがつくかどうか試させた。

実車映像とレイトレーシングで生成した映像。右がレイトレーシング
Turing GPUアーキテクチャの概念

 また、RTXのレイトレーシングのサポートでは、ゲームエンジンのサポートが本格化したことを強調。Epic Gamesが「Unreal Engine 4.22」でサポートするほか、Unity Technologiesの「Unity」もサポートするという。

 ゲームエンジンの主流2社がサポートすることになる。ちなみに、ほかのゲームエンジンメーカーではCrytekがGTCと同時期に開催されたゲーム開発者向けカンファレンス「GDC(Game Developers Conference)」で、AMDとリアルタイムレイトレーシングのデモを行なっている。

 さらに、NVIDIAは、映画制作でのレンダリング工程にRTXが食い込んだことも大々的に発表している。

サポートが広がりつつあるレイトレーシングを統合したNVIDIAのRTXプラットフォーム
レイトレーシングが必須である映画などのコンテンツ制作にもRTXサーバーが浸透しはじめている
RTXをレンダリングスタジオのツールと連携させるOmniverseコラボレーションを始動