CUDA流
参考书目: CUDA编程基础与实践
作者: 樊哲勇
章节: 第11章 CUDA流
CUDA流¶
cuda流是由主机发出的在一个设备中执行的cuda操作,多个cuda流会并发或交错的进行,在没有指定cuda流的情况,所有cuda操作都在默认的空流进行的,非空流是在主机端产生和销毁的,可由cudaStream_t
表示
cudaError_t cudaStreamCreate(cudaStream_t*);
cudaError_t cudaStreamDestory(cudaStream_t);
以下是构建,销毁一个CUDA流的例子
cudaStream_t stream_1;
cudaStreamCreate(&stream_1);
cudaStreamDestory(stream_1);
为了实现不同CUDA流之间的并发,主机在某个CUDA流发布一系列指令后,必须立刻获得程序控制权,不用等待CUDA在设备中执行完毕
检查一个CUDA流中的操作是否在设备中执行完毕
cudaError_t cudaStreamSynchronize(cudaStream_t stream);//强制阻塞主机,等待CUDA流完成
cudaError_t cudaStreamQuery(cudaStream_t stream);//只返回是否完成的表示