CUDA 简介
什么是 CUDA ?
CUDA(Compute Unified Device Architecture)是由 NVIDIA 提供的一种并行计算平台和编程模型,用于加速计算密集型任务。CUDA 允许开发者使用 GPU 的计算能力,通过并行处理来快速执行复杂的计算任务。
CUDA 包括以下主要组成部分:
- CUDA Toolkit:为开发人员提供工具链(如编译器 nvcc)、库(如 cuBLAS、cuDNN)和运行时环境,用于编写和调试 CUDA 程序。
- CUDA Runtime:运行时库,用于管理和执行 CUDA 程序。
- GPU 驱动程序(Driver):NVIDIA 提供的驱动程序,为 CUDA 程序与硬件之间的交互提供支持。
为什么可以或需要安装多个 CUDA ?
- 驱动程序与 CUDA 的解耦
GPU 驱动程序支持多个 CUDA 版本(包括较旧版本),确保程序的向后兼容性。
你可以在系统上安装多个 CUDA Toolkit 版本,用于开发、编译不同需求的程序。 - 不同的开发需求
开发者可能使用不同的 CUDA 版本来适配不同的库或框架(如 TensorFlow、PyTorch 等)。
某些框架(如 PyTorch)在特定版本中绑定了特定的 CUDA,导致需要安装多个版本的 CUDA Toolkit。
由于使用特定的框架或库对运行环境提出了具体要求,有时我们需要自行调整 CUDA 的版本,这是可以实现的。
本文将以普通用户
Ubuntu 24.04
gcc-13
cuda121
环境为例,介绍安装 cuda113
的详细过程和常见问题的解决方案。
CUDA 安装方法
1.下载 CUDA
进入 官方网站 下载环境对应的CUDA。本文以 CUDA 11.3 为例。
Architechture 查看方法:
uname -m
查看Ubuntu版本:
lsb_release -a
ps:Ubuntu 版本不对应时,个人实践未发现报错。例如 Ubuntu 24.04 可安装 20.04 版本。
如果有图形界面可以直接访问下载,或通过 wget
命令:
cd ~
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
2.运行安装文件
下载完成后可看到路径中出现 .run
安装文件。
ls
确保你有执行权限:
chmod +x cuda_11.3.0_465.19.01_linux.run
然后运行安装程序。注意这里toolkitpath
和 samplespath
可以自定义,特别是注意路径中涉及的 cuda 版本。
./cuda_11.3.0_465.19.01_linux.run --override-driver-check --silent --toolkitpath=/home/$(whoami)/cuda-11.3 --samplespath=/home/$(whoami)/cuda-samples --override
3.进入安装界面
(运行需要一段时间,如果没有报错耐心等待)
移动到 continue
,enter
继续。
输入 accept
,enter
继续。
4.选择安装内容
由于我们没有 root 权限,因此我们无需也不能安装 Driver。移动到 Driver
,按Space
取消选中。然后选择 Install
回车继续。
5.等待安装完成
6.安装完成
显示 Summary。
7.写入环境变量
安装完成后,可以看到出现了指定的安装目录:
ls
然后将 bin
lib
目录写入到全局环境变量中。注意检查自己的路径是否正确。
echo 'export PATH=/home/$(whoami)/cuda-11.3/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/home/$(whoami)/cuda-11.3/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
8.测试
nvcc --version
可以看到,更换成功。
常见问题及解决方案
1. 安装协议太长无法翻页,导致无法继续
解决方案:运行安装文件时添加 --silent
参数。
主要作用:
- 无交互安装: 安装过程中不会要求你输入任何信息,比如选择安装组件、同意协议等。所有操作都默认进行。
- 适合脚本化安装: 适合在自动化脚本或批量安装中使用,避免人工干预。
- 减少输出: 使安装过程更简洁,输出的日志信息通常会被最小化。
2.Failed to verify gcc version. See log at /tmp/cuda-installer.log for details.
解决方案:运行安装文件时添加 --override
参数。
作用:忽略 gcc 版本检查。
进入日志文件 /tmp/cuda-installer.log
可以看到问题为 gcc 版本不支持,可以通过添加参数忽略。
[INFO]: Overriding driver check
[INFO]: Setting toolkitpath=/home/kzy/cuda-11.3
[INFO]: Setting samplespath=/home/kzy/cuda-samples
[INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9]
[INFO]: Cleaning up window
[INFO]: Complete
[INFO]: Checking compiler version...
[INFO]: gcc location: /usr/bin/gcc[INFO]: gcc version: gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) [ERROR]: unsupported compiler version: 13.3.0. Use --override to override this check.
3.Installation failed. See log at /tmp/cuda-installer.log for details.
解决方案:运行安装文件时通过添加 --toolkitpath ${yourpath}
--samplespath ${yourpath}
修改为自定义安装目录。注意,由于上文我们没有安装 Driver,因此这里只指定了 toolkitpath 和 samplespath。
进入日志文件可以看到,我们没有 root 权限无法对默认 /usr/local
文件写入,因此需要修改安装目录。
[INFO]: Overriding compiler check
[INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9]
[INFO]: Cleaning up window
[INFO]: Complete
[INFO]: Initializing menu
[WARNING]: Unable to write to directory: /usr/share/applications/
[INFO]: Setup complete
[INFO]: Components to install:
[INFO]: CUDA Toolkit 11.3
[WARNING]: Unable to write to directory: /usr/local
[ERROR]: Permission denied. Unable to write to /usr/local/cuda-11.3/
[INFO]: Cleaning up window
[INFO]: Complete
[ERROR]: Install of CUDA Toolkit 11.3 failed, quitting
4.Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.
Override this check by passing --override-driver-check
解决方案:运行安装文件时添加 --override-driver-check
参数。
顾名思义,绕过驱动检查。至此,安装完成。