当前位置: 首页 > news >正文

从零到一:在双系统Ubuntu 24.04上构建CUDA+PyTorch深度学习环境全记录

1. 双系统安装与Ubuntu 24.04初体验

最近在折腾双系统时踩了不少坑,特别是选择Ubuntu 24.04这个较新版本后,发现很多教程都不太适用。先说说为什么选择双系统:Windows虽然方便,但做CUDA开发时总会遇到各种奇怪的问题;WSL2虽然能跑CUDA,但性能损耗和文件系统问题让人头疼。最终决定在笔记本上直接安装Ubuntu 24.04双系统。

安装过程最头疼的是BIOS设置。我的联想小新Pro16需要先做三件事:

  1. 关闭Secure Boot(否则安装时会报错)
  2. 调整启动模式为UEFI(传统Legacy模式会有问题)
  3. 准备一个至少8GB的U盘制作启动盘

制作启动盘推荐用Rufus工具,记得选择GPT分区方案。安装时有个关键细节:要在"安装类型"选择"其他选项",手动创建分区。我的分区方案是这样的:

  • EFI系统分区:512MB
  • swap交换空间:内存大小的1.5倍(我32GB内存给了48GB)
  • /根分区:100GB
  • /home分区:剩余全部空间

安装完成后第一次重启可能会卡在紫屏,这时需要长按电源键强制关机再启动。进入系统后第一件事是更新软件源:

sudo apt update && sudo apt upgrade -y

2. NVIDIA驱动安装的坑与解决方案

Ubuntu 24.04默认用的是开源nouveau驱动,根本没法用CUDA。安装闭源驱动时我试过三种方法:

方法一:使用官方.run文件从NVIDIA官网下载驱动后,需要先禁用nouveau:

sudo nano /etc/modprobe.d/blacklist-nouveau.conf

添加两行:

blacklist nouveau options nouveau modeset=0

然后更新initramfs并重启:

sudo update-initramfs -u sudo reboot

这个方法最干净,但容易遇到与内核版本不兼容的问题。

方法二:使用Ubuntu附加驱动在"软件和更新→附加驱动"里选择专有驱动,这是最方便的方式。但Ubuntu 24.04的驱动版本可能比较旧。

方法三:通过官方PPA安装(推荐)

sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-535

安装后验证:

nvidia-smi

如果看到类似下面的输出就成功了:

+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.86.05 Driver Version: 535.86.05 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 3060 L... On | 00000000:01:00.0 On | N/A | | N/A 50C P8 15W / 80W | 532MiB / 6144MiB | 7% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+

3. CUDA Toolkit与cuDNN安装实战

安装CUDA时有个大坑:不要直接安装NVIDIA官网的.run文件!在Ubuntu 24.04上推荐用apt安装:

sudo apt install nvidia-cuda-toolkit

这个命令会自动安装与驱动匹配的CUDA版本(我装的是12.2)。验证安装:

nvcc --version

如果提示命令未找到,需要手动添加PATH。编辑~/.bashrc文件:

export PATH=/usr/local/cuda-12/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12/lib64:$LD_LIBRARY_PATH

然后安装cuDNN。这里有个技巧:直接下载deb包安装比tar包方便很多。到NVIDIA官网下载三个deb包:

  • libcudnn8_8.x.x.x-1+cuda12.0_amd64.deb
  • libcudnn8-dev_8.x.x.x-1+cuda12.0_amd64.deb
  • libcudnn8-samples_8.x.x.x-1+cuda12.0_amd64.deb

安装命令:

sudo dpkg -i libcudnn8*.deb

验证cuDNN是否正常工作:

cp -r /usr/src/cudnn_samples_v8/ $HOME cd $HOME/cudnn_samples_v8/mnistCUDNN make clean && make ./mnistCUDNN

看到"Test passed!"就说明一切正常。

4. PyTorch环境配置技巧

创建conda环境时有个细节:Ubuntu 24.04自带的Python是3.11,但有些库还不支持这么新的版本。我建议用Python 3.8:

conda create -n pytorch python=3.8 conda activate pytorch

安装PyTorch时要特别注意CUDA版本匹配。虽然我装的是CUDA 12.2,但PyTorch官方还没有对应的版本。经过测试,CUDA 12.1的PyTorch也能正常工作:

pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu121

如果下载速度慢,可以临时换清华源:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0

验证安装:

import torch print(torch.__version__) # 应该输出2.2.0 print(torch.cuda.is_available()) # 应该输出True print(torch.cuda.get_device_name(0)) # 显示你的GPU型号

5. 开发环境优化建议

VSCode配置安装VSCode后,这几个扩展必不可少:

  • Python
  • Pylance
  • Jupyter
  • CUDA C++ (by vector-of-bool)

配置settings.json增加CUDA路径:

{ "terminal.integrated.env.linux": { "PATH": "/usr/local/cuda/bin:${env:PATH}", "LD_LIBRARY_PATH": "/usr/local/cuda/lib64:${env:LD_LIBRARY_PATH}" } }

性能调优

  1. 关闭GNOME动画:
gsettings set org.gnome.desktop.interface enable-animations false
  1. 调整swappiness值:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
  1. 使用preload预加载常用库:
sudo apt install preload

CUDA编程小技巧编译.cu文件时,使用以下Makefile模板:

CC=nvcc CFLAGS=-O3 -arch=sm_86 # 根据你的GPU算力修改 TARGET=vector_add all: $(TARGET) $(TARGET): $(TARGET).cu $(CC) $(CFLAGS) -o $@ $< clean: rm -f $(TARGET)

查询GPU算力:

nvidia-smi --query-gpu=compute_cap --format=csv

6. 常见问题排查指南

驱动问题如果nvidia-smi报错"NVIDIA-SMI has failed",尝试:

sudo apt purge *nvidia* sudo apt autoremove sudo ubuntu-drivers autoinstall sudo reboot

CUDA版本混乱当系统中有多个CUDA版本时,可以用update-alternatives管理:

sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-12.2 100 sudo update-alternatives --config cuda

PyTorch找不到CUDA如果torch.cuda.is_available()返回False,检查:

  1. CUDA和PyTorch版本是否匹配
  2. 是否在conda环境中运行
  3. 尝试重装PyTorch:
pip uninstall torch torchvision torchaudio pip cache purge pip install torch --no-cache-dir

双系统时间不同步Windows和Ubuntu的时间机制不同,修复方法:

timedatectl set-local-rtc 1 --adjust-system-clock

折腾环境虽然费时,但稳定后的Ubuntu+CUDA+PyTorch环境用起来真的很舒服。记得定期备份重要数据,我在调试驱动时至少重装了三次系统。现在这个环境已经稳定运行两个月,训练速度比Windows快20%左右,值得这些付出。

http://www.jsqmd.com/news/613105/

相关文章:

  • 2026年河北地区口碑好的液压橡塑公司推荐,河北润强性价比与产品质量全解析 - mypinpai
  • 开源OCR工具Umi-OCR:本地文本提取与高效文字识别解决方案
  • DownKyi完全指南:5个核心技能解锁B站视频高效下载解决方案
  • 2026年北欧原木风装修选购指南,虎豹木纹砖性价比突出选它 - 工业品网
  • 如何快速掌握APK-Installer:面向Windows用户的终极安卓应用安装指南
  • Python项目实战:用pg-mcp搞定PostgreSQL集群读写分离(附完整配置代码)
  • PyTorch 2.6 快速上手:Jupyter与SSH两种方式详解
  • 闲置天猫超市卡别浪费!可可收正规回收方法,安全又省心 - 可可收
  • 2026年04月马来西亚干燕窝品牌TOP11排行榜:马来西亚干燕窝哪家强?权威测评帮你避坑 - 行业调研院
  • PKSM终极指南:如何成为宝可梦存档管理专家(第一到第八世代全支持)
  • REX-UniNLU卷积神经网络原理剖析与实战应用
  • STM32实战——七段数码管动态扫描技术详解
  • 解决方案:cursor-free-vip开源工具实现Cursor Pro功能无限制使用完整指南
  • HoRain云--Swift结构体全解析:高效编程必备
  • 如何高效下载Steam创意工坊模组?WorkshopDL完整使用指南
  • 从Cortex-A7到A53,手把手教你评估RV1126B升级到RV1126B-P的硬件改动清单
  • 如何突破Cursor Pro功能限制:完整解决方案
  • STM32晶振配置错误引发芯片锁死:从BOOT模式到恢复的全流程解析
  • 2026杭州门窗医院选型指南:满足这3个硬指标才算靠谱 - 精选优质企业推荐榜
  • 2026最有效祛疤产品分享:剖腹产除疤膏有哪些品牌?疤痕增生修复优先olioli - 资讯焦点
  • Coze个人教务自动化工作流开发实战详解
  • 7-Zip ZS:新一代压缩工具的全方位应用指南
  • 易能医药3.1类新药经典名方苓桂术甘汤颗粒获批上市 - 资讯焦点
  • 如何利用Browsershot实现企业级网页内容转换与自动化处理
  • 突破抖音内容采集瓶颈:开源工具如何实现高效批量下载
  • 2026杭州隔音门窗环保选型指南:满足这3个硬指标才算靠谱 - 精选优质企业推荐榜
  • 电赛小车硬件选型与实战指南(蓝牙遥控与循迹模块深度解析)
  • 最新付费进群系统源码 V4.1全开源版本源码 附教程
  • 简单三步:用Win11Debloat一键清理Windows系统,让你的电脑运行速度提升50%
  • 基于开源3D眼动追踪与YOLO的疲劳监测系统:从硬件搭建到代码实现