Установка theano в Windows 8 с включенным графическим процессором

Я понимаю, что поддержка Theano для Windows 8.1 находится только на экспериментальной стадии, но мне интересно, удалось ли кому-нибудь решить мои проблемы. В зависимости от моей конфигурации я получаю три разных типа ошибок. Я предполагаю, что устранение любой из моих ошибок решит мою проблему.

Я установил Python с помощью 32-разрядной системы WinPython, используя MinGW, как описано здесь. Содержимое моего файла .theanorc выглядит следующим образом:

[global]
openmp=False
device = gpu

[nvcc]
flags=-LC:\TheanoPython\python-2.7.6\libs
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\

[blas]
ldflags = 

Когда я запускаю import theano, ошибка выглядит следующим образом:

nvcc fatal   : nvcc cannot find a supported version of Microsoft Visual Studio.
Only the versions 2010, 2012, and 2013 are supported

['nvcc', '-shared', '-g', '-O3', '--compiler-bindir', 'C:\\Program Files (x86)\\
Microsoft Visual Studio 10.0\\VC\\bin# flags=-m32 # we have this hard coded for
now', '-Xlinker', '/DEBUG', '-m32', '-Xcompiler', '-DCUDA_NDARRAY_CUH=d67f7c8a21
306c67152a70a88a837011,/Zi,/MD', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-pa
ckages\\theano\\sandbox\\cuda', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-pac
kages\\numpy\\core\\include', '-IC:\\TheanoPython\\python-2.7.6\\include', '-o',
 'C:\\Users\\Matej\\AppData\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel6
4_Family
mod.cu
nvlink fatal   : Could not open input file 'C:/Users/Matej/AppData/Local/Temp/tm
pxft_00001b70_00000000-28_mod.obj'

['nvcc', '-shared', '-g', '-O3', '--compiler-bindir', 'C:\\Program Files (x86)\\
Microsoft Visual Studio 12.0\\VC\\bin\\', '-Xlinker', '/DEBUG', '-m32', '-Xcompi
ler', '-LC:\\TheanoPython\\python-2.7.6\\libs,-DCUDA_NDARRAY_CUH=d67f7c8a21306c6
7152a70a88a837011,/Zi,/MD', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-package
s\\theano\\sandbox\\cuda', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages
\\numpy\\core\\include', '-IC:\\TheanoPython\\python-2.7.6\\include', '-o', 'C:\
\Users\\Matej\\AppData\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Fam
ily_6_Model_60_Stepping_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd'
, 'mod.cu', '-LC:\\TheanoPython\\python-2.7.6\\libs', '-LNone\\lib', '-LNone\\li
b64', '-LC:\\TheanoPython\\python-2.7.6', '-lpython27', '-lcublas', '-lcudart']
ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return st
atus', 1, 'for cmd', 'nvcc -shared -g -O3 --compiler-bindir C:\\Program Files (x
86)\\Microsoft Visual Studio 12.0\\VC\\bin\\ -Xlinker /DEBUG -m32 -Xcompiler -LC
:\\TheanoPython\\python-2.7.6\\libs,-DCUDA_NDARRAY_CUH=d67f7c8a21306c67152a70a88
a837011,/Zi,/MD -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\theano\\sa
ndbox\\cuda -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\numpy\\core\\i
nclude -IC:\\TheanoPython\\python-2.7.6\\include -o C:\\Users\\Matej\\AppData\\L
ocal\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3
_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\TheanoPython
\\python-2.7.6\\libs -LNone\\lib -LNone\\lib64 -LC:\\TheanoPython\\python-2.7.6
-lpython27 -lcublas -lcudart')
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not availabl
e
Model_60_Stepping_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray .pyd', 'mod.cu', '-LC:\\TheanoPython\\python-2.7.6\\libs', '-LNone\\lib', '-LNon e\\lib64', '-LC:\\TheanoPython\\python-2.7.6', '-lpython27', '-lcublas', '-lcuda rt'] ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return st atus', 1, 'for cmd', 'nvcc -shared -g -O3 --compiler-bindir C:\\Program Files (x 86)\\Microsoft Visual Studio 10.0\\VC\\bin# flags=-m32 # we have this hard coded for now -Xlinker /DEBUG -m32 -Xcompiler -DCUDA_NDARRAY_CUH=d67f7c8a21306c67152a 70a88a837011,/Zi,/MD -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\thean o\\sandbox\\cuda -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\numpy\\co re\\include -IC:\\TheanoPython\\python-2.7.6\\include -o C:\\Users\\Matej\\AppDa ta\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Family
mod.cu
nvlink fatal   : Could not open input file 'C:/Users/Matej/AppData/Local/Temp/tm
pxft_00001b70_00000000-28_mod.obj'

['nvcc', '-shared', '-g', '-O3', '--compiler-bindir', 'C:\\Program Files (x86)\\
Microsoft Visual Studio 12.0\\VC\\bin\\', '-Xlinker', '/DEBUG', '-m32', '-Xcompi
ler', '-LC:\\TheanoPython\\python-2.7.6\\libs,-DCUDA_NDARRAY_CUH=d67f7c8a21306c6
7152a70a88a837011,/Zi,/MD', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-package
s\\theano\\sandbox\\cuda', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages
\\numpy\\core\\include', '-IC:\\TheanoPython\\python-2.7.6\\include', '-o', 'C:\
\Users\\Matej\\AppData\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Fam
ily_6_Model_60_Stepping_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd'
, 'mod.cu', '-LC:\\TheanoPython\\python-2.7.6\\libs', '-LNone\\lib', '-LNone\\li
b64', '-LC:\\TheanoPython\\python-2.7.6', '-lpython27', '-lcublas', '-lcudart']
ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return st
atus', 1, 'for cmd', 'nvcc -shared -g -O3 --compiler-bindir C:\\Program Files (x
86)\\Microsoft Visual Studio 12.0\\VC\\bin\\ -Xlinker /DEBUG -m32 -Xcompiler -LC
:\\TheanoPython\\python-2.7.6\\libs,-DCUDA_NDARRAY_CUH=d67f7c8a21306c67152a70a88
a837011,/Zi,/MD -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\theano\\sa
ndbox\\cuda -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\numpy\\core\\i
nclude -IC:\\TheanoPython\\python-2.7.6\\include -o C:\\Users\\Matej\\AppData\\L
ocal\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3
_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\TheanoPython
\\python-2.7.6\\libs -LNone\\lib -LNone\\lib64 -LC:\\TheanoPython\\python-2.7.6
-lpython27 -lcublas -lcudart')
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not availabl
e
Model_60_Stepp ing_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\TheanoP ython\\python-2.7.6\\libs -LNone\\lib -LNone\\lib64 -LC:\\TheanoPython\\python-2 .7.6 -lpython27 -lcublas -lcudart') WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not availabl e

Я также протестировал его с помощью Visual Studio 12.0, который установлен в моей системе со следующей ошибкой:

mod.cu
nvlink fatal   : Could not open input file 'C:/Users/Matej/AppData/Local/Temp/tm
pxft_00001b70_00000000-28_mod.obj'

['nvcc', '-shared', '-g', '-O3', '--compiler-bindir', 'C:\\Program Files (x86)\\
Microsoft Visual Studio 12.0\\VC\\bin\\', '-Xlinker', '/DEBUG', '-m32', '-Xcompi
ler', '-LC:\\TheanoPython\\python-2.7.6\\libs,-DCUDA_NDARRAY_CUH=d67f7c8a21306c6
7152a70a88a837011,/Zi,/MD', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-package
s\\theano\\sandbox\\cuda', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages
\\numpy\\core\\include', '-IC:\\TheanoPython\\python-2.7.6\\include', '-o', 'C:\
\Users\\Matej\\AppData\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Fam
ily_6_Model_60_Stepping_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd'
, 'mod.cu', '-LC:\\TheanoPython\\python-2.7.6\\libs', '-LNone\\lib', '-LNone\\li
b64', '-LC:\\TheanoPython\\python-2.7.6', '-lpython27', '-lcublas', '-lcudart']
ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return st
atus', 1, 'for cmd', 'nvcc -shared -g -O3 --compiler-bindir C:\\Program Files (x
86)\\Microsoft Visual Studio 12.0\\VC\\bin\\ -Xlinker /DEBUG -m32 -Xcompiler -LC
:\\TheanoPython\\python-2.7.6\\libs,-DCUDA_NDARRAY_CUH=d67f7c8a21306c67152a70a88
a837011,/Zi,/MD -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\theano\\sa
ndbox\\cuda -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\numpy\\core\\i
nclude -IC:\\TheanoPython\\python-2.7.6\\include -o C:\\Users\\Matej\\AppData\\L
ocal\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3
_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\TheanoPython
\\python-2.7.6\\libs -LNone\\lib -LNone\\lib64 -LC:\\TheanoPython\\python-2.7.6
-lpython27 -lcublas -lcudart')
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not availabl
e

В последней ошибке несколько всплывающих окон спрашивают меня, как бы я хотел открыть файл (.res), прежде чем возникнет ошибка.

cl.exe присутствует в обеих папках (т.е. VS 2010 и VS 2013).

Наконец, если я установлю VS 2013 в пути к среде и установлю содержимое .theanorc следующим образом:

[global]
base_compiledir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
openmp=False
floatX = float32
device = gpu

[nvcc]
flags=-LC:\TheanoPython\python-2.7.6\libs
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\

[blas]
ldflags = 

Я получаю следующую ошибку:

c:\theanopython\python-2.7.6\include\pymath.h(22): warning: dllexport/dllimport conflict with "round"
c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\math_functions.h(2455): here; dllimport/dllexport dropped

mod.cu(954): warning: statement is unreachable

mod.cu(1114): error: namespace "std" has no member "min"

mod.cu(1145): error: namespace "std" has no member "min"

mod.cu(1173): error: namespace "std" has no member "min"

mod.cu(1174): error: namespace "std" has no member "min"

mod.cu(1317): error: namespace "std" has no member "min"

mod.cu(1318): error: namespace "std" has no member "min"

mod.cu(1442): error: namespace "std" has no member "min"

mod.cu(1443): error: namespace "std" has no member "min"

mod.cu(1742): error: namespace "std" has no member "min"

mod.cu(1777): error: namespace "std" has no member "min"

mod.cu(1781): error: namespace "std" has no member "min"

mod.cu(1814): error: namespace "std" has no member "min"

mod.cu(1821): error: namespace "std" has no member "min"

mod.cu(1853): error: namespace "std" has no member "min"

mod.cu(1861): error: namespace "std" has no member "min"

mod.cu(1898): error: namespace "std" has no member "min"

mod.cu(1905): error: namespace "std" has no member "min"

mod.cu(1946): error: namespace "std" has no member "min"

mod.cu(1960): error: namespace "std" has no member "min"

mod.cu(3750): error: namespace "std" has no member "min"

mod.cu(3752): error: namespace "std" has no member "min"

mod.cu(3784): error: namespace "std" has no member "min"

mod.cu(3786): error: namespace "std" has no member "min"

mod.cu(3789): error: namespace "std" has no member "min"

mod.cu(3791): error: namespace "std" has no member "min"

mod.cu(3794): error: namespace "std" has no member "min"

mod.cu(3795): error: namespace "std" has no member "min"

mod.cu(3836): error: namespace "std" has no member "min"

mod.cu(3838): error: namespace "std" has no member "min"

mod.cu(4602): error: namespace "std" has no member "min"

mod.cu(4604): error: namespace "std" has no member "min"

31 errors detected in the compilation of "C:/Users/Matej/AppData/Local/Temp/tmpxft_00001d84_00000000-10_mod.cpp1.ii".
ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: ('nvcc return status', 2, 'for cmd', 'nvcc -shared -g -O3 -Xlinker /DEBUG -m32 -Xcompiler -DCUDA_NDARRAY_CUH=d67f7c8a21306c67152a70a88a837011,/Zi,/MD -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\theano\\sandbox\\cuda -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\numpy\\core\\include -IC:\\TheanoPython\\python-2.7.6\\include -o C:\\Users\\Matej\\AppData\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\TheanoPython\\python-2.7.6\\libs -LNone\\lib -LNone\\lib64 -LC:\\TheanoPython\\python-2.7.6 -lpython27 -lcublas -lcudart')
ERROR:theano.sandbox.cuda:Failed to compile cuda_ndarray.cu: ('nvcc return status', 2, 'for cmd', 'nvcc -shared -g -O3 -Xlinker /DEBUG -m32 -Xcompiler -DCUDA_NDARRAY_CUH=d67f7c8a21306c67152a70a88a837011,/Zi,/MD -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\theano\\sandbox\\cuda -IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\numpy\\core\\include -IC:\\TheanoPython\\python-2.7.6\\include -o C:\\Users\\Matej\\AppData\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd mod.cu -LC:\\TheanoPython\\python-2.7.6\\libs -LNone\\lib -LNone\\lib64 -LC:\\TheanoPython\\python-2.7.6 -lpython27 -lcublas -lcudart')
mod.cu

['nvcc', '-shared', '-g', '-O3', '-Xlinker', '/DEBUG', '-m32', '-Xcompiler', '-DCUDA_NDARRAY_CUH=d67f7c8a21306c67152a70a88a837011,/Zi,/MD', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\theano\\sandbox\\cuda', '-IC:\\TheanoPython\\python-2.7.6\\lib\\site-packages\\numpy\\core\\include', '-IC:\\TheanoPython\\python-2.7.6\\include', '-o', 'C:\\Users\\Matej\\AppData\\Local\\Theano\\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.6-32\\cuda_ndarray\\cuda_ndarray.pyd', 'mod.cu', '-LC:\\TheanoPython\\python-2.7.6\\libs', '-LNone\\lib', '-LNone\\lib64', '-LC:\\TheanoPython\\python-2.7.6', '-lpython27', '-lcublas', '-lcudart']

Если я запускаю import theano без включения графического процессора, он работает без проблем. Также образцы CUDA запускаются без проблем.


person Matt    schedule 08.09.2014    source источник
comment
Я также предоставил подробный ответ о том, как установить этот инструмент в Windows здесь: stackoverflow.com/questions/42099814/   -  person devinbost    schedule 10.02.2017


Ответы (7)


Theano — отличный инструмент для приложений машинного обучения, но я обнаружил, что его установка в Windows не является тривиальной, особенно для новичков (таких как я) в программировании. В моем случае я вижу 5-6-кратное ускорение моих скриптов при запуске на графическом процессоре, поэтому это определенно стоило хлопот.

Я написал это руководство, основываясь на моей процедуре установки, и оно должно быть подробным и, надеюсь, полным даже для людей, не имеющих предварительного представления о создании программ в среде Windows. Большая часть этого руководства основана на этих инструкциях, но мне пришлось изменить некоторые шаги. чтобы он работал в моей системе. Если что-то из того, что я делаю, может быть неоптимальным или не работает на вашем компьютере, сообщите мне об этом, и я постараюсь соответствующим образом изменить это руководство.

Вот шаги (по порядку), которые я выполнил при установке Theano с включенным графическим процессором на моем компьютере с Windows 8.1:

Установка CUDA

CUDA можно загрузить с здесь. В моем случае я выбрал 64-битную версию ноутбука для своего ноутбука NVIDIA Optimus с Geforce 750m.

Убедитесь, что установка прошла успешно, запустив deviceQuery из командной строки. В моем случае это было в следующей папке: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.5\bin\win64\Release . В случае успеха вы должны увидеть PASS в конце теста.

Установка Visual Studio 2010

Я установил это через dreamspark. Если вы студент, вы имеете право на бесплатную версию. Если нет, вы все равно можете установить Express-версию который должен работать так же хорошо. После завершения установки вы сможете вызвать командную строку Visual Studio 2010 из меню «Пуск».

Установка Python

На момент написания Theano на GPU позволяло работать только с 32-битными числами с плавающей запятой и в основном создавалось для версии 2.7 Python. Для Theano требуется большинство основных научных библиотек Python, таких как scipy и numpy. Я обнаружил, что проще всего их установить через WinPython. . Он устанавливает все зависимости в автономную папку, что позволяет легко переустановить, если что-то пойдет не так в процессе установки, и вы также получите некоторые полезные инструменты IDE, такие как ноутбук ipython и Spyder, установленные бесплатно. Для простоты использования вы можете добавить путь к вашему python.exe и путь к вашей папке Scripts в переменные среды.

Установка Git

Найдено здесь.

Установка МинГВ

Файл установки находится здесь. Я проверил все файлы базовой установки в процессе установки. Это необходимо, если вы столкнулись с ошибкой g++, описанной ниже.

Установка Cygwin

Вы можете найти его здесь. В основном я использовал эту утилиту только для извлечения tar-файла PyCUDA, который уже предоставлен в базовой установке (поэтому установка должна быть простой).

Исправление distutils Python

Откройте msvc9compiler.py, расположенный в вашем каталоге /lib/distutils/ вашей установки Python. Строка 641 в моем случае гласит: ld_args.append ('/IMPLIB:' + implib_file). Добавьте следующее после этой строки (тот же отступ):

ld_args.append('/MANIFEST')

Установка PyCUDA

Источник для PyCUDA находится здесь.

Шаги:

Откройте cygwin, перейдите в папку PyCUDA (то есть /cygdrive/c/etc/etc) и выполните tar -xzf pycuda-2012.1.tar.gz.

Откройте командную строку Visual Studio 2010, перейдите в каталог, в который был распакован архив, и выполните python configure.py.

Откройте ./siteconf.py и измените значения так, чтобы они читались (например, для CUDA 6.5):

BOOST_INC_DIR = []
BOOST_LIB_DIR = []
BOOST_COMPILER = 'gcc43'
USE_SHIPPED_BOOST = True
BOOST_PYTHON_LIBNAME = ['boost_python']
BOOST_THREAD_LIBNAME = ['boost_thread']
CUDA_TRACE = False
CUDA_ROOT = 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v6.5'
CUDA_ENABLE_GL = False
CUDA_ENABLE_CURAND = True
CUDADRV_LIB_DIR = ['${CUDA_ROOT}/lib/Win32']
CUDADRV_LIBNAME = ['cuda']
CUDART_LIB_DIR = ['${CUDA_ROOT}/lib/Win32']
CUDART_LIBNAME = ['cudart']
CURAND_LIB_DIR = ['${CUDA_ROOT}/lib/Win32']
CURAND_LIBNAME = ['curand']
CXXFLAGS = ['/EHsc']
LDFLAGS = ['/FORCE']

Выполните следующие команды в командной строке VS2010:

set VS90COMNTOOLS=%VS100COMNTOOLS%
python setup.py build
python setup.py install

Создайте этот файл Python и убедитесь, что вы получили результат:

# from: http://documen.tician.de/pycuda/tutorial.html
import pycuda.gpuarray as gpuarray
import pycuda.driver as cuda
import pycuda.autoinit
import numpy
a_gpu = gpuarray.to_gpu(numpy.random.randn(4,4).astype(numpy.float32))
a_doubled = (2*a_gpu).get()
print a_doubled
print a_gpu

Установить Теано

Откройте оболочку git bash и выберите папку, в которую вы хотите поместить установочные файлы Theano, и выполните:

git clone git://github.com/Theano/Theano.git
python setup.py install

Попробуйте открыть python в командной строке VS2010 и запустить import theano

Если вы получаете ошибку, связанную с g++, откройте MinGW msys.bat в моем случае, установленном здесь: C:\MinGW\msys\1.0, и попробуйте импортировать theano в оболочку MinGW. Затем повторите попытку импорта theano из командной строки VS2010, и теперь он должен работать.

Создайте файл в WordPad (НЕ Блокнот!), назовите его .theanorc.txt и поместите его в C:\Users\Your_Name\ или туда, где находится папка ваших пользователей:

#!sh
[global]
device = gpu
floatX = float32

[nvcc]
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
# flags=-m32 # we have this hard coded for now

[blas]
ldflags =
# ldflags = -lopenblas # placeholder for openblas support

Создайте тестовый скрипт Python и запустите его:

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print f.maker.fgraph.toposort()
t0 = time.time()
for i in xrange(iters):
    r = f()
t1 = time.time()
print 'Looping %d times took' % iters, t1 - t0, 'seconds'
print 'Result is', r
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print 'Used the cpu'
else:
    print 'Used the gpu'

Убедитесь, что вы получили Used the gpu в конце, и все готово!

person Matt    schedule 27.09.2014
comment
Это круто. Спасибо большое. - person brentlance; 07.10.2014
comment
Если, как и я, вы столкнулись с gcc.exe: ошибка: /EHsc: Нет такого файла или каталога при попытке запустить сборку python setup.py. Это потому, что вы не используете правильный компилятор. Вы можете заставить его работать с python setup.py build --compiler=msvc - person alexandrekow; 02.01.2015
comment
также не могли бы вы опубликовать содержимое вашего C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\Win32 и C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\x64? У меня проблемы с установкой theano в Windows, поэтому я и спрашиваю. Например, у меня нет cublas.lib под Win32, но он есть под x64. У вас так же? - person morpheus; 03.04.2015
comment
@morpheus Я не пытался установить это в системе x64, и с тех пор я переустановил свою систему. Вам удалось заставить его работать? Если нет, я могу попробовать установить его еще раз и посмотреть на вас. - person Matt; 08.04.2015
comment
@Matt, спасибо за ваш ответ. Нет, я не мог заставить его работать. Кажется, что установка x64 является жестким требованием, если вы используете CUDA v7 в Windows. Это связано с тем, что в CUDA v7 нет 32-битной версии cublas.lib. В документации NVIDIA также есть соответствующий раздел: см. раздел 1.1.1 по этой ссылке developer.download.nvidia.com/compute/cuda/7_0/Prod/doc/. Для меня это первая попытка установить theano, и я не знаю, была ли в предыдущих версиях CUDA 32-битная версия cublas.lib (я знаю, что версия 3.2 была, но это было еще в 2010 году). - person morpheus; 08.04.2015
comment
@morpheus Если CUDA 7.0 не является для вас жестким требованием, пробовали ли вы CUDA 6.5 по следующей ссылке ? - person Matt; 08.04.2015
comment
@Matt, CUDA 7 не является жестким требованием. Но прежде чем я удалю 7 и установлю 6.5, не могли бы вы поделиться со мной содержимым вашей папки lib\Win32? В нем есть cublas.lib? - person morpheus; 08.04.2015
comment
@morpheus Я бы не стал переустанавливать его, так как у меня больше нет системы. Я не могу сделать это сразу, но, может быть, позже на этой неделе? - person Matt; 08.04.2015
comment
@Matt, не утруждай себя переустановкой. Я надеялся, что если у вас была установка, было бы просто поделиться содержимым, но если у вас нет установки, ничего страшного. Я попробую спросить кого-нибудь еще, у кого есть v6.5 CUDA. - person morpheus; 08.04.2015
comment
у меня ошибка от импорта pycuda._driver * ImportError: Ошибка загрузки DLL: %1 является geen geldige Win32-toepassing. - person Martijn van Wezel; 26.06.2015
comment
@Matt Большое спасибо за это руководство по установке. Я сделал все до PyCUDA installation. Но я использую CUDA 7.5 и VS 2015 (более старая установка). Выполняя python configure.py, я получил два исключения: Could not build the egg. и raise ImportError в строке 144 файла distribute_setup.py. Вы знаете решение? Или можно создать новую тему по этому вопросу? - person Matthias; 21.10.2015
comment
@Matthias Матиас, основываясь на этом отчете об ошибке, я не уверен, в чем может быть дело. Я бы, вероятно, поднял отдельную ветку для этой проблемы, поскольку сбой при сборке яиц может быть не связан с установкой CUDA 7.5 или PyCUDA. - person Matt; 22.10.2015

Вот мои простые шаги по установке theano на 64-битной машине с Windows 10. Он протестирован на коде, указанном здесь.

(Все установки выполняются с путем установки по умолчанию)

  • установить дистрибутив anaconda python 3.x (он уже включает numpy, scipy, matlibplot и т. д.)
  • запустите «conda install mingw libpython» в командной строке
  • установите theano, загрузив его с официального сайта, и выполните `python setup.py install'
  • установить последний набор инструментов CUDA для 64-битной Windows 10 (сейчас 7.5)
  • установить Visual Studio 2013 (бесплатно для Windows 10)
  • создайте файл .theanorc.txt по пути %USERPROFILE%, и вот содержимое файла .theanorc.txt для запуска theano с графическим процессором

[Глобальный]

поплавокX = поплавок32

устройство = графический процессор

[nvcc]

быстрая математика = Истина

компилятор_bindir = C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe

[куда]

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5


person tangkk    schedule 08.10.2015
comment
Привет, я сделал все это, но получаю сообщение об ошибке: ERROR (theano.sandbox.cuda): Failed to compile cuda_ndarray.cu: Я разместил полную информацию об ошибке здесь: (groups.google.com/forum/#!topic/theano-users/WkjeeDRvmXo), не могли бы вы мне помочь? - person ishido; 26.04.2016

Вот руководство по установке theano с CUDA в 64-битной Windows.

Это кажется простым, но я на самом деле не тестировал его, чтобы убедиться, что он работает.

http://pavel.surmenok.com/2014/05/31/installing-theano-with-gpu-on-windows-64-bit/

person brentlance    schedule 18.09.2014
comment
Я понял, что причина, по которой моя установка не работала, заключалась в том, что мой графический процессор сгорел на материнской плате (я получил неисправный блок). Я видел это руководство раньше, но я проверю новую настройку, если она работает. Я дам вам ответ, как только я это сделаю. - person Matt; 22.09.2014
comment
Мне действительно очень любопытно услышать, как проходит установка. Пожалуйста, дайте мне знать! - person brentlance; 22.09.2014
comment
@JohnnyStrings Что сработало, так это ответ, который я опубликовал. Я не проверял это некоторое время, поэтому я не уверен, что ответ все еще актуален. - person Matt; 02.10.2015

Следуя руководству Мэтта, я столкнулся с проблемами с nvcc. Мне нужно было добавить путь к исполняемым файлам VS2010 в nvcc.profile (его можно найти в папке cuda bin):

"compiler-bindir = C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64"

person super-truite    schedule 16.03.2015
comment
Я думаю, что у меня такая же проблема, как у вас. После сборки и установки шага pycuda, когда я импортирую ''import pycuda.autoinit'', происходит сбой python. Можете ли вы сказать мне, как именно это исправить? - person Jani; 11.05.2015

Если вы хотите перейти на MS Visual Studio 2012 и CUDA 7 в Windows 8.1 x64, ознакомьтесь с этим руководством здесь:

http://machinelearning.berlin/?p=383

Это должно работать до тех пор, пока вы придерживаетесь его точно. Всего наилучшего

христианин

person Christian Schröder de Witt    schedule 29.05.2015

Я мог бы скомпилировать файлы cu, добавив необходимые зависимости в профиль nvcc, расположенный в «C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\nvcc.profile».

Я изменил путь включения и библиотеки, и он начал работать.

INCLUDES += "-I$(TOP)/include" $(ПРОБЕЛ) "-IC:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include" $(ПРОБЕЛ ) «-IC:\Program Files (x86)\Microsoft SDK\Windows\v7.1A\Include» $(ПРОБЕЛ) LIBRARIES =+ $(ПРОБЕЛ) «/LIBPATH:$(TOP)/lib/$(_WIN_PLATFORM_)» $(ПРОБЕЛ) «/LIBPATH:C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/lib /amd64" $(ПРОБЕЛ) "/LIBPATH:C:\Program Files (x86)\Microsoft SDK\Windows\v7.1A\Lib\x64" $(ПРОБЕЛ )

Я сделал полную документацию по установке, надеюсь, она поможет https://planetanacreon.wordpress.com/2015/10/09/install-theano-on-windows-8-1-with-visual-studio-2013-cuda-7-5/

person Sunando    schedule 14.10.2015

Я использовал это руководство, и оно оказалось весьма полезным. Во многих руководствах по Windows Theano упоминается лишь вскользь (или вообще не упоминается), что вам нужно будет скомпилировать theano из оболочки mingw, а не из вашей IDE.

Я запустил mingw-w64.bat, а оттуда «python» и «import theano». Только после этого импорт из pycharm работает.

Кроме того, официальные инструкции на deeplearning.net плохи тем, что говорят вам использовать CUDA 5.5, но она не будет работать с более новыми видеокартами.

Комментарии также весьма полезны. Если он жалуется на отсутствие crtdefs.h или basetsd.h, сделайте то, что говорит ответ Sunando. Если ПОСЛЕ ЭТОГО он по-прежнему жалуется, что идентификатор «Iunknown» не определен в objbase.h, вставьте следующее в файл C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\objbase.h в строке 236. :

#include <wtypes.h>
#include <unknwn.h>

Мне пришлось сделать эту последнюю часть, чтобы она работала с установкой переднего края (требуется для частей Keras).

Я также составил список того, что мне помогло, здесь: http://acoupleofrobots.com/everything/?p=2238 Это для 64-битной версии.

person Ilya Raykhel    schedule 10.01.2016