GPUプログラミング
CPUのメモリをピン留め(ページロック)してからGPUへ転送すると速くなる理由として正しいものはどれか。
- AOSがそのページを動かしたり追い出したりしないので、GPUがDMAで直接読み書きでき、途中のコピーが要らず、非同期の転送もできるから
- Bピン留めするとデータが圧縮されるから
- Cピン留めするとPCI Expressの世代が上がるから
答えと解説を見る
正解:A. OSがそのページを動かしたり追い出したりしないので、GPUがDMAで直接読み書きでき、途中のコピーが要らず、非同期の転送もできるから
普通のメモリは、OSがいつでも別の物理ページに移したりストレージに追い出したりできるので、GPUのDMAがそのまま読み書きするのは危険です。そのため通常は、いったんピン留めした一時的な領域にコピーしてから転送します。最初からピン留めしたメモリを使えば、この余分なコピーがなくなり、CPUの処理と重ねて非同期に転送することもできます。
- A. 正しい。ただし使いすぎるとOSのメモリが足りなくなります。
- B. 圧縮はされません。
- C. 世代は変わりません。