首页 > 解决方案 > 如果 NVIDIA 控制面板设置了计算优化,cuCtxCreate 会失败

问题描述

我通过 JCuda API 运行 CUDA。当我使用 NVIDIA 控制面板为参与的 JVM 可执行文件 (java.exe) 设置计算优化(默认情况下关闭)时,程序无法在对 cuCtxCreate 的调用中创建上下文。

为了优化,程序运行得很好。唯一的问题是内核中运行时间的偏差太大(~50%)从运行到运行。我一直在寻找以垄断模式获得 CUDA 核心的方法,以获得更稳定的结果。

我是否误解了控制面板中的这个参数?

线程“主”jcuda.CudaException 中的异常:com.varankin.cuda.CudaContext 的 jcuda.driver.JCudaDriver.cuCtxCreate(JCudaDriver.java:1606) 的 jcuda.driver.JCudaDriver.checkResult(JCudaDriver.java:353) 处的 CUDA_ERROR_UNKNOWN。 (CudaContext.java:21)

配置:

标签: javacudacontrolpaneljcuda

解决方案


为了优化,程序运行得很好。唯一的问题是内核中运行时间的偏差太大(~50%)从运行到运行。

这可能是由 WDDM 驱动程序批处理计算命令引起的,如果您四处搜索,您会发现一些建议,您可以尝试将其负面影响降至最低。

我一直在寻找以垄断模式获得 CUDA 核心的方法,以获得更稳定的结果。

这种类型的操作模式仅适用于 Tesla 和某些在 Windows 上使用 TCC 模式的 Quadro GPU。您的 GPU 不能以这种方式使用。

我是否误解了控制面板中的这个参数?

是的。从文档中引用:

Windows 10, Maxwell GPUs and later.
Offers significant improvement for some Compute applications.
Care should be taken when turning this setting ON, as there can
be unpredictable effects with some applications and graphics features.

给出这个警告,安全的做法是离开那个出发点。


推荐阅读