cpu数据拷贝到GPU的传输速率为什么实际测试时这样的?

为什么从GPU到CPU拷贝会比从CPU拷贝到GPU慢一半?为什么传输速率曲线里会有一个峰值,然后又会往下降?怎么判定拷贝了多少数据才充分利用了传输带宽?

第一个问题,貌似我在网上找到了,但是我想知道这些问题的正式依据,不知道哪位大神推荐一下正式的文档或文章给我解读一下~

无法解释楼主为何device->host和host->device的速率不一致。
以及为何最大速率分别只有0.6GB/S和1.4GB/S。

至于峰值为何出现在100MB时候,可能和复制时候的锁定、复制策略有关。
(大致可能是对于不同的数据大小,采用不同的策略,例如就地锁定,或者多次中转到内部的一个page-locked的缓冲区,然后pci-e传输。但是我没有具体资料)

稍微补充一下3#

这个copy的数据在不同的主板上,有时候差异很大,但是并无资料说明是芯片组硬件设计问题,还是软件驱动等的问题。

至于两个方向copy速率不同,这个我个人推测可能和芯片组设计有关,因为虽然理论上pci-e是全双工,双向速率相同的,但是芯片组在实现的时候可能设计的实际传输效能不同。或许在设计时评估过图形应用时双向传输的带宽需求,然后依此设计。当然这个也是个人的推测,并无第一手资料证实或证伪。

大致如此,个人观点供LZ参考。
更内部的资料,有待NV原厂支持在不涉及商业秘密的前提下为LZ披露了。

祝您好运~