nvcc -V无法显示?nvcc和nvidia-smi显示的版本不一致?

解决CUDA版本冲突与nvcc显示问题:安装与环境配置指南
本文讲述了在构建代码时遇到CUDA版本需求与实际驱动版本不符的问题,介绍了如何安装指定版本的CUDAToolkit、检查驱动版本以及如何编辑环境变量以确保nvcc正确显示版本的过程。
部署运行你感兴趣的模型镜像

近期构建代码的时候发现,需要cuda>11.7, 但是nvidia-smi显示driver已经12.3,于是使用nvcc -V查看cuda的版本,发现了两个问题:

【1】nvcc -V无法显示

(sel) server1:~$ nvcc --version
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit

发现需要安装nvidia-cuda-toolkit,这一步需要使用sudo权限;需要注意,直接运行命令

# 安装特定版本的话不要运行该命令!!!
sudo apt install nvidia-cuda-toolkit

会安装最新版本的cuda-toolkit版本(安装特定版本的话不要运行以上命令行!!!),所以需要查看显卡的驱动版本是多少,以安装最合适的版本;

nvidia-cuda-toolkit相关版本查看地址:

cuda-toolkiticon-default.png?t=N7T8https://developer.nvidia.com/cuda-toolkit-archive选择自己相关的cuda-toolkit,然后选择相应的版本信息,注意:一定要选择runfile!!! 如下图:

安装根据命令进行安装即可!!!注意,除非你想改driver的版本,否则在安装cuda-toolkit的时候不要附带update driver版本!!!(在安装cuda-toolkit的时候会让你选择)

如何判断需要安装哪一个cuda-toolkit版本?最简单的办法:比nvidia-smi 显示的cuda-driver版本小就行!!! 比如cuda-toolkit == 11.7, nvidia-smi显示CUDA Version: 12.2;

【2】安装了之后,nvcc -V仍然没反应?或者版本信息不是自己安装的

需要编辑环境变量,让安装的cuda-toolkit生效!

  • 找到cuda-toolkit安装路径!一般都在路径:/usr/local 下
(base) server1:/usr/local$ ls
bin  cuda  cuda-11.8  cuda_11.8.0_520.61.05_linux.run  cuda-12.3  cuda_12.3.2_545.23.08_linux.run  etc  games  include  lib  man  sbin  share  src

可以看到,cuda-11.8是cuda-toolkit的安装文件夹,cuda文件夹是对应的软连接!

  • 编辑~/.bashrc文件,在文件末尾加入如下两句
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  • 让其生效:
source ~/.bashrc

大功告成:

(base) server1:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

如果你想要安装多个版本,请重复以上过程,最后使用的时候使用软连接修改

ln -s ./cuda ./cuda-11.8

然后重新让~/.bashrc文件生效就好啦~ 

参考链接:

1. 一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系

2. 【CUDA】nvcc和nvidia-smi显示的版本不一致?

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### 原因分析 `nvcc -v` `nvidia-smi` 显示的 CUDA 版本一致是由于两者所反映的 API 层级同。`nvidia-smi` 显示的是 **Driver API** 的版本,这是由 NVIDIA 驱动程序安装的,用于支持 GPU 的基本功能兼容性。而 `nvcc -v` 显示的是 **Runtime API** 的版本,它是由 CUDA Toolkit 安装的,主要用于编译运行基于 CUDA 的应用程序。 通常情况下,这两个版本可以同,因为它们分别服务于同的目的。`nvcc -v` 报告的是编译时使用的 CUDA 版本,而 `nvidia-smi` 报告的是驱动支持的 CUDA 版本。只要 CUDA Toolkit 的版本超过驱动支持的版本,程序就可以正常运行 [^3]。 ### 解决方法 #### 1. 检查当前环境变量配置 `nvcc` 是 CUDA Toolkit 的一部分,其路径通常位于 `/usr/local/cuda/bin` 或类似目录下。如果系统中有多个 CUDA 版本,`nvcc` 可能指向了旧版本。可以通过以下命令检查当前 `nvcc` 的路径: ```bash which nvcc ``` 如果输出路径指向了期望的 CUDA 版本,说明环境变量 `PATH` 中的 CUDA 路径配置正确。 #### 2. 手动切换 CUDA 版本 可以通过修改环境变量 `PATH` `LD_LIBRARY_PATH` 来切换 CUDA 版本。例如,如果希望使用 CUDA 12.2,可以运行以下命令: ```bash export PATH=/usr/local/cuda-12.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH ``` 为了使这些更改永久生效,可以将上述命令添加到用户的 shell 配置文件中(如 `.bashrc` 或 `.zshrc`)。 #### 3. 使用 `update-alternatives` 管理多版本Linux 系统中,可以使用 `update-alternatives` 工具来管理多个 CUDA 版本。例如,添加两个 CUDA 版本并选择默认版本: ```bash sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.5 1 sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-12.2 2 sudo update-alternatives --config cuda ``` 执行完上述命令后,可以选择默认的 CUDA 版本,系统会自动更新相关路径。 #### 4. 重新安装 CUDA Toolkit 如果上述方法无法解决问题,可以尝试卸载当前的 CUDA Toolkit 并重新安装所需版本。确保在安装过程中选择与当前 NVIDIA 驱动兼容的 CUDA 版本。可以通过 NVIDIA 官方网站获取对应的安装包 [^5]。 #### 5. 验证安装 安装完成后,再次运行以下命令以确认 `nvcc` `nvidia-smi` 显示版本是否一致: ```bash nvcc --version nvidia-smi ``` 如果版本仍然一致,但程序能够正常运行,则无需进一步调整,因为 `nvcc --version` 显示版本是编译时实际使用的版本 [^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值