2016-09-27 4 views
0

The documentationcudaHostAlloc()の場合、cudaHostAllocMappedフラグを指定すると、ホスト上に固定メモリが割り当てられ、割り当てがCUDAアドレス空間に割り当てられます。ミラーバッファがデバイスにも割り当てられているのでしょうか? cudaHostAlloc()またはcudaHostGetDevicePointer()の呼び出しのいずれか。 cudaHostGetDevicePointer()によって返されたポインタへのアクセスごとに、デバイスはホストメモリと通信しますか?cudaHostAllocMappedもデバイスにバッファを割り当てますか?

この質問は、APIが何であるか、いつAPIを使用するのか、固定されたメモリであるのかを尋ねないので、When to use cudaHostRegister() and cudaHostAlloc()? What is the meaning of "Pinned or page-locked" memory? Which are the equivalent in OpenCL?とは異なります。私はミラーバッファがGPUに割り当てられているかどうかを特に質問します。

+0

[cudaHostRegister()とcudaHostAlloc()をいつ使用するか? 「固定された」または「ページロックされた」メモリの意味は何ですか?どちらがOpenCLで同等ですか?](http://stackoverflow.com/questions/39454465/when-to-use-cudahostregister-and-cudahostalloc-what-is-the-meaning-of-pinn) – Leos313

+0

@ Leos313、thereミラーバッファに関する質問や答えには何もありません。私はすでにその質問に対する答えを知っていました。私は、GPUがどのようにCPUメモリにアクセスするかについての詳細に興味があります。 –

+2

デバイスにメモリが割り当てられていない場合、すべてのアクセスはホストメモリに送られます。 [このドキュメント](http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#mapped-memory)は、お客様のニーズに適しています。 – tera

答えて

3

"ミラー"バッファは割り当てられません。

マップされたホストメモリを参照するポインタをデバイスコードが使用すると、そのポインタを使用するデバイスの読み書きは、ホストメモリとの間でデータを転送するためのPCIEトラフィックを生成し、その読み書きに対応します。

関連する問題