CPU是否可以在启动未完成的GPU源代码(cuda内核)后进行上下文切换?

CPU是否可以在启动未完成的GPU源代码(cuda内核)后进行上下文切换?,cuda,gpu,cpu,context-switch,Cuda,Gpu,Cpu,Context Switch,基本上,在CPU和GPU通信中,如果在CPU上运行的进程启动了cuda内核,那么如果该进程不依赖于cuda内核的结果,它仍然可以发出代码 但是,在CPU上运行的进程是否可能在启动未完成的cuda内核之后进行上下文切换 如果可能,内部会发生什么情况?CPU线程可以随时切换上下文,包括在cudaDeviceSynchronize()调用期间等待(异步)内核启动的结果 通过使用cudaDeviceScheduleYield或cudaDeviceScheduleBlockingSync标志调用,可以进一

基本上,在CPU和GPU通信中,如果在CPU上运行的进程启动了cuda内核,那么如果该进程不依赖于cuda内核的结果,它仍然可以发出代码

但是,在CPU上运行的进程是否可能在启动未完成的cuda内核之后进行上下文切换


如果可能,内部会发生什么情况?

CPU线程可以随时切换上下文,包括在
cudaDeviceSynchronize()
调用期间等待(异步)内核启动的结果


通过使用
cudaDeviceScheduleYield
cudaDeviceScheduleBlockingSync
标志调用,可以进一步促进同步期间的上下文切换,这将使处理器比
cudaDeviceScheduleSpin
cudaDeviceScheduleAuto
设置更快。CPU线程可以随时切换上下文,包括在
cudaDeviceSynchronize()
调用期间等待(异步)内核启动的结果

通过使用
cudaDeviceScheduleYield
cudaDeviceScheduleBlockingSync
标志调用,可以进一步促进同步过程中的上下文切换,这将比
cudaDeviceScheduleSpin
cudaDeviceScheduleAuto
设置更快地生成处理器