有没有人知道有关内存一致性模型的文档保证分配了cudaHostAlloc(..., cudaHostAllocMapped)
的内存区域?例如,当来自设备的写入变得可见时,来自主机的读取将是有用的(可能是在内核完成之后,在内核执行期间的最早可能时间等)。
答案 0 :(得分:1)
在执行线程执行__threadfence_system()
调用(仅在计算能力2.0或更高版本上可用)之后,保证在主机(或对等设备)上可以看到设备写入。
在内核完成后,即在cudaDeviceSynchronize()
之后或"Explicit Synchronization" section of the Programming Guide中列出的其他同步方法之一成功完成后,它们也可见。
当使用它的内核正在运行或者可能正在运行时,永远不应该从主机修改映射内存,因为CUDA目前在这个方向上没有提供任何同步方式。