【发布时间】:2021-01-09 00:20:47
【问题描述】:
据说在满足“只读取和/或写入一次”约束的情况下应该使用零拷贝。没关系。
我已经理解这一点,但我的问题是为什么零拷贝首先要快?毕竟,无论我们是通过 cudamemcpy 还是零拷贝使用显式传输,在这两种情况下,数据都必须通过 pci 快速总线传输。或者是否存在任何其他路径(即通过传递设备 RAM 直接在 GPU 寄存器中复制发生?
【问题讨论】:
-
降低延迟...
-
由于避免了 cudamemcpy 函数的开销而导致的低延迟?
-
就数据传输率而言,它并不快。所以这个问题的前提是可疑的。如果主机和设备之间存在传输,则无法避免 PCIE(对于 PCIE 连接的 GPU)。没有其他路径。
-
如果不是更快,那为什么要使用它?
-
与使用
cudaMemcpy相比,在许多情况下,零拷贝可能会提高整体应用程序性能。我敢打赌,如果您寻找示例,您可以找到示例。如果您愿意,我可以写一个描述可能 2 个示例的答案。
标签: cuda