cuda tong bu 和 yibu

cuda tong bu 和 yibu

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

cuda tong bu 和 yibu

canci

添加链接描述