我正在使用动态语言 (Clojure) 以使用 JCuda 的交互式开发方式创建 CUDA 上下文。通常我会调用一个初始化器,其中包含对jcuda.driver.JCudaDriver/cuInit
. 多次调用 cuInit 是否安全?另外,有没有类似cuInit的destroy方法?CUDA_ERROR_DEINITIALIZED
我问,因为它可能返回错误代码。
问问题
546 次
1 回答
3
要回答这个问题,是的,cuInit
多次调用可能是安全的。我没有注意到这样做的任何副作用。
但是请注意,这cuInit
只会触发 API 内的一次性初始化过程。它对设备或上下文没有任何作用,而且它绝对不能返回 CUDA_ERROR_DEINITIALIZED。在调用应用程序后执行您将执行的步骤cuInit
(即创建上下文)将产生真正的影响 - 每次调用它时都会创建一个新的上下文,如果上下文没有被主动销毁,则会发生资源耗尽。API 没有等效的取消初始化调用。我想这样做的目的是,一旦初始化,运行时 API 预计将保持该状态,直到应用程序终止。
于 2012-09-09T10:11:29.380 回答