GeForce RTX 30-Series Tech SessionsでわかったAmpereが超進化した理由
文●加藤勝明(KTU) 編集●ジサトライッペイ/ASCII
2020年09月05日 06時00分
CUDAコアが前世代に比べ2倍以上の増加し、RTコアもTensorコアも刷新されたGeForce RTX 30シリーズ。GeForce RTX 3080は9月17日より販売解禁となる。なお、写真のFounders Editionの国内正式販売はない
2020年9月2日、NVIDIAのCEO、ジェンスン・ファン氏は先日オンラインで開催した「GeForce Special Event」において、既存のGeForce RTX 20シリーズの性能をはるかに上回る(と主張する)「Ampereアーキテクチャー」と、それを採用した「GeForce RTX 30シリーズ」を発表した。非常に多くの内容を40分程度にまとめた超高濃度かつハイスピードなセッションだった。
今回はそのGeForce Special Eventに続き、プレス向けに開催された「GeForce RTX 30-Series Tech Sessions」の内容の内、Ampereアーキテクチャーやその他注目度の高い機能について解説しよう。
NVIDIAが作成したGeForce RTX 30シリーズの“まとめ”的な画像。(1)性能の大幅向上、(2)GDDR6Xメモリー、(4)第2世代RTコア、(5)第3世代Tensorコア、(6)新たな低遅延機能「NVIDIA Reflex」、(7)ゲームのロード時間短縮が期待できる「RTX IO」、(8)8Kゲーミング向けの「RTX 3090」、(9)AIを利用した配信/ビデオ会議支援「NVIDIA Broadcast」、(10)RTXをクリエイティブ作業にさらに活かす、などが語られている
内部データパスが2倍になった内部構造
まずはAmpereアーキテクチャーの概要から見ていこう。冒頭でも述べた通り、Ampereは前世代のTuringからCUDAコアを2倍以上に増やし、さらにRTコアとTensorコアに改良を加えることで、スループットを向上させている。
次に、GeForce RTX 3080全体の大構造を眺めてみよう。AmpereではCUDAコアが倍以上に増えているのが特徴だが、大構造(L2キャッシュ〜コアのクラスター〜メモリーコントローラーなど)はTuringから大きく変化していない。GeForce RTX 2080 SUPERとRTX 3080を比べると、メモリーバス幅が256bit→320bitに拡幅されたぶん、メモリーコントローラーが増えているが、大構造は似たようなものだ。
GeForce RTX 2080 SUPERで使われているTU104コアのブロック図(概念的なもの)。48基のSMのそれぞれに64基のCUDAコアが収まっている。メモリーコントローラーは32bit幅のものが8基なので、バス幅は256bitとなる
GeForce RTX 3080に使われている「GA102」コアのブロック図。SMは68基あり、各SMに128基のCUDAコアが格納されている。SMが10基のブロックと12基のブロックがあるので、すべて12基のブロックで構成された“GA102の完全体”(フルスペック)が今後出てくる可能性は十分考えられる
しかし、コアのクラスターを構成するGPC(Graphics Processing Cluster)の内側に入っている小クラスター、すなわちSM(Streaming Multiprocessor)の構造は大きく変化した。SM1基の中に4つのパーティションがあり、その中にCUDAコアが入っているのは同じだが、Turingでは1パーティションあたりCUDAコアが16基だったのが、Ampereでは32基に増えている。
さらにAmpereではこの32基のCUDAコアを2つのグループに分け、2つのデータパス上に並べている。データパスの1つはTuringと同じようにINT32かFP32オペレーションのどちらかを実行できるが、もうひとつのデータパスはFP32オペレーション専用となる。
この構造のおかげでAmpereのSM内にあるパーティションは、32のFP32オペレーションの実行か、16のINT32オペレーション+16のFP32オペレーション同時実行のどちらかを選択できる。ひとつのデータパス内にINT32とFP32を混在させることはできない。つまり、全部INT32オペレーションの場合はCUDAコア数は実質半減してしまうことになるが、現実のゲームではFP32の処理が圧倒的に多いので、FP32専用のデータバスを用意したことは極めて理にかなった改善と言えるだろう。
また、AmpereではSM1基ごとに設置されているL1キャッシュの容量を128KBに増量している。TuringのL1は96KBなので、ざっと33%の増量となる。
TuringにおけるSMの構造。CUDAコアはINT32とFP32の部分になるが、各々16基ずつあるもののINT32かFP32のどちらかしか同時に使えないため、INT32+FP32でCUDAコア1つとカウントされている
AmpereではFP32専用の部分と、INT32とFP32の共有の部分を別々のデータパスに載せ、同時に処理を走らせられる。ゆえに、CUDAコア数のカウントが単純に倍になっているのだ。L1データキャッシュ(兼共有メモリー)が128KBに拡張されている点にも注目
ちなみに、こちらは大原氏の記事にあるHPC向けAmpere「A100」のSM構造図。コンシューマー向けのAmpereにはないFP64が存在し、INT32とFP32でコアが分かれ、L1キャッシュも192KBと多い
モーションブラー処理もレイトレーシングで高速化
AmpereではRTコアが第2世代に進化し、レイトレーシング性能を大幅に向上しているが、具体的には何が変化したのだろうか?
Turingの時に解説済みだが、RTコアの役割はレイトレーシングの処理において最も計算負荷の高い「光線(レイ)がどのポリゴンに衝突するかの計算」を高速で処理することにある。もう少し細かく言えば、BVH(Bounding Volume Hierarchy)という階層構造を使ってレイが衝突しそうなポリゴンを効率良く絞り込む「バウンディング・ボックス・インターセクション」と、ポリゴンにどう衝突するかを計算する「トライアングル・インターセクション」の2つの処理(これをまとめてBVHトラバーサルと呼ぶ)がRTコアの役目だ。
Ampereの第2世代RTコアでは、トライアングル・インターセクションに手を加えることで、モーションブラーの計算を高速化することが可能になった。動いているポリゴンに対してレイトレーシングのモーションブラーを処理する場合、そのポリゴンが次の瞬間、次の次の瞬間……でレイとどう衝突するか追跡した上で結果を出す必要がある。第2世代RTコアでは、トライアングル・インターセクションの前段でこの処理をハードウェア的に実行できるようになった、というものだ。
モーションブラーがない場合(左)は、単純にトライアングル(ポリゴン)にどう衝突したかを判定するだけ。対して、モーションブラーをかける場合(右)は、そのトライアングルがどう動いたかを考慮して計算する必要がある
モーションブラーをレイトレーシングで実現する場合(右)でも、レイを放ちトライアングルとの衝突を計算するが、ごく短い時間ごとにもレイを飛ばして計算する。図では黄色・緑・青の3回に亘ってレイを飛ばし、その瞬間のトライアングルとの衝突結果から、モーションブラーを作り出している
ただし、モーションブラーはレイトレーシング処理の有無に関係なく負荷が高いため、ゲームではオフにしてしまうことが多い効果のひとつだ。そのため、レイトレーシングでこれを実装されてもゲーマーにはあまりメリットがなさそうではあるが、CGレンダリング目的なら非常に頼もしい進化点ではある。
BlenderのCyclesレンダーでは、レイトレーシングのモーションブラー処理時間が劇的に短縮。グラフのグレー部分はモーションブラーを必要としない部分のレンダリング時間で、緑の部分がモーションブラーの処理時間を示している。グレーの部分はざっと2倍だが、緑の部分は5倍高速になった、と主張している
TensorコアはRTコアとの同時実行が可能に
AmpereのTensorコアは第3世代のものが使われているが、主な強化点はスパースモデリングにも対応した、という点だ。ディープラーニングは多量の学習データが必要だが、十分な量のデータが用意できなければ役に立たない。スパースモデリングはSparse(まばらな)の意味から想像がつく通り、少ないデータから推論するための技法だ。スパースモデリングで処理をする場合、従来のデンスモデリングを使った処理よりも2倍のパフォーマンスが期待できる。ただし、このあたりで筆者の理解を超越してきたので、ここまでとしておきたい。
Ampere(RTX 3080)のTensorコアはTuring(RTX 2080 SUPER)よりもSMあたりのコア数は減っているが、FP16の積和算が実行できる数はTuringよりも大きい。Tensorコア1基あたりで見ると、Turingが64オペレーションだが、Ampere(RTX 3080)はデンスなら128、スパースなら256オペレーションが実行できるという
GeForce RTX 30シリーズを主にゲーミング用途で買う我々にとって、TensorコアはAIを使って低解像度のレンダリングから解像度の高いアウトプットを得る「DLSS」や、レイトレーシング時のAIデノイズ処理のためにあるコアだ。特にレイトレーシング処理をさせる場合は、RTコアとTensorコアを活用することで処理時間(フレームタイム)を短くできる、というのはTuring世代からもたらした概念だ。
しかし、TuringではRTコアとTensorコアを同時に動かすことができないという制約を抱えていた。RTコアで処理し、しかるべき処理をした後でTensorコアに引き渡す必要があった。それに対して、Ampereではハードウェア的な改良を加えることで、RTコアとTensorコアの同時処理ができるようになった。このRTコアとTensorコアの同時処理がうまく使える程度にゲームが作り込んであれば、レイトレーシング使用時における性能低下もかなり軽減されるはずだ。今後のゲーム側の対応を注視したい。
レイトレーシングを使った1フレームをレンダリングするのに、CUDAコアだけを使うと51ミリ秒(≒19fps)かかるが、RTコアを使えば20ミリ秒(≒50fps)、RTコアとTensorコアを併用すれば12ミリ秒(≒83fps)「くらいになる」という主張
TuringではRTコアとTensorコアを使った時13ミリ秒かかるフレームが、Ampereで実行すれば7.5ミリ秒に短縮する。そして、RTコアとTensorコアの同時処理を使えば、6.7ミリ秒まで短縮するという
GeForce GTX 1080 Ti/RTX 2080/RTX 3080それぞれでレイトレーシングの処理をさせた時のフレームタイムをまとめたもの(数値の単位はミリ秒)。GeForce RTX 2080もRTX 3080もRTコアとTensorコアを使う(HW RT+DLSS)ことでフレームタイムを劇的に短縮できるが、Ampere世代のRTX 3080はRTコアとTensorコアを同時に動かせる(+Async)ので、Turingよりも最大1.9倍高速に処理ができる
GDDR6Xメモリーの採用とワットパフォーマンスの改善
GeForce RTX 3090とRTX 3080にはGDDR6Xメモリーが使われる点もトピックだ。GeForce Special Eventの詳報記事でも書いた通り、GDDR6Xは2段階の電圧レベル(いわゆる0か1か)ではなく、4段階の電圧で情報をエンコードして転送する。結果、情報密度が上がるためより短時間で転送が終わるというわけだ。これを筆者がわかる範囲で補足しておきたい。
GDDR6が使う波形(左)は電圧がゼロか、電圧がかかっているかの2値のみなのに対し、GDDR6X(右)は4段階の電圧を使用するPAM4シグナリングが使われる。同じデータを送信するのにGDDR6が500ピコ秒かかるところを、GDDR6Xなら380ピコ秒で終わるという図だ
GDDR6Xで扱うシグナルを波形として見ると次のような図になるが、単純に2ビットの情報を4段階の電圧に変換しているわけではない。“眼”のようなスペースが広くキレイに出現するよう設計する必要があり、目頭や目尻に相当する部分はシグナルが0とも1ともとれる場所となる。なので、はっきりと電圧があるかないかのポイントが必要になり、微妙な4段階の電圧を区別しなければならない。
そこで、GDDR6Xでは眼のパターンがキレイに出た瞬間で電圧を判定するアルゴリズムを採用するほか、電圧の両極端から両極端へ飛ぶようなシグナルを禁じている。一番下の電圧レベルから一番上の電圧レベルへ飛べば、電圧が上がりきるまで時間がかかる。結果として眼の開口部が狭くなってしまうからだ。このあたりの細かい解説は、いずれ大原氏の連載でやってくれると思うので、襟を正して待ちたい。
ワットパフォーマンスの改善については、実のところあまり多くは語られなかった。単純にパフォーマンスが2倍になったのでワットパフォーマンスが2倍という雑な計算のようにも思えるが、一応設計レベルでも工夫されているようだ。具体的にはGPUのコア部分とメモリーまわりの回路部分で電力のレールが分けられている、とのこと。だがそれ以上の情報は公開されなかった。
右の図でGPUのコア部分とメモリーまわりで電力の系統が分かれていることを言いたいようだ。左の図はGeForce Special Eventで示されたものに具体的な数値が入ったものだが、同程度の温度ならAmpereはTuringの2倍近いフレームレートを出せるようだ。ただし、TGP(Total Graphics Power)は240W→320Wに増えているので、相応の消費電力は覚悟するべきだろう
次回はRTX IOとNVIDIA Reflexに迫る
今回のGeForce RTX 30-Series Tech Sessionsレポートはこのあたりにしておこう。次回は最も興味を惹かれる(しかし実用化にはまだ時間が必要な)「RTX IO」、そしてeスポーツの世界を変えてしまう予感もする「NVIDIA Reflex」について迫りたい。
■関連記事
- Titanの後釜はRTX 3090!?Ampereで驚愕の性能向上を果たしたGeForce RTX 30シリーズ発表会を振り返る
- NVIDIAがGeForce RTX 3090/3080/3070を正式発表、2080 Ti超えの3070は499ドル~
- Ampere採用GPU「A100」発表、Titan Aが発売される可能性も NVIDIA GPUロードマップ
- RTX Voiceの超強力なノイズキャンセルはゲームプレイにどの程度影響するのか検証してみた
- DLSS 2.0をレビュー、GeForce RTXの価値を爆上げするWQHD&4K時代の救世主
- Turingコアの構造も謎の指標「RTX-OPS」の計算方法も明らかに!徐々に見えてきたGeForce RTX 20シリーズの全貌
- 謎の新技術「RTX IO」と「NVIDIA Reflex」とは一体何者なのか
- GeForce RTX 3090で夢の8Kゲーミングは実現するのか?HDMI 2.1とDLSSの役目を解説
- ビデオカードの消費電力を正確に計測するNVIDIAの純正キット「PCAT」と「FrameView」を解説
- GeForce RTX 3080 Founders Edition開封の儀、独特な内部構造に迫る
- 自作PCトーク『ジサトラKTU』生放送 ~Ampereスゴすぎ!GeForce RTX 3080ベンチマーク~
- GIGABYTEのGeForce RTX 3080と3090は強力な3連ファン搭載クーラーでゴリゴリ冷やす!
- Ampere世代のGeForce RTX 3080 FE速攻レビュー、GTX 1080の最大3倍
- NVIDIA新型GPU「GeForce RTX 3080」の夜間販売が決定
- GeForce RTX 3080 FEは4Kで輝く!RTX 2080 Ti/2080/GTX 1080とゲーム13本で徹底検証
- 自作PCトーク『ジサトラKTU』生放送 ~国内最速RTX 3090 FEレビュー!8Kゲーミングを見据えた巨大で獰猛なGPUの実力を検証~
- GeForce RTX 3090 FE降臨!TITAN RTX/RTX 3080 FEと8Kゲーム対決
- CGや動画編集におけるGeForce RTX 3080/RTX 3090の性能を徹底検証
- NVIDIA Reflexでゲームの遅延を削減!360Hz液晶でわかったFortniteやVALORANTでの効果
- GeForce RTX 3070 FEレビュー!Ampere世代最強の電力性能比とRTX 2080 Ti超えを確認
- GeForce RTX 4090/4080が発表!RTX 4090は10月12日発売で1599ドル