1

I'm running Python 2.7 (Anaconda distribution) on a 64-bit Windows 7 workstation, and I'm trying to get Theano (v0.7.0) to run on an NVIDIA Quadro 2000 GPU for a machine learning application. Here's where I'm up to:

  1. I've installed CUDA v6.5 and added all of the necessary paths to the Windows path environment variable, as far as I can tell. I've been through the CUDA installation guide for Windows (http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#axzz3oYtn9SKk) and passed each test successfully, suggesting that the CUDA toolkit is communicating with the GPU.

  2. I also have Visual Studio 12.0 installed, and paths set to the following directories:

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\
    
  3. Theano will run my code on the CPU. However, if I try and run some test code on the GPU, I get the following errors and warnings:

    ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc     return status', 1, 'for cmd', 'nvcc -shared -O3 --use-local-env --cl-version=2012 -use_fast_math --compiler-bindir C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\ -Xlinker /DEBUG -D HAVE_ROUND -m64 -Xcompiler -DCUDA_NDARRAY_CUH=11b90075e2397c684f9dc0f7276eab8f,-D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,/Zi,/MD -IC:\\Anaconda\\lib\\site-packages\\theano\\sandbox\\cuda -IC:\\Anaconda\\lib\\site-packages\\numpy\\core\\include -IC:\\Anaconda\\include -o C:\\Users\\Simon\\AppData\\Local\\Theano\\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_45_Stepping_7_GenuineIntel-2.7.8-64\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\Anaconda\\libs -LC:\\Anaconda -lpython27 -lcublas -lcudart')
    ERROR:theano.sandbox.cuda:Failed to compile cuda_ndarray.cu: ('nvcc return status', 1, 'for cmd', 'nvcc -shared -O3 --use-local-env --cl-version=2012 -use_fast_math --compiler-bindir C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\ -Xlinker /DEBUG -D HAVE_ROUND -m64 -Xcompiler -DCUDA_NDARRAY_CUH=11b90075e2397c684f9dc0f7276eab8f,-D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,/Zi,/MD -IC:\\Anaconda\\lib\\site-packages\\theano\\sandbox\\cuda -IC:\\Anaconda\\lib\\site-packages\\numpy\\core\\include -IC:\\Anaconda\\include -o C:\\Users\\Simon\\AppData\\Local\\Theano\\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_45_Stepping_7_GenuineIntel-2.7.8-64\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\Anaconda\\libs -LC:\\Anaconda -lpython27 -lcublas -lcudart')
    WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu0 is not available  (error: cuda unavilable)
    WARNING:theano.sandbox.cuda:CUDA is installed, but device gpu0 is not available  (error: cuda unavilable)
    nvcc fatal   : Cannot find compiler '' in PATH
    

This seems to imply that the GPU and/or CUDA are unavailable, or that the NVCC compiler can't be located in the PATH variable? If it's the latter, my path contains

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\libnvvp 

but perhaps there are other directories that should be included?

Any idea what could be going on?

SWS
  • 115
  • 1
  • 9

2 Answers2

2

I also encountered a similar problem about "CUDA is installed, but device gpu is not available (error: cuda unavilable)" previously.

The problem was solved right after following the instruction of one line on http://deeplearning.net/software/theano/install_windows.html:


download the stdint.h header from here and save it as C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC\include\stdint.h

Tom
  • 3,168
  • 5
  • 27
  • 36
0

It might happen because the compiling to use PyCUDA was failed.

Install MinGW and make a path to its bin directory. I fixed the problem with it.

fx-kirin
  • 1,906
  • 1
  • 20
  • 33