在openEuler 22.03 LTS上,我这样给NVIDIA A100显卡装好了CUDA 11.6和cuDNN 8.4
在openEuler 22.03 LTS上为NVIDIA A100部署CUDA 11.6与cuDNN 8.4全流程解析当高性能计算遇上国产操作系统如何在openEuler 22.03 LTS上为NVIDIA A100这样的顶级计算卡搭建完整的CUDA生态本文将带你完整走通从驱动安装到深度学习环境配置的全过程特别针对国产化环境中的特殊配置需求提供解决方案。1. 环境预检与系统准备在开始安装前我们需要对硬件和系统环境进行全面检查。执行lspci | grep -i nvidia确认显卡识别情况A100设备通常会显示为NVIDIA Corporation Device 20f1。特别注意在ARM架构的openEuler系统上所有软件包都必须选择aarch64版本。系统内核版本检查至关重要uname -r # 示例输出4.19.90-2003.4.0.0036.oe1.aarch64必须确保kernel-devel包与当前运行内核严格匹配yum list installed | grep kernel-devel # 若无输出或版本不匹配需执行 yum install kernel-devel-$(uname -r)禁用开源驱动nouveau是NVIDIA驱动安装的前提条件检查是否存在nouveau驱动lsmod | grep nouveau创建配置文件/etc/modprobe.d/blacklist-nouveau.confblacklist nouveau options nouveau modeset0更新initramfsdracut --force重启系统后验证lsmod | grep nouveau应无输出2. 驱动安装与特殊配置针对A100的Ampere架构需要特别注意驱动版本选择。经实测470.82.01版本驱动在openEuler 22.03上表现稳定。下载驱动后执行安装时需指定内核源码路径chmod x NVIDIA-Linux-aarch64-470.82.01.run ./NVIDIA-Linux-aarch64-470.82.01.run \ --kernel-source-path/usr/src/kernels/$(uname -r) \ --no-x-check \ --no-opengl-files安装过程中有几个关键选项需要注意DKMS注册选择Yes以便未来内核升级后自动重建驱动模块X-config选择No避免生成不必要的Xorg配置32位兼容库在纯64位系统中可跳过安装完成后通过nvidia-smi验证驱动状态正常应显示如下信息----------------------------------------------------------------------------- | NVIDIA-SMI 470.82.01 Driver Version: 470.82.01 CUDA Version: 11.4 | |--------------------------------------------------------------------------- | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | || | 0 NVIDIA A100-PCIE... On | 00000000:01:00.0 Off | 0 | | N/A 35C P0 45W / 250W | 0MiB / 40536MiB | 0% Default | ---------------------------------------------------------------------------3. CUDA Toolkit定制化安装CUDA 11.6的安装需要特别注意组件选择。从NVIDIA官网下载aarch64版本的runfile安装包后执行sh cuda_11.6.0_510.39.01_linux_sbsa.run安装界面中建议仅选择以下组件CUDA Toolkit 11.6CUDA Demo SuiteCUDA Documentation重要配置项安装路径保持默认/usr/local/cuda-11.6创建符号链接到/usr/local/cuda不安装驱动已单独安装更新版本环境变量配置需要添加到/etc/profile.d/cuda.shexport PATH/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH export CUDA_HOME/usr/local/cuda验证安装nvcc --version # 应显示release 11.6, V11.6.55 cd /usr/local/cuda/samples/1_Utilities/deviceQuery make ./deviceQuery # 最后应显示Result PASS4. cuDNN深度优化部署cuDNN 8.4.0需要与CUDA 11.6严格匹配。下载Linux aarch64版本的tar包后执行以下部署步骤tar -xzvf cudnn-11.4-linux-aarch64sbsa-v8.2.4.15.tgz sudo cp cuda/include/cudnn*.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod ar /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*验证cuDNN安装cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 # 应显示类似 #define CUDNN_MAJOR 8 #define CUDNN_MINOR 4 #define CUDNN_PATCHLEVEL 0为提升深度学习性能建议额外配置以下环境变量export CUDNN_HOME/usr/local/cuda export CUDNN_LIBRARY/usr/local/cuda/lib64 export CUDNN_INCLUDE_DIR/usr/local/cuda/include5. 性能调优与问题排查针对A100的特有功能需要进行额外配置以发挥最大性能GPU持久模式设置nvidia-smi -pm 1 # 启用持久模式 nvidia-smi -lgc 1000,1000 # 锁定GPU时钟频率MIG配置可选nvidia-smi mig -i 0 -cgi 19 # 创建计算实例 nvidia-smi mig -i 0 -gi 0 -cci 0 # 创建上下文实例常见问题解决方案驱动加载失败检查dmesg | grep nvidia常见原因是内核头文件不匹配CUDA不可用运行nvidia-debugdump -l收集诊断信息cuDNN报错验证LD_LIBRARY_PATH是否包含CUDA库路径最后建议安装NVIDIA的监控工具包以获得更详细的性能数据git clone https://github.com/NVIDIA/nvidia-monitor-tools cd nvidia-monitor-tools make install