私は持っている:
cudaHostAlloc(..., cudaHostAllocMapped)
またはを使用して正常に固定およびマップされたホスト メモリcudaHostRegister(..., cudaHostRegisterMapped)
。- デバイス ポインタは、 を使用して取得されてい
cudaHostGetDevicePointer(...)
ます。
cudaMemcpy(..., cudaMemcpyDeviceToDevice)
上記の手法によって取得された固定 + マップ メモリの 2 つの異なる領域を指す src および dest デバイス ポインターで開始します。すべて正常に動作します。
memcpy()
質問:とにかくすべてがシステム メモリにあるので、これを続けるべきですか、それとも従来の CPU スタイルを使用するべきですか? ...またはそれらは同じですか(つまり、src と dest の両方が固定されている場合cudaMemcpy
、ストレートにマップされますか)?memcpy
(以前はすべてがデバイスのグローバルメモリにあったため、私はまだこのcudaMemcpy
方法を使用していますが、gmemサイズの制約により固定メモリに切り替えました)