对于一台新Ubuntu20.04主机,想要直接进行深度学习模型的训练,需要进行一些常规配置。本文针对的情况包括物理机和虚拟机。安装部分本文不介绍,只介绍配置环境部分。
参考如下博客:Ubuntu中文输入法
参考这篇文章:更换apt源
zerotier是用来进行内网穿透的,如果有这方面需求的朋友可以安装。官网链接
在终端中输入curl -s https://install.zerotier.com | sudo bash
安装zerotier
安装完成后,输入sudo zerotier-cli info
,显示结果如下,则表明安装成功了,如果失败了,可以尝试卸载重装。
200 info c7cb5c3623 1.10.3 ONLINE
通过在官网注册账号,创建一个网络,并让ubuntu主机加入创建好的新网络。假设新创建的网络号是net_number
,则通过如下命令加入(将net_number
修改成你自己创建的网络号)
sudo zerotier-cli join net_number
显示200 join OK
表明成功加入网络。
接下来,开启防火墙,sudo ufw enable
安装openssh:sudo apt install openssh-server
安装后,查看SSH运行状态:sudo systemctl status ssh
设置防火墙允许22端口出入:sudo ufw allow 22/tcp
可以直接通过Ubuntu software安装
教程参考这篇博客:安装Miniconda
截至目前(2023/2/24)最新版是cuda12.0,故本教程安装cuda12.0.
在安装cuda12.0之前,先根据官网对照表查看下cuda版本对应显卡驱动版本最低要求(如果驱动版本和cuda不对应会有电脑无法正常启动的风险,谨慎操作):Cuda和驱动版本对应
由上表可以看出,想安装cuda12.0需要至少525.60.13的驱动版本。安装如下步骤进行驱动安装更新:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002204sv00001462sd00003882bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-525 - third-party non-free
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-515-open - distro non-free
driver : nvidia-driver-515-server - distro non-free
driver : nvidia-driver-525-server - distro non-free
driver : nvidia-driver-515 - distro non-free recommended
driver : nvidia-driver-510 - distro non-free
driver : nvidia-driver-525-open - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
# 或者安装指定驱动(这里挑选自己需要的驱动,然后安装即可,不必卸载之前装过的驱动)
$ sudo apt install nvidia-driver-525
接下来开始安装cuda12.0。
首先从官网下载最新版的安装包,Cuda12.0
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda-repo-ubuntu2004-12-0-local_12.0.1-525.85.12-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-0-local_12.0.1-525.85.12-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
安装完成后,需要将CUDA的路径添加到系统环境变量中。打开终端,执行以下命令:
echo 'export PATH=/usr/local/cuda-12.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
测试CUDA是否安装成功。可以使用以下命令查看CUDA版本信息:
nvcc --version
如果输出类似于以下内容,则表示CUDA安装成功:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0
接下来测试下nvidia-smi
命令:
如果输出类似于以下内容,则表示一切顺利:
Fri Feb 24 14:38:04 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 On | N/A |
| 0% 34C P8 16W / 420W | 168MiB / 24576MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1343 G /usr/lib/xorg/Xorg 44MiB |
| 0 N/A N/A 1664 G /usr/bin/gnome-shell 121MiB |
+-----------------------------------------------------------------------------+
首先,从NVIDIA官方网站(CUDNN)下载与你所使用的CUDA版本相对应的CuDNN安装包。需要注意的是,你需要先安装CUDA才能安装CuDNN。
根据自己安装的CUDA版本选择CUDNN的版本。我教程安装的是CUDA12.0,所以CUDNN选择对应版本下载。
选择对应的Ubuntu20.04版本的CUDNN下载。需要下载下图红框中的两个文件。
下载到本地后上传到服务器中,如果使用vscode远程连接的服务器可以直接拖拽过去上传,如果没用vscode可以使用其他SFTP软件上传,或者在Windows的终端中使用scp命令上传到服务器中。
安装步骤参考的这篇博客Ubuntu 20.04 安装 CUDNN
首先解压cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz
:
tar -xJvf cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz
然后切换目的到解压后的文件中:
cd cudnn-linux-x86_64-8.8.0.121_cuda12-archive/
然后将解压得到的目录中 include
和 lib
目录下的内容复制到 /usr/local/cuda-12.0/include
和 /usr/local/cuda-12.0/lib64
中, 但是需要注意,解压目录中的 lib
中有很多软链接,所以在复制lib
中的内容时需要用 cp -d
命令:
sudo cp -d -r ./lib/* /usr/local/cuda-12.0/lib64/
sudo cp -r ./include/* /usr/local/cuda-12.0/include/
然后赋予权限:
sudo chmod a+r /usr/local/cuda-12.0/include/cudnn.h /usr/local/cuda-12.0/lib64/libcudnn*
查看 CUDNN 的信息:
cat /usr/local/cuda-12.0/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
输出类型如下结果,就表明这一步操作完成了:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 8
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
/* cannot use constexpr here since this is a C-only file */
然后安装cudnn-local-repo-ubuntu2004-8.8.0.121_1.0-1_amd64.deb
,执行如下命令开始安装:
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.8.0.121_1.0-1_amd64.deb
注意:cudnn-local-repo-ubuntu2004-8.8.0.121_1.0-1_amd64.deb
是下载好的安装包名字,更改为你下载的那个安装包名。
执行完上述命令后,会出现类似如下内容:
sudo cp /var/cudnn-local-repo-ubuntu2004-8.8.0.121/cudnn-local-A9E17745-keyring.gpg /usr/share/keyrings/
安装完成CUDA后,进行pytorch-GPU安装,参考官方安装教程:Pytorch安装
在终端输入如下命令安装:
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
安装完成后,在终端中打开python交互界面(在终端中输入python,然后回车进入),输入如下命令:
import torch
print(torch.cuda.is_available())
如果输出结果是True
,则表明Pytorch-GPU安装成功。
首先利用sudo swapon --show
查看已有的SWAP分区,再通过sudo swapoff /swapfile
禁用名为/swapfile
SWAP分区。
然后安装如下步骤增加SWAP分区:
sudo fallocate -l <size> /swapfile
其中,为需要分配的SWAP空间大小,单位为字节。例如,要创建一个2GB的SWAP分区,可以使用以下命令:
sudo fallocate -l 2G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo nano /etc/fstab
在打开的文件末尾添加以下行:
/swapfile none swap sw 0 0
保存文件并退出。
完成以上步骤后,可以通过以下命令检查新创建的SWAP分区是否已经生效:
sudo swapon --show