问题描述
使用CUDA驱动程序API调用cuStreamWaitValue32()
执行值等待操作时,可以指定标志CU_STREAM_WAIT_VALUE_FLUSH
。这是文档says的作用:
在等待操作之后进行大量未完成的远程写操作。这个 意味着,如果保证可以完成远程写操作, 等待之前的设备可以满足,保证写操作是 对下游设备工作可见。
我的问题是:在这种情况下,什么算作“远程写”?它仅调用cuStreamWriteValue32()
/ cuStreamWriteValue64()
吗?它是涉及不同设备或主机的任何类型的写操作吗?包括cudaMemcpy()
和朋友吗?
解决方法
远程写入是由第三方设备针对GPU设备内存发出的写入。这与GPUDirect RDMA有关。 通过扩展,它还包括CPU通过GDRCopy映射发布的写操作。