如何创建 CUDA 上下文?CUDA 的第一次调用很慢,我想在启动内核之前创建上下文。
强制建立运行时 API 上下文的规范方法是调用 cudaFree(0)
。如果您有多个设备,请使用要在其上建立上下文的设备 ID 调用 cudaSetDevice()
,然后cudaFree(0)
建立上下文。
编辑:请注意,从CUDA 5.0开始,上下文建立的启发式方法似乎略有不同,并且
cudaSetDevice()
本身在设备上建立上下文是调用的。因此,不再需要显式cudaFree(0)
调用(尽管它不会造成任何伤害(。
使用运行时 API:cudaDeviceSynchronize
、cudaDeviceGetLimit
或任何实际访问上下文的内容都应该有效。
我很确定您没有使用驱动程序 API,因为它不执行那种延迟初始化,但为了其他人的利益,驱动程序调用将是cuCtxCreate
。