如何搭建一台深度学习服务器
在计算机时代的早期,一名极客的满足感很大程度上来源于能DIY一台机器。到了深度学习的时代,前面那句话仍然是对的。
缘起
在2013年,MIT科技评论将深度学习列为当年十大科技突破之首。其原因在于,模型有其为庞大的网络结构,参数够多,学习能力够强,能配合大数据达到惊人的效果。而且,能自动学习特征,避免了“特征工程”这种繁琐的手工劳动。对于图像、音频和文字处理领域有极大的意义。因为最近在尝试用深度学习做文本挖掘,所以需要一台深度学习服务器(相信我,如果用CPU来跑,你的人生显得好短)。
那么就有三个选择项:
A、购买组装好的服务器,例如NVIDIA DIGITS DEVBOX
B、购买云服务,例如Amazon的GPU服务
C、自己攒一台深度学习服务器。
A项从性价比上不合算,而且不一定买的到。B项的云服务对于研究探索性质工作而言也比较贵,机器配置也不一定合适,所以我们就C项了。
硬件选择:基本思路是单显卡机器,保留升级空间
显卡选择:
先解释一点,深度学习为什么需要显卡计算?
GPU 是为大规模的并行运算而优化;
GPU 上则更多的是运算单元(整数、浮点的乘加单元,特殊运算单元等等);
GPU 往往拥有更大带宽的显存,因此在大吞吐量的应用中也会有很好的性能。
这里有一个很有趣的解释视频,解释了GPU和CPU的计算区别。
所以显卡选择最重要,因为准备基于CUDA计算(CUDA (ComputeUnified 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-WayNVIDA 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
$ exportLD_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=gpupython `python -c "import os, theano; printos.path.dirname(theano.__file__)"`/misc/check_blas.py
3.4 安装keras
通过anaconda安装pipinstall 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方便。
如何搭建一台深度学习服务器相关推荐
- 从零开始搭建一台深度学习服务器及环境配置
从零开始搭建一台深度学习服务器及环境配置 服务器硬件 2019.12.12 系统安装 环境配置--现有最新版本 服务器硬件 2019.12.12 实验室需求,我找的配置,反正不用我花钱独享一台服务器 ...
- 如何搭建一台深度学习的电脑工作站
如何给自己搭建一台深度学习工作站? 这个是很多刚准备入门的同学疑问,那么我们今天就来讲解下如何搭建. 有多种典型配置,一个 GPU 的机器.两个或四个 GPU的机器.如果您需要更多GPU,请考虑配置两 ...
- 报名 | NVIDIA线下交流会:手把手教你搭建TensorFlow Caffe深度学习服务器
7月21日(周六)下午14:30,量子位与NVIDIA英伟达开发者社区联合举办线下交流会,拥有丰富一线开发经验的NVIDIA开发者社区经理Ken He,将手把手教你搭建TensorFlow & ...
- 【硬件】搭建自己的深度学习服务器 or 高性能电脑——从0到1装机指南
前言: 之前一直在笔记本跑代码,真的很卡,终于,今年搭了自己的台式机,下面总结下自己的经验--过程真的十分曲折,我一直是个比较笨拙的人,不过结局还是很好的-- 其实还是想要有个比较好的生产力工具,也不 ...
- 如何从ip服务器所用系统,如何从0开始打造一个深度学习服务器?
最近我(作者Wayde Gilliam--译者注)在学习了一些深度学习方面的知识和教程后,决定自己搭一个服务器用来训练机器学习模型,不再用现在所用的AWS p2虚拟机和存储器.我意识到,后面我会用到规 ...
- NVIDIA英伟达:深度学习服务器搭建指南 | 交流会笔记
主讲人:Ken(何琨)| NVIDIA开发者社区经理 张康 屈鑫 编辑整理 量子位 出品 | 公众号 QbitAI 7月21日,量子位联合NVIDIA英伟达举行了线下交流会,跟现场近百位开发者同学共同 ...
- 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)
从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自 : 从零开始搭建深度学习服务器: 基础环境配置( ...
- 基于Ubuntu18.04下深度学习服务器搭建
基于Ubuntu18.04下深度学习服务器搭建 目录: 基于Ubuntu18.04下深度学习服务器搭建 主要模块组成 Anaconda安装 CUDA安装 pytorch安装 CuDNN安装 其他常用指 ...
- 自己组装服务器计算机,深度学习服务器组装经验过程分享
本文作者详细描述了自己组装深度学习服务器的过程,从 CPU.GPU.主板.电源.机箱等的选取到部件的安装,再到服务器的设置,可谓面面俱到.作者指出,组装者首先要弄清自己的需求,然后根据预算做出合理的选 ...
最新文章
- 计算机组成考试题及答案,计算机组成测试题一参考答案
- fasterrcnn深度学习口罩检测
- 使用netstat检测及监测网络连接
- CSUOJ 1525 Algebraic Teamwork
- MySQL学习(四)
- 0xBenchmark中垃圾回收测试模块的分析及改进
- PHP 两个页面跳转,session会失效?
- mysql安全补丁如何处理_3分钟学会mysql数据库的逻辑架构原理
- visudo精确用户赋权(sudo)
- java 空指针异常之一。 新建的一个对象没有NEW 导致其SET属性时报错
- 一份神奇的礼物(1)
- 配置RMAN备份环境
- vs2010的Visual Assist X破解版安装
- 生成9mb、10mb、20mb、30mb的星云图片,常用于图片测试
- 地形剖面matlab,基于MATLAB河道横断面绘制.doc
- Android 集成腾讯播放器sdk(支持多格式,直播,m3u8等)重点是免费
- veracrypt 创建文件型加密卷
- Excel所有批注相关的操作都在这里了。
- 基于微信小程序的同城家政服务小程序
- 如何手动搭建企业知识库制作效果远胜语雀、印象笔记