10.3_CUDA流
10.3 CUDA流
在第6章,我们引入了CUDA事件的概念。当时并没有介绍CUDAEventRecord()的第二个参数,而只是简要地指出这个参数用于指定插入事件的流(Stream)。
cudalevent_t start;
cudaleventCreate(&start);
cudaleventRecord( start, 0 );CUDA流在加速应用程序方面起着重要的作用。CUDA流表示一个GPU操作队列,并且该队列中的操作将以指定的顺序执行。我们可以在流中添加一些操作,例如核函数启动、内存复制,以及事件的启动和结束等。将这些操作添加到流的顺序也就是它们的执行顺序。你可以将每个流视为GPU上的一个任务,并且这些任务可以并行执行。我们将首先介绍如何使用流,然后介绍如何使用流来加速应用程序。