pip在windows上安装pycuda

时间:2013-10-28 11:49:58

标签: python windows pycuda

我正在使用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,但也许它会工作得更慢,因为它没有在我的机器上编译。

1 个答案:

答案 0 :(得分:4)

如果有人还在寻找答案:

configure.py生成一个siteconf.py文件,其中包含用于编译pycuda的CUDA .lib文件的路径。但是,它使用不正确的路径(至少在Windows上和使用工具包V7.5时)。

现在可以通过多种方式修复(确保您已经下载了pycuda软件包并将其解压缩到某处):

1。修改setup.py

这是罪魁祸首所在。这些是它目前使用的路径:

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文件。

2。覆盖configure.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)

3。直接修改siteconf.py

最简单的方法。只需运行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}}文件。两个网站链接相同,我在手动解决问题后找到了这些链接)