割り当て用のCUDA SDK 関数cudaHostAlloc()
では、新しいメモリ領域でフラグを使用できます。
- cudaHostAllocDefault (デフォルト- 0 で、cudaHostAlloc() が cudaMallocHost() をエミュレートする)
- cudaHostAllocPortable
- cudaHostAllocMapped
- cudaHostAllocWriteCombined
すでに割り当てられているメモリ領域をマークするにはcudaHostRegister()
、フラグを使用できます。
- 0 (デフォルト)
- cudaHostRegisterPortable
- cudaHostRegisterMapped
cudaHostAllocWriteCombined
を使用してフラグで割り当てるときにメモリ WriteCombined をマークできるのに、を使用cudaHostAlloc()
して既存のメモリ領域を WriteCombined としてマークできないのはなぜcudaHostRegister()
ですか?
すでに割り当てられているメモリは、POSIX関数のみを使用してマークする必要がありますset_memory_wc()
か?