CUDA专题12—深度解析CUDA异步并发执行:高效利用GPU计算与数据传输

1. 异步并发执行

CUDA将以下操作暴露为可彼此并发执行的独立任务:

  • 主机端的计算;
  • 设备端的计算;
  • 从主机到设备的内存传输;
  • 从设备到主机的内存传输;
  • 同一设备内部的内存传输;
  • 多设备间的内存传输。

这些操作之间所能实现的并发级别,取决于设备的特性集和计算能力(如下所述)。

1.1. 主机与设备的并发执行

通过异步库函数实现的主机并发执行,会在设备完成请求任务之前就将控制权返回给主机线程。使用异步调用时,多个设备操作可以一起排队,由CUDA驱动在适当的设备资源可用时执行。这大大减轻了主机线程管理设备的责任,使其可以自由执行其他任务。以下设备操作相对于主机是异步的:

  • 内核启动;
  • 单个设备内部的内存复制;
  • 从主机到设备、内存块大小为64KB或更小的内存复制;
  • 带有"Async"后缀的函数执行的内存复制;
  • 内存设置函数调用。

程序员可以通过设置环境变量CUDA_LAUNCH_BLOCKING=1来全局禁用系统上所有CUDA应用程序的内核启动异步性。此功能仅供调试使用,不应作为生产软件可靠

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI专题精讲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值