CUDA/cuDNN 查看

部署运行你感兴趣的模型镜像

CUDA/cuDNN

注意:如果没有二次编译代码的需求,正常情况下不需要单独安装CUDA/cuDNN,因为框架都内置了编译好的CUDA,框架版本和CUDA版本是对应的,只需要关注框架版本即可,无需独立关注CUDA版本。

查询默认CUDA/cuDNN版本

注意:通过nvidia-smi命令查看到的CUDA版本只是驱动支持的最高cuda版本参数,不代表实例中安装的是该版本CUDA。

终端中执行查看默认镜像自带的CUDA版本(安装目录为/usr/local/):

# 查询平台内置镜像中的cuda版本
ldconfig -p | grep cuda
        libnvrtc.so.11.0 (libc6,x86-64) => /usr/local/cuda-11.0/targets/x86_64-linux/lib/libnvrtc.so.11.0
        libnvrtc.so (libc6,x86-64) => /usr/local/cuda-11.0/targets/x86_64-linux/lib/libnvrtc.so
        libnvrtc-builtins.so.11.0 (libc6,x86-64) => /usr/local/cuda-11.0/targets/x86_64-linux/lib/libnvrtc-builtins.so.11.0

# 查询平台内置镜像中的cudnn版本
ldconfig -p | grep cudnn
        libcudnn_ops_train.so.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8
        libcudnn_ops_train.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so
        libcudnn_ops_infer.so.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8
        libcudnn_ops_infer.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so

上边的输出日志.so后的数字即为版本号。如果你通过conda安装了cuda那么可以通过以下命令查看:

conda list | grep cudatoolkit
cudatoolkit               10.1.243             h6bb024c_0    defaults

conda list | grep cudnn
cudnn                     7.6.5                cuda10.1_0    defaults

安装其他版本的CUDA/cuDNN

方法一:使用conda进行安装

优点:简单

缺点:一般不会带头文件,如果需要做编译,则需要照方法二安装

方法:

conda install cudatoolkit==xx.xx
conda install cudnn==xx.xx

如果你不知道版本号是什么那么可以搜索:

conda search cudatoolkit
Loading channels: done
# Name                       Version           Build  Channel             
cudatoolkit                      9.0      h13b8566_0  anaconda/pkgs/main  
cudatoolkit                      9.2               0  anaconda/pkgs/main  
cudatoolkit                 10.0.130               0  anaconda/pkgs/main  
cudatoolkit                 10.1.168               0  anaconda/pkgs/main  
cudatoolkit                 10.1.243      h6bb024c_0  anaconda/pkgs/main  
cudatoolkit                  10.2.89      hfd86e86_0  anaconda/pkgs/main  
cudatoolkit                  10.2.89      hfd86e86_1  anaconda/pkgs/main  
cudatoolkit                 11.0.221      h6bb024c_0  anaconda/pkgs/main  
cudatoolkit                   11.3.1      h2bc3f7f_2  anaconda/pkgs/main

方法二:下载安装包安装

CUDA下载地址:https://developer.nvidia.com/cuda-toolkit-archive

安装方法:

# 下载.run格式的安装包后:
chmod +x xxx.run   # 增加执行权限
./xxx.run          # 运行安装包

cuDNN下载地址:https://developer.nvidia.com/cudnn

安装方法:

先解压, 后将动态链接库和头文件放入相应目录

mv cuda/include/* /usr/local/cuda/include/
chmod +x cuda/lib64/* && mv cuda/lib64/* /usr/local/cuda/lib64/

安装完成以后,增加环境变量:

echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:${LD_LIBRARY_PATH} \n" >> ~/.bashrc
source ~/.bashrc && ldconfig

提示:

默认镜像都内置了最原生的CUDA和cuDNN,如果您自己安装了cudatoolkits等,那么一般会默认优先使用conda中安装的cudatoolkits,

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

PyTorch 2.8

PyTorch 2.8

PyTorch
Cuda

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

<think>我们正在解决用户在使用`cat /usr/local/cuda/include/cudnn_version.h`命令查看cuDNN版本时遇到文件不存在的错误。 根据引用[1][2][3][4]中的信息,结合我们的知识,以下是可能的原因解决方法: 原因分析: 1. cuDNN可能未正确安装,导致头文件没有复制到指定目录。 2. 用户安装的cuDNN版本较新(如8.0以上),版本信息放在`cudnn_version.h`文件中,但早期的版本信息放在`cudnn.h`中。 3. 安装cuDNN时,复制文件步骤遗漏或路径错误。 解决方案: 步骤1:确认cuDNN安装文件位置 如果按照官方文档安装cuDNN,通常需要将下载的压缩包解压后,将`include`目录下的头文件复制到CUDA的include目录(如`/usr/local/cuda/include/`),将`lib64`目录下的库文件复制到CUDA的lib64目录(如`/usr/local/cuda/lib64/`)。请检查是否完成了这些复制操作。 步骤2:检查文件是否存在 首先,检查`cudnn_version.h`文件是否存在: ```bash ls /usr/local/cuda/include/ | grep cudnn_version.h ``` 如果不存在,尝试检查`cudnn.h`: ```bash ls /usr/local/cuda/include/ | grep cudnn.h ``` 步骤3:根据检查结果处理 - 情况A:两个文件都不存在 -> 说明cuDNN未正确安装,需要重新安装。 - 情况B:存在`cudnn.h`但不存在`cudnn_version.h` -> 可能是较旧版本cuDNN(如7.x),则使用以下命令查看版本: ```bash cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 ``` - 情况C:存在`cudnn_version.h` -> 则可能是路径问题,确保使用绝对路径:`/usr/local/cuda/include/cudnn_version.h` 步骤4:重新安装cuDNN(如果步骤3中文件不存在) 参考官方安装指南(如引用[4]): ```bash # 解压下载的cuDNN包(假设为cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz) tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz # 复制文件 sudo cp cuda/include/cudnn*.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn*.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn* ``` 步骤5:设置环境变量(可选) 确保CUDA路径在环境变量中: ```bash export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` 步骤6:验证安装 再次运行: ```bash cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 ``` 或(如果只有`cudnn.h`): ```bash cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 ``` 注意:在较新的cuDNN版本中,版本信息同时存在于`cudnn_version.h``cudnn.h`中,但推荐优先使用`cudnn_version.h`。 常见错误: 1. 复制文件时权限不足,使用`sudo`。 2. 复制时目标路径错误,确认CUDA安装路径(有些系统可能安装到`/usr/local/cuda-11.x/`,需要相应调整路径)。 引用说明: 根据引用[2],新版本cuDNN版本信息放在`cudnn_version.h`中,但引用[4]指出,复制时不仅要复制`cudnn.h`,还要复制其他头文件(包括`cudnn_version.h`)。因此,复制步骤必须包含所有头文件(使用通配符`cudnn*.h`)。 如果以上步骤仍不能解决,请提供更多错误信息。 §§相关问题§§ 1. 如何正确安装cuDNN? 2. 安装cuDNN后如何验证安装成功? 3. CUDAcuDNN版本之间的兼容关系如何? </think>### 解决`cudnn_version.h`文件不存在的错误 以下是系统化的解决方案,解决使用`cat /usr/local/cuda/include/cudnn_version.h`查看cuDNN版本时提示文件不存在的错误: #### 1. **确认cuDNN实际安装路径** ```bash # 搜索可能存放cuDNN头文件的路径 sudo find / -name 'cudnn_version.h' 2>/dev/null sudo find / -name 'cudnn.h' 2>/dev/null ``` - 如果找到文件,记录其路径(如`/usr/include/cudnn_version.h`) - 若找不到任何文件,说明cuDNN未正确安装(跳至步骤4) #### 2. **修复符号链接(常见解决方法)** ```bash # 创建正确的符号链接(根据实际安装路径调整) sudo ln -s /usr/include/cudnn_version.h /usr/local/cuda/include/cudnn_version.h # 同时创建cudnn.h链接(兼容旧版本) sudo ln -s /usr/include/cudnn.h /usr/local/cuda/include/cudnn.h ``` #### 3. **验证安装完整性** ```bash # 检查关键文件是否存在 ls -l /usr/local/cuda/include/cudnn* 2>/dev/null ls -l /usr/local/cuda/lib64/libcudnn* 2>/dev/null # 验证动态库链接 ldconfig -p | grep libcudnn ``` #### 4. **重新安装cuDNN(终极方案)** 遵循官方安装步骤[^4]: ```bash # Step 1: 下载匹配CUDA版本cuDNN包(NVIDIA官网) # Step 2: 解压并复制文件 tar -xzvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz sudo cp cuda/include/cudnn*.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ # Step 3: 设置权限 sudo chmod a+r /usr/local/cuda/include/cudnn*.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn* # Step 4: 更新链接缓存 sudo ldconfig ``` #### 5. **替代版本查看方法** 若文件仍不可见,改用运行时检查: ```bash # 方法1:通过TensorFlow/PyTorch查询(需安装框架) python -c "from tensorflow.python.platform import build_info; print(build_info.build_info['cudnn_version'])" # 方法2:解析库文件版本 strings /usr/local/cuda/lib64/libcudnn.so.8 | grep CUDNN_MAJOR -A 2 ``` > **根本原因分析**:该错误通常由三种情况导致: > 1. cuDNN未正确安装(占60%案例) > 2. 文件路径未链接到CUDA目录(占30%) > 3. CUDA安装路径非默认位置(占10%) > > 执行后应显示类似输出: > ``` > #define CUDNN_MAJOR 8 > #define CUDNN_MINOR 9 > #define CUDNN_PATCHLEVEL 4 > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值