比较GPU和CPU训练深度学习算法的效率(附ubuntu GPU服务器配置攻略)

举报
Tom forever 发表于 2019/10/11 13:00:07 2019/10/11
【摘要】 ######一、GPU、CPU加速效果比较 近日,得到实验室GPU加速的深度学习服务器账号一枚。因为之前的模型训练过程实在太慢饱受模型调参,和模型调整的训练之苦。通常一个深度不算太深的模型都要在我的16核CPU主机上训练数天。网上查询说GPU在深度学习中加速效果相当明显,有说3-4倍的,也有说30-40倍的。这种说法过于笼统,经过我的实际测试,在16万样本量上,我使用i7四核心八线程...

######一、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的运行情况。


a47532e9202d41a6846ffece6100be03.png

top命令


854a83adb27a45ed9576707d2ab036a5.png

nvidia-smi命令
.

解决方法是安装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


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。