または、スラストでゼロコピーにcudaHostAllocを使用する必要がありますか?

StackOverflow https://stackoverflow.com//questions/11692326

  •  12-12-2019
  •  | 
  •  

質問

マップされたメモリにゼロコピーを使用したい cudaHostGetDevicePointer.私は使うことができますか thrust::host_vector または私は使用する必要があります cudaHostAlloc(...,cudaHostAllocMapped)? それともスラストでやるのがどういうわけか簡単ですか?

役に立ちましたか?

解決

マップされたホスト割り当てとしてthrust::host_vectorを使用することはまだ不可能であると確信しています。固定されたメモリアロケータがありますが、マップされたメモリが利用可能であるとは思いません。あなたがする必要があるのは次のようなものです:

  1. 割り当てられたマップされた、固定されたホストメモリ cudaHostAlloc
  2. を使用して、ゼロコピーメモリのデバイスポインタを取得します cudaHostGetDevicePointer
  3. Aを作成する thrust::device_ptr を使用して thrust::device_pointer_cast そのデバイスポインタ上(参照 ここに 詳細については)

あなたはどちらかを作ることができます thrust::device_vector を使用して、 thrust::device_ptr またはdirctly渡して下さい thrust::device_ptr イテレータを受け入れる任意のアルゴリズムに。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top