在程序中多次调用jcuda.driver.JCudaDriver / cuInit是否安全?

时间:2012-09-08 20:51:48

标签: cuda jcuda

我正在使用动态语言(Clojure)使用JCuda以交互式开发方式创建CUDA上下文。通常我会调用包含对jcuda.driver.JCudaDriver/cuInit的调用的初始化程序。多次调用cuInit是否安全?另外,有没有像cuInit的destroy方法?我问,因为可能会返回错误代码CUDA_ERROR_DEINITIALIZED

1 个答案:

答案 0 :(得分:2)

要回答这个问题,是的,多次致电cuInit可能是安全的。我没有注意到这样做有任何副作用。

但请注意,cuInit仅触发API内的一次性初始化过程。它对设备或上下文没有任何作用,它肯定无法返回CUDA_ERROR_DEINITIALIZED。在在应用程序中调用cuInit之后执行所做的步骤(即创建上下文)会产生真正的影响 - 每次调用它时都会创建一个新的上下文,资源耗尽将会如果上下文没有被主动销毁,就会发生。对API没有等效的去初始化调用。我的意图是,一旦初始化,运行时API应该保持在该状态,直到应用程序终止。