在用于分配新内存区域的 CUDA SDK 函数cudaHostAlloc()
中可以使用标志:
- cudaHostAllocDefault (默认- 0 并导致 cudaHostAlloc() 模拟 cudaMallocHost())
- cudaHostAllocPortable
- cudaHostAllocMapped
- cudaHostAllocWriteCombined
要标记已分配的内存区域,我们可以使用cudaHostRegister()
标志:
- 0(默认)
- cudaHostRegisterPortable
- cudaHostRegisterMapped
为什么我们在使用标志分配内存时可以将其标记为WriteCombined,但不能通过cudaHostAllocWriteCombined
使用将已经存在的内存区域标记为WriteCombined ?cudaHostAlloc()
cudaHostRegister()
已经分配的内存我们必须只通过POSIX函数来标记set_memory_wc()
?