Win10 64bit 安装Theano 配置CUDA 实现GPU加速 详细步骤

来源:互联网 发布:那个网站有淘宝优惠券 编辑:程序博客网 时间:2024/04/28 03:51

一、前言
之前接触过深度学习,由于实验室台式电脑是32位且没有独显,跑深度学习这样层次复杂的模型,运算时间上非常漫长(干着急…)。这次在自己笔记本上重新折腾,配置CUDA ,通过学习网上总结的教程,不断尝试,最终安装成功。现将整个安装过程记录下来。

二、软件信息:
【1】操作系统:Win10 64bit
【2】Python环境及相关依赖包:Anaconda-2.1.0-Windows-x86_64
【3】Theano包:深度学习框架
【4】检查显卡是否支持GPU加速。如果显卡不支持GPU加速,到此就没有必要进行下面两步配置操作了。
【5】C++环境安装:直接安装微软的VisualStudio环境。
【6】并行计算架构安装:直接安装CUDA。

三、详细配置步骤

整个过程总共包括六步,顺次执行如下:开始→了解操作系统→Python环境及相关依赖包→Theano包安装→检查显卡是否支持GPU加速→C++环境安装→并行计算架构安装→配置结束,下面就对每个步骤进行详细描述。

  • 了解操作系统

    主要是了解操作系统是32bit,还是64bit ,然后在之后几个步骤中都要下载与自己系统位数一致的软件。

  • Python环境及相关依赖包安装

    目前Python的版本主要分为Python 2.x和Python 3.x,由于Theano采用的Pyhton 2.x进行编写的,所以在这里安装Python环境的时候建议安装Python2.x,除了安装最基本的Python环境,还应该安装一些其他的依赖包以供Theano使用。在安装Python环境极其相关依赖包的过程中,如果一个一个的安装其他依赖包,这样显得较为麻烦,这里建议安装一个Python集成开发包,Python集成开发包种类较多,我这里安装的Anaconda(版本为Anaconda-2.1.0-Windows-x86_64,[点这里下载32位](https://repo.continuum.io/archive/),安装的地址可以直接建在C盘,也可以放其他盘。我放在了E:\program files\Anaconda 在安装完Python后,会附带一个IDE,叫Spyder。打开Spyder ,输入python命令,即可看到响应的输出结果,这表明Python已经正确安装。注意:如果使用Anaconda -4.0.0 等高版本的话,会发现没有MinGW,需要自己另外单独安装了MinGW,它的方式是 :打开cmd,然后直接输入 conda install mingw libpython 回车就会出现安装进度,然后安装成功。而我提供的这个版本自带MinGW。
  • 深度学习框架Theano安装

    在前两步已经正确配置后就可以安装Theano了。由于Anaconda中的Python依赖包集中已经有了pip工具包,因此在安装Theano时,只需保证网络畅通的前提下,打开控制台,然后输入>>pip install theano命令并回车,然后稍等片刻即可自动安装上最新版的Theano深度学习框架。这时可到D:\Anaconda\Lib\site-packages目录下查看是否已经有theano和Theano-0.7.0-py2.7.egg-info两个文件夹,若有则表明已经安装成功。一般情况下,这一步不会出错,很容易操作。

安装结束后,检查当前用户目录下是否有.theanorc.txt文件(这是theano的一些初始设置信息文件,如不知道当前用户目录位置,可以打开控制台窗口,该窗口里面第一个命令提示行所示的目录位置就是当前用户目录位置,我的是C:\Users\allwe即为当前用户目录),如果没有可以手动创建一个,然后在文件里面写入下面内容:

     [global]     openmp = False     [blas]     ldflags =     [gcc]     cxxflags = -IE:\program files\Anaconda\MinGW#这个必须是自己Anaconda 安装的地址

输入完毕后保存.theanorc.txt文件即可。
现在检查theano是否配置成功,只需打开控制台,然后输入:python回车,再输入import theano回车,若没有其他错误信息输出这表明theano配置正确。
至此,大家就可以利用theano框架来编写深度学习的代码,在CPU上面运行了。

  • 检查电脑显卡是否支持GPU加速

这一步至关重要,在确定了电脑显卡支持GPU加速后,再进行后面两步操作,不然费时费力而且还没有结果。就目前而言,似乎只有NVIDIA的GF8级别以上的显卡才能支持physx物理加速(即GPU加速,这里所说的GPU加速均默认是CUDA编程),ATI的显卡不支持。

如何确认自己电脑的GPU是否支持CUDA编程?在设备管理器中找到显示适配器(Display adapters),找到自己电脑的显卡型号,然后到http://www.nvidia.com/object/cuda_gpus.html列表(如图2所示)中进行比对,若在列表中则支持CUDA编程,否则就利用Theano框架所编写深度网络就只能在CPU上面运行了。

  • C++环境安装

在电脑显卡支持GPU加速(即CUDA编程)后,就可以进行后两步操作了。

C++环境的安装,建议直接安装一套微软的Visual Studio环境,建议Visual Studio 2010或更高版本。本人安装Visual Studio 2013版本,能够支持CUDA编程。VS的具体安装过程也非常简单,一键安装的那种。这里是下载地址

  • 并行计算架构CUDA的安装

在安装CUDA之前最好先更新一下自己电脑的显卡驱动版本,有时候安装完毕CUDA之后,运行CUDA所提供的案例程序中的deviceQuery会出错,请优先考虑显卡驱动的问题。这里建议安装NIVDIA官方发布的针对自己显卡型号的驱动。安装CUDA的详细步骤如下:

在显卡型号允许的条件下,建议下载CUDA 5.0以上版本,这样比较省事。本人安装的是CUDA 7.5版本。CUDA各版本下载地址:https://developer.nvidia.com/cuda-toolkit-archive。注意,下载的时候有些版本需要区分network和local。要下载local版本。
下载好了后就可以直接安装了,CUDA的默认安装目录为:C:\Program Files\NVIDIA GPU Computing Toolkit\ 这里推荐使用默认的安装路径,不需更改。安装过程和普通软件没有什么区别。在安装结束时将会出现一个界面,这表明已经成功安装,从图3可以看出似乎CUDA 6.5至少都需要Visual Studio 2010的C++环境。

检查是否安装正确。在安装结束后,你会发现在系统环境里面新添加了两个环境变量:CUDA_PATH_V5_0 和CUDA_PATH。

现在,打开cmd控制台命令行,输入命令nvcc –V回车(注意是大写V哟)就可以参考版本信息。
CUDA配置结束,说明CUDA安装成功。现在就可以利用Theano框架编写深度学习代码,并将代码进行GPU加速了。

  • 测试Theano框架是否可以利用所安装的CUDA6.5进行GPU加速

在前面第2步中,已经通过安装Anaconda将python环境装好,其中Anaconda本身自带了一个称作Spyder的图形界面IDE。在进行Theano GPU加速测试之前,还得需要配置一下.theanorc.txt文件里面的信息,红色字体信息是为了实现GPU加速而增加的配置信息,如下:

[global]openmp=Falsedevice = gpufloatX = float32allow_input_downcast=True[blas]ldflags=[gcc]cxxflags=-IE:\Anaconda\MinGW[nvcc]flags = -LE:\program files\Anaconda\libs #此处是Anaconda的路径compiler_bindir = E:\program files\VC2013\VC\bin #此处一定要和你安装的VS的路径保持一致fastmath = Trueflags=-arch=sm_30

现在可以启动Spyder,输入表1中的Theano GPU加速测试案例代码并运行,将会出现图7所示的运行结果,其中有一条“Used the gpu”信息输出,表明Theano GPU加速测试成功。

from theano import function, config, shared, sandboximport theano.tensor as Timport numpyimport timevlen = 10 * 30 * 768  # 10 x #cores x # threads per coreiters = 1000rng = 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 range(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')

Theano GPU加速测试代码

  • 到此,基于CUDA的Theano GPU加速环境已经配置成功。

参考文献:
1. http://blog.csdn.net/m624197265/article/details/45700619
2. http://blog.csdn.net/niuwei22007/article/details/47684673
3. http://blog.csdn.net/yeyang911/article/details/16357133

0 0
原创粉丝点击