《ACM Transactions on Programming Languages and Systems》:StreamAlloc: A Framework for Analyzing and Transforming CUDA Code to Enable Asynchronous Execution
【字体:
大中小
】
时间:2026年03月30日来源:ACM Transactions on Programming Languages and Systems
在 CUDA 编程模型中,默认流上的数据传输是同步的,同样地,在默认流上启动的设备内核无法与其他内核计算和数据传输重叠。可以使用 CUDA 中的异步 API 和流来启用重叠执行。然而,使用它们需要仔细处理多个数据传输调用、主机操作和内核计算之间的数据依赖关系,以确保程序的正确性。此外,程序中的大量数据传输调用和内核调用使得为每次调用手动分配适当的流标识符变得更加困难。对于非专家程序员来说,这一挑战仍然很艰巨,因为他们缺乏正确的工具和专业知识。