比较GPU和CPU训练深度学习算法的效率(附ubuntu GPU服务器配置攻略)
######一、GPU、CPU加速效果比较
近日,得到实验室GPU加速的深度学习服务器账号一枚。因为之前的模型训练过程实在太慢饱受模型调参,和模型调整的训练之苦。通常一个深度不算太深的模型都要在我的16核CPU主机上训练数天。网上查询说GPU在深度学习中加速效果相当明显,有说3-4倍的,也有说30-40倍的。这种说法过于笼统,经过我的实际测试,在16万样本量上,我使用i7四核心八线程的笔记本处理器CPU训练一个5层神经网络每轮需要的时间为1474秒,而使用nvidia>近日,得到实验室GPU加速的深度学习服务器账号一枚。因为之前的模型训练过程实在太慢饱受模型调参,和模型调整的训练之苦。通常一个深度不算太深的模型都要在我的16核CPU主机上训练数天。网上查询说GPU在深度学习中加速效果相当明显,有说3-4倍的,也有说30-40倍的。这种说法过于笼统,经过我的实际测试,在16万样本量上,我使用i7四核心八线程的笔记本处理器CPU训练一个5层神经网络每轮需要的时间为1474秒,而使用nvidia GT750M 4G DDR3显存进行加速后每轮需要的时间是403秒(实际上Nvidia官方并不推荐在笔记本上使用GPU训练神经网络,我是冒着显卡被烧坏的风险做的测试),而在实验室提供的高端GPU服务器Nvidia GTX1080Ti上运行每轮的训练时间达到了36秒。这样说也许不够形象,我对这个模型做了160轮迭代,在电脑上的运行时间是3天;在笔记本上运行了一天左右,在GPU服务器上运行的时间是1小时36分。由此可以看出,使用GPU加速的效果相当明显。如果你要做深度学习,有钱的话推荐购买一块高端显卡。当然高性能的代价是掏空你的荷包,一块1080Ti显卡公版的价格是8699人民币。可以买我用来做测试的笔记本4个,是土豪的话就买买买。 ######二、服务器配置: 1、准备素材
入手账号后,要做的第一件事就是接入服务器。准备的素材如下: (1)由于是远程登录需要有远程登录的服务器地址:hostAddress账号userName和密码psw (2)远程登录工具xshell (3)python集成开发环境Anaconda (4)深度学习开发包后端tensoflow-gpu版、前端keras、自然语言处理工具包nltk、词向量训练工具gensim 2、安装程序
(1)本地主机安装xshell进行远程登录,安装过程从略。安装完成后使用hostAddress,填写userName,psw进行登录。 (2)登录后检查账号是否具有su权限,方法:输入sudo apt-get 如果按照提示键入密码后,提示的是帮助就说明已经获得了超级管理员权限,否则找管理员申请su权限。 (3)安装anaconda,I、可以在清华镜像上下载anaconda的x86-64.sh的Linux版本安装程序,然后键入命令bash Anaconda版本号.sh(根据文件名输入)进行安装,安装时需要手动干预。II、安装完成后,需要重新连接服务器或者使用命令source ./bashrc使环境变量生效。III、使用命令python 查看是否为安装的python版本,一般ubuntu会自带Python2.7,我倾向于使用python3据说很快python2就不再会被维护。IV、如果没有安装成功则需要删除目录下的anaconda3文件夹(如果安装的python版本为python3)命令为rm -r anaconda3,然后重新安装。 (4)安装tensorflow、keras、gensim和nltk。前三个库:tensorflow、keras、gensim都可以直接使用conda install 命令进行安装:conda install somePackage。nltk在anaconda中已经被包含,但是有些文本文件和子库还需要手动安装,可以在python环境下使用nltk.download()进行选择性安装。 以上步骤完成了环境的配置,但是还有一些问题,解决方法如下: (5)拷贝文件,因为在终端下编程需要一定的技术能力,像我入门级还是乖乖地在IDE里编完程序然后拷贝到远程服务器里;同时数据文件也需要拷贝到远程服务器中。xshell自带的有远程拷贝命令,在xshell登录远程服务器后,键入rz命令可以将本地文件拷贝到远程服务器中。键入命令sz fileName可以将服务器中的文件下载到本地。 (6)退出服务器后,进程中断。服务器远程连接后正常执行的程序在退出终端后就会被终止掉,可以通过top命令查看服务器进程和CPU、内存使用情况。使用nvidia-smi查看GPU的运行情况。
.
解决方法是安装tmux。安装方法跟Ubuntu上其他软件安装方法一样,sudo apt-get install tmux。运行方法为: 1、创建一个新的窗口容器:tmux new -s sessionName 2、在新创建的窗口可以像在终端中一样运行程序,如python someProgram.py输出的给结果界面都跟终端完全一样。 3、如果要离开使用快捷键ctr + b然后再按下d即可3、如果要离开使用快捷键ctr + b然后再按下d即可 4、需要返回时在终端如数tmux attach -t sessionName即可返回。
tmux命令大全
tmux #开启tmux tmux ls #显示已有tmux列表(C-b s)
tmux attach-session -t 数字 #选择tmux
C-b c 创建一个新的窗口
C-b n 切换到下一个窗口
C-b p 切换到上一个窗口
C-b l 最后一个窗口,和上一个窗口的概念不一样哟,谁试谁知道
c-b w 通过上下键选择当前窗口中打开的会话
C-b 数字 直接跳到你按的数字所在的窗口
C-b & 退出当前窗口
C-b d 临时断开会话 断开以后,还可以连上的哟:)
C-b " 分割出来一个窗口
C-b % 分割出来一个窗口
C-b o 在小窗口中切换
C-b (方向键)
C-b ! 关闭所有小窗口
C-b x 关闭当前光标处的小窗口
C-b t 钟表
C-b pageup/pagedo linux常用命令 安装程序 apt-get install 创建文件夹 mkdir dirName 删除文件夹 rm -rf dirName 解压缩文件 unzip fileName 改变文件权限(递归底层文件) chmod -r +777
本文转载自异步社区。
原文链接:https://www.epubit.com/articleDetails?id=N7de2aa60-008e-4722-a525-87ac48324dca
- 点赞
- 收藏
- 关注作者
评论(0)