Search code examples
python-2.7visual-studio-2015windows-10-desktopchainercupy

Can not import cupy with chainer 4.1.0


I have a project in python2.7.11 using chainer and cupy. After updating version of Chainer from 1.22 to 4.1.0, I can not using cupy

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

This is the way I installed chainer1.22. It was able to import cupy successfully without installing cupy.

pip install chainer==1.22,

Check

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

I can see that CUDA is available with chainer1.22

So I uninstall chainer 1.22

pip uninstall chainer

Install chainer 4.1.0

pip install chainer==4.1.0

Result is

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

Can see that cuda is not available with chainer version 4.1.0. So I try to install cupy with pip

pip install cupy

Log when installing

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\

Failed to buil cupy I checked nvcc version

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

The same problem occurs when I try installing cupy by pip with chainer1.22 environment

This is my environment

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

I referenced this post But it doesnt work for me.

HOW CAN I IMPORT CUPY WITH CHAINER4.1.0?

Thank you for reading my question!


Solution

  • As far as I know, chainer and cupy become separated after chainer version 2. So cupy is automatically installed with chainer version 1, but you need to install cupy separately after chainer version 2. So you need to install cupy but I don't know the reason why build failed.

    If you can understand the CUDA version which you are using, you can install from built package cupy-cudaXX where XX represents your CUDA version. Try below:

    # 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