CUDA 安装配置
基础概念
显卡、驱动、CUDA、CUDNN的关系
| 组件 |
说明 |
| 显卡(GPU) |
NVIDIA的GPU,具有强大的并行计算能力,满足深度学习需求 |
| 驱动 |
识别GPU硬件,调用其计算资源的基础软件 |
| CUDA |
NVIDIA推出的并行计算框架,用于GPU并行加速,深度学习框架均基于CUDA |
| CUDNN |
针对深度卷积神经网络的加速库,依赖CUDA |
版本关系
- 显卡驱动与CUDA:不是一一对应关系,可同时安装多个CUDA版本
- 安装顺序:先安装最新版本的显卡驱动,再根据需要选择CUDA工具包
- 版本要求:安装的CUDA版本需小于等于显卡驱动支持的最新CUDA版本
- VS要求:安装CUDA前需先安装Visual Studio,需注意版本对应关系
Docker 安装
安装步骤
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# 配置容器运行时
sudo nvidia-ctk runtime configure --runtime=docker
# 重新启动 Docker 守护进程
sudo systemctl restart docker
# 验证配置
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
nvidia-smi 输出详解
输出示例
| NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1080 Off | 00000000:01:00.0 Off | N/A |
| 20% 45C P2 50W / 180W | 150MiB / 8118MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
字段说明
| 字段 |
说明 |
| GPU-Util |
GPU利用率,表示当前GPU的使用情况,以百分比形式显示 |
| Fan |
GPU风扇运转情况 |
| Temp |
GPU温度 |
| Perf |
性能状态(Performance State),用P0-P12表示,P0为最高性能状态,P12为最低性能状态 |
| Persistence-M |
持久模式,On表示GPU保持活动状态,Off表示无任务时进入低功耗状态 |
| Pwr:Usage/Cap |
GPU功耗使用情况与功耗能力的比例,格式为:Usage/Cap(如50W/180W) |
| Bus-Id |
GPU设备在系统总线上的唯一标识符,格式如00000000:01:00.0 |
| Disp.A |
Display Active,显示活动状态,On表示有显示设备连接并活动,Off表示未活动 |
| Memory-Usage |
GPU内存使用情况,格式为:Used/Total(如150MiB/8118MiB) |
| Volatile Uncorr.ECC |
易失性不可纠正错误,N/A表示无错误 |
| Compute M. |
计算模式,Default为默认模式,Prohibited为禁止模式,Exclusive Process为独占模式 |
CUDA API 类型
CUDA有两种API:
| API类型 |
说明 |
查看命令 |
| Runtime API |
运行时API |
nvcc -V |
| Driver API |
驱动API |
nvidia-smi |
注意: Runtime API版本要小于等于Driver API版本