我正在使用VS2008,Win XP,最新的CUDA工具包。 我在Windows上运行pip install pycuda并获取以下日志 C:\ Documents and Settings \ User \ Application Data \ pip \ pip.log
我收到错误
LINK:致命错误LNK1181:无法打开输入文件'cuda.lib'
错误:命令'“C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ BIN \ link.exe“'失败,退出状态为1181
我想我需要为cuda lib指定一些路径变量,但是我不明白什么变量以及为什么它在cuda toolkit的安装期间没有设置。
更新 我管理来解决这个问题从here安装prebuild pycuda,但也许它会工作得更慢,因为它没有在我的机器上编译。
答案 0 :(得分:4)
如果有人还在寻找答案:
configure.py生成一个siteconf.py文件,其中包含用于编译pycuda的CUDA .lib文件的路径。但是,它使用不正确的路径(至少在Windows上和使用工具包V7.5时)。
现在可以通过多种方式修复(确保您已经下载了pycuda软件包并将其解压缩到某处):
这是罪魁祸首所在。这些是它目前使用的路径:
default_lib_dirs = [
"${CUDA_ROOT}/lib", "${CUDA_ROOT}/lib64",
# https://github.com/inducer/pycuda/issues/98
"${CUDA_ROOT}/lib/stubs", "${CUDA_ROOT}/lib64/stubs",
]
目前,Nvidia使用CUDA_PATH作为环境变量,.lib文件存储在单独的x64或Win32文件夹中。您可以将这些路径添加到数组中,也可以删除不正确的路径
default_lib_dirs = ["${CUDA_PATH}/lib/x64", "${CUDA_PATH}/lib/Win32"]
现在运行py configure.py
以生成siteconf.py文件。
如上所述,configure.py生成siteconf.py文件。您可以使用可选参数调用configure.py来覆盖默认库文件夹(我们在setup.py中定义的文件夹)。 运行configure.py --help
后的部分输出--cudadrv-lib-dir=DIR
Library directories for Cudadrv (default:
${CUDA_PATH}/lib/x64) (several ok)
--cudadrv-libname=LIBNAME
Library names for Cudadrv (without lib or .so)
(default: cuda) (several ok)
--cudart-lib-dir=DIR Library directories for Cudart (default:
${CUDA_PATH}/lib/x64) (several ok)
--cudart-libname=LIBNAME
Library names for Cudart (without lib or .so)
(default: cudart) (several ok)
--curand-lib-dir=DIR Library directories for Curand (default:
${CUDA_PATH}/lib/x64) (several ok)
--curand-libname=LIBNAME
Library names for Curand (without lib or .so)
(default: curand) (several ok)
最简单的方法。只需运行py configure.py
即可生成包含默认路径的siteconf.py
文件,然后再编辑该文件
后来我发现这两个页面都建议这样做:
https://kerpanic.wordpress.com/2015/09/28/pycuda-windows-installation-offline/
https://wiki.tiker.net/PyCuda/Installation/Windows
要将其全部包装起来,请运行以下命令编译并安装pycuda:
py setup.py build
py setup.py install
(这将使用先前生成/修改的siteconf.py文件)。
那就是:)
(如果你想知道我为什么写下所有3种方法而不是最简单的方法,我实际上在default_lib_dirs
中弄乱了setup.py
之后发现了siteconf.py和configure.py文件。 {1}}文件。两个网站链接相同,我在手动解决问题后找到了这些链接)