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

Is it possible for CPU to do context-switch after initiating GPU source code(cuda kernel) that is not finished?

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

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

如果可能的话,内部会发生什么?

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

您可以通过使用 cudaDeviceScheduleYieldcudaDeviceScheduleBlockingSync 标志调用 cudaSetDeviceFlags() 来进一步促进同步期间的上下文切换,这将比 cudaDeviceScheduleSpincudaDeviceScheduleSpin 更快地产生处理器cudaDeviceScheduleAuto 设置。