700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 从0开始搭建Ubuntu20.04深度学习平台(CUDA cuDNN 显卡驱动)

从0开始搭建Ubuntu20.04深度学习平台(CUDA cuDNN 显卡驱动)

时间:2020-09-29 15:32:29

相关推荐

从0开始搭建Ubuntu20.04深度学习平台(CUDA  cuDNN  显卡驱动)

前言

之前搭建的深度学习平台,只有100G,下载几个数据集和库就满了,拆东墙补西墙并不是一个权宜之计,所以只能换一个更大(256G)的固态硬盘。下面将会详细的阐述一个完善的深度学习平台是如何炼成的

1. Ubuntu安装篇

官方下载地址:

/download/desktop/thank-you?version=20.04.2.0&architecture=amd64

ISO文件下载完毕后,用UltraISO写入到U盘就行

特别注意:在安装Ubuntu20.04之前,如果是下半年之后的主板(比如我用的tuf gaming b450m pro s自带Realtek8125b网卡),必须先确保自己有一个USB免驱网卡,这点很重要,后面网卡篇会提到!

在BIOS界面选择UEFI安装,Ubuntu -> Install Ubuntu,语言一定一定一定要选英文。如果选中文,默认用户路径会有中文:桌面,下载,文档等,且很难改成Desktop,Download,Document。但先选英文,再在settings选中文,就能保留英文路径。

具体选项记不太清,大概就是minimal installation,然后不要勾选第三方软件,不然装显卡驱动会崩溃(别人说的,不敢尝试)。安装类型选others (第三个)。

关于分区: 首先确定装Ubuntu的固态硬盘是MBR还是GPT,区别这里不做详解,我用的是MBR

500MB, primary, 空间起始位置, Ext4, /Boot8000MB, primary, 空间起始位置, Swap 剩下的MB, primary, 空间起始位置, Ext4, /

如果硬盘是GPT,则在/Boot分区前面加一个/EFI分区,其他分区一样

500MB, primary, 空间起始位置, Ext4, /EFI

对于swap,众说纷纭,但经本人归纳

if 内存 < 16GB:swap = 内存 * 2else:swap = 8GB

最后,安装启动引导器的设备:windows boot manager

一定不要安装Ubuntu商店里的VS Code,除非你不在VS Code里输入中文!

2. 网卡篇

由于Ubuntu20.04不含Realtek8125b网卡驱动,所以初进入Ubuntu,无法使用网络!这就是为什么需要自备USB免驱网卡,通过USB网卡下载编译环境。

准备编译环境:

sudo apt-get install --reinstall linux-headers-$(uname -r) linux-headers-generic build-essential dkms

下载源码:

官方下载地址:

/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software如果是千兆网卡,就选择GBE(r8168)如果是2.5G网卡,就选择2.5G(r8125)

解压源码

sudo tar xvf r8125-9.005.06.tar.bz2 -C /usr/src

添加dkms.conf文件到/usr/src/r8125-9.005.06/

touch /usr/src/r8125-9.005.06/dkms.confgedit /usr/src/r8125-9.005.06/dkms.conf

内容如下:

PACKAGE_NAME=Realtek_r8125PACKAGE_VERSION=9.005.06DEST_MODULE_LOCATION=/updates/dkmsBUILT_MODULE_NAME=r8125BUILT_MODULE_LOCATION=src/MAKE="'make' -C src/ all"CLEAN="'make' -C src/ clean"AUTOINSTALL="yes"

编译:

sudo dkms add -m r8125 -v 9.005.06sudo dkms build -m r8125 -v 9.005.06sudo dkms install -m r8125 -v 9.005.06sudo depmod -asudo modprobe r8125

验证安装结果:

sudo apt install ifconfig

运行命令ifconfig -a即可看到enxxx的有线网接口。10秒之内,右上角会显示有线网络的图标。

Linux内核版本升级后,任然需要重新编译安装,执行以下命令卸载后安装:

sudo dkms remove r8125/9.005.06 --all

3. 安装必要软件篇

安装Google Chrome

wget /linux/direct/google-chrome-stable_current_amd64.debsudo dpkg -i google-chrome-stable_current_amd64.deb

安装搜狗拼音输入法

安装Fcitx输入框架

sudo apt install fcitx-binsudo apt-get install fcitx-table

下载Linux版本搜狗输入法

官方下载地址:/linux/

安装

sudo dpkg -i sogoupinyin_2.4.0.3469_amd64.deb

遇到 dpkg: error processing package sogoupinyin (–install): dependency problems - leaving unconfigured输入 sudo apt-get install -f (出现安装错误可以使用,检查修复依赖)中间有提示,Do you want to continue? [Y/n] 输入 Y

进行相关设置

settings–>Region&language–>Manage Installed Languages Input method改为fcitx

然后点击上面的Apply System-Wide应用到全局。

重启后 (可以顺便做完4.1),在右上角出现一个键盘标志,点击进入,选择Configure Current Input Method

进入下面的Input Method界面后,选择+号进入到Add input method界面,将下面的Only Show Current Language点掉后,在搜索栏搜索sogou,选中之后进行添加(建议不要把搜狗输入法移动到第一位,不然按shift切换中英文时,有时输入板会出现乱码)。搜狗 --> 设置,默认是shift切换中英文,可以把搜狗设置的中英文切换快捷键关掉,在fcitx的GlobalConfig 中Trigger Input Method 改为Lshift,这样也可以按shift切换中英文。

VS Code官方下载网址:/Download

4. 准备工作

在bios中务必关闭Secure Boot

如果在bios中Secure Boot是灰色的,无法disable,请往下看:关于Secure Boot在bios中有一段话解释:Secure Boot be enabled only when: (1).Platform Key(PK) is enrolled and platform is operating in User mode; (2). CSM function is disabled in setup。因此,要Disable Secure Boot,首先如果PK(也就是bios中Key Managemnet有key,请全部 delete),其次Boot选项中,Launch CSM请设置为Disable。

禁用nouveau

sudo vim /etc/modprobe.d/blacklist.conf

输入以下两行:

blacklist nouveauoptions nouveau modeset=0

刷新内核

sudo update-initramfs -u

关闭驱动控制台

sudo service lightdm stop

如果提示 unit lightdm.service not loaded

则先安装LightDm

sudo apt install lightdm

安装完毕后跳出一个界面,选择lightdm后,再

sudo service lightdm stop

查看是否安装成功,需先重启,若无输出,则表示关闭成功

lsmod | grep nouveau

5. 安装显卡驱动

下载和安装N卡驱动:/geforce/drivers/

sudo chmod a+x NVIDIA-Linux-x86_64-460.84.runsudo ./NVIDIA-Linux-x86_64-460.84.run -no-x-check -no-nouveau-check -no-opengl-files

问题选项:

【YES】The distribution-provided pre-install script failed! Are you sure you want to continue?【NO】Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 【install without signing】问题忘了?【NO】Nvidia's 32-bit compatibility libraries? 【YES】Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.

挂载Nvidia驱动:

modprobe nvidia

检查驱动是否安装成功:

nvidia-sminvidia-settings # 若弹出设置对话框,表示驱动安装成功

注意nvidia-smi显示的cuda版本可以nvcc -V显示的cuda版本不同。因为CUDA有两种API,分别是驱动API(Runtime API)和运行时API(Driver API)

6. 安装CUDA与cuDNN

简单说下两者的区别,CUDA是并行计算架构,cuDNN是深度神经网络的GPU加速库。CUDA类似于工作台,而cuDNN则是螺丝刀,合则两利,分则可能不如CPU(doge)。

官方下载CUDA toolkit:

/cuda-toolkit-archive

# 我装的是CUDA 10.2wget https://developer./compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run

下载gcc7

CUDA 10.2只支持gcc7,Ubuntu20.04默认安装gcc9

sudo apt-get install gcc-7sudo apt-get install g++-7

将gcc7,g++7设为默认选项

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50sudo update-alternatives --config gccsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50sudo update-alternatives --config g++

查看是否成功:

gcc --versiong++ --version

安装CUDA toolkit

sudo sh cuda_10.2.89_440.33.01_linux.run# toolkit包自带驱动,如果之前安了驱动,可不选Driver

配置环境变量

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

选择下载合适的版本安装cuDNN,需使用Nvidia账号

/cudnn这里还是以10.2为例

wget /compute/machine-learning/cudnn/secure/8.2.1.32/10.2_0607/cudnn-10.2-linux-x64-v8.2.1.32.tgz

解压cuDNN压缩包后

sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/includesudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.hsudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*

检查是否安装成功

nvcc -V

如果成功,则会显示

Cuda compilation tools, release 10.2, V10.2.89

7. 安装Anaconda

官方下载地址:

/products/individual

安装(全部回车 + yes)

bash Anaconda3-.02-Linux-x86_64.sh

配置环境变量

gedit ~/.bashrc

export PATH=“/home/用户名/anaconda3/bin:$PATH”

source ~/.bashrc

检查是否安装成功 python

[GCC 7.5.0] :: Anaconda, Inc. on linux

8. 改为清华源

conda config --add channels https://mirrors.tuna./anaconda/pkgs/free/conda config --add channels https://mirrors.tuna./anaconda/pkgs/main/conda config --set show_channel_urls yes

9. 搭建深度学习环境

新建conda环境

conda create -n env_name python=3.8conda remove -n env_name --all

安装opencv

pip install opencv-python==4.1.1.26

安装jupyter notebook

conda install jupyter notebook

安装Open3D

pip install open3d

检验是否安装成功

python -c "import open3d as o3d; print(o3d)"

安装 Pytorch

# pytorch 1.9conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

# pytorch 1.8conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch-lts

检验Pytorch是否安装成功

torch.cuda.is_available()

10. 关闭自动更新

当Linux内核版本更新之后,会自动切换到新的版本,但原来安装的显卡驱动却还是停留在了原来的内核版本,为了防止此情况发生,需要关闭自动更新。

显示所有内核

dpkg --get-selections|grep linux

删除不必要的内核

sudo apt-get purge 【image/head/module】

关闭自动更新

$sudo apt-mark hold linux-image-5.8.0-59-genericlinux-image-5.8.0-59-generic set on hold.$sudo apt-mark hold linux-headers-5.8.0-59-genericlinux-headers-5.8.0-59-generic set on hold.$sudo apt-mark hold linux-modules-extra-5.8.0-59-genericlinux-modules-extra-5.8.0-59-generic set on hold.(设置为保留)

打开内核配置文件:

sudo gedit /etc/apt/apt.conf.d/10periodic

0为关闭

APT::Periodic::Update-Package-Lists "0";APT::Periodic::Download-Upgradeable-Packages "0";APT::Periodic::AutocleanInterval "0";APT::Periodic::Unattended-Upgrade "0";

11. Snap(非必要)

安装

sudo apt-get install snapdsudo apt-get install snapcraft

配置环境

gedit ~/.bahsrcexport PATH=$PATH:/snap/binsource ~/.bashrc

列出已经安装的snap包

sudo snap list

搜索要安装的snap包

sudo snap find <text to search>

安装一个snap包

sudo snap install <snap name>

更新一个snap包,如果你后面不加包的名字的话那就是更新所有的snap包

sudo snap refresh <snap name>

把一个包还原到以前安装的版本

sudo snap revert <snap name>

删除一个snap包

sudo snap remove <snap name>

12. 其他

clion

sudo snap install clion --classic

pycharm

sudo snap install pycharm-professional --classic

网易云音乐

sudo snap install netease-music --devmode --beta

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。