5

如果我将单个字节从 CUDA 内核传输到 PCI-E 到主机(零拷贝内存),与传输 200 兆字节的数据相比,它慢了多少?

我想知道,因为我知道通过 PCI-E 传输对于 CUDA 内核来说很慢,所以我想知道的是:如果我只传输一个字节或大量数据,它会改变什么吗?或者也许由于内存传输是“批量”执行的,传输单个字节相对于传输 200 MB 而言非常昂贵且无用?

4

2 回答 2

8

希望这张照片能解释一切。数据由CUDA 样本中的bandwidthTest生成。硬件环境为 PCI-E v2.0、Tesla M2090 和 2x Xeon E5-2609。请注意,两个轴都是对数刻度。

鉴于此图,我们可以看到启动传输请求的开销需要一个恒定的时间。对数据的回归分析得出 H2D 的估计开销时间为 4.9us,D2H 为 3.3us,D2D 为 3.0us。

在此处输入图像描述

于 2013-07-19T12:20:45.187 回答
-1

在这种情况下,延迟图会更加清晰。小交易并不比大交易贵。它们的唯一问题是它们不能使总线饱和。因此,几乎可以同时传输更大的消息。这就是为什么传输一个 512 KB 比传输 512 个 1 KB 事务快 120 倍的原因。PCIe 的饱和点取决于通道数。您可以在此处从 CUDA 的角度找到有关 PCIe 功能的更多详细信息。

于 2020-07-22T06:13:44.610 回答