cuda tong bu 和 yibu
文章目录
cuda tong bu 和 yibu
- 同步操作:
- 主机向设备提交任务,主机将阻塞,直到设备将所提交任务完成,并将控制权交回主机。
- 然后继续执行主机的程序。
- 异步操作:
- 主机向设备提交任务,
- 设备直接开始执行任务,
- 但主机将不再阻塞,
- 而直接继续执行主机的程序。
- 主机并不会等待设备执行任务完毕。
- CUDA当中,kernel的执行总是异步的,
- cudaMemcpy数据传输总是同步的。
- 主机在提交核函数之后,不会阻塞等待核函数执行完毕。
- 在profiler CUDA程序时,要记得添加cudaDeviceSynchronize() 同步,
- 或添加一个数据传输(cudaMemcpy-隐含着同步操作) ,以保证核函数执行结束。不然很容易检测不到核函数(如图所示)