【发布时间】:2022-08-16 16:16:49
【问题描述】:
我发现以下代码可以通过 python 访问 CUDA 运行时,或者更确切地说,加载库来这样做:
libnames = (\"libcuda.so\", \"libcuda.dylib\", \"cuda.dll\")
for libname in libnames:
try:
cuda = ctypes.CDLL(libname)
except OSError:
continue
else:
break
else:
return (0, 0, 0.0, \"Could not load CUDA library\")
这段代码在 Linux 上工作得很好,我也被告知在 Mac 上,但在 Windows 上它不会打开 CUDA.dll,说它找不到它。我的文件系统不包含CUDA.DLL,而是有cudart64_110.dll、cufft64_10.dll 和其他随CUDA SDK 提供的(我现在安装了11.0、11.1 和11.4)。在 lib 文件夹中,有一个 cuda.lib。
我可以用 Windows 以某种方式做到这一点,还是必须使用 pyculib
-
您所指的库不是“运行时”。它是 Cuda 驱动程序 API 库,它是 NVIDIA 驱动程序分发的一部分,而不是工具包。
-
我手边没有windows机器,但上次我查看了windows中安装的GPU驱动程序,相关文件是
nvcuda.dll而不是cuda.dll,它位于/位于C:\\Windows\\System32(对于一个适当的驱动安装)。因此,如果您没有类似的文件,则意味着 1. 您没有支持 CUDA 的 GPU 2. 您有支持 CUDA 的 GPU,但没有安装正确的驱动程序来启用 CUDA .从例如获取的驱动程序例如,Windows 更新可能没有安装此文件。如果您有支持 CUDA 的 GPU,建议安装来自 NVIDIA 来源的最新驱动程序。 -
是的,这行得通。使用 nvcuda.dll 是问题所在,我使用的代码是错误的。那将是一个可以接受的答案;)