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