web-dev-qa-db-ja.com

従来のRAMDiskがGPURAMDiskよりも高速なのはなぜですか?

GitHubでprsyahmiのGPURamDriveソフトウェアを試し、nVidia RTX2060のGDDR6RAMを使用して5GBのRAMドライブを作成しました。また、後でAMDのRadeonRamDiskソフトウェアを使用して4GBのRAMドライブを作成しました。 CrystalDiskMark6を使用して、RAMドライブとメインのSamsung850 EVOSSDの両方でベンチマークを実行しました。結果は私を驚かせました、GPU RamDiskは確かに非常に速いシーケンシャル読み取り/書き込み速度を持っていましたが、SamsungSSDは実際に他のテストでもGPURamDiskをかなり上回りました。そして、システムのDDR4メモリを使用する従来のRamDiskと比較して、GPURamDiskを完全に水から吹き飛ばしました。

GPUで使用されているGDDR6および古いGDDR5メモリでさえ、DDR4 RAMよりも大幅に高速であると考えられていませんか?そして、そのことについては、フラッシュメモリよりも大幅に高速ですか?ソフトウェアの問題ですか?または、GDDR6 RAMについて、RAMディスクに使用した場合にDRAMよりも本質的に劣る何かがありますか?

これらはベンチマークの結果でした:

RTX 2060 GDDR6 RamDisk:

RTX 2060

DDR4 RAMDisk:

DDR4

Samsung 850 EVO SSD:

SSD

2
Generalkidd

GDDR6は確かにDDR4よりも高速であり、グラフィックカード上のメモリのレイアウトは実際には標準のDIMMよりもさらに高いメモリ帯域幅をもたらします。

問題は、CPUとGPUの間に(比較的)遅いPCIeリンクがあり、メモリアクセスについてGPUとネゴシエートすることです。 CPUメモリはCPUに直接接続されていますが、GPUメモリはGPUへの高速アクセスを目的としています。

理論上の x16 PCIe リンクの帯域幅は16GB/sのオーダーですが、これは理論上の帯域幅であり、GPUメモリはPCの一般的なメモリアドレス空間にマップされる可能性がありますが、実際にはそれに書き込みます少なくとも2つのバスのネゴシエーションが必要であり、そのうちの1つはそれを所有するデバイス(GPU)によってすでに使用されています。

GPUは、デスクトップの描画に大量の帯域幅を使用していない可能性があるため、そのメモリを使用して画面を描画していますが、RAMディスクとオンボードコントローラーの間である程度の競合が発生していることを意味します。

次に、関連するプロトコルがあります。 PCIeリンク用のプロトコル、GPUにメモリに何かを格納するように要求するためのプロトコル/ API、オペレーティングシステムにディスクインターフェイスを提示するためのプロトコル/ドライバー(おそらくCPUメモリを使用してすべてのオーバーヘッドを実行し、実際のデータを保存するための計算とGPUメモリ)。

また、そのGPURAMディスクからCPUメモリバッファに読み込んでいる可能性があります。はい、データはすぐに破棄されますが、somewhereに移動する必要があります。チェーンのさらに別のリンク。

使用している特定のドライバがプログラミングインターフェイスを介して動作していること、およびRAMディスクのメモリアドレスの読み取りまたは書き込みを試みるたびに問題が発生することもあります。 CPUによってキャッチされ、ドライバーに渡され、ドライバーによってGPU上のメモリ位置に変換されてから、GPUとの間でデータが転送される必要があります。これには本質的に、CPUベースの「メモリコピー」が読み取り場所から移動してドライバに提供されることが含まれます。この段階のすべては、最後の「データのこのビットを置く/与える」を除いて、完全にCPUの制約を受けます。実際のデータ転送は非常に速いかもしれませんが、これは別のオーバーヘッドです。

GPUメモリ帯域幅shouldはCPUメモリ帯域幅を完全に切り捨てますが、そのメモリにアクセスするためのレイヤーがさらにいくつかあります。セカンドソースで使用するよりも、バルクデータ処理internallyを実行する場合に最も効率的です。

GPUをRAMディスクとして「ただ」使用しているのではありません。方法のすべてのステップの管理には多くのCPUの関与があり、インターフェイスの多くのレイヤーを介してバッキングストアとしてGPUメモリを使用しているだけです。

確かに https://github.com/prsyahmi/GpuRamDrive

GPU RAMの使用はホストのメインメモリほど高速ではありませんですが、通常のHDDよりも高速です。 ...これは単なるPoC(概念実証)であり、この種のソリューションを検索するユーザーは、RAMをアップグレードするか、より高速なストレージを購入することをお勧めします。

3
Mokubai