GPUアクセス用にシステムメモリ(RAM)がどのようにマッピングされていますか? GPUがGPUにマップされたシステムメモリ(ホスト)にアクセスするときに、どのように動作するのか分かりません。基本的には、どのようにデータがシステムメモリからホストメモリにコピーされるか、またその逆にコピーされるかに関係するものです。参考資料に裏付けされた説明をお願いできますか?GPU - システムメモリマッピング
答えて
私は、次のslidesetは非常に有用であることが判明:FUSIONのAPUS ON http://developer.amd.com/afds/assets/presentations/1004_final.pdf
メモリシステムのゼロコピーの利点 ピエールBoudier AMD のOpenGL/OpenCLのフェロー グラハム・セラーズのOpenGL
の AMD マネージャーAMD Fusion Developer Summit June 2011
これは、ああ。仮想メモリのような概念をGPUに適用する(最終的に)ように、新しいコンセプトをあまり開発しません。私は要約しましょう。
GPUは、通常、別のPCIまたはPCI-EXpressカードまたはボードでした。彼らは、GPUカードに搭載されたDRAMをいくつか持っていました。このオンボードDRAMはかなり高速です。また、PCI側のDMAコピーエンジンを介してCPU側のDRAMにアクセスすることもできます。このようなCPUメモリへのGPUアクセスは、通常かなり遅いです。
GPUメモリがページされませんでした。そのため、GPUメモリは通常、テクスチャキャッシュのように、GPU内部のソフトウェア管理キャッシュを除き、キャッシュされません。 「ソフトウェア管理される」とは、これらのキャッシュがキャッシュ一貫性を持たず、手動でフラッシュする必要があることを意味します。
通常、CPU DRAMの小さな部分だけがGPUによってアクセスされました - アパーチャです。通常、ページングされませんでした。通常、仮想アドレス変換の対象ではなく、通常は仮想アドレス=物理アドレス、+多少のオフセットがあります。
(もちろん、残りのCPUメモリは適切な仮想メモリ、ページング、確かに翻訳され、キャッシュされています)GPUは仮想メモリにアクセスできないため、GPUはこれを安全にアクセスできませんサブシステムとキャッシュ一貫性システム
上記の動作は痛みですが、CPU内部の最初のもので動作してからGPU内部が遅くなりますエラーが発生しやすくなります。多くの場合、すべてのCPU DRAMに(ゆっくりと不安定に)アクセスすることができるため、マルウェアによって使用される可能性があります。
AMDは、GPUとCPUをより緊密に統合するという目標を発表しました。 "融合" APU、CPUとGPUの両方を含むチップ。 (IntelはSandybridgeと同様のことをしている;私はARMもそうすると期待している)
AMDはまた、GPUに仮想メモリサブシステムを使用させ、キャッシュを使用させることを発表した。
GPUで仮想メモリを使用するための手順は、AMD IOMMUです。インテルも同様です。 IOMMUは、非仮想マシンOS用の仮想メモリよりも仮想マシン向けです。
CPUとGPUが同じチップ内にあるシステムでは、通常、CPUとGPUが同じDRAMチップにアクセスします。したがって、「GPUオンボード」および「GPU外のCPU」DRAMはなくなりました。
しかし、通常、システムマザーボード上のDRAMの分割とパーティションは、CPUが主に使用するメモリと、GPUが主に使用するメモリに分割されています。メモリは同じDRAMチップの中にあっても、一般的に大きなチャンクは「グラフィックス」です。上記の論文では、歴史的な理由から「ローカル」メモリと呼ばれています。 CPUとグラフィックスメモリの調整が異なる場合があります。通常、GPUメモリはビデオのリフレッシュを除いて優先度が低く、バーストが長くなります。
「システム」メモリ用のオニオンと、グラフィックスメモリパーティションへの高速アクセス用の「ガーリック」の2種類の内部バスがあります。ニンニクのメモリは通常キャッシュされません。
私が参照している論文では、CPUとGPUのページテーブルがどのように異なるかについて説明しています。そのサブタイトル「ゼロコピーの利点」は、GPUページテーブルにCPUデータストラクチャをマッピングすることで、コピーする必要はありません。
などなど、
システムのこの領域は急速に進化しているので、2011年論文では、すでにほとんど廃止されました。ハードウェアは、(a)は、特殊なグラフィックスを提供しようとするものの、仮想メモリやキャッシュ可能
しかし
(B) - しかし、あなたは(a)のソフトウェアは、CPUとGPUのメモリへの均一なアクセスを望んでいる傾向に
に注意しなければなりませんメモリ機能は、たとえ同じDRAMのパーティションだけであっても、大幅に高速または電力効率の高い専用グラフィックスメモリをほとんど常に作ります。
ギャップが狭まっている可能性がありますが、離れると思われるたびに、別のハードウェアのトリックを再生することができます。
- 1. GPUプログラミング?
- 2. GPUパフォーマンスインジケータ
- 3. CUDAのGPU CPU
- 4. tensorflowマルチGPUトレーニング
- 5. GPU監視ソフトウェア
- 6. GPU mxnetRのwindows10
- 7. KerasノートブックGPUタイムアウト
- 8. Tensorflow OOM on GPU
- 9. レンダスクリプトとGPU
- 10. GPUシリアライゼーション分解
- 11. マルチプロセッシングは、シングルGPU
- 12. GPUのハライドクロスコンパイル
- 13. GPUのCUDAカーネルスケジューラ
- 14. GPUの同期
- 15. コース - GPU HPC
- 16. Tensorflow-GPUのインポートエラー
- 17. アドレナGPUのメモリモデル
- 18. CUDAリモートGPU
- 19. コンパイルエラーCV :: GPU
- 20. C#パフォーマンスカウンターヘルプ、Nvidia GPU
- 21. Matlab GPUバックプロパゲーション
- 22. GPU + CPU Tensorflowトレーニング
- 23. Spawning GPU Particle
- 24. cuFFT in Alea GPU
- 25. Tensorflow contrib.learn.Estimator multi-GPU
- 26. Google Compute Engine GPU
- 27. Tensorflow-GPUエラー - Pycharm
- 28. Tensorflow GPU - Spyder
- 29. caffe multi-gpu CUDNN_STATUS_EXECUTION_FAILED
- 30. Mxnet on mobile GPU