チップレットによるマルチGPUは間もなく登場し、最初はHPCカードの形で表示されるため、ゲーム市場の外にありますが、進化はマルチGPUに基づくグラフィックカードの構築に向かっていることを長い間知っていました。チップレットごと。 しかし、従来のモノリシックと比較して、それらは何をもたらしますか GPU? 調べるために読んでください。
この記事で説明するアーキテクチャはまだ市場に出回っていません。提示もされていませんが、これは、近年生み出された進歩と、Multi-GPUに関するさまざまな特許の分析の結果です。両方のチップレット AMD, NVIDIA & インテル 過去XNUMX年間に発行されています。 そのため、これらのタイプのGPUがどのように機能し、どのようなグラフィックの問題が解決されるかを理解できるように、その情報を取得して合成することにしました。
複数のGPUを使用した従来の3Dレンダリング
複数のグラフィックカードを使用して3Dビデオゲームで各フレームをレンダリングする能力を組み合わせるのは新しいことではありません。Voodoo2by3dfxは、レンダリング作業を全体的または部分的に複数のグラフィックカードに分割できるためです。 それを行う最も一般的な方法は、代替フレームレンダリングです。 CPU 各フレームの画面リストを各GPUに交互に送信します。 たとえば、GPU 1はフレーム1、3、5、7を処理し、GPU 2はフレーム2、4、6、8などを処理します。
シーンを3Dでレンダリングする別の方法があります。これは、単一のシーンをレンダリングして作業を分割する複数のGPUで構成されるスプリットフレームレンダリングですが、次のニュアンスがあります。GPUは、画面のリストを読み取るマスターGPUであり、残りを処理します。 ラスタライズ前のパイプラインの最初のステージは、ラスタライズと同様に最初のGPUでのみ実行され、後のステージは各GPUで等しく実行されます。
分割フレームレンダリングは、作業を分散するための公平な方法のように見えますが、この方法に伴う問題と、それがどのような制限があるかを見ていきます。
分割フレームレンダリングの制限と考えられる解決策
各GPUにはDMAドライブの2つのコレクションが含まれており、最初のペアはシステム内のデータを同時に読み取りまたは書き込みできます RAM PCI Expressポートを介して、ただしCrossfireまたはSLIをサポートする多くのグラフィックカードには、他のグラフのVRAMへのアクセスを可能にするDMAドライブの別のコレクションがあります。 もちろん、実際のボトルネックであるPCIExpressポートの速度で。
理想的には、一緒に動作するすべてのGPUが同じVRAMメモリを共通に持つはずですが、そうではありません。 そのため、データはレンダリングに関係するグラフィックカードの数と同じ回数複製されますが、これは非常に非効率的です。 これに、3Dグラフィックスをリアルタイムでレンダリングするときにグラフィックスカードが機能する方法を追加する必要があります。これにより、複数のグラフィックスカードを使用した構成が使用されなくなりました。
チップレットによるマルチGPUでのタイルキャッシング
タイルキャッシングの概念は、NVIDIAのMaxwellアーキテクチャとAMDのVegaアーキテクチャから使用され始めました。これは、タイルによるレンダリングからいくつかの概念を取り入れることですが、各タイルを別々のメモリにレンダリングする代わりに、VRAMに書き込む場合にのみ書き込むという違いがあります。終了は第XNUMXレベルのキャッシュで行われます。 これの利点は、一部のグラフィック操作のエネルギーコストを節約できることですが、欠点は、GPU上にあるトップレベルキャッシュの量に依存することです。
問題は、キャッシュがコンベンショナルメモリのように機能せず、いつでもプログラム制御なしでキャッシュラインをメモリ階層の次のレベルに送信できることです。 同じ機能をチップレットベースのGPUに適用することにした場合はどうなりますか? これが追加のキャッシュレベルの出番です。新しいパラダイムでは、各GPUの最後のレベルのキャッシュはタイルキャッシュのメモリとして無視され、Multi-GPUの最後のレベルのキャッシュが使用されます。別のチップ。
チップレットによるマルチGPU上のLCC
チップレットベースのマルチGPUの最新レベルのキャッシュは、製造元に関係なく多くの共通の特性をまとめているため、次の特性のリストは、製造元に関係なく、このタイプのすべてのGPUに適用されます。
- どのGPUにもありませんが、GPUの外部にあるため、別のチップ上にあります。
- シリコンブリッジやTSVインターコネクトなどの非常に高速なインターフェイスを備えたインターポーザーを使用して、各GPUのL2キャッシュと通信します。
- 必要な高帯域幅では、従来の相互接続が不可能であるため、2.5DIC構成でのみ可能です。
- 最後のレベルのキャッシュが配置されているチップレットは、上記のメモリを格納するだけでなく、VRAMアクセスメカニズム全体が配置されている場所でもあり、このようにしてレンダリングエンジンから切り離されています。
- その帯域幅はHBMメモリの帯域幅よりもはるかに高いため、より高い帯域幅を可能にするより高度な3D相互接続テクノロジを利用しています。
- さらに、他の最終レベルのキャッシュと同様に、そのクライアントであるすべての要素に一貫性を与える機能があります。
このキャッシュのおかげで、各GPUが共有VRAMを持つために独自のVRAMを持つことができなくなります。これにより、データの多様性が大幅に減少し、従来のマルチGPUでの通信の結果であるボトルネックが解消されます。
マスターGPUと従属GPU
チップレットによるマルチGPUに基づくグラフィックスカードでは、ディスプレイリストを作成するときに従来のマルチGPUと同じ構成が引き続き存在します。 残りのGPUの管理を担当する最初のGPUを受け取る単一のリストが作成されますが、大きな違いは、前のセクションで説明したLLCチップレットにより、最初のGPUがタスクを調整して送信できることです。チップレットごとの残りのマルチGPU処理ユニット。
別の解決策は、Multi-GPUのすべてのチップレットにコマンドプロセッサが完全にないことです。これは、LCCチップレットがオーケストラの指揮者として配置されている場所と同じ回路にあり、既存のすべての通信インフラストラクチャを利用して異なる命令を送信します。 GPUのさまざまな部分へのスレッド。
2.5番目のケースでは、マスターGPUがなく、残りは従属として使用されますが、XNUMXD集積回路全体が単一のGPUになりますが、モノリシックではなく、複数のチップレットで構成されます。
レイトレーシングにおけるその重要性
将来の最も重要なポイントのXNUMXつはレイトレーシングです。これを機能させるには、システムが光の輸送を表すためにオブジェクトの情報に空間データ構造を作成する必要があります。 前記構造がプロセッサに近い場合、レイトレーシングが受ける加速が重要であることが示されている。
もちろん、この構造は複雑で、多くのメモリを消費します。 これが、将来、大きなLLCキャッシュを持つことが非常に重要になる理由です。 そしてこれが、LLCキャッシュが別のチップレットに含まれる理由です。 可能な限り最大の容量を持ち、そのデータ構造を可能な限りGPUに近づけること。
今日、レイトレーシングの速度低下の多くは、データの多くがVRAMにあり、そのアクセスに大きな遅延があるという事実によるものです。 マルチGPUのLLCキャッシュには、帯域幅だけでなく、キャッシュの遅延にも利点があることに注意してください。 さらに、その大きなサイズとIntel、AMD、およびNVIDIAのラボで開発されているデータ圧縮技術により、アクセラレーションに使用されるBVH構造がGPUの「内部」メモリ内に格納されるようになります。