Deepin(15.7)+Cuda(9.0)+Pytorch(0.4)安装使用教程

源由

由于需要做分布式的pytorch实验,首先需要在本地上进行分布式调试后才便于将pytorch部署到天河二号中 进行实验,由于最初使用的是Win10系统,Win10不支持pytorch(0.4)的分布式,即在python环境下,查看下列代码返回的是False还是True,如果是False,则说明该系统下Pytorch无法实现分布式。

import torch
torch._C._has_distributed()

Deepin(15.7)双系统安装

1.下载Deepin,一般可以从官网中获取最新版本的镜像资源,如若想获取旧版本的Deepin,可以从这个网站上获取。
2.利用U盘作为系统安装的启动盘,可以参考使用Rufus来制作启动盘,特别方便。
3.启动盘制作完毕后,关机,重开机,进入系统的BIOS设置界面,这时选择从U盘启动电脑,就可以顺利的进入操作系统的安装界面了,具体的安装界面引导可以参考官网介绍

Nvidia驱动+Cuda(9.0)+Cudnn

Pytorch是支持GPU的,并且GPU运行深度学习能够极大的提高我们的工作效率和实验运行速度。但使用GPU前,需要我们安装相应的cuda以及显卡驱动。这个过程我安装的时候踩了挺多的坑,现记录下来,仅供参考。

Nvidia驱动

1.根据自己电脑显卡的型号下载相对应的显卡驱动
2.禁用系统自带的集显驱动

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
插入两条语句
blacklist nouveau
options nouveau modeset=0

3.执行下列语句,并根据系统提示补装包,可以通过apt-get的方式补装。

sudo update-initramfs -u

4.执行成功后,重新开机,在进入Deepin系统的选择界面后,不要选择直接进入系统,界面上有三个选项,第一个是直接进入Deepin,第二是进入保护模式,第三忘了....。这个时候需要摁e键,进入boot parameter参数设置界面,需要更改boot启动参数,找到Linux开头的那行,在行末添加3和nomodeset,例如:

linux XXXXXXXXXXXXXX 3 nomodeset

然后根据提示保存重新boot的。
5.修改正确后,boot会进入命令行界面,输入用户名和密码,

关闭Xwindow服务
sudo service lightdm stop
进入驱动的下载目录,执行驱动安装程序即可。安装完毕后重新开启Xwindow服务后正常重启。
sudo service lightdm restart
sudo reboot

6.终端检查驱动是否安装成功。

nvidia-smi
显卡驱动安装成功界面

Cuda(9.0)

1.根据自己系统的版本号下载对应的Cuda
2.进入安装包的目录,正常运行安装,安装过程中如若提醒缺少相应的.so文件,可以通过下面的方法补装相对应的编译文件。

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3.安装过程中,由于deepin系统的gcc是7代以上的,而Cuda9.0需要使用低版本的gcc和g++编译器,那么则需要我们安装gcc5.5和g++5.5来进行编译,然后再添加软连接,更改系统默认的g++和gcc版本。

#下载安装gcc5.5和g++5.5
sudo apt-get install gcc-5 g++-5
#添加软连接,更改系统默认使用的gcc和g++编译器
sudo ln -s /usr/bin/gcc-5.5 /usr/local/bin/gcc
sudo ln -s /usr/bin/g++-5.5 /usr/local/bin/g++
#查看系统g++和gcc版本是否已经修改成功
gcc --version
g++ --version

4.重新安装Cuda即可,一般的问题都是出在gcc和g++版本过高以及缺少相应的.so文件导致安装失败的,目前我在安装Cuda的过程中就只遇到了这两个问题。安装完成之后,添加环境变量。

gedit ~/.bashr,#cuda export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/:$LD_LIBRARY_PATH
#插入下面的语句至文件中
export PATH=/usr/local/cuda-9.0/bin:$PATH
#激活环境变量
source ~/.bashrc

5.验证Cuda安装成功

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make ./deviceQuery
#显示Pass即表示安装成功

Cudnn

1.根据自己的Cuda版本下载对应的Cudnn,我下载的是CuDnn7.1.4。
2.解压安装包并安装。

#进入安装包目录
cd Downloads
tar -zxvf cudnn-9.0-osx-x64-v7.tgz
#返回cuda文件夹的上一级
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib/libcudnn* /usr/local/cuda/lib64
#激活权限
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
#同样的添加环境变量
sudo vim ~/.bashrc
#cudnn 
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
source ~/.bashrc

3.验证CuDNN安装成功。

nvvc -V
CuDNN安装成功

基于Anaconda3安装Pytorch0.4

1.首先选择喜欢的版本下载Anaconda3,我使用的是Anaconda3-4.3.1-Linux-x86_64.sh
2.正常安装即可,安装过程中可以让系统帮忙添加路径也可以自己手动添加路径。

sudo vim ~/.bashrc
export PATH="/home/user_name/anaconda3/bin:$PATH"
source ~./bashrc
#查看conda是否已安装成功
conda list
#可以给anaconda3加一个清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
#查看.condarc文件
sudo vim .condarc
#删除-defaults

3.创建一个虚环境,在虚环境下安装pytorch

#先查看基环境的名字,有的是叫root,有的是叫base
conda info --envs
#创建虚环境,并且克隆基础环境的所有已安装的包
conda create -n pytorch --clone root(base)
#创建成功后激活虚环境
source activate pytorch
#退出虚环境
source deactivate pytorch

4.在虚环境下安装pytorch,详细教程可以参考pytorch官网,但是按照conda的方法来安装,因为被墙的缘故,所以安装下载pytorch很慢,torchvision速度正常。建议翻墙后直接使用迅雷或者浏览器的下载器,下载相对应的pytorch安装包,例如pytorch_9.0_gpu
5.验证安装成功。

import torch
a = torch.Tensor(2,4)
print (a.cuda())

如果正常显示,说明pytorch可以正常使用,并且cuda也是正常的。

结语

哈哈哈,第一次写博客,有些不详细的地方还请大家谅解,其实初衷还是因为自己在安装的过程当中踩了好多坑,而且网上其他的博客有些写得跳跃性太强了一点,自己边看边摸索,虽说Linux技能有增长,但还是耽误了一点点时间的,希望这篇博文可以帮你们快速解决环境配置的问题,立马上手pytorch。后面我还会记录自己做分布式pytorch(单机单卡,单机多卡,多机多卡)这些的攻略,尽请期待啦~

引用

上述内容都是从前人的博客啊,官网的内容啊总结而来的,所以也是大家的功劳。

https://blog.csdn.net/pursuit_zhangyu/article/details/79362128
https://blog.csdn.net/cvrszeng/article/details/78314859
https://blog.csdn.net/flyyufenfei/article/details/79187656
https://www.deepin.org/installation/
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352