installing instalar descargar python windows cuda mingw theano

python - instalar - Instalación de theano en Windows 8 con GPU habilitada



install theano gpu (7)

Aquí hay una guía para instalar theano con CUDA en Windows de 64 bits.

Parece sencillo, pero en realidad no lo he probado para asegurarme de que funciona.

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

Entiendo que el soporte de Theano para Windows 8.1 está en fase experimental solamente, pero me pregunto si alguien tuvo suerte al resolver mis problemas. Dependiendo de mi configuración, obtengo tres tipos distintos de errores. Supongo que la resolución de cualquiera de mis errores resolvería mi problema.

He instalado Python usando el sistema WinPython de 32 bits, usando MinGW como se describe aquí . Los contenidos de mi archivo .theanorc son los siguientes:

[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 =

Cuando ejecuto la import theano el error es el siguiente:

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_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'', ''-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_6_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

También lo probé usando Visual Studio 12.0 que está instalado en mi sistema con el siguiente error:

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

En este último error, varias ventanas emergentes me preguntan cómo me gustaría abrir el archivo (.res) antes de lanzar un error.

cl.exe está presente en ambas carpetas (es decir, VS 2010 y VS 2013).

Finalmente, si configuro VS 2013 en la ruta del entorno y configuro los contenidos .theanorc siguiente manera:

[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 =

Obtuve el siguiente error:

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'']

Si ejecuto import theano sin la opción GPU activada, se ejecuta sin problemas. También muestras CUDA se ejecutan sin problemas.


Siguiendo el tutorial de Matt, me encontré con problemas con nvcc. Necesitaba agregar la ruta a los ejecutables VS2010 en nvcc.profile (puede encontrarlo en la carpeta cuda bin):

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


En caso de que desee actualizar a MS Visual Studio 2012 y CUDA 7 en Windows 8.1 x64, consulte este tutorial aquí:

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

Debería funcionar siempre y cuando te apegues a él exactamente. Todo lo mejor

cristiano


Estos son mis pasos simples para instalar theano en una máquina con Windows 10 de 64 bits. Se prueba en el código que se incluye aquí

(Toda la instalación está con la ruta de instalación predeterminada)

  • instale la distribución anaconda python 3.x (ya incluye numpy, scipy, matlibplot, etc.)
  • ejecuta ''conda install mingw libpython'' en la línea de comandos
  • instale theano descargándolo del sitio web oficial y ejecute `python setup.py install ''
  • instale el último kit de herramientas CUDA para Windows 10 de 64 bits (ahora es 7.5)
  • instalar Visual Studio 2013 (gratis para Windows 10)
  • cree el archivo .theanorc.txt en% USERPROFILE% path y aquí está el contenido en el archivo .theanorc.txt para ejecutar theano con GPU

[global]

floatX = float32

dispositivo = gpu

[nvcc]

fastmath = True

compiler_bindir = C: / Archivos de programa (x86) / Microsoft Visual Studio 12.0 / VC / bin / cl.exe

[cuda]

C: / Archivos de programa / NVIDIA GPU Computing Toolkit / CUDA / v7.5


Pude compilar los archivos cu agregando las dependencias requeridas en el perfil nvcc ubicado en "C: / Archivos de programa / NVIDIA GPU Computing Toolkit / CUDA / v7.5 / bin / nvcc.profile"

Modifiqué la ruta include y lib y comenzó a funcionar.

INCLUYE + = "-I $ (SUPERIOR) / incluya" $ ( ESPACIO ) "-IC: / Archivos de programa (x86) / Microsoft Visual Studio 12.0 / VC / incluya" $ ( SPACE ) "-IC: / Archivos de programa (x86 ) / Microsoft SDKs / Windows / v7.1A / Include "$ ( SPACE ) LIBRARIES = + $ ( SPACE )" / LIBPATH: $ (ARRIBA) / lib / $ (_ WIN_PLATFORM_) "$ ( SPACE )" / LIBPATH: C: / Archivos de programa (x86) / Microsoft Visual Studio 12.0 / VC / lib / amd64 "$ ( SPACE )" / LIBPATH: C: / Archivos de programa (x86) / Microsoft SDKs / Windows / v7.1A / Lib / x64 "$ ( ESPACIO

He hecho una documentación completa de la instalación, espero que ayude https://planetanacreon.wordpress.com/2015/10/09/install-theano-on-windows-8-1-with-visual-studio-2013-cuda -7-5 /


Theano es una gran herramienta para aplicaciones de aprendizaje automático, pero descubrí que su instalación en Windows no es trivial, especialmente para principiantes (como yo) en la programación. En mi caso, veo 5-6x aceleraciones de mis secuencias de comandos cuando se ejecuta en una GPU por lo que definitivamente valió la pena la molestia.

Escribí esta guía en función de mi procedimiento de instalación y está destinado a ser detallado y, con suerte, completo, incluso para personas sin conocimientos previos sobre la creación de programas en entornos Windows. La mayor parte de esta guía se basa en estas instrucciones, pero tuve que cambiar algunos de los pasos para que funcione en mi sistema. Si hay algo que hago que puede no ser óptimo o que no funciona en su máquina, hágamelo saber y trataré de modificar esta guía en consecuencia.

Estos son los pasos (en orden) que seguí al instalar Theano con la GPU habilitada en mi máquina con Windows 8.1:

Instalación de CUDA

CUDA se puede descargar desde aquí . En mi caso, elegí la versión portátil de 64 bits para mi portátil NVIDIA Optimus con Geforce 750m.

Verifique que su instalación fue exitosa al iniciar deviceQuery desde la línea de comandos. En mi caso, esto se encuentra en la siguiente carpeta: C:/ProgramData/NVIDIA Corporation/CUDA Samples/v6.5/bin/win64/Release . Si tiene éxito, debería ver PASS al final de la prueba.

Instalación de Visual Studio 2010

Instalé esto a través de Dreampark . Si eres un estudiante, tienes derecho a una versión gratuita. De lo contrario, aún puede instalar la versión Express que debería funcionar igual de bien. Una vez completada la instalación, debe poder llamar a Visual Studio Command Prompt 2010 desde el menú de inicio.

Instalación de Python

En el momento de escribir, Theano en GPU solo permite trabajar con flotadores de 32 bits y está diseñado principalmente para la versión 2.7 de Python. Theano requiere la mayoría de las bibliotecas científicas básicas de Python, como scipy y numpy . Descubrí que la forma más fácil de instalarlos era a través de WinPython . Instala todas las dependencias en una carpeta independiente que permite una fácil reinstalación si algo sale mal en el proceso de instalación y también obtiene algunas herramientas IDE útiles, como ipython notebook y Spyder instaladas de forma gratuita. Para facilitar el uso, es posible que desee agregar la ruta a su python.exe y la ruta a su carpeta de Scripts en las variables de entorno .

Instalación de Git

Encontrado aquí .

Instalación de MinGW

El archivo de instalación está aquí . Revisé todos los archivos de instalación base durante el proceso de instalación. Esto es necesario si se encuentra con el error g ++ que se describe a continuación.

Instalación de Cygwin

Puedes encontrarlo aquí . Básicamente, utilicé esta utilidad solo para extraer el archivo tar PyCUDA que ya se proporciona en la instalación base (por lo que la instalación debería ser sencilla).

Disolución de Python distutils

Abra msvc9compiler.py ubicado en su directorio /lib/distutils/ de su instalación de Python. La línea 641 en mi caso dice: ld_args.append (''/IMPLIB:'' + implib_file) . Agregue lo siguiente después de esta línea (misma sangría):

ld_args.append(''/MANIFEST'')

Instalación de PyCUDA

La fuente de PyCUDA está aquí .

Pasos:

Abra cygwin y vaya a la carpeta PyCUDA (es decir, /cygdrive/c/etc/etc ) y ejecute tar -xzf pycuda-2012.1.tar.gz .

Abra el símbolo del sistema de Visual Studio 2010 y navegue hasta el directorio donde se extrajo el tarball y ejecute python configure.py

Abra el ./siteconf.py y cambie los valores para que se lea (para CUDA 6.5, por ejemplo):

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'']

Ejecute los siguientes comandos en el símbolo del sistema de VS2010:

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

Crea este archivo python y verifica que obtienes un resultado:

# 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

Instalar Theano

Abra el shell git bash y elija una carpeta en la que desee colocar los archivos de instalación de Theano y ejecutar:

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

Intente abrir python en el símbolo del sistema import theano y ejecute import theano

Si obtiene un error relacionado con g ++, abra MinGW msys.bat en mi caso instalado aquí: C:/MinGW/msys/1.0 e intente importar theano en el shell MinGW. Luego vuelva a intentar importar theano desde el símbolo del sistema VS2010 y debería estar funcionando ahora.

Cree un archivo en WordPad (¡NO en el Bloc de notas!), .theanorc.txt nombre .theanorc.txt y .theanorc.txt en C:/Users/Your_Name/ o donde se encuentre su carpeta de usuarios:

#!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

Cree un script python de prueba y ejecútelo:

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''

Verifica que obtuviste Used the gpu al final y ¡listo!


Usé esta guía , y fue bastante útil. Lo que muchas de las guías de Windows Theano solo mencionan de pasada (o no lo hacen en absoluto) es que necesitarás compilar theano desde mingw shell, no desde tu IDE.

Ejecuté mingw-w64.bat, y de allí "python" e "import theano". Solo después de eso, importarlo de pycharm funciona.

Además, las instrucciones oficiales en deeplearning.net son malas porque te dicen que uses CUDA 5.5, pero no funcionará con tarjetas de video más nuevas.

Los comentarios también son bastante útiles. Si se queja de que faltan crtdefs.h o basetsd.h, haz lo que dice la respuesta de Sunando. Si DESPUÉS de eso, todavía se queja de que el identificador "Iunknown" no está definido en objbase.h, pegue lo siguiente en el archivo C: / Archivos de programa (x86) / Microsoft SDKs / Windows / v7.1A / Include / objbase.h, en la línea 236 :

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

Tuve que hacer esta última parte para que funcione con la instalación de vanguardia (necesaria para partes de Keras).

También escribí una lista de cosas que funcionaron para mí, aquí: http://acoupleofrobots.com/everything/?p=2238 Esto es para la versión de 64 bits.