CUDA

CUDA是什么

CUDA是NVIDIA公司开发的一种并行计算平台和编程模型,可以将大量的计算任务分配到GPU上,以便加速计算速度,使用在科学计算、深度学习、图形处理和其他需要大量计算的领域。CUDA已经成为GPU计算的主要平台之一,许多高性能计算应用程序都使用CUDA来实现加速。

安装CUDA

CUDA下载CUDA安装指南

安装前操作

  1. 查看操作系统对CUDA版本是否支持
    CUDA安装指南中查看操作系统是否支持CUDA。

  2. 验证是否有支持CUDA的GPU

    1
    lspci | grep -i nvidia 

    若没有,可以使用update-pciids更新PCI数据库的信息,重新进行查找

  3. 验证是否安装GCC

    1
    gcc --version

安装CUDA

按照下载界面提供的安装方式进行安装

1
2
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
sudo sh cuda_12.1.0_530.30.02_linux.run

修改环境变量

1
2
3
vim ~/.bashrc
export PATH=/usr/local/cuda-12.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

source ~/.bashrc之后通过nvcc -V查看是否安装成功
nvidia-smi中可以查看GPU相关信息,包括使用率、内存使用情况、温度、进程信息等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Fri Jul 28 10:44:43 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.85.02 Driver Version: 510.85.02 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| 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 A100-PCI... Off | 00000000:18:00.0 Off | 0 |
| N/A 30C P0 33W / 250W | 0MiB / 40960MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100-PCI... Off | 00000000:AF:00.0 Off | 0 |
| N/A 30C P0 31W / 250W | 0MiB / 40960MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
# NVIDIA-SMI 510.85.02:工具版本号
# Driver Version: 510.85.02:驱动版本号
# CUDA Version: 11.6:CUDA版本号

# 表格对应
# GPU <--> 0:GPU编号
# Persistence-M <--> off:持续性模式,默认关闭,开启该模式能够让GPU更快响应任务,但会增加待机功耗
# Bus-Id <--> 00000000:18:00.0:显卡总线ID,标识显卡在系统中的位置
# Disp.A <--> Off:是否被用于显示输出
# Volatile Uncorr. ECC <--> 0:显卡显存的错误纠正码(ECC)情况。N/A 表示当前未开启 ECC 或不支持 ECC。
# Fan <--> N/A:显卡风扇转速
# Temp <--> 30C:显卡温度
# Perf <--> :显卡性能状态,P0-P15、P32。P0表示最大性能状态,P15表示最小性能状态,P32表示状态未知。
# Pwr:Usage/Cap <--> 33W / 250W:功耗,当前功耗/最大功耗
# Memory-Usage <--> 0MiB / 40960MiB:显存使用情况
# GPU-Util <--> 0%:GPU利用率
# Compute M. <--> Default:显卡计算模式,三种类型:GFLOPS,TMUs和ROPs,Default为GFLOPS模式
# MIG M. <--> Disabled:MIG是一种GPU技术,这里表示是否开启使用该技术