源由
由于需要做分布式的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
网友评论