图灵架构中异步引擎计数的澄清

  • 本文关键字:引擎 异步 图灵 cuda gpu
  • 更新时间 :
  • 英文 :


这种情况是,我知道 Fermi 中引入的并发复制和执行机制,并在以后的架构中进一步增强,如 CUDA C++最佳实践指南中所述:

当前 GPU 可以同时处理异步数据传输 并执行内核。具有单个复制引擎的 GPU 可以执行一个 异步数据传输和执行内核,而 GPU 具有两个 复制引擎可以同时执行一次异步数据传输 从主机到设备,一次异步数据传输从 设备到主机,并执行内核。上的复制引擎数 GPU 由 cudaDeviceProp 的 asyncEngineCount 字段给出 结构,也列在设备查询 CUDA 的输出中 样本。

当我在图灵 GPU(RTX 2080Ti 和 RTX 2080 SUPER(上执行 CUDA 10.0 的deviceQuery样本时,它显示asyncEngineCount等于3

我只能想象,使用 2 个复制引擎,内核可以与 H2D 和 D2H 副本并发执行(总共 3 个并发操作(。 那么,图灵GPU中第三引擎的功能是什么?

这个问题可以用一个词来回答,如果StackOverflow允许的话:NVLink

例如,通过 NVLink 连接两张卡,除了全带宽主机<>设备传输外,每张卡的额外复制引擎还允许您在全带宽下通过 NVLink 执行双向对等复制。

如果超过两张卡,并非所有链路都可以同时饱和,每张卡只有三个复制引擎。但是,随着链路数量的增加,同时使用所有链路的可能性也越来越小,因为此方案将很快耗尽主机内存带宽。

最新更新