本文写于2020.9.5,近期为我的新电脑配置深度学习环境,遇到很多坑,在此记录一下,为以后再做类似工作的时候做一个参考。大家有类似需求也可以参考这篇文章。
近些天比较忙,先打一个框架出来,有空填坑加图。
系统安装过程可自行百度,不同主板的设置不同,大体上注意secure(security) boot关闭,win10双系统的记得先关掉win10快速启动。戴尔系(包括戴尔自家和外星人等)的主板麻烦些,正打算配电脑的,强烈建议自行组装电脑,整机OEM主板坑巨多(尤其戴尔系的)。安装过程中,尽量不要选择开机自动登录,后期可能会出现循环登录问题。
之前试过安装18.04版本的系统,但是安装界面就花屏或者循环登录,所以干脆换到最新的20.04了。U盘装机的时候,grub界面选择有safe graphic的,装机过程中就不会花屏。
20.04安装完成重启后大概率花屏(看主板和显卡的兼容性),需要在grub界面的advanced ubuntu里进入recover mode进行修改。完成修改重启后,问题解决。
进入系统后,可以根据网络情况选择性更新系统,不过一定要换软件源,这边更换163的源还是挺稳的。此处参考link.
备份原软件源配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改源文件:
sudo gedit /etc/apt/sources.list
文件中添加以下内容(其中一套就够,这里推荐网易163):
163:
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
阿里:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
清华:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
保存并关闭文件
终端输入:
sudo apt update
sudo apt upgrade
换源后,安装build-essential:
sudo apt-get install build-essential
这个包里包含了gcc、g++、make,是安装显卡驱动需要的。
这里推荐安装最新的显卡驱动,我这几天一直在根据cuda推荐的显卡驱动版本进行安装,但是每次都有查不到的问题,使得cuda安装失败。本人尝试了很多路子都不行,最后发现只有最新版驱动才可以完美安装。
此处借鉴 link.
可能是英伟达跟linus关系好点了?我这次并不需要专门关闭图形界面就可以安装驱动了了,,,具体安装步骤如下:
查看显卡
ubuntu-drivers devices
自动安装驱动
ubuntu-drivers autoinstall
这里还看不到驱动的不用急,后面重启后就没问题了,这里暂时不用重启。
新建以下文件并编辑
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
添加
blacklist nouveau
options nouveau modeset=0
生成新的内核初始化文件
sudo update-initramfs -u
此处重启,输入
lsmod | grep nouveau
若没有输出,则成功禁用开源驱动。
输入
nvidia-smi
正常输出GPU情况,说明驱动安装成功,这里可以看到驱动版本以及对应的CUDA版本。注意:此处CUDA并未安装,其版本提示并无实际意义。还需继续安装自己需要版本的CUDA,其版本号需要参考自己需要的深度学习框架对应的CUDA版本号,而并不需要参考此处处处的CUDA版本号。
这里推荐先查询自己需要的深度学习框架对应的cuda版本,例如pytorch1.5和1.6都支持cuda10.2,大家可以根据自己需求安装cuda,这里仅记录pytorch1.6和对应的cuda10.2的安装方法,其他版本大同小异。
上面的过程中,显卡驱动依赖gcc9,其在build-essential中一起装过。而这一节中的cuda10.2则依赖gcc7,需要在此处进行对gcc进行降级操作。终端输入:
sudo apt-get install gcc-7 g++-7
此处系统中存在两个gcc,分别是9和7,此时默认为9,这里需要将默认gcc改为gcc7。终端输入:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1
sudo update-alternatives --display gcc
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1
sudo update-alternatives --display g++
可以修改并查看不同版本的gcc和g++的优先级。
这里按照官网提供的步骤安装就好
Cuda10.2.
终端输入:
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
sudo sh cuda_10.2.89_440.33.01_linux.run
注意安装时不要再装驱动,把驱动选项上的X用回车点掉。
安装完毕后,添加环境变量:
打开.bashrc文件:
gedit ~/.bashrc
在文末添加
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存并关闭文件,更新环境:
source ~/.bashrc
去官网.下载,期间需要登录才可以下载。下载与cuda对应的cudnn版本即可,此处选择了7.6.5。
终端到下载路径解压缩
tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
将文件复制到cuda下:
cp cuda/include/cudnn.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
完成安装
首先安装Anaconda3,这边不建议太新的,用5.2或5.3足够了,特别新的对应的python版本也比较新,有的py第三方包可能不支持。注意安装时需要加path,VSCode根据个人喜好安装。(个人觉得捆绑安装不如自己安装,后面会说单独安装VSCode的配置方法)
conda安装pytorch方法非常简单,由于国内网络问题,建议使用清华源进行下载安装。
此处参考link.
终端输入:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda install pytorch torchvision cudatoolkit=10.2
P.S. 此处最后一句话并未给pytorch和torchvision版本限制,是因为此时此刻pytorch1.6就是最新版,命令中不加版本号默认为最新版,需要旧版的朋友可以加上版本号。请注意pytorch和torchvision版本号一般不同,需分别查询二者对应的版本号。
安装后可以用torch.cuda.is_available()验证gpu是否可用。python脚本如下:
import torch
import torchvision
torch.cuda_availible()
如果没有报错则安装成功,如果输出True则GPU可以正常使用。
在终端输入:
sudo timedatectl set-local-rtc 1 --adjust-system-clock
重启回到win改回当前时间,问题解决。
在设置中的Region & Language中的Input Sources中,添加Chinese,在点击Manage Installed Languages,跟着提示安装就好。重启一次后,回到Input Sources中添加Chinese(Intelligent Pinyin)就可以输入中文了。(当然也可以选择五笔~)
独立安装VSCode的话,可以直接上VSCode官网下载.deb版的安装包,在下载路径下直接打开终端,输入:
sudo dpkg -i ./安装包文件名
即可直接进行安装。
安装完成后,打开VSCode,点击左侧边栏中的extensions,在里面找python插件(一般就按热度排序第一个或者前几个就是),点击install,等待插件安装完成。
点击上方菜单栏file->preferences->settings,搜索python.pythonpath,把你的anaconda的bin文件夹的路径加进去,如:/home/xxx/anaconda3/bin
这时就可以直接使用VSCode调用anaconda来编译你的python代码了。