我在python2.7.11中有一个使用chainer和cupy的项目。
将Chainer的版本从1.22更新到4.1.0后,我无法使用cupy

>>> import cupy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cupy


这是我安装chainer1.22的方式。它能够成功导入cupy,而无需安装cupy。

pip install chainer==1.22,


检查一下

>>> import chainer
>>> import cupy
>>> chainer.cuda.available
True


我可以看到CUDA可用于chainer1.22

所以我卸载了chainer 1.22

pip uninstall chainer


安装链接器4.1.0

pip install chainer==4.1.0


结果是

>>> import chainer
>>> import cupy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cupy
>>> chainer.cuda.available
False


可以看到cuda在链接器版本4.1.0中不可用。
所以我尝试用点子安装cupy

pip install cupy


安装时记录

Requirement already satisfied: numpy>=1.9.0 in c:\users\UserName\appdata\local\continuum\anaconda2\lib\site-packages (from cupy)
Requirement already satisfied: six>=1.9.0 in c:\users\UserName\appdata\local\continuum\anaconda2\lib\site-packages (from cupy)
Requirement already satisfied: fastrlock>=0.3 in c:\users\UserName\appdata\local\continuum\anaconda2\lib\site-packages (from cupy)
Building wheels for collected packages: cupy
  Running setup.py bdist_wheel for cupy ... /
.
.
.
Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
  Copyright (C) Microsoft Corporation.  All rights reserved.

  tmpxft_000027f8_00000000-1.cpp
  nvcc fatal   : Host compiler targets unsupported OS.
  error: command 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v8.0\\bin/nvcc.exe' failed with exit status 1

  ----------------------------------------
  Failed building wheel for cupy
  Running setup.py clean for cupy
Failed to build cupy
Installing collected packages: cupy
.
.
.
Microsoft (R) C/C++ Optimizing Compiler Version 15.00.30729.01 for x64
    Copyright (C) Microsoft Corporation.  All rights reserved.

    tmpxft_0000456c_00000000-1.cpp
    nvcc fatal   : Host compiler targets unsupported OS.
    error: command 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v8.0\\bin/nvcc.exe' failed with exit status 1

    ----------------------------------------
Command "C:\Users\UserName\AppData\Local\Continuum\Anaconda2\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\UserName\\appdata\\local\\temp\\pip-build-gwroh2\\cupy\\setup.py';
f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();
exec(compile(code, __file__, 'exec'))" install --record c:\users\UserName\appdata\local\temp\pip-tbtixt-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:\users\UserName\appdata\local\temp\pip-build-gwroh2\cupy\


未能煮杯
我检查了nvcc版本

nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Mon_Jan__9_17:32:33_CST_2017
Cuda compilation tools, release 8.0, V8.0.60


当我尝试在Chainer1.22环境中通过pip安装Cupy时,会出现相同的问题

这是我的环境

Windows 10 pro 64bit
Anaconda 2.4.11
NVDIA GTX 1060 6GB, Driver Version: 398.11
CUDA 8.0
Visual studio 2015


我引用了这个post
但这对我不起作用。

如何将CHAINER4.1.0导入杯?

感谢您阅读我的问题!

最佳答案

据我所知,chainer版本2之后,chainer和cupy分离了。
因此cupy随链接器版本1一起自动安装,但是您需要在链接器版本2之后单独安装cupy。
因此,您需要安装cupy,但我不知道构建失败的原因。

如果您可以了解所使用的CUDA版本,则可以从内置软件包cupy-cudaXX中进行安装,其中XX代表您的CUDA版本。
请尝试以下方法:

# make sure cupy is uninstalled
pip uninstall cupy
pip uninstall cupy
# based on the cuda version, install command changes.
# Ex. CUDA version is 8.0
pip install cupy-cuda80
# Ex2. CUDA version is 9.0
# pip install cupy-cuda90

09-07 04:21