CUDA Stream概述
发布时间
阅读量:
阅读量
一、Stream的概念
基于CUDA的程序通常需要处理大量数据,在这种情况下,内存带宽往往会成为瓶颈。借助Stream的帮助,这些 CUDA 程序能够有效地实现内存读取与数值运算的并行操作,并显著提升数据吞吐量。
Cuda流指的是一个由多个异步的CUDA操作组成的集合,在host代码调用的顺序下依次执行于device上。经典的CUDA编程模式我们已经熟悉了:首先将输入数据从host传输至device;然后在device上运行kernel;最后将结果从device传输回host。
Cuda Streams
所有与 cuda 相关的操作(不仅涉及 kernel 执行还包含数据传输)都会以显式或隐式的方式运行在 stream 中。而 stream 仅限于两种类型:
· 采用隐式声明方式使用 NULL 型 stream
· 采用显式声明方式使用 non-NULL 型 stream
采用异步机制且基于流模型的kernel执行与数据传输能够支持以下几种类型的并行处理:
· host端的运算指令与device端的计算任务可同时进行
· host端的计算指令与其至device端的数据传输可同时完成
· host至device的数据传输指令与其内部的计算任务可同时处理
· device内部的各项计算指令也可相互协同运行
二、Stream的
全部评论 (0)
还没有任何评论哟~
