cuda与nvidia驱动安装
[TOC]
cuda的下载与安装
- 第1步,确认OS操作系统的信息,以便安装对应的cuda驱动,示例为 Ubuntu 22.04.2
[root@ubuntu ~]# cat /etc/issue
Ubuntu 22.04.2 LTS \n \l
[root@ubuntu ~]# uname -a
Linux ubuntu 5.15.0-100-generic #110-Ubuntu SMP Wed Feb 7 13:27:48 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
- 第2步,打开 CUDA Toolkit 官网,选择与OS版本一致的安装文件,比如 Ubuntu 22.04 对应 CUDA 11.7(建议选择 12.8)的安装文件为
cuda_11.7.0_515.43.04_linux.run
#.选择过程
Operating System : Linux
Architecture : x86_64
Distribution : Ubuntu
Version : 22.04
Installer Type : runfile(local)
- 第3步,拷贝上一步生成的下载地址,去目标服务器上下载安装
cd /opt/
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sh cuda_11.7.0_515.43.04_linux.run
- 第4步,执行 nvcc --version 查看 CUDA 版本,示例为 11.7
#.配置环境变量
# echo 'export PATH=$PATH:/usr/local/cuda-11.7/bin' >> /etc/profile
# source /etc/profile
[root@ubuntu ~]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0
nvidia显卡驱动的下载与安装
- 第1步,利用 lspci 检测显卡设备,并确认gcc已安装(显卡驱动依赖gcc)
#.1.检测是否有nvidia设备,若无返回则表示未识别到设备
lspci -nn | grep NVIDIA
#.2.确认gcc已安装(新安装gcc之后务必reboot,否则安装显卡驱动会报内核相关的错误)
gcc --version | grep gcc
- 第2步,禁用开源的nouveau驱动,避免和 NVIDIA GPU 驱动冲突
#.禁用Nouveau驱动,否则安装驱动遇到各种错误
lsmod | grep nouveau
#.注:若无信息输出,则表示已被禁用,无需再操作以下步骤(若libseccomp版本过低(比如2.3.1)则执行dracut会出错且驱动安装会失败)
# echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# dracut /boot/initramfs-$(uname -r).img $(uname -r)
# reboot
- 第3步,确认操作系统及CUDA的信息,以便安装对应的显卡驱动,示例为 Ubuntu 22.04、CUDA版本为 11.7
[root@ubuntu ~]# cat /etc/issue
Ubuntu 22.04.2 LTS \n \l
[root@ubuntu ~]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0
- 第4步,打开 nvidia官网,选择与CUDA版本一致的显卡驱动,比如 NVIDIA Tesla T4 基于 CUDA 11.7 的驱动文件为
NVIDIA-Linux-x86_64-515.105.01.run
(注:使用.run 或 .deb文件均可)
注:安装cuda之前,先查看 CUDA Toolkit 对应 NVIDIA Driver 驱动版本的最低要求,更多请参考 cuda-toolkit-release-notes
#.选择过程
产品类型 : Tesla
产品系列 : T-Series
产品家族 : Tesla T4
操作系统 : Linux 64-bit #.通过.run文件安装
操作系统 : Linux 64-bit Ubuntu 22.04 #.通过.deb文件安装
CUDA Toolkit : 11.7
语言 : Chinese (Simplified)
#.驱动文件信息
驱动版本 : 515.105.01
CUDA 工具包 : 11.7
发布日期 : 2023-3-30
文件名称 : NVIDIA-Linux-x86_64-515.105.01.run
文件大小 : 363.74 MB
- 第5步,拷贝上一步生成的下载地址,去目标服务器上下载安装
#.安装驱动
cd /opt/
wget -c https://cn.download.nvidia.cn/tesla/515.105.01/NVIDIA-Linux-x86_64-515.105.01.run
sh ./NVIDIA-Linux-x86_64-515.105.01.run -s -no-nouveau-check
#.卸载驱动
# sh ./NVIDIA-Linux-x86_64-515.105.01.run --uninstall
- 第6步,执行 nvidia-smi 查看 nvidia 显卡信息
[root@ubuntu ~]# nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.105.01 Driver Version: 515.105.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| 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 Tesla T4 Off | 00000000:01:00.0 Off | 0 |
| 0% 45C P0 26W / 70W | 2MiB / 15360MiB | 4% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
注:重点关注 nvidia-smi 如下几个参数
参数名称 | 参数解释 | 示例数值 | 备注 |
---|---|---|---|
GPU | GPU 编号 | 0 | 有多块显卡的话,编号从0开始 |
Name | GPU 型号 | Tesla T4 | - |
Persistence-M | 持续模式的状态 | Off | 建议开启持续模式,虽然耗能大,但可以让GPU更快响应任务 |
Fan | 风扇的转速 | 0% | 从0到100%之间变动,N/A表示没有风扇 |
Temp | GPU的温度 | 45C | 单位℃,GPU温度过高会导致GPU的频率下降 |
Perf | GPU的性能模式 | P0 | 从P0(最大性能)到P12(最小性能) |
Pwr:Usage/Cap | GPU的功耗使用情况和上限 | 26W / 70W | - |
Memory-Usage | 显存使用率 | 2MiB / 15360MiB | - |
GPU-Util | GPU使用率 | 4% | - |
Compute M. | GPU的计算模式 | Default | - |
Processes | 哪些进程占用gpu | 没有进程 | 显示每个进程占用的使用率、进程号、占用哪个GPU等信息 |
GPU Memory | 哪些进程占用多少gpu显存 | - | 显示每个进程使用的GPU显存量 |
附:nvidia-smi 常用命令
#.查看帮助
nvidia-smi --help
#.列出所有nvidia型号
nvidia-smi -L
#.开启持续模式(默认关闭),能够让 GPU 更快响应任务,缺点是增加待机功耗
nvidia-smi -pm 1
#.关闭持续模式
nvidia-smi -pm 0
#.隔2秒刷新一下GPU的状态
nvidia-smi -l 2
#.间隔1秒、保存为csv格式、--query-gpu记录哪些指标
nvidia-smi -l 1 --format=csv --filename=/opt/report.csv --query-gpu=timestamp,name,index,utilization.gpu,memory.total,memory.used,power.draw
多版本cuda配置
- 假设先装了 cuda-11.7 后装了 cuda-12.0,但是
nvcc --version
看到的cuda版本仍为 11.7,现在需要使用 cuda 12.0 这个版本
[root@ubuntu ~]# sh cuda_11.7.0_515.43.04_linux.run
[root@ubuntu ~]# sh cuda_12.0.0_525.60.13_linux.run
[root@ubuntu ~]# ll /usr/local/
lrwxrwxrwx 1 root root 21 Jun 18 03:33 cuda -> /usr/local/cuda-11.7//
drwxr-xr-x 15 root root 4096 Jun 18 03:33 cuda-11.7/
drwxr-xr-x 17 root root 4096 Oct 10 2023 cuda-12.0/
[root@ubuntu ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/cuda-11.7/bin
[root@ubuntu ~]# nvcc --version | grep release
Cuda compilation tools, release 11.7, V11.7.64
- 修改环境变量
$PATH
将 cuda-11.7 替换为 cuda-12.0,过程如下:
[root@ubuntu ~]# PATH=`echo $PATH | sed "s/cuda-11.7/cuda-12.0/"`
[root@ubuntu ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/cuda-12.0/bin
[root@ubuntu ~]# nvcc --version | grep release
Cuda compilation tools, release 12.0, V12.0.76