cuda与nvidia驱动安装
需要注意的是,只要安装了 NVIDIA 驱动,就能运行 CUDA 代码(不一定非要安装 CUDA Toolkit),因为 NVIDIA 驱动本身就自带基本的 CUDA 运行环境
| 功能 | NVIDIA 驱动 | CUDA 软件库 | GPU(硬件) |
|---|---|---|---|
| 让操作系统识别 GPU | ✔ | ✕ | ✕ |
| 控制 GPU 电源、风扇 | ✔ | ✕ | ✕ |
| 提供 CUDA 运行环境 | ✔(基本支持) | ✔(完整支持) | ✕ |
| 运行 TensorFlow / PyTorch | ✔ | ✔ | ✕ |
| 编写 CUDA 代码(如 nvcc 编译器) | ✕ | ✔ | ✕ |
| 物理计算 / 深度学习 | ✕ | ✔ | ✔ |
CUDA Toolkit 的下载与安装
- 第1步,确认OS操作系统的信息,以便安装对应的cuda驱动,示例为 Ubuntu 24.04.1
[root@ubuntu ~]# cat /etc/issue
Ubuntu 24.04.1 LTS \n \l
[root@ubuntu ~]# uname -a
Linux ubuntu 6.8.0-51-generic #52-Ubuntu SMP PREEMPT_DYNAMIC Thu Dec 5 13:09:44 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
- 第2步,打开 CUDA Toolkit 官网,选择与OS版本一致的CUDA版本,比如 Ubuntu 24.04 对应 CUDA 12.8.1(建议选择最新版)的安装文件为
cuda_12.8.1_570.124.06_linux.run(大小 5.1G)
#.官网地址
https://developer.nvidia.com/cuda-toolkit-archive
#.选择过程
Operating System : Linux
Architecture : x86_64
Distribution : Ubuntu
Version : 24.04
Installer Type : runfile(local)
- 第3步,拷贝上一步生成的下载地址,去目标服务器上下载安装
#.官网wget下载,速度很快
cd /opt/
wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run
# --silent 静默安装(不会安装或更新cuda包自带的驱动), --toolkit 指定安装cuda工具包
sh cuda_12.8.1_570.124.06_linux.run --toolkit --no-drm --silent
- 第4步,执行 nvcc --version 查看 CUDA 版本,示例为 12.8
#.配置环境变量
echo 'export PATH=$PATH:/usr/local/cuda/bin' >> /etc/profile
source /etc/profile
#.查看cuda版本
[root@ubuntu ~]# nvcc --version | grep release
Cuda compilation tools, release 12.8, V12.8.93
NVIDIA 驱动的下载与安装
- 第1步,利用 lspci 检测显卡设备,并确认gcc已安装(显卡驱动依赖gcc),示例 NVIDIA A10
#.1.安装pciutils之后,检测是否有nvidia设备,若无返回则表示未识别到设备
[root@ubuntu ~]# lspci -nn | grep NVIDIA
00:07.0 3D controller [0302]: NVIDIA Corporation GA102GL [A10] [10de:2236] (rev a1)
#.2.确认gcc已安装(新安装gcc之后务必reboot,否则安装显卡驱动会报内核相关的错误)
[root@ubuntu ~]# gcc --version | grep gcc
gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
- 第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步,确认OS操作系统的信息,示例为 Ubuntu 24.04.1
[root@ubuntu ~]# cat /etc/issue
Ubuntu 24.04.1 LTS \n \l
- 第4步,打开 nvidia 官网,选择与OS版本一致的显卡驱动,比如 NVIDIA A10 基于 CUDA 12.8(建议选择最新版)对应的驱动文件为
NVIDIA-Linux-x86_64-570.124.06.run
注:安装cuda之前,先查看 CUDA Toolkit 对应 NVIDIA Driver 驱动版本的最低要求,更多请参考 cuda-toolkit-release-notes
#.官网地址
https://www.nvidia.cn/Download/index.aspx?lang=cn
#.选择过程
产品类型 : Data Center / Tesla
产品系列 : A-Series
产品家族 : NVIDIA A10
操作系统 : Linux 64-bit #.通过.run文件安装,推荐
#操作系统 : Linux 64-bit Ubuntu 24.04 #.通过.deb文件安装,不推荐
CUDA Toolkit : 12.8
语言 : Chinese (Simplified)
#.驱动文件信息
驱动版本 : 570.124.06
发布日期 : 2025-03-03
操作系统 : Linux 64-bit
文件名称 : NVIDIA-Linux-x86_64-570.124.06.run
文件大小 : 375.73 MB
下载地址 : https://cn.download.nvidia.com/tesla/570.124.06/NVIDIA-Linux-x86_64-570.124.06.run
- 第5步,拷贝上一步生成的下载地址,去目标服务器上下载安装
#.官网地址wget报403,改为sqlfans下载
cd /opt/
wget -c http://oss.sqlfans.cn/ai/nvidia/NVIDIA-Linux-x86_64-570.124.06.run
sh ./NVIDIA-Linux-x86_64-570.124.06.run -s -no-nouveau-check
#.卸载驱动
# sh ./NVIDIA-Linux-x86_64-570.124.06.run --uninstall
- 第6步,执行 nvidia-smi 查看 nvidia 显卡信息
[root@ubuntu ~]# nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.124.06 Driver Version: 570.124.06 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| 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 A10 Off | 00000000:00:07.0 Off | 0 |
| 0% 38C P0 52W / 150W | 1MiB / 23028MiB | 0% 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 型号 | NVIDIA A10 | - |
| Persistence-M | 持续模式的状态 | Off | 建议开启持续模式,虽然耗能大,但可以让GPU更快响应任务 |
| Fan | 风扇的转速 | 0% | 从0到100%之间变动,N/A表示没有风扇 |
| Temp | GPU的温度 | 38C | 单位℃,GPU温度过高会导致GPU的频率下降 |
| Perf | GPU的性能模式 | P0 | 从P0(最大性能)到P12(最小性能) |
| Pwr:Usage/Cap | GPU的功耗使用情况和上限 | 52W / 150W | - |
| Memory-Usage | 显存使用率 | 1MiB / 23028MiB | - |
| GPU-Util | GPU使用率 | 0% | - |
| 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
遇到的问题
- 问题1:安装cuda或nvidia驱动报错 Error opening terminal: ģ
#.安装cuda报错
root@ubuntu:/opt# sh cuda_12.8.1_570.124.06_linux.run
Error opening terminal: ģ
#.卸载nvidia驱动报错
root@ubuntu:/opt# sh ./NVIDIA-Linux-x86_64-570.124.06.run --uninstall
Error opening terminal: ģ
- 解决1:参考如下静默安装
# --silent 静默安装(不会安装或更新cuda包自带的驱动), --toolkit 指定安装cuda工具包
sh cuda_12.8.1_570.124.06_linux.run --toolkit --no-drm --silent