7

によってマップされたメモリでゼロコピーを使用したいcudaHostGetDevicePointer。使用できますthrust::host_vectorか、または使用する必要がありますか、cudaHostAlloc(...,cudaHostAllocMapped)? または Thrust を使用する方が簡単ですか?

4

1 に答える 1

5

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

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

thrust::device_vectorを使用して を作成するか、イテレータを受け入れる任意のアルゴリズムに をthrust::device_ptr直接渡すことができます。thrust::device_ptr

于 2012-07-27T17:34:29.757 に答える