(CUDA 7) 流简化并行
发布时间
阅读量:
阅读量
【CUDA 7流简化并发
异构计算指的是对系统中所有处理器资源进行高效利用,其中包括中央处理器与图形处理器。为实现这一目标,应用程序需要在多个处理单元上并行执行任务。在CUDA编程环境中,应用程序通过将异步操作封装于流(即按特定顺序执行的指令序列)中,以实现并发处理。不同流之间可以同时运行,也可以按照一定顺序依次执行命令。
当未指定具体流时执行异步CUDA指令时,运行时系统会自动采用默认流进行处理。在CUDA 7版本之前,默认流具有特殊性质,它会与设备上的其他所有流隐式同步。
CUDA 7引入了多项功能增强,其中一项重要改进是允许每个主机线程拥有独立的默认流,从而避免传统默认流所带来的串行化问题。本文将展示该特性如何提升CUDA程序中内核调用与数据复制之间的并行效率。
CUDA中的异步命令
根据《CUDA C编程指南》所述,异步命令会在设备完成所请求的任务之前将控制权交还给调用它的主线程(即非阻塞操作)。这些操作包括:
• 内核启动;
• 在同一设备内存地址间进行的数据复制;
• 从主机向设备复制不超过64 KB大小的内存块;
• 带有Async后缀函数所执行的内存复制;
• 内存设置函数调用。
对于内核启动或主机与设备之间的内存复制操作而言,指定对应流是可选步骤;用户可以在不指定任何特定流(或通过将stream参数设为零)的情况下直接
全部评论 (0)
还没有任何评论哟~
