windows 10 安装CUDA 7.5和PyCUDA(在GPU上运行theano)
2016-02-16 23:36
639 查看
搭建环境之前自己曾在网上搜索过相关博客,能找到的中文资料确实不敢恭维,主要存在的问题是版本过低。因此参考了别人的很多经验,才有了这篇相对版本较新的中文资料,供大家参考交流。
1. 安装Visual Studio 2013
注意:这里并不是VS的版本越新越好(PS: VS2015也已经发布有一段时间了)。
首先,我们需要检查待安装的CUDA版本所支持的VS版本,时至今日(2016.02.16)
我们可以看到,CUDA的最新版本7.5仅提供对VS2013及之前版本的支持。VS2013的安装破解比较简单,在网盘搜索引擎里很容易就能找到安装包和密钥。
安装完成后,记得在系统变量path(system PATH)中添加以下两项:
C:\ProgramFiles (x86)\Microsoft Visual Studio 12.0\VC\bin\;C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE
(PS: 如上你需要根据自己的VS的安装路径做出更改,如果只是针对Theano的话,其实可以不用在这里指明cl.exe的位置,因为接下来我们会在.theanorc文件中再定义一次,为了方便其他应用,最好还是写进去吧)。
2. 安装CUDA toolkit
进入NVIDA的官网,下载完CUDA toolkit之后,一键傻瓜式安装。但是,安装之前还是要提醒你检查一下自己机器的显卡是不是NVIDA的产品。详细安装步骤参考:http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#axzz410A2xbq6
3. 安装Python
可以尝试使用Anaconda(下载地址:https://www.continuum.io/downloads),自动的就会帮助你安装完成Python基本环境,并配置好了诸如numpy,scipy等等python科学计算的常用工具包。如果想安装别的包也很方便,在Anaconda Prompt中键入命令:“conda install [工具包名]”即可。
安装完成Anaconda之后,需要安装依赖项。
4. 安装theano
在以上基础上有两种方法安装theano,差别在于theano的获取途径不同,个人推荐第二种,但是安装之前需要在你的机器上安装git。
方法一:
使用
安装完git后,命令行cd入D:/anaconda2/Lib/site-packages目录下,从github中获取安装文件:
然后进入Theano目录下,执行以下命令
不管使用方法一还是方法二,完成以上过程之后需要在你的HOME目录(类似于c:/Users/YOURNAME/)下创建一个名为 .theanorc.txt的文件(注意文件的开始有一个点),内容如下:
[global]
floatX = float32
device = gpu
[nvcc]
flags=-LC:\SciSoft\Anaconda\libs
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
标记为红色的部分要根据你的anaconda安装目录以及VS2013的安装目录自行选定。
5. 安装PyCUDA
下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycuda
我的Python版本是2.7,所以我下载的是pycuda‑2015.1.3+cuda7518‑cp27‑none‑win_amd64.whl
安装
6. 测试Theano和PyCUDA
最简单的import测试:
输出:
Using gpu device0: GeForce GT 640M (CNMeM is disabled)
根据theano的文档(文档地址:http://deeplearning.net/software/theano/tutorial/using_gpu.html)示例snippet测试:
得到的结果如下:
Using gpu device0: GeForce GT 630M (CNMeM is disabled)
[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32,vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000times took 1.42199993134 seconds
Result is [1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.29967761
1.62323296]
Used the gpu
测试PyCUDA(文档地址: http://documen.tician.de/pycuda/index.html)
测试结果:如果你看到了一堆0那么就要恭喜你了。
至此,我们完成了在WIN10系统上针对GPU平台搭建theano深度学习框架的全部过程。多提一点,如果你不希望运行在GPU上的话,也很简单,上述步骤中你可以省略”安装CUDA”、”安装PyCUDA“、“安装VS2013”等过程,然后配置的时候.theanorc.txt文件中包括[nvcc]在内的其所标注的全部内容都删掉就可以了。
个人原创.转载请注明出处
1. 安装Visual Studio 2013
注意:这里并不是VS的版本越新越好(PS: VS2015也已经发布有一段时间了)。
首先,我们需要检查待安装的CUDA版本所支持的VS版本,时至今日(2016.02.16)
我们可以看到,CUDA的最新版本7.5仅提供对VS2013及之前版本的支持。VS2013的安装破解比较简单,在网盘搜索引擎里很容易就能找到安装包和密钥。
安装完成后,记得在系统变量path(system PATH)中添加以下两项:
C:\ProgramFiles (x86)\Microsoft Visual Studio 12.0\VC\bin\;C:\Program Files(x86)\Microsoft Visual Studio 12.0\Common7\IDE
(PS: 如上你需要根据自己的VS的安装路径做出更改,如果只是针对Theano的话,其实可以不用在这里指明cl.exe的位置,因为接下来我们会在.theanorc文件中再定义一次,为了方便其他应用,最好还是写进去吧)。
2. 安装CUDA toolkit
进入NVIDA的官网,下载完CUDA toolkit之后,一键傻瓜式安装。但是,安装之前还是要提醒你检查一下自己机器的显卡是不是NVIDA的产品。详细安装步骤参考:http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#axzz410A2xbq6
3. 安装Python
可以尝试使用Anaconda(下载地址:https://www.continuum.io/downloads),自动的就会帮助你安装完成Python基本环境,并配置好了诸如numpy,scipy等等python科学计算的常用工具包。如果想安装别的包也很方便,在Anaconda Prompt中键入命令:“conda install [工具包名]”即可。
安装完成Anaconda之后,需要安装依赖项。
conda install mingw libpython
4. 安装theano
在以上基础上有两种方法安装theano,差别在于theano的获取途径不同,个人推荐第二种,但是安装之前需要在你的机器上安装git。
方法一:
使用
pip install theano方法二:
安装完git后,命令行cd入D:/anaconda2/Lib/site-packages目录下,从github中获取安装文件:
git clone git://github.com/Theano/Theano.git
然后进入Theano目录下,执行以下命令
cd Theano python setup.pydevelop
不管使用方法一还是方法二,完成以上过程之后需要在你的HOME目录(类似于c:/Users/YOURNAME/)下创建一个名为 .theanorc.txt的文件(注意文件的开始有一个点),内容如下:
[global]
floatX = float32
device = gpu
[nvcc]
flags=-LC:\SciSoft\Anaconda\libs
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
标记为红色的部分要根据你的anaconda安装目录以及VS2013的安装目录自行选定。
5. 安装PyCUDA
下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycuda
我的Python版本是2.7,所以我下载的是pycuda‑2015.1.3+cuda7518‑cp27‑none‑win_amd64.whl
安装
pip install pycuda‑2015.1.3+cuda7518‑cp27‑none‑win_amd64.whl
6. 测试Theano和PyCUDA
最简单的import测试:
import theano
输出:
Using gpu device0: GeForce GT 640M (CNMeM is disabled)
根据theano的文档(文档地址:http://deeplearning.net/software/theano/tutorial/using_gpu.html)示例snippet测试:
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)) printf.maker.fgraph.toposort() t0 = time.time() for i inxrange(iters): r = f() t1 = time.time() print 'Looping%d times took' % iters, t1 - t0, 'seconds' print 'Resultis', r ifnumpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]): print 'Used the cpu' else: print 'Used the gpu'
得到的结果如下:
Using gpu device0: GeForce GT 630M (CNMeM is disabled)
[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32,vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000times took 1.42199993134 seconds
Result is [1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.29967761
1.62323296]
Used the gpu
测试PyCUDA(文档地址: http://documen.tician.de/pycuda/index.html)
import pycuda.autoinit import pycuda.driver as drv import numpy from pycuda.compiler import SourceModule mod = SourceModule(""" __global__ void multiply_them(float *dest, float *a, float *b) { const int i = threadIdx.x; dest[i] = a[i] * b[i]; } """) multiply_them =mod.get_function("multiply_them") a =numpy.random.randn(400).astype(numpy.float32) b =numpy.random.randn(400).astype(numpy.float32) dest = numpy.zeros_like(a) multiply_them( drv.Out(dest), drv.In(a), drv.In(b), block=(400,1,1), grid=(1,1)) print dest-a*b
测试结果:如果你看到了一堆0那么就要恭喜你了。
至此,我们完成了在WIN10系统上针对GPU平台搭建theano深度学习框架的全部过程。多提一点,如果你不希望运行在GPU上的话,也很简单,上述步骤中你可以省略”安装CUDA”、”安装PyCUDA“、“安装VS2013”等过程,然后配置的时候.theanorc.txt文件中包括[nvcc]在内的其所标注的全部内容都删掉就可以了。
个人原创.转载请注明出处
相关文章推荐
- 学习笔记5
- leetcode 160:Intersection of Two Linked Lists
- CA服务器的创建和CA客户端认证过程
- 【Unity】是否进入摄像机显示区域。
- hdoj 4497(gcd&lcm分解质因数)
- centos6.5集群lvs+keepalived部署
- 继承AppCompatActivity如何实现无标题
- leetcode:Roman to Integer
- 用ccproxy + stunnel做个加密代理
- objective-C学习 自定义对象归档 archiver2
- cocos2dx 3.4配置vs2013 + lua环境
- windows编程基础篇 -- 消息
- hdu 1205 吃糖果
- NSUserDefaults的使用
- 文本文件比较之取不同部分
- 2016_____新年新的目标____android
- stunnel+CCProxy,搭建加密代理
- [maya学习笔记(3)] 物体的显示方式
- 包子qc总结有感
- 使用SwipeRefreshLayout实现下拉刷新与上拉加载更多