1. 背景
最近接收了一台戴尔5820服务器,这个服务器之前用于机器学习的开发,配置一般,16C/128G/1.5T/Quadro 4000的配置。要命的是
这个服务器安装的是Windows 10系统,而不是Ubuntu或者CentOS等Linux环境。
本文主要记录下服务器重新安装了Ubuntu20.04 LTS后如何安装CUDA的过程。
选择安装Ubuntu 20这个版本是因为Ubuntu18版本安装失败。原因是安装过程中存在擦除磁盘擦不掉,重试多次后安装失败。
2. 设置驱动
首先需要设置使用Quadro显卡的驱动作为输出,而不是内置的nouveau。如下图,图片来自网上(侵删)。
重启后,可以使用nvidia-smi
来查看Quadro支持的cuda的版本号信息。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22nvidia-smi
Thu Jul 15 14:11:06 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.27.04 Driver Version: 460.27.04 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| 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 Quadro P4000 Off | 00000000:65:00.0 Off | N/A |
| 46% 36C P8 5W / 105W | 15MiB / 8118MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1149 G /usr/lib/xorg/Xorg 9MiB |
| 0 N/A N/A 1335 G /usr/bin/gnome-shell 2MiB |
+-----------------------------------------------------------------------------+
可以看到,CUDA的版本为11.2
。
2.1 下载安装CUDA
接下来从英伟达官方下载11.2版本的CUDA。
按照下图选择本地安装方式并下载相应文件:
下载结束后,需要设置下使用gcc-7的版本(有可能gcc-9也是能够可以用的,没有验证过)1
2
3
4
5
6
7
8
9
10
11
12
13apt-get install gcc-7 g++-7
sudo apt-get install gcc-7 g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100
sudo update-alternatives --display gcc
gcc - manual mode
link best version is /usr/bin/gcc-9
link currently points to /usr/bin/gcc-7
link gcc is /usr/bin/gcc
/usr/bin/gcc-7 - priority 10
/usr/bin/gcc-9 - priority 100
这里有一个坑,需要先停掉使用这个独立显卡的窗口,让kernel释放nvidia的一些ko,这样CUDA可以编译通过1
2
3sudo systemctl isolate multi-user.target
sudo modprobe -r nvidia-drm
先释放多窗口和ko
然后安装1
sudo sh cuda_11.2.0_460.27.04_linux.run
安装过程需要同意EULA以及选择不安装的组件,这里就不截图了。
安装结束后需要设置PATH等路径。1
2export PATH=$PATH:/usr/local/cuda-11.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0/lib64
3. 检查安装是否成功
在terminal中输入nvcc -V
,若有输出中,则安装成功。1
2
3
4
5
6nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Nov_30_19:08:53_PST_2020
Cuda compilation tools, release 11.2, V11.2.67
Build cuda_11.2.r11.2/compiler.29373293_0