共计 4146 个字符,预计需要花费 11 分钟才能阅读完成。
在计算机时代的早期,一名极客的满足感很大程度上来源于能 DIY 一台机器。到了深度学习的时代,前面那句话仍然是对的。
缘起
在 2013 年,MIT 科技评论将深度学习列为当年十大科技突破之首。其原因在于,模型有其为庞大的网络结构,参数够多,学习能力够强,能配合大数据达到惊人的效果。而且,能自动学习特征,避免了“特征工程”这种繁琐的手工劳动。对于图像、音频和文字处理领域有极大的意义。因为最近在尝试用深度学习做文本挖掘,所以需要一台深度学习服务器(相信我,如果用 CPU 来跑,你的人生显得好短)。
那么就有三个选择项:
A、购买组装好的服务器,例如 NVIDIA DIGITS DEVBOX
B、购买云服务,例如 Amazon 的 GPU 服务
C、自己攒一台深度学习服务器。
A 项从性价比上不合算,而且不一定买的到。B 项的云服务对于研究探索性质工作而言也比较贵,机器配置也不一定合适,所以我们就 C 项了。
硬件选择:基本思路是单显卡机器,保留升级空间
显卡选择:
先解释一点,深度学习为什么需要显卡计算?
GPU 是为大规模的并行运算而优化;
GPU 上则更多的是运算单元(整数、浮点的乘加单元,特殊运算单元等等);
GPU 往往拥有更大带宽的显存,因此在大吞吐量的应用中也会有很好的性能。
这里有一个很有趣的解释视频,解释了 GPU 和 CPU 的计算区别。
所以显卡选择最重要,因为准备基于 CUDA 计算(CUDA (Compute Unified Device Architecture) 是 NVIDIA 开发的 GPU 并行计算环境。),所以只能选择 Nvida 系列的。在英伟达产品系列中,有消费领域的 GeForce 系列,有专业绘图领域的 Quadro 系列,有高性能计算领域的 Tesla 系列,如何选择?
有论文研究,太高的精度对于深度学习的错误率是没有提升的,而且大部分的环境框架都只支持单精度,所以双精度浮点计算是不必要,Tesla 系列都去掉了。从显卡效能的指标看,CUDA 核心数要多,GPU 频率要快,显存要大,带宽要高。这样,最新 Titan X 算是价格便宜量又足的选择。
CPU 选择:
在深度学习任务中,CPU 并不负责主要任务,单显卡计算时只有一个核心达到 100% 负荷,所以 CPU 的核心数量和显卡数量一致即可,太多没有必要,但是处理 PCIE 的带宽要到 40。
主板选择:
需要支持 X99 架构,支持 PCIe3.0,还要支持 4 通道 DDR4 内存架构。如果要搞四显卡并行,PCIE 带宽支持要达到 40,并且支持 4 -Way NVIDA SLI 技术。
内存:
达到显存的二倍即可,当然有钱的话越大越好。
电源问题:一个显卡的功率接近 300W,四显卡建议电源在 1500W 以上,为了以后扩展,选择了 1600W 的电源。
机箱散热:
因为各种部件相当庞大,需要有良好散热功能的大机箱,选择了 Tt Thermaltake Core V51 机箱,标配 3 个 12cm 风扇。未来如果需要还可以加装水冷设备。
以上就是主要硬件环境的选择和安装。
软件环境安装:
主要安装了 Ubuntu 系统,CUDA 环境,以及 theano、keras 环境
1、安装 ubuntu 14.04(不要安装麒麟版本)
通过官网下载 iso 文件刻录 U 盘安装,在 SSD 硬盘上自动安装完成。
2、安装 cuda 7.5 deb 文件(自带显卡驱动)
2.1 获取 CUDA 安装包,在 NVidia 官网下载 local deb 文件。
2.2 执行如下命令安装:
$ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda
2.3 设置环境变量:sudo gedit /etc/profile
$ export PATH=/usr/local/cuda-7.5/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
2.4 重启机器:用其中一个样例进行验证测试
$ cuda-install-samples-7.5.sh ~
$ cd ~/NVIDIA_CUDA-Samples_7.5/5_Simulations/nbody
$ make
$ ./nbody
或者在 sample 目录中 make 测试项目 1_utility,再运行./deviceQuery
3、安装 python 以及 theano 工具
3.1 直接下载安装 anaconda 套件 64 位版本。
下载后用 conda 升级到最新。anaconda 自带 openblas,使 numpy 和 theano 计算能达到最大效能
3.2 修改了 theano 配置文件,使之缺省由 gpu 运算
在主目录下新建.theanorc 文件
.theanorc 中输入下面的内容
[cuda]
root=/usr/local/cuda/bin/
[global]
floatX = float32
device = gpu0
[nvcc]
fastmath = True
3.3 安装完成后参考如下地址进行测试
THEANO_FLAGS=floatX=float32,device=gpu python `python -c “import os, theano; print os.path.dirname(theano.__file__)”`/misc/check_blas.py
3.4 安装 keras
通过 anaconda 安装 pip install keras
注意 keras 依赖的 theano 是 dev 版本的,需要从 github 下源码来安装。注意本系统此时有两个 python,所以要写路径
sudo /home/user/anaconda/bin/python setup.py develop
4、设置远程服务器调用
4.1 安装 ssh,启动服务
4.2 设置 notebook server
在 ipython 中如下命令设置密码:
from IPython.lib import passwd
passwd()
记下生成的字符串。
创建一个 ipython 配置文件,比如起名叫 myserver
ipython profile create myserver
vim ~/.ipython/profile_myserver/ipython_notebook_config.py
编辑文件,加入下面几项:
c = get_config()
c.IPKernelApp.pylab = ‘inline’ #启动 inline 模式
c.NotebookApp.ip = ‘*’
c.NotebookApp.open_browser = False
c.NotebookApp.password = u’sha1:yourhashedpassword’ #把第二步的密码考进来
c.NotebookApp.port = 6868 #自己设一个端口号
启动服务
ipython notebook –profile=myserver
4.3 远程浏览器调用
远程中浏览器登陆 http://192.168.3.31:6868/,输入密码,即可进入 ipython notebook。
如果需要保持连接,则
nohup ipython notebook –profile=myserver
杀掉连接
lsof nohup.out
kill -9 “PID”
完工!
最后的硬件配置:
CPU: Intel X99 平台 i7 5960K
内存: DDR4 2800 32G(8G*4)
主板: GIGABYTE X99-UD4
显卡: GTX Titan X
硬盘: SSD+ 普通硬盘
系统和软件
操作系统: Ubuntu 14.04.3 x64
CUDA: 7.5
Anaconda 2.3
Theano 7.0
Keras 2.0
参考资料:
http://timdettmers.com/2014/08/14/which-gpu-for-deep-learning/
http://timdettmers.com/2015/03/09/deep-learning-hardware-guide/
http://graphific.github.io/posts/running-a-deep-learning-dream-machine/
http://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#ubuntu-x86_64-deb
http://deeplearning.net/software/theano/tutorial/using_gpu.html#cuda
之前网上找到另一种安装 theano 方式是自行安装组件。但尝试未成功,有可能是因为 CPU 等硬件不同,可能需要自行编译安装 openblas,numpy, scipy, theano 等环境,极为繁琐。最后还是直接用 Anaconda 方便。
Ubuntu 14.04 安装配置 CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm
Ubuntu 12.04 配置 NVIDIA CUDA5.5 实录 http://www.linuxidc.com/Linux/2014-10/107502.htm
Ubuntu 安装 Theano+CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm
关于 Ubuntu 12.04 下 CUDA5.5 的安装请参看如下链接 Ubuntu 12.04 安装 CUDA-5.5
Caffe 配置简明教程 (Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1) http://www.linuxidc.com/Linux/2016-09/135016.htm
在 Ubuntu 14.04 上配置 CUDA+Caffe+cuDNN+Anaconda+DIGITS http://www.linuxidc.com/Linux/2016-11/136775.htm
更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138905.htm