2015-02-18 7 views
2

Эта установка Theano делает меня с ума :(Установка Theano с GPU на Windows, 8.1 64-разрядные с Visual Studio 2013

Итак, я следовал инструкции здесь на самом голосовавшие ответ, потому что это казалось самым аналогичный condiguration из шахты и до современной версии: Installing theano on Windows 8 with GPU enabled

1- Я установил Cuda v6.5, запустил deviceQuery и она отлично работает

2- у меня уже есть Visual Studio 2013, так что я гавань. Установленный Visual Studio 2010

3-> На момент написания документа Theano on GPU разрешает работать только с 32-битными поплавками и в основном создан для версии версии Python версии 2.7.

Так что я точно не знаю, что такое текущее состояние, но у меня есть знакомый с той же конфигурацией, что и мой, и ему удалось заставить его работать, поэтому я думаю, это возможно. Я установил Python через Anaconda.

4- Я установил MinGW и Cygwin

5- Я исправил msvc9compiler.py

6- Вот узкое место: установка PyCuda

Вот что я сделал: - Я использовал Cygwin, чтобы извлечь файл PyCuda деготь - Я казнен питон configure.py через VS2013 x64 Native Командную строки, чем сконфигурированный siteconfig.py как следует:

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', '${CUDA_ROOT}/lib/x64'] 
CUDADRV_LIBNAME = ['cuda'] 
CUDART_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib/x64'] 
CUDART_LIBNAME = ['cudart'] 
CURAND_LIB_DIR = ['${CUDA_ROOT}/lib', '${CUDA_ROOT}/lib/x64'] 
CURAND_LIBNAME = ['curand'] 
CXXFLAGS = ['/EHsc', '-DBOOST_NO_TYPEID'] 
LDFLAGS = ['/FORCE'] 
  • Я казнены питон setup.py сборки --compiler = "MSVC" через VS2013 x64 Native Tools Command Prompt
  • Я казнены питон setup.py установить через VS2013 x64 Native Tools Command Prompt
  • Когда я выполнить небольшой тест на питона, вот что происходит:

    PS C:\users\jmm\desktop> python test.py 
    
    Vendor: Continuum Analytics, Inc. 
    
    Package: mkl 
    
    Message: trial mode expires in 29 days 
    
    Traceback (most recent call last): 
    
        File "test.py", line 7, in <module> 
        a_doubled = (2*a_gpu).get() 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\gpuarray.py", line 471, in __rm 
    ul__ 
        return self._axpbz(scalar, 0, result) 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\gpuarray.py", line 333, in _axp 
    bz 
        func = elementwise.get_axpbz_kernel(self.dtype, out.dtype) 
    
        File "<string>", line 2, in get_axpbz_kernel 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\tools.py", line 423, in context 
    _dependent_memoize 
        result = func(*args) 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\elementwise.py", line 417, in g 
    et_axpbz_kernel 
        "axpb") 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\elementwise.py", line 157, in g 
    et_elwise_kernel 
        arguments, operation, name, keep, options, **kwargs) 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\elementwise.py", line 143, in g 
    et_elwise_kernel_and_types 
        keep, options, **kwargs) 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\elementwise.py", line 71, in ge 
    t_elwise_module 
        options=options, keep=keep) 
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\compiler.py", line 251, in __in 
    it__ 
        arch, code, cache_dir, include_dirs) 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\compiler.py", line 241, in comp 
    ile 
        return compile_plain(source, options, keep, nvcc, cache_dir) 
    
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\compiler.py", line 73, in compi 
    le_plain 
        checksum.update(preprocess_source(source, options, nvcc).encode("utf-8")) 
        File "C:\Users\jmm\Anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg\pycuda\compiler.py", line 52, in prepr 
    ocess_source 
        cmdline, stderr=stderr) 
    
    pycuda.driver.CompileError: nvcc preprocessing of c:\users\jmm\appdata\local\temp\tmp32jnzb.cu failed 
    [command: nvcc --preprocess -arch sm_30 -m64 -Ic:\users\jmm\anaconda\lib\site-packages\pycuda-2014.1-py2.7-win-amd64.egg 
    \pycuda\cuda c:\users\jmm\appdata\local\temp\tmp32jnzb.cu --compiler-options -EP] 
    [stderr: 
    tmp32jnzb.cu 
    'C:\Program' n'est pas reconnu en tant que commande interne 
    ou externe, un programme exécutable ou un fichier de commandes. 
    ] 
    

не могли бы вы сказать мне, почему, черт возьми, это не работает?

ответ

1

Вы, вероятно, нужно добавить путь к исполняемым для Visual Studio в вашем nvcc.profile

(вы можете найти его в папке CUDA бен На моей системе:. C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\bin).

В моем случае, так как у меня есть Visual Studio 2010, я добавил в конце nvcc.profile:

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

На самом деле вам не нужно устанавливать PyCuda, чтобы получить Theano работает на вашем окна машины. Я не эксперт, но у меня установлен Theano на Windows 8.1.

Это моя конфигурация для ноутбука: 64-разрядная, nvcc/cuda 6.5, Python 2.7.9, WinPython-64bit-2.7.9.3, Windows 8.1, VS2013 и два графических устройства (Intel HD Graphics 4600 и NVIDIA GeForce GT 750M).

0

Я смог получить Theano на моем ноутбуке ASUS K501LX Windows 8.1 с графическим процессором NVIDIA GeForce 950M без каких-либо проблем. Я в значительной степени следовал за запиской Маора выше с 29 марта. Я был в шоке от того, насколько это было легко! Все, что мне было нужно, это Community Edition для Visual Studio 2013 и CUDA 7 Toolkit. Затем я установил Anaconda 3.4 (я использовал последнюю версию, которая сейчас есть). Одна модификация, которую я сделал для сообщения Маора, заключалась в установке mingw через conda install mingw libpython сразу после установки Anaconda. Кроме того, поскольку я использую Python 3, мне пришлось изменить параметр flags в .theanorc.txt, чтобы указать на C:\Anaconda3\libs.

При импорте theano, он вернул, что он использовал мое устройство GeForce GTX 950M, и проверка theano\misc\check_blas.py не вернула ошибки и провела тесты на моем графическом процессоре.

Счастливые времена!

1

Процесс был довольно большой хлопот, так вот учебник для тех, кто заинтересован:

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

Вам нужны 64-битные окна, 32 бит не будет работать. Вам также понадобится CUDA compatible graphics card, поэтому, если у вас его нет, вы, к сожалению, застряли. Это означает, что вам нужна относительно современная графическая карта NVIDIA, AMD не будет работать (она может запускать OpenCL, но не CUDA, потому что CUDA является хромой и проприетарной).

Я устанавливаю это на Windows 8.1, но я подозреваю, что все это должно работать и на Windows 7.

Сначала загрузите WinPython, (убедитесь, что вы получили python 2.7, версия 2.7.10.3, эта ссылка указывает на это) и установите его в ПУТЬ, КОТОРЫЙ НЕ ИМЕЕТ ПРОСТРАНСТВ В ЭТО. ВНЕШНИЕ ВЕЩИ. Я создал папку Other в C: \ (C: \ Other), а затем создал папку с именем Python27 (C: \ Other \ Python27) и попросил установщик установить ее там.

Как только это будет сделано, вам нужно будет добавить его на свой путь. Нажмите на окна ключ и тип переменных среды, а затем нажмите кнопку «Изменить системные переменные среды», нажмите кнопку Переменные среды в окнах, что всплывает, прокрутите вниз к пути, а затем добавить

C:\Other\Python27\python-2.7.10.amd64 

Или везде, где вы установили WinPython к

Затем добавьте точку с запятой после него, так что вы получите

C:\Other\Python27\python-2.7.10.amd64; 

Это, как вы добавляете конкретный путь к переменным пути, в будущем, я просто скажу, чтобы добавить его здесь и сейчас дать конкретные шаги о том, как это сделать т. Обратите внимание: если вы обновите системный путь, текущие окна командной строки, которые открыты, не получат это обновление, и вам нужно будет открыть новое окно командной строки, чтобы на самом деле использовать новый путь.

Цель пути так ваше окно командной строки знает, где программа, потому что, если вы звоните, скажет

питон

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

Если вы не хотите загромождать свою переменную пути/если ваша переменная пути заполнена, я помещаю учебник here о том, как сделать так, чтобы ваш путь был просто добавлен, когда вы открываете окно командной строки через текст файл, в котором хранятся все пути, вместо необходимости изменять переменную среды, если вы заинтересованы.

Затем нужно добавить

C:\Other\Python27\python-2.7.10.amd64\DLL; 
C:\Other\Python27\python-2.7.10.amd64\Scripts; 

на вашем пути, а также (опять же, или везде, где вы установили питона. Для позже я просто скажу, где я установил его и, если вы установили его куда-то его должно быть довольно просто настроить команды соответственно)

Затем установите сообщество visual studio 2015 и visual studio 2013, также обязательно установите все инструменты, связанные с разработкой C++ (с использованием пользовательской установки, затем в разделе Языки программирования). Они не должны быть в пути без пробелов, и они, вероятно, не позволят вам хранить их в любом месте в любом случае, и все в порядке.

Добавить

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin; 

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64; 

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib; 

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64; 

К вашему системному пути.

УСТАНАВЛИВАЙТЕ НЕ НОВЫЙ ДРАЙВЕР, ПОТОМУ ЧТО ОНИ НЕ УСТАНАВЛИВАЮТСЯ, но вместо этого 355.60, потому что он известен как очень надежный и достаточно новый. Затем установите CUDA toolkit (это также нормально хранить в пути с пробелами, вероятно, он тоже не даст вам возможности, но даже если это произойдет, просто сохраните его в месте по умолчанию, в котором он хочет сохранить его) , Версия 6.5 необходима, поскольку версия 7 и выше не поддерживаются pycuda. Если у вас есть GTX 9__, вам нужно будет скачать CUDA с here.

Это, вероятно, автоматически добавит

C:\Program Files (x86)\Windows Kits\8.1\Redist\D3D\x64; 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin; 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\libnvvp; 
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common; 

В вашем пути, если вам не нужно будет делать это сейчас.

Это единственные три вещи, которые можно сохранить в путях с пробелами (они будут похожи на файлы программы или программные файлы (x86)), а все остальное будет очень осторожным, чтобы хранить их на путях, которые не имеют пространства.

Скачать (немного 1_55_0 для 64, который является версией эта ссылка указывает) boost binaries, и запустите программу установки, а затем выберите, чтобы сохранить их на путь без пробелов (я хранил их в C: \ Other \ подталкивание)

Перейдите в этот каталог в командной строке, а затем запустить

bootstrap.bat 

, а затем, когда это будет сделано запустить

.\b2 

Начнётся стро ding, и занимать много времени и использовать много места (около 6 ГБ).

Вероятно, это говорит о том, что 8 целей не удались, 8 целей были пропущены, а 1075 были обновлены. Это то, чего следует ожидать, и это не проблема.

Установите Git-2.7.0-64-bit в какой-то путь без пробела в нем

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

Добавить

C:\Other\Git\bin; 

К системному пути

Далее запустите программу установки для VCForPython.

Скачать pycuda источник (PyCuda-2015.1.3)

Перейдите в этот каталог, а затем запустить

python configure.py 

это создаст файл с именем siteconf.py.

Открыть этот файл, и он должен выглядеть что-то вроде

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

изменить его так, как это выглядит:

BOOST_INC_DIR = ['C:/Other/boost'] 
BOOST_LIB_DIR = ['C:/Other/boost/lib64-msvc-12.0'] 
BOOST_COMPILER = 'msvc' 
USE_SHIPPED_BOOST = True 
BOOST_PYTHON_LIBNAME = ['boost_python-vc120-mt-1_55'] 
BOOST_THREAD_LIBNAME = ['boost_thread-vc110-mt-1_55'] 
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', '${CUDA_ROOT}/lib/x64'] 
CUDADRV_LIBNAME = ['cuda'] 
CUDART_LIB_DIR = ['${CUDA_ROOT}/lib/Win32', '${CUDA_ROOT}/lib/x64'] 
CUDART_LIBNAME = ['cudart'] 
CURAND_LIB_DIR = ['${CUDA_ROOT}/lib/Win32', '${CUDA_ROOT}/lib/x64'] 
CURAND_LIBNAME = ['curand'] 
CXXFLAGS = ['/DBOOST_PYTHON_STATIC_LIB', '/EHsc'] 
LDFLAGS = ['/LIBPATH:C:\\Other\\boost\\/lib64-msvc-12.0', '/FORCE'] 

затем запустить

python setup.py build 

следуют

python setup.py install 

Это должно установить PyCuda для вас =)

Чтобы установить Theano (с GPU включен), скачать release 0.7, распаковать его, перемещаться внутри нее с помощью командной строки, а затем введите

python setup.py install 

затем и редактировать системные переменные окружения, и создать один по имени

THEANO_FLAGS 

и установите его значение

device=gpu,floatX=float32 

Затем откройте новое командное приглашение, и если вы выполнили все вышеприведенные шаги, это должно хорошо работать =) Вы можете запустить код here, чтобы убедиться, что вы фактически сбегаете с графического процессора.