Ubuntu22.04下CUDA安装与配置全指南

Ubuntu22.04下CUDA安装与配置全指南 1. 准备工作检查显卡驱动与兼容性在开始安装CUDA之前我们需要先确认显卡驱动是否正常安装。很多新手容易忽略这一步结果安装过程中遇到各种奇怪的问题。我自己就曾经因为驱动没装好折腾了大半天才发现问题所在。打开终端输入以下命令查看显卡信息nvidia-smi这个命令会输出类似下面的信息----------------------------------------------------------------------------- | NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 | |--------------------------------------------------------------------------- | 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 GeForce ... Off | 00000000:01:00.0 On | N/A | | 0% 45C P8 10W / 120W | 300MiB / 6144MiB | 0% Default | ---------------------------------------------------------------------------这里有两个关键信息需要注意Driver Version显示当前安装的NVIDIA驱动版本CUDA Version显示驱动支持的最高CUDA版本重要提示你安装的CUDA版本不能高于这里显示的CUDA Version。比如上面显示12.0那么你可以安装11.0-12.0之间的任何版本但不能安装12.1或更高版本。如果运行nvidia-smi报错或者没有显示NVIDIA显卡信息说明驱动没有正确安装。这时候需要先安装NVIDIA驱动sudo ubuntu-drivers autoinstall sudo reboot重启后再次运行nvidia-smi确认驱动是否正常。2. 选择合适的CUDA版本选择CUDA版本是个技术活不是越新越好。需要考虑以下几个因素深度学习框架兼容性TensorFlow/PyTorch等框架对CUDA版本有特定要求显卡驱动兼容性前面nvidia-smi显示的CUDA Version就是上限项目需求有些老项目可能只支持特定版本的CUDA我个人的经验是如果你要做深度学习开发建议先查清楚框架版本对应的CUDA要求如果是普通CUDA开发选择比驱动支持版本低1-2个小版本最稳妥访问NVIDIA官方CUDA Toolkit存档页面 https://developer.nvidia.com/cuda-toolkit-archive选择版本时注意Ubuntu 22.04对应的系统版本是Linux x86_64 Ubuntu 22.04安装类型建议选择runfile(local)这种方式最灵活可靠3. 详细安装步骤3.1 下载安装包以CUDA 12.2为例下载命令如下wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run下载完成后给文件添加执行权限chmod x cuda_12.2.2_535.104.05_linux.run3.2 运行安装程序执行安装命令sudo ./cuda_12.2.2_535.104.05_linux.run安装过程中有几个关键步骤需要注意首先会显示用户协议按空格键翻页输入accept接受协议在组件选择界面务必取消勾选Driver安装因为我们前面已经装好了驱动其他组件保持默认选择即可安装路径建议保持默认的/usr/local/cuda-12.2安装完成后会显示类似这样的信息ToolKit: Installed in /usr/local/cuda-12.2/记下这个路径后面配置环境变量时会用到。3.3 验证安装安装完成后可以检查CUDA编译器是否可用/usr/local/cuda-12.2/bin/nvcc --version如果看到版本信息输出说明CUDA安装成功了。4. 环境变量配置为了让系统能够找到CUDA的各种工具和库我们需要配置环境变量。这是很多新手容易忽略的一步导致后面编译程序时各种command not found错误。编辑当前用户的环境变量配置文件vim ~/.bashrc在文件末尾添加以下内容注意把cuda-12.2替换成你实际安装的版本export PATH/usr/local/cuda-12.2/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}保存退出后使配置立即生效source ~/.bashrc现在可以更方便地检查CUDA版本了nvcc --version5. 常见问题排查在实际安装过程中可能会遇到各种问题。这里分享几个我踩过的坑和解决方法问题1安装过程中提示Missing recommended library解决方法安装缺失的依赖库sudo apt install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev问题2运行nvidia-smi报错NVIDIA-SMI has failed...解决方法这通常是因为驱动没有正确安装可以尝试sudo apt purge nvidia* sudo ubuntu-drivers autoinstall sudo reboot问题3编译CUDA程序时报找不到库解决方法检查环境变量是否配置正确特别是LD_LIBRARY_PATH6. 安装后的优化配置为了让CUDA开发更顺畅建议进行以下额外配置安装cuDNN如果要做深度学习开发配置多版本CUDA切换如果你需要同时维护多个项目安装Nsight工具套件用于CUDA程序调试和性能分析多版本CUDA切换可以通过修改.bashrc中的环境变量来实现。例如# CUDA 12.2 # export PATH/usr/local/cuda-12.2/bin:$PATH # export LD_LIBRARY_PATH/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH # CUDA 11.8 export PATH/usr/local/cuda-11.8/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH只需要注释掉不需要的版本取消注释要使用的版本然后source ~/.bashrc即可切换。7. 实际测试CUDA环境最后我们可以编写一个简单的CUDA程序来测试环境是否正常工作。创建一个名为test.cu的文件#include stdio.h __global__ void helloFromGPU() { printf(Hello World from GPU!\n); } int main() { printf(Hello World from CPU!\n); helloFromGPU1, 10(); cudaDeviceSynchronize(); return 0; }编译并运行nvcc test.cu -o test ./test如果看到CPU和GPU都输出了Hello World说明你的CUDA环境已经完全配置成功了。