Ubuntu安装OpenBlas并使用GPU加速

  在前一篇文章中我们介绍了一下安装Theano框架的方法,但是使用不同的安装方式,最后跑的速度会有很大的区别,在这里提一下应该如何安装:

  首先不建议使用虚拟机安装深度学习框架,因为虚拟机中无法进行gpu加速等操作,并且也不能使用硬件的显卡,实际上速度还会很慢,并且容易出现内存或缓存占满的问题,因此如果要使用深度学习框架Theano,最好用专门的计算机或服务器。

  安装Theano有三种方法,第一种是直接安装python-numpy库和python-scipy库,然后再直接安装Theano,这种方式安装之后Numpy,Scipy和Theano都不能通过http://blog.csdn.net/xuezhisdc/article/details/47065475链接中的测试,并且运行速度也很慢,所以不能这样安装。第二种方法是先安装Atlas,然后再Atlas的基础上安装Numpy和Scipy,这样的运行速度会快10倍左右,因为Atlas会对python的库进行加速。当然还有一种更快的方法是使用OpenBlas对Numpy和Scipy进行加速,这样的速度是最快的,并且Theano默认是使用OpenBlas加速,所以也更方便。因此使用这种方法安装环境并进行测试。在这之后,为了充分发挥服务器的性能,当然要使用GPU加速,因此需要安装cuda并且将Theano设置为gpu加速的形式,在这里将ubuntu安装Openblas的方法和GPU加速的设置方式进行说明:

  主要参考网页如下:

  Theano官网:

  http://www.deeplearning.net/software/theano/

  OpenBlas相关网页:

  http://www.openblas.net/

  https://github.com/xianyi/OpenBLAS/wiki/Installation-Guide

  相关的博客:

  http://blog.csdn.net/xuezhisdc/article/details/47065475

  http://www.csdn.net/article/2015-08-07/2825415

  http://www.th7.cn/system/lin/201604/162762.shtml

  http://stackoverflow.com/questions/41678837/no-module-named-nose-parameterized-during-theano-installation

  http://www.jb51.net/LINUXjishu/211594.html

  接下来进行详细说明:

1.安装OpenBlas

  这一部分主要参考以下链接:

  http://deeplearning.net/software/theano_versions/dev/install_ubuntu.html

  http://www.linuxdiyf.com/linux/15610.html

  https://github.com/xianyi/OpenBLAS

  在github上下载好代码以后

  最后两条命令是让全局可以找到OpenBlas,避免出现http://www.jb51.net/LINUXjishu/211594.html链接中的问题。当然如果出现了问题可以用其中的解决方法解决。

2.安装Numpy,Scipy和Theano

  这里先安装python-numpy和python-scipy:

  然后直接安装Theano,他会自动附属的安装需要的numpy库和scipy库。

  安装好后对Scipy,Numpy和Theano进行测试,先测试Numpy,然后是Scipy,最后Theano,前两个的测试必须通过,当然如果出了问题就要反复重装,这个比较迷我也还没有找到什么规律,Theano最后的编译可能会有一些小问题,但是基本不影响使用(其实也不知道怎么解决)

  在以下链接中,也有一种直接下载源文件进行编译的方法

  http://blog.csdn.net/xuezhisdc/article/details/47065475

  编译的方法我也试过,但是bug比较多,不建议使用,在这里我安装的numpy版本为1.12.0 ,scipy版本为0.18.1,要查看当前numpy和scipy版本的方式如下:

  http://www.cnblogs.com/klchang/p/4543032.html

3.使用GPU加速

  首先自行安装cuda和NVIDIA CUDA drivers and SDK

  参考链接:

  http://www.csdn.net/article/2015-08-07/2825415

  http://www.th7.cn/system/lin/201604/162762.shtml

  然后在工程目录中新建.theanorc文件,例如我的电脑名字是达达,则建立在/home/dada/目录下

  在theanorc目录中添加以下内容:

  之后按照链接中的文件进行测试,显示gpu则配置成功。

4.SRNN框架编译过程中出现的问题:

  首先安装模型:https://github.com/asheshjain399/NeuralModels

  跑char-rnn.py的历程,一般使用GPU加速+openblas是10分钟,100个点耗时21s,如果是atlas且没有GPU加速我跑了4小时100个点耗时500s,如果atlas也没有我跑了3天,100个点耗时4000s以上。

  如果这一部分没有问题,则到以下目录跑SRNN

  https://github.com/asheshjain399/RNNexp/tree/srnn/structural_rnn

  要注意数据集要单独下,在readme里有链接,放到本地后修改basedir中的地址,跑的时候出现的问题和解决方法主要有:

  http://www.jb51.net/LINUXjishu/211594.html

  http://stackoverflow.com/questions/41678837/no-module-named-nose-parameterized-during-theano-installation

  最后强调一下,电脑真的很重要,虚拟机啥的就别折腾了吧,一堆bug,动不动还内存冲突。