目录
✅ 安装命令(Ubuntu 22.04 + CUDA 12.8):
在使用 NVIDIA GPU 驱动部署 CUDA 程序时,很多开发者会默认系统中存在 /usr/local/cuda
目录。然而,有时在安装 NVIDIA 驱动后发现:
ls: cannot access '/usr/local/cuda': No such file or directory
这并不是驱动损坏,而是因为你只安装了 NVIDIA 驱动,却没有安装 CUDA 工具链(Toolkit)。本文将详细介绍如何排查并修复这个问题。
🔍 一、问题现象
执行以下命令:
ls /usr/local/cuda
输出提示:
ls: cannot access '/usr/local/cuda': No such file or directory
尝试查看 CUDA 版本:
nvcc --version
提示:
Command 'nvcc' not found, but can be installed with: apt install nvidia-cuda-toolkit
📌 二、原因分析
NVIDIA 驱动中自带的 CUDA Runtime 允许你运行已编译的 CUDA 程序(例如 nvidia-smi
会显示 CUDA 版本),但无法编译代码,因为编译器(如 nvcc
)和开发头文件并不包括在内。
组件 | 是否包含 |
---|---|
NVIDIA 驱动 | ✔️ 仅包含 CUDA Runtime |
CUDA Toolkit(如 12.8) | ✔️ 包含 nvcc、cuda.h、samples、编译工具等 |
🔧 三、解决方案:安装 CUDA Toolkit
你只需安装对应版本的 CUDA Toolkit 即可:
✅ 安装命令(Ubuntu 22.04 + CUDA 12.8):
sudo apt-get update
sudo apt-get install -y cuda-toolkit-12-8
🧪 四、验证安装结果
1. 查看是否生成目标目录:
ls /usr/local/cuda-12.8
2. 可选:创建标准软链接
sudo ln -s /usr/local/cuda-12.8 /usr/local/cuda
3. 检查 nvcc
是否可用:
nvcc --version
输出示例:
Cuda compilation tools, release 12.8, V12.8.89
🧹 五、总结建议
操作目标 | 需要组件 | 是否自动安装 |
---|---|---|
运行 nvidia-smi / CUDA 程序 | NVIDIA 驱动 + runtime | ✔️ |
编译 CUDA 程序 (nvcc ) | CUDA Toolkit | ❌(需手动) |
为了避免部署出错,建议在安装完驱动后,始终确认是否存在 /usr/local/cuda
和 nvcc
工具,必要时手动安装 cuda-toolkit
。
/usr/local/cuda
、/usr/local/cuda-12.8/
等目录都存在,但 nvcc
命令仍然未识别。
✅ 原因:环境变量 $PATH
和 $LD_LIBRARY_PATH
没有包含 CUDA 路径
安装 CUDA Toolkit 后,不会自动将 CUDA 的 bin
和 lib64
目录加入系统环境变量,所以 nvcc
仍然找不到。
✅ 解决方案:配置环境变量
方法一:添加到当前用户或系统的 ~/.bashrc
(推荐)
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
方法二:针对所有用户(写入 /etc/profile.d/cuda.sh
)
sudo tee /etc/profile.d/cuda.sh > /dev/null << 'EOF'
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
EOF
sudo chmod +x /etc/profile.d/cuda.sh
source /etc/profile.d/cuda.sh
✅ 验证是否生效
which nvcc
nvcc --version
输出应为:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0
📌 补充说明:/usr/local/cuda
是链接到 /etc/alternatives/cuda/
这是由 update-alternatives
管理的符号链接。安装多个 CUDA 版本时它会自动维护 /usr/local/cuda
的指向。
你可以查看默认版本:
update-alternatives --display cuda