因为本人的电脑没有带有NVIDIA公司的独立显卡,所以需要用到GPU进行大规模运算加速训练的时候,就萌生了购买云服务进行计算的念头,这里查询了几家华为云、腾讯云和阿里云,发现腾讯云的价格比较便宜,然后在创建服务器的时候可以勾选系统安装驱动,而且支持Ubuntu 20.04,而华为云只支持到Ubuntu 16.04就比较古老了
下面是本人购买的服务器的配置,选择的是按需付费:
机型:GN7.2XLARGE32
CPU:Intel Xeon Cascade Lake(2.5 GHz) * 8vCPUs
RAM:32GB
GPU:NVIDIA T4 * 1
OS:Ubuntu 20.04 Server LTS
虽然在配置界面勾选了后台安装驱动之类的,但是进去后运行这条命令:
$ nvidia-smi
可以发现系统并没有识别出我们的显卡,这就还是需要我们自己配置显卡驱动了,先清理系统里面的驱动
$ sudo apt-get purge nvidia*
查找可用的驱动版本
$ ubuntu-drivers devices
这条指令在我本机上得到的结果就是
ubuntu@VM-0-4-ubuntu:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:08.0 ==
modalias : pci:v000010DEd00001EB8sv000010DEsd000012A2bc03sc02i00
vendor : NVIDIA Corporation
model : TU104GL [Tesla T4]
driver : nvidia-driver-460 - distro non-free recommended
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-450 - distro non-free
driver : nvidia-driver-460-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
那我们具体要使用哪一个版本的驱动就需要根据我们本机的内核版本号来确定了,我们可以运行这条指令
$ cat /proc/driver/nvidia/version
我本机的信息显示:
ubuntu@VM-0-4-ubuntu:~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 418.181.07 Sun Dec 27 19:26:35 UTC 2020
GCC version: gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
可以看到内核的驱动版本是418.181.07,于是我们就安装418版本的驱动就好了
$ sudo apt-get install nvidia-driver-418-server nvidia-settings nvidia-prime
然后重启
$ sudo reboot
再查看驱动情况就可以发现已经识别出显卡了
ubuntu@VM-0-4-ubuntu:~$ nvidia-smi
Fri Feb 26 15:30:58 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.181.07 Driver Version: 418.181.07 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla T4 Off | 00000000:00:08.0 Off | 0 |
| N/A 45C P0 29W / 70W | 0MiB / 15079MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
这里我选用的平台是Anaconda,只要安装好了Anaconda再安装Pytorch或者Tensorflow-gpu都是非常简单的事情
先安装一些必备的库
$ sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
然后从官网里面下载Anaconda的安装脚本
$ wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
然后给脚本赋予执行权限
$ chmod +x Anaconda3-2020.11-Linux-x86_64.sh
然后运行安装脚本即可
$ ./Anaconda3-2020.11-Linux-x86_64.sh
这里不建议使用root权限安装,如果你自己使用的用户就不是root账户的话
这里如果出现找不到conda命令的情况可能需要手动修改shell的环境配置
$ sudo vim ~/.bashrc
然后就修改为类似这样的实际安装路径
export PATH="/home/ubuntu/anaconda3/bin:$PATH"
然后刷新重新运行
$ source ~/.bashrc
只需要运行这一条命令即可创建虚拟环境
$ conda create -n pytorch3.8-gpu python=3.8
然后记住下面两条命令
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate pytorch3.8-gpu
#
# To deactivate an active environment, use
#
# $ conda deactivate
先执行这条指令进入Anaconda环境中
$ source activate
执行第一条指令就可以进入虚拟环境中
$ conda activate pytorch3.8-gpu
然后进行安装环境
$ conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
进行测试
(pytorch3.8-gpu) ubuntu@VM-0-4-ubuntu:~/MachLE$ python
Python 3.8.8 (default, Feb 24 2021, 21:46:12)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>>