Deepin15.11+cuda10.1+cudnn+pytorch深度学习环境搭建
由于疫情这个特殊的时期,在家也不能不学习啊。
先说一下家里台式机的捡垃圾配置:
cpu:AMD x4 600e(可超频)
微星主板
硬盘:120g 固态 500g 机械
显卡:NVIDIA gtx 750 1g(一定要是NVIDIA显卡,如果不是下面都不用看了)
去NVIDIA官网查看显卡计算能力对应表~~,750还不错有个5.0~~
无非是windows和linux这两个选择,由于之前在实验室win10上测试程序总是有莫名其妙的错误,所以果断选择Linux系统。前段时间被国产深度系统Deepin安利到,感觉不错尝试一下。(Ubuntu16.04我也试了下,存在很多问题,后面总结。)
首先去官网下载镜像,我安装的是最新版的15.11(gw)。再去下个制作启动盘的软件,并准备一个4G左右的U盘。官方带的不好用我用的是UltraISo。
A.打开UltraISO,选择镜像文件。
B.点击启动,写入硬盘映像。
C.写入镜像完成后,开始给Deepin系统分配磁盘空间,右击“我的电脑”选择管理,选择磁盘管理。找一个空间多点的磁盘压缩出一个新的盘符出来一个确认下一步。
D.开始安装Deepin,选择刚刚压缩出来的盘符,一直下一步。(这边装好了所以显示是Deepin系统),之后就是“一杯咖啡”的等待。
E.更换阿里源
打开终端,sudo su 进入root用户
nano /etc/apt/sources.list
将文件中原来的地址替换为https://mirrors.aliyun.com/deepin/
Ctrl+O 保存 ctrl+X 退出
sudo apt-get update
sudo apt-get upgrade
更新软件包
众所周知在windows上安装NVIDIA驱动是一件简单的事,在Linux上安装NVIDIA驱动是一件“快乐”的事。(生命不息折腾不止)
lspci | grep -i nvidia
uname -m && cat / etc / * release
gcc --version
uname -r
查看Deepin的内核4.15,gcc 是6.3所以是介于Ubuntu16.04和Ubuntu18.04之间。
A. NVIDIA驱动安装(闭源安装)
首先去NVIDIA官网下载适配显卡驱动。我选择的是短寿命的435版本的驱动(后续需要安装pytorch,官网上支持cuda10.1,所以这里不选择最新的440版本,不准备安装cuda10.2)
需要在安装驱动之前首先禁止nouveau驱动,在Deepin中运行以下命令:
sudo nano /etc/modprobe.d/blacklist.conf
然后在打开的blacklist.conf文件中添加如下内容:
blacklist nouveau
options nouveau modeset=0
然后执行命令:
sudo update-initramfs -u
一直等到检测结束,退出重启电脑,重新启动后验证是否成功,运行以下命令:
lsmod | grep nouveau
如果无输出内容即为禁止成功。
B.开始安装驱动
1、如果之前在Deepin中安装过NVIDIA驱动,请将其全部删除(如果没有请忽略):
sudo apt autoremove nvidia-*
2、重启系统。
sudo reboot
3、使用快捷键CTRL+ALT+F2进入终端。
4、暂时关闭图形界面:
sudo service lightdm stop
5、给下载好的nvidia驱动文件设置执行权限:(这边我将文件名改成435方便运行,lsj是我的用户名)
sudo chmod a+x /home/lsj/Downloads/435.run
6、驱动安装(根据个人情况选择驱动文件所在目录):
sudo sh /home/lsj/Downloads/435.run
(kms 选no ;X diver 选yes;32bit安装 选yes。)
7、重启系统:
sudo reboot
A.安装cuda的历史版本(histroy)
这边我选择如下:
反复失败好多次按默认方法安装不行,一直报错卡了我好久,需要在对应位置创建文件赋予权限,或者直接更改整个/home文件夹权限
sudo chmod 777 ~/* -R
并且按照以下命令安装到对应路径(例如我在主目录下新建./opt/cuda10.1),尤其是–no-opengl-libs不要安装opengl。
sudo bash cuda_10.1.168_418.67_linux.run --silent --toolkit --toolkitpath=$HOME/opt/cuda10.1 --defaultroot=$HOME/opt/cuda10.1 --samples --samplespath=$HOME/ --no-opengl-libs
B.添加cuda10.1进入环境变量
首先在系统文件路径/usr/local/下创建 cudatoolkit10.1 link链接
sudo ln -s ~/opt/cuda10.1 /usr/local/
再打开终端
nano .bashrc
文件尾部加入添加以下命令
CUDA_HOME=/usr/local/cuda10.1/
export PATH=$PATH:$CUDA_HOME/bin/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
最后使之生效
source .bashrc
C.验证cuda
cd ~/NVIDIA_CUDA-10.1_Samples/1_Utilities/deviceQuery
make
报错,g++未安装的问题,安装g++:
sudo apt-get install g++
再输入,如下所示,则安装成功
./deviceQuery
参考(ck)
官网(cudnn)注册下载
下载完对应所在目录解压,并复制到cuda目录下
tar zxvf cudnn-10.1-linux-x64-v7.6.5.32.tgz -C ./
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
查看版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
在清华源镜像下载anaconda3的软件包()我选的是Anaconda3-2019.10-Linux-x86_64.sh版本,下载好后用bash命令安装即可,
添加path
nano /etc/profile
export PATH=~/anaconda3/bin:$PATH
source /etc/profile
这里不建议更换conda清华源,安装还是有些问题。
官网提示
conda install pytorch torchvision cudatoolkit=10.1
安装完是CPU版本的,下载*.whl文件安装
https://download.pytorch.org/whl/cu101/torch_stable.html
我选择的是(搭建的环境是py3.6)torch-1.4.0-cp36-cp36m-linux_x86_64.whl
下完后用pip安装
安装完测试
import torch
import torchvision
报错,pip install torch torchvision安装,再次查看是否能用GPU
torch.cuda.is_available()
torch.cuda.device_count()
torch.cuda.get_device_name(0)
如上输出,则全部安装成功。
TIPS:1、之前有考虑过Ubuntu16.04,如果你是中文版tty2下显示路径变成乱码,花时间搞成英文不如重装系统。
2、安装cuda的时候,它会提示/boot分区没有空间。很神奇。
3、不要选择cuda自带的nvidia驱动安装,我失败过好多次,而且一定要先安装驱动再安装cuda。