1

我正在使用 Python/NumbaPro 在 Windows 盒子上使用我的 CUDA 兼容 GPU。我使用 Cygwin 作为 shell,并且在 cygwin 控制台中找到我的 CUDA 设备没有问题。我用简单的命令测试

    numbapro.check_cuda()

但是当我通过 OpenSSH 连接到盒子时(作为我的 Cygwin 设置的一部分),我收到以下错误:

numba.cuda.cudadrv.error.CudaSupportError: Error at driver init:
Call to cuInit results in CUDA_ERROR_NO_DEVICE:

如何解决这个问题?

4

1 回答 1

1

造成这种情况的主要原因是 Windows 服务会话 0 隔离。当您通过在会话 0 中运行的服务(例如 sshd 或 windows 远程桌面)运行任何应用程序时,机器的本机显示驱动程序不可用。对于 CUDA 应用程序,这意味着您在运行时会收到无可用设备错误,因为您用于登录的 sshd 正在作为服务运行并且没有可用的 CUDA 驱动程序。

有一些解决方法:

  1. 将 sshd 作为进程而不是服务运行。
  2. 如果您有兼容的 GPU,请使用 TCC 驱动程序而不是 GPU 显示驱动程序。

在第二个问题上,您看到的 Python 运行时错误来自multiprocessing模块。从这个问题看来,根本原因可能是NUMBER_OF_PROCESSORS未设置环境变量。您可以使用该线程中的一种解决方法来解决该问题

于 2015-07-01T10:59:46.987 回答