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