这个Theano装置让我很生气:(
所以,我已按照这里最多投票答案的说明进行操作,因为它看起来与我的最新版本相似:Installing theano on Windows 8 with GPU enabled
1-我已经安装了Cuda v6.5,启动了deviceQuery,它运行正常。
2-我已经安装了Visual Studio 2013,因此我还没有安装Visual Studio 2010
3->在撰写本文时,GPU上的Theano只允许使用32位浮点数,主要是为2.7版本的Python构建的。
所以我现在还不知道目前的状态究竟是什么,但我有一个配置与我相同的朋友,他设法让它发挥作用,所以我猜它是可能的。我已经通过Anaconda安装了Python。
4-我安装了MinGW和Cygwin
5-我已经修复了msvc9compiler.py
6-这是瓶颈:PyCUDA安装
这就是我所做的: - 我使用cygwin来提取pycuda tar文件 - 我已经通过VS2013 x64 Native Tools命令提示符执行了python configure.py,而不是配置的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']
当我在python中执行小测试时,这里发生了什么:
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.
]
你能告诉我为什么这不起作用吗?
答案 0 :(得分:2)
我为整个过程写了一本实用指南:
https://my6266blog.wordpress.com/2015/01/21/installing-theano-pylearn2-and-even-gpu-on-windows/
祝你好运!它并不复杂,只需按照步骤逐一进行。答案 1 :(得分:1)
您可能需要在nvcc.profile
(你可以在你的CUDA bin文件夹中找到它。在我的系统上: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"
答案 2 :(得分:1)
实际上,您不需要安装pycuda即可在Windows机器上运行theano。我不是专家,但我在Windows 8.1上安装了Theano。
这是我的笔记本配置: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)
答案 3 :(得分: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,此链接指向那里)并将其安装到没有空间的路径中。否则会有所作为。我在C:\(C:\ Other)中创建了一个Other文件夹,然后创建了一个名为Python27的文件夹(C:\ Other \ Python27)并告诉安装程序将其安装在那里。
安装完成后,您需要将其添加到路径中。按Windows键并键入环境变量,然后单击“编辑系统环境变量”,在弹出的窗口中单击“环境变量”,向下滚动到“路径”,然后追加
C:\Other\Python27\python-2.7.10.amd64
或者将WinPython安装到
的其他地方然后在它后添加一个分号,这样你就得到了
C:\Other\Python27\python-2.7.10.amd64;
这是你为Path变量添加一个特定路径的方法,将来,我只想说在这里添加它,现在给出具体的步骤来说明如何做到这一点。请注意,如果更新系统路径,则打开的当前命令提示符窗口将不会获得该更新,您必须打开一个新的命令提示符窗口以实际让它使用新路径。
路径的目的是让命令提示符窗口知道程序的位置,因为如果你打电话,请说
蟒
在命令提示符下,它将查看路径中的每个文件夹,直到找到python.exe。如果它找不到任何东西,它就会生气,因为如果该程序不存在通常就会生气。
如果你不想弄乱你的路径变量/如果你的路径变量已满,我会给你一个关于如何制作它的教程here,这样当你打开一个命令提示符窗口时你的路径就会被追加到如果您有兴趣,可以通过存储所有路径的文本文件,而不必编辑环境变量。
然后您需要添加
C:\Other\Python27\python-2.7.10.amd64\DLL;
C:\Other\Python27\python-2.7.10.amd64\Scripts;
到你的路径(再次,或者你安装python的任何地方。稍后我会说我安装它的地方,如果你在其他地方安装它,那么相应地调整命令应该很容易)
接下来,安装visual studio 2015社区和visual studio 2013,确保安装所有与c ++开发相关的工具(使用自定义安装,然后在Programming Languages下)。这些不需要在没有空格的路径中,并且它们可能不会让你将它们存储在任何其他地方,这是可以的。
添加
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版,因为pycuda不支持版本7及更高版本。如果您有GTX 9__,则需要从here下载CUDA。
这可能会自动附加
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)中),其他一切都非常小心地将它们存储到没有空格的路径
下载boost binaries(此链接指向的版本为64位的1_55_0),然后运行安装程序,然后选择将它们存储到没有空格的路径中(我将它们存储到C:\ Other \升压)
在命令行中导航到该目录,然后运行
bootstrap.bat
然后在完成后运行
.\b2
这将开始构建,需要很长时间,并占用大量空间(约6 GB)。
可能会说8个目标失败,8个目标被跳过,1075个被更新。这是人们应该期待的,而不是问题。
将Git-2.7.0-64-bit安装到某个没有空格的路径
选择使用Windows命令提示符中的Git,签出Windows样式,提交Unix样式结尾,使用Window的默认控制台窗口,并且不启用文件系统缓存。
添加
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以确保你实际上在GPU上运行。< / p>
答案 4 :(得分:0)
我能够使用NVIDIA GeForce 950M GPU在我的华硕K501LX Windows 8.1笔记本电脑上安装Theano,没有任何麻烦。从3月29日起,我在很大程度上遵循了Maor的帖子。我真的很震惊它是多么容易!我需要的只是Visual Studio 2013的Community Edition和CUDA 7 Toolkit。然后我安装了Anaconda 3.4(我现在使用的是最新版本)。我对Maor的帖子做的一个修改是在安装Anaconda之后立即通过conda install mingw libpython
安装mingw。此外,由于我使用的是Python 3,因此我必须将.theanorc.txt
中的flags参数更改为C:\Anaconda3\libs
。
导入theano时,它返回说它正在使用我的GeForce GTX 950M设备,并且运行theano\misc\check_blas.py
检查没有返回任何错误并在我的GPU上执行了测试。
快乐时光!