【ハッキリ言って素人には一部難解。】Xbox Series X GPUアーキテクチャのディープダイブ詳細。レイトレーシング、メッシュシェーディング、サンプラーフィードバック、VRS。—海外記事翻訳—

HotChips2020でXbox Series Xのアーキテクトであるマイクロソフトのジェフ・アンドリュース氏とマーク・グロスマン氏によってXbox Series Xの詳細な解説がありました。前回ご紹介した記事は事前公開されたスライドからのインプレ記事を翻訳しましたが、今回はハードウェアタイムズの記事が非常に詳細に解説されていたので、日本語訳でご紹介します。しかし部分部分で素人にも分かる内容ですが、多くの部分は専門家知識のある方でないと理解出来ない内容になっていますので、ご興味のある方は最後までお読みなって頂ければと思います。

         


今日、HotChipsでマイクロソフトは、次世代コンソールを駆動するCPUとGPU技術を含むXboxシリーズXアーキテクチャの詳細を発表しました。この記事では、AMDのRDNA 2(というか1.5、Navi 2xが発売されないと何とも言えない)をベースにしたGPUアーキテクチャと、サイドに実装された様々なハードウェアとソフトウェアの最適化に主眼を置いています。

XboxシリーズXのCPUはモバイルRyzen 4000 APUと同一視されている(ルノアール)

まずはCPUを見てみよう。Xbox Series Xには8つのZen 2 CPUが搭載されており、SMTなしで3.8GHz、SMTありで3.6GHzのクロックスピードを実現しています。キャッシュアーキテクチャを見てみましょう。ルノアールのAPUと同じです。L3キャッシュははるかに小さくなっています。具体的には、ゲームキャッシュはありませんが、これは基本的にデスクトップのRyzen 3000 CPUにあるファットL3キャッシュのファンシー用語です。

なぜGameCacheと呼ばれているかというと、ゲーム性能を大幅に向上させるためです。XSXにはゲームキャッシュが搭載されていないため、パフォーマンスはZen 2デスクトップCPUよりも若干低くなります。実際にどの程度パフォーマンスに影響を与えるかについては、Zen 2 CPUとAPUを比較したこちらの記事をご覧ください。

しかし同時に、デスクトップのZen 2の部品とは異なり、Xbox Series XのCPUとGPUはTSMCの7nmの “enhanced “ノードをベースにしている。これは 7nm+ ノードまたは 7nm EUV ノードではありませんが、それはおそらく (確認されていない) 今後の Zen 3 ベースのRyzen4000 と Epyc ミラノ CPU が使用されるのと同じプロセスです。あるいは、Ryzen 3000 XT CPUに搭載されている7nmの「強化された」トランジスタに似ているかのどちらかだ。AMDは、チップにはバニラのマティス部品と同じトランジスタを使用していないと言っていた。いずれにしても、プロセスノードについては少し曖昧な点がある。

GPU:1.5かRDNA 2か?

Upadate 2020.08.19 元記事HarwareTimesがPS5言及箇所を「加筆、修正した」ので、合わせて日本語訳も「加筆、修正」してあります。

私はAMDに話をして、GPUは本格的なRDNA 2(PS5のGPUは今のところベースになることが確認されていません。)であることが判明したので、Navi 2x GPUのための同じレイトレーシングエンジンを期待することができます。ノードに関しては、コメントを拒否されました。

GPU ブロックに移ると、アーキテクチャ自体は外見上は RDNA 1 と非常によく似ています(それについてはこちらを参照してください)。26個のDCUまたは52個のCompute Unitがあり、5MBのL3キャッシュが共有されています(RDNA 1では4MB)が、7個のDCUの各Shader ArrayがL1キャッシュを共有しています(RDNA 1では5個のDCUでした)。最後に、L0キャッシュはDual-Compute Unitの4つのSIMDに排他的に割り当てられます。

L2 キャッシュ以外の上位レベルでの主な変更点は、Raster Units の削減と RB の不在です。RDNA 1と同様に、統一されたジオメトリエンジンとデュアルレーンのコマンドプロセッサ(1つは計算用、1つはグラフィックス用)があります。Renderのバックエンドが図から消えているように見えます。これが何かの間違いなのか、それとも…GPUから完全に消えているのかはわかりません。プリミティブシェーダーはプログラマブルなので、その役目を引き継いでいる可能性があります。

Dual-Compute Units (Work Group Processor) には、多くの内部的な調整が加えられています。最も注目すべきは、レイアクセラレーションハードウェアが含まれていることです。SIMDごとに1つ、またはDCUごとに4つです。MSによると、各コンピュートユニットは、1クロックあたり4つのテクスチャまたはレイ演算、またはDCUあたり8つの演算を行うことができます。つまり、GPU全体で1クロックあたり208回のレイトレーシング操作ができることになります。興味深いことに、テクスチャユニットとレイアクセラレーション構造はそれらの間でリソースを共有しているため、実効的なレイトレーシング能力は208よりも低くなります。

DCUあたりのスカラーとベクターのスループットはRDNAと同じで、SIMDあたりスカラー32個、FP32(FMAD)32個、またはDCUの4つのCU/8つのSIMDでは128個となっているようです。ここで一つ気になるのは、Navi 10では、スカラー単位は主に制御フローとアドレス計算に使われ、実際のグラフィックス処理はベクトルで行われるということだ。ここでも同様で、NVIDIAのTuringのような非同期INTやFPのサポートがないことを意味している。そうでなければ、INT32などのワークロードについての言及があったはずだ。

さて、パイプラインの最適化です。基本的にはPCゲームのDirectX 12と同じ最適化を見ています。

ここでは簡単にまとめておきます。主な技術はメッシュシェーダー、テクスチャサンプラーフィードバック、可変レートシェーディングです。

メッシュシェーダ: メッシュシェーダはドメインシェーダやジオメトリシェーダと同じタスクを実行しますが、内部的にはシングルスレッドではなくマルチスレッドのモデルを使用します。タスクシェーダも同様に動作します。

ここでの大きな違いは、Hullシェーダの入力がパッチとテッセレーションされたオブジェクトの出力であったのに対し、タスクシェーダの入力と出力はユーザー定義であるということです。

Image & Text :Hardware Times

上記のシーンでは、レンダリングする必要のあるオブジェクトが何千もあります。従来のモデルでは、それぞれのオブジェクトはCPUからのユニークなドローコールを必要としていました。しかし、タスクシェーダでは、1 回の描画呼び出しでオブジェクトのリストが送信されます。タスクシェーダはこのリストを並行して処理し、メッシュシェーダ(これも同期して動作します)に作業を割り当て、その後シーンはラスタライザに送られて3Dから2Dに変換されます。

このアプローチは、シーンごとのCPUドローコール数を大幅に削減し、ディテールのレベルを向上させるのに役立ちます。

メッシュシェーダは、使用されていないトライアングルのカリングも容易にします。これはアンプリフィケーション・シェーダを使って行います。これはメッシュシェーダの前に実行され、必要なメッシュシェーダのスレッドグループの数を決定します。様々なメッシュレットの交差の可能性とスクリーンの可視性をテストし、必要なカリングを実行します。このレンダリングの初期段階でジオメトリカリングを行うことで、パフォーマンスが大幅に向上します。

ページ2へ

1 個のコメント

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    映画、海外ドラマ、音楽、ビデオゲーム、ガジェット、自作ハイエンドPC、車、バイク、政治、経済、株式投資、格闘技、70年代のTVドラマ、超常現象などが大好きな湘南在住の管理人です。東京に住んでいた頃は、ハイエンドオーディオ、ハイエンドホームシアターなど趣味で実践していました。現在は、ソニー4KブラビアX9500Gの85インチで洋画、海外ドラマ、ビデオゲームをYAMAHAのA3070AVアンプ経由で5-1-4 9.1チャンネルのDolby Atmos環境で楽しんでいます。映画やゲームレビューはこのシステムかサブシステムのLG 55インチNANO91 4K 120Hzで検証しています。様々な幅広いジャンルでの経験で得た知識、見識をレビューやエッセイも含め、色々と書き綴って情報発信していきたいと思っています。尚、当サイトで書く内容は、あくまで個人的な好みや価値観での意見を書き綴っていますので、あしからず。 YOUTUBEチャンネルでは、高画質をモットーに4K解像度のゲームプレイ、PCゲームのベンチマーク動画、グラフィック比較動画に加えて他に好きなものなど、色々と公開していきたいと思いますので、お気に召したらチャンネル登録をよろしくお願いいたします。  https://www.youtube.com/user/hidebusa720