5

如何创建 CUDA 上下文?CUDA 的第一次调用很慢,我想在启动内核之前创建上下文。

4

2 回答 2

12

强制运行时 API 上下文建立的规范方法是调用cudaFree(0). 如果您有多个设备,请cudaSetDevice()使用要在其上建立上下文的设备的 ID 调用,然后cudaFree(0)建立上下文。

编辑:请注意,从 CUDA 5.0 开始,上下文建立的启发式方法似乎略有不同,并且cudaSetDevice()它本身会在设备上建立上下文。所以cudaFree(0)不再需要显式调用(尽管它不会伤害任何东西)。

于 2012-05-02T14:37:07.873 回答
2

使用运行时 API: cudaDeviceSynchronizecudaDeviceGetLimit或任何实际访问上下文的东西都应该可以工作。

我很确定您没有使用驱动程序 API,因为它不会进行那种延迟初始化,但为了其他人的利益,驱动程序调用将是cuCtxCreate.

于 2012-05-02T14:00:39.840 回答