场景是,我知道 Fermi 中引入的并发复制和执行机制,并在后来的架构中进一步增强,如CUDA C++ 最佳实践指南中所述:
当前的 GPU 可以同时处理异步数据传输和执行内核。具有单个复制引擎的 GPU 可以执行一项异步数据传输并执行内核,而具有两个复制引擎的 GPU 可以同时执行一项从主机到设备的异步数据传输、一项从设备到主机的异步数据传输并执行内核。GPU 上的复制引擎数量由 cudaDeviceProp 结构的 asyncEngineCount 字段给出,该字段也在 deviceQuery CUDA 示例的输出中列出。
当我deviceQuery
在 Turing GPU(RTX 2080Ti 和 RTX 2080 SUPER)上执行 CUDA 10.0 的示例时,它显示asyncEngineCount
等于3。
我只能想象,使用 2 个复制引擎,一个内核可以与一个 H2D 以及一个 D2H 副本同时执行(总共 3 个并发操作)。那么,图灵GPU中的第三引擎的作用是什么?
归档时间: |
|
查看次数: |
1003 次 |
最近记录: |