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