📔 CUDA 概述和环境准备 学习笔记
1. 环境说明¶
- 系统:Ubuntu 20.04.5
- GPU:RTX 3060Ti
- gcc:9.4.0
- 架构:x86_64
本文不是使用手册,只是记录基本的内容处理手册。
2. CUDA 概述¶
CUDA(Compute Unified Device Architecture)是由 NVIDIA 在2006年推出一个通用的并行计算架构,用来解决复杂的数据计算问题。支持多种编程语言和应用程序接口。
对于CUDA 来说,有两种形式的API:
-
Runtime API
:通过CUDA toolkit安装的nvcc编译器、SDK等。 -
Driver API
:驱动的安装,也就是查看显卡信息的 nvidia-smi 命令,因为是直接控制GPU硬件的。
3. CUDA基本环境配置¶
查看显卡是否CUDA,对应的信息查看:https://developer.nvidia.com/cuda-gpus
3.1 环境确认¶
-
确认系统架构和OS版本
-
检测系统内核头文件
-
显卡正常安装
-
禁用
nouveau
在Ubuntu中,由于系统自带了开源的 nouveau 驱动,所以在安装 NVIDIA驱动时,需要提前禁止驱动的运行。使用如下命令:
如果未禁止,则创建配置文件:
-
gcc 的版本确认
3.2 安装NVIDIA驱动¶
-
查看推荐的驱动版本
从信息中来看,系统默认推荐使用
nvidia-driver-515
。 -
安装驱动
选择如下方式其中之一即可安装
-
重启,查看GPU驱动信息
方式2输出的信息如下:
-
Nvidia-smi工具介绍
- 管理和检测GPU
- 查询和修改GPU状态
- 支持多平台
- 使用方法:nvidia-smi --help
- 查看系统GPU:nvidia-smi -L
- 查询GPU详细信息:nvidia-smi -q -i 0
- 显示特定信息:nvidia-smi -q -i 0 -d(信息名称)
3.2 安装CUDA¶
CUDA-ToolKit 软件版本地址:https://developer.nvidia.com/cuda-toolkit-archive
由于使用 nvidia-smi
显示的信息中,CUDA version
是 11.7
版本。最好选择对应的版本,因为后续使用的 Tensorflow-GPU
和 PyTorch-GPU
会依赖于CUDA的指定版本。
在链接中,找到对应的版本,然后选择对应的信息后,会显示安装方式,可以选择相对应的方式,本人的使用方式如下:
在 /root/.bashrc
中添加环境变量:
使用命令 source /root/.bashrc
使得环境变量生效。
重新打开Terminal,然后查看 NVCC 是否安装成功。
3.3 CUDA 卸载¶
直接使用命令进行清除:
也可以使用如下命令再次确认驱动是否卸载完毕。
3.4 多版本CUDA共存¶
CUDA 的安装方式不变,如果需要多个版本的支持,但是又不想删除原来的版本,可以直接在安装特定的版本后,进行软链接处理。
4. cuDNN 环境¶
cuDNN的软件版本地址:https://developer.nvidia.com/rdp/cudnn-archive,根据CUDA Version 去选择相对应的软件版本,中间会让其登陆或者注册账户,请自行处理。
4.1 cuDNN 概述¶
CUDA深度神经网络库(cuDNN)是NVIDIA 开发,是用于GPU加速的深度神经网络的原语库。
专注于训练神经网络和开发应用程序,通过cuDNN来实现GPU的高性能加速。也使得开发人员和研究人员无序花时间在底层GPU的性能调优伤。
目前cuDNN已经泛化到主流的深度学习框架中,例如TF、PyTorch、MxNet 和 PaddlePaddle等。
4.2 cuDNN 环境准备¶
4.3 查看cuDNN的版本¶
4.4 卸载cuDNN¶
如果如上的方式不可行,可以使用如下方式,直接清除:
5. 一键Docker 方式使用CUDA 和 cudNN 环境¶
前置说明:
- docker中步骤和Host上执行的步骤是一样的,故本人使用个人习惯的Docker方式进行处理。
- 请确认环境中,是否已经安装Docker。
- Docker 内未直接安装 CUDA 驱动,如果需要安装请自行安装。
- 由于本人是自行对TF进行调优处理和优化,都是自行编译,所以Docker 内未安装 TF-GPU 和 Torch-GPU 版本,使用时根据情况安装。
- Dockerfile 文件太久没有进行build,可能会存在build不成功的情况,请根据情况去Debug分析。
5.1 安装Docker¶
请直接参考方式:Docker环境准备 本内容主要是CUDA相关,所以此处不再进行过多赘述。
5.2 Dockerfile 文件¶
Dockerfile 文件的内容如下:Dockerfile.2004
由于Nvidia,在Docker内只要进行了提权操作,是可以直接在Docker内使用 nvidia-smi 直接查看N卡环境信息等。
Dockerfile 文件的使用方式为:
5.3 Docker环境build后的使用方法¶
-
启动Docker 并添加相应的权限和映射
-
Docker内查看CUDA版本
-
Docker内查看cuDNN信息
6. 错误及其解决方案¶
错误1:Nvidia NVML Driver/library version mismatch¶
由于使用apt方式进行安装,不同内核升级,导致对应的Nvidia驱动升级,所以会存在版本不匹配的情况。
所以使用如下方式可解决:
也可以使用如下命令再次确认驱动是否卸载完毕。