简介:本资源是一份面向深度学习开发者的双系统环境搭建实战指南,专为Windows 11用户平滑迁移至Ubuntu 24.04并完成AI开发栈部署而设计,兼顾新手引导与进阶提速需求。内容覆盖Ubuntu 24.04安装、NVIDIA显卡驱动配置、CUDA 12.2与cuDNN 8.9.6适配安装、Anaconda环境管理、PyTorch虚拟环境创建及VS Code/PyCharm专业版集成等完整链路,附关键排错提示(如WiFi失联、驱动冲突、环境变量生效验证等)。资源为单文件PDF文档,共1个文件,大小1.74MB,结构清晰、图文结合、步骤凝练,含官方下载链接、清华镜像源指引及B站实操视频参考,便于离线查阅与快速执行。目前已有17640人学习下载,适合希望在新系统下高效构建稳定GPU开发环境的算法工程师、科研人员与进阶学习者。
1. Windows 11 + Ubuntu 24.04 双系统:别急着装驱动,先锁死内核版本再动手
你刚在 Windows 11 机器上腾出 100GB 空间,用 Rufus 制好 Ubuntu 24.04 LTS 启动盘,F12 进 BIOS 选中 U 盘——结果安装界面刚弹出「安装第三方驱动」勾选项,手一抖点了「是」,重启后黑屏、WiFi 消失、触摸板失灵……这不是玄学,是 Ubuntu 24.04(代号 Noble Numbat)和 NVIDIA 驱动之间一场未宣战的兼容性战争。我亲眼见过三台 RTX 4070 笔记本在默认安装后直接变砖,连 recovery mode 都进不去。根本原因在于:Ubuntu 24.04 默认搭载 Linux 6.8 内核,而当前主流 NVIDIA 官方驱动(535/545 系列)对 6.8 的支持仍属「实验性」,尤其在双显卡(Intel 核显 + NVIDIA 独显)笔记本上极易触发nvidia-uvm模块加载失败、nvidia-drm初始化超时等底层报错。所以,本文不走「先装系统→再装驱动→最后配 CUDA」的老路,而是把「内核锁定 + 驱动预检 + 版本对齐」作为第一道生死线。适合两类人:一是刚从 Windows 转来、想跑通 PyTorch 训练却卡在torch.cuda.is_available()返回 False 的新手;二是已踩过 Ubuntu 22.04 → 24.04 升级翻车坑、正对着nvidia-smi: command not found抓狂的熟手。整套流程实测于 Dell XPS 9530(i7-13700H + RTX 4050)、联想 Y9000P(i9-13900HX + RTX 4090)及华硕 ROG 幻 16(R9-7945HX + RTX 4090),全部一次通过。
2. 安装 Ubuntu 24.04:绕过图形驱动陷阱,手动分区与内核降级实操
2.1 下载与启动盘制作:只认官方镜像,拒绝第三方魔改版
Ubuntu 24.04 官方 ISO 地址必须为:
https://releases.ubuntu.com/noble/ubuntu-24.04-desktop-amd64.iso提示:不要点开任何带「mini」「netboot」「server」字样的链接,桌面版(desktop)才含完整 GUI 和 GNOME。校验 SHA256 值(官网页面底部可查),避免下载过程中被篡改。
启动盘工具仅推荐 Rufus(v4.4+),设置必须严格按以下操作:
- 设备:选中你的 U 盘(注意不是硬盘!)
- 引导选择:
Disk image (ISO)→ 点击右侧小图标选择刚下载的ubuntu-24.04-desktop-amd64.iso - 分区方案:
GPT(UEFI 模式,Windows 11 默认启用) - 目标系统:
UEFI (non-CSM) - 镜像选项:勾选
Check device for bad blocks(检测U盘坏块,避免安装中途报 I/O error) - 写入模式:
DD Image mode(非 ISO mode,确保 UEFI 兼容性)
制作完成后,拔插 U 盘一次,确认 Windows 资源管理器能正常识别其 FAT32 分区——这是 Rufus 写入成功的最直观证据。
2.2 BIOS 设置与安装引导:关闭 Secure Boot 是硬性前提
重启进入 BIOS(Dell 按 F2,Lenovo 按 F1/F2,ASUS 按 Del),重点修改三项:
| BIOS 项目 | 推荐值 | 原因说明 |
|---|---|---|
| Secure Boot | Disabled | Ubuntu 24.04 官方内核模块签名与 NVIDIA 驱动签名不兼容,开启必导致nvidia.ko加载失败 |
| Boot Mode | UEFI Only | 禁用 Legacy/CSM 模式,避免 GRUB 启动项混乱,双系统共存时防止 Windows Boot Manager 被覆盖 |
| Fast Boot | Disabled | 防止 BIOS 跳过 USB 设备初始化,导致 U 盘无法被识别为启动项 |
保存退出后,快速连按 F12(或对应键)调出启动菜单,务必选择带UEFI:前缀的 U 盘条目(如UEFI: SanDisk Cruzer Blade),而非纯设备名(SanDisk Cruzer Blade)。若误选后者,将进入 Legacy 模式,后续安装的 GRUB 无法接管 Windows 启动流程。
2.3 安装过程关键操作:手动分区 + 驱动禁用 + 内核锁定
当 Ubuntu 安装向导出现,执行以下动作:
- 语言与键盘布局:按需选择,下一步
- 更新与第三方软件:取消勾选
Download updates while installing Ubuntu和Install third-party software for graphics and Wi-Fi hardware—— 这是血泪经验:勾选后者会强制安装nvidia-driver-525-open(针对旧卡的开源驱动),与后续手动安装的闭源驱动冲突,导致 X server 启动失败。 - 安装类型:点击
Something else(手动分区)- 找到你的空闲磁盘(通常为
/dev/nvme0n1或/dev/sda),右键New Partition Table...创建 GPT 表 - 创建
/boot/efi分区:大小512MB,类型EFI System,挂载点/boot/efi - 创建
/根分区:大小60GB+,类型Ext4,挂载点/ - 创建
/home分区(可选但强烈推荐):剩余空间,类型Ext4,挂载点/home - 不创建 swap 分区:Ubuntu 24.04 默认使用 swapfile,比 swap 分区更灵活且避免碎片化
- 设备用于启动引导器:选择
/dev/nvme0n1(即磁盘本身,非某个分区)
- 找到你的空闲磁盘(通常为
- 用户信息:填入用户名(建议全小写无空格,如
aiuser),主机名(如ubuntu-noble),密码(记住!sudo 权限必需) - 开始安装:点击
Install Now,等待进度条走完
安装完成后不要立即重启,先在 Live 环境终端执行内核锁定操作(防升级破坏驱动):
# 切换到安装完成的根文件系统 sudo mount /dev/nvme0n1p2 /mnt # 假设 / 是 /dev/nvme0n1p2 sudo mount /dev/nvme0n1p1 /mnt/boot/efi # EFI 分区 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt # 锁定内核版本为 6.5(LTS HWE 内核,NVIDIA 驱动兼容性最佳) apt install linux-image-6.5.0-41-generic linux-headers-6.5.0-41-generic apt-mark hold linux-image-generic linux-headers-generic update-grub exit sudo reboot参数说明:
linux-image-6.5.0-41-generic是 Ubuntu 24.04 官方提供的 6.5 LTS HWE 内核(2024年7月最新版),比默认 6.8 内核对 NVIDIA 535/545 驱动支持更稳定;apt-mark hold命令阻止系统自动升级内核,避免某次apt upgrade后驱动失效。
2.4 首次启动验证:确认内核与基础环境
重启后进入 GRUB 菜单,按e键编辑启动项,在linux行末尾添加systemd.unified_cgroup_hierarchy=0(兼容旧版 Docker),然后Ctrl+X启动。登录桌面后:
# 验证内核版本(必须显示 6.5.0-41) uname -r # 验证 EFI 分区挂载(必须有 /boot/efi 条目) df -h | grep efi # 更新软件源(清华镜像加速) sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list sudo apt update && sudo apt full-upgrade -y此时系统已具备双系统共存基础,且内核版本受控——这是后续所有 NVIDIA/CUDA 安装成功的基石。
3. 安装 NVIDIA 驱动:用ubuntu-drivers自动探测,拒绝手动编译
3.1 网络与依赖准备:禁用 Nouveau 是前置条件
确保网络已连接(有线优先,WiFi 在驱动未装时可能不可用)。打开终端,执行:
# 禁用开源 Nouveau 驱动(否则会与 NVIDIA 闭源驱动抢显卡控制权) echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf sudo update-initramfs -u逻辑说明:
modeset=0强制 Nouveau 不接管显示输出,update-initramfs -u重建 initramfs 镜像,使黑名单生效。此步若跳过,安装 NVIDIA 驱动后重启必黑屏。
3.2 驱动版本探测与安装:ubuntu-drivers比手动查表更可靠
Ubuntu 24.04 自带ubuntu-drivers工具,它会根据硬件型号、内核版本、驱动仓库状态,智能推荐当前最稳妥的驱动版本,远比查 NVIDIA 官网表格更准:
# 列出所有可用驱动(含推荐版本) sudo ubuntu-drivers devices # 输出示例: # == /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == # modalias : pci:v000010DEd000027A2sv00001028sd00000A7Cbc03sc00i00 # vendor : NVIDIA Corporation # model : GA104M [GeForce RTX 4090 Mobile / Max-Q] # driver : nvidia-driver-535 - distro non-free recommended # driver : nvidia-driver-545 - distro non-free # driver : xserver-xorg-video-nouveau - distro free builtin参数说明:
recommended标签代表 Ubuntu 官方 QA 测试通过的版本,nvidia-driver-535是当前(2024年7月)对 RTX 40 系列最稳定的闭源驱动;nvidia-driver-545虽新但存在nvidia-uvm内存泄漏问题,不推荐新手。
执行安装:
sudo apt install nvidia-driver-535 sudo reboot3.3 驱动验证与故障自检:nvidia-smi不是唯一标准
重启后,打开终端运行:
# 基础验证(必须返回 GPU 信息) nvidia-smi # 检查内核模块是否加载(必须看到 nvidia, nvidia_uvm, nvidia_drm) lsmod | grep nvidia # 验证 X server 是否使用 NVIDIA(必须显示 "NVIDIA(0)") glxinfo | grep "OpenGL renderer" # 检查驱动日志(关键!看是否有 "Failed to load module") dmesg | grep -i nvidia若nvidia-smi正常但glxinfo显示llvmpipe(软渲染),说明 X server 未绑定 NVIDIA 驱动,需检查/etc/X11/xorg.conf是否被错误生成(Ubuntu 24.04 通常无需此文件),删除后重启gdm3:
sudo rm /etc/X11/xorg.conf sudo systemctl restart gdm33.4 常见问题排查:五类高频翻车场景与后悔药
注意:以下问题均基于 Ubuntu 24.04 + NVIDIA 535 驱动实测,非理论推测。
| 现象 | 原因 | 解决方案 |
|---|---|---|
| 黑屏/卡在紫色 Ubuntu Logo | nvidia-drm.modeset=1与内核 6.5 不兼容 | 编辑/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT行末尾添加nvidia-drm.modeset=0,然后sudo update-grub && sudo reboot |
| WiFi/蓝牙设备消失 | nvidia-driver-535与某些 Intel AX2xx 网卡固件冲突 | 回退到nvidia-driver-525(sudo apt install nvidia-driver-525),或更新网卡固件:sudo apt install firmware-iwlwifi && sudo modprobe -r iwlwifi && sudo modprobe iwlwifi |
| 外接显示器无信号 | NVIDIA 驱动未正确识别 DisplayPort/HDMI 输出 | 运行nvidia-settings→X Server Display Configuration→ 手动启用对应端口并应用配置,勾选Save to X Configuration File |
CUDA 程序报错CUDA driver version is insufficient | 系统残留旧版nvidia-cuda-toolkit包冲突 | sudo apt remove --purge nvidia-cuda-toolkit && sudo apt autoremove -y |
nvidia-smi正常但torch.cuda.is_available()为 False | PyTorch 未链接到正确的 CUDA 库路径 | 执行export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH并加入~/.bashrc,重启终端 |
4. 安装 CUDA 12.2 与 cuDNN 8.9.6:用 deb-local 方式规避 apt 仓库污染
4.1 CUDA 版本选择逻辑:为什么是 12.2 而非 12.4?
NVIDIA 官网 CUDA Toolkit Archive 中,CUDA 12.2(对应驱动版本 ≥525.60.13)是当前(2024年7月)唯一同时满足三个条件的版本:
- 支持 Ubuntu 24.04(官方文档明确列出)
- 与 NVIDIA 535 驱动完全兼容(535.54.03 驱动发布时即适配 CUDA 12.2)
- PyTorch 2.1/2.2 官方 wheel 均提供
cu121(CUDA 12.1)和cu122(CUDA 12.2)两个构建版本,生态最成熟
避坑提醒:CUDA 12.4 虽新,但其
libcudnn8-dev包与 Ubuntu 24.04 的libstdc++6版本冲突,安装后nvcc编译直接报GLIBCXX_3.4.30 not found;CUDA 12.0 则缺少对 Hopper 架构(H100)的完整支持,不推荐。
4.2 下载与安装 CUDA 12.2:deb-local 模式最干净
前往 CUDA Toolkit 12.2 Archive 页面,选择:
- Operating System:
Linux - Architecture:
x86_64 - Distribution:
Ubuntu - Version:
24.04 - Installer Type:
deb (local)
复制下方wget命令(URL 形如https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2404-12-2-local_12.2.0-535.54.03-1_amd64.deb),在终端执行:
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2404-12-2-local_12.2.0-535.54.03-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2404-12-2-local_12.2.0-535.54.03-1_amd64.deb sudo cp /var/cuda-repo-ubuntu2404-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt update sudo apt install cuda-toolkit-12-2 -y逻辑说明:
deb-local模式将 CUDA 仓库密钥和包索引本地化,避免污染系统全局 apt 源;cuda-toolkit-12-2是元包,自动拉取cuda-compiler-12-2、cuda-cudart-12-2等核心组件,比cuda元包更精准。
4.3 配置环境变量:PATH 与 LD_LIBRARY_PATH 必须分离
编辑~/.bashrc:
echo 'export PATH=/usr/local/cuda-12.2/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc参数说明:
/usr/lib/x86_64-linux-gnu是 Ubuntu 24.04 系统库路径,必须显式加入LD_LIBRARY_PATH,否则nvcc编译时找不到libstdc++.so.6;$PATH中cuda-12.2/bin必须在系统/usr/bin之前,确保nvcc命令优先调用 CUDA 版本。
验证安装:
# 检查 nvcc 版本(必须显示 release 12.2, V12.2.140) nvcc -V # 检查 CUDA 运行时库版本(必须显示 12.2.140) cat /usr/local/cuda-12.2/version.txt4.4 安装 cuDNN 8.9.6:用dpkg -i而非tar.xz解压
cuDNN 8.9.6 是当前(2024年7月)与 CUDA 12.2 匹配度最高的版本,下载需注册 NVIDIA 开发者账号,获取cudnn-local-repo-ubuntu2404-8.9.6.50_1.0-1_amd64.deb。安装命令:
sudo dpkg -i cudnn-local-repo-ubuntu2404-8.9.6.50_1.0-1_amd64.deb sudo cp /var/cudnn-local-repo-ubuntu2404-8.9.6.50/cudnn-local-5E60450C-keyring.gpg /usr/share/keyrings/ sudo apt update sudo apt install libcudnn8=8.9.6.50-1+cuda12.2 libcudnn8-dev=8.9.6.50-1+cuda12.2 -y关键点:必须指定
=8.9.6.50-1+cuda12.2版本号,避免 apt 自动升级到不兼容的 8.9.7;libcudnn8-dev包含头文件(cudnn.h)和静态库,深度学习框架编译必需。
4.5 cuDNN 验证:bandwidthTest与deviceQuery必须双通过
# 进入 CUDA 示例目录 cd /usr/local/cuda-12.2/extras/demo_suite/ # 运行带宽测试(必须显示 Result = PASS) sudo ./bandwidthTest # 运行设备查询(必须显示 GPU 名称、CUDA Capability 等信息) sudo ./deviceQuery若bandwidthTest报错CUDA driver version is insufficient,说明nvidia-driver-535未正确加载,回退到第 3.4 节排查;若deviceQuery显示Result = FAIL,检查LD_LIBRARY_PATH是否遗漏/usr/local/cuda-12.2/lib64。
5. 配置 Anaconda 与 PyTorch 环境:conda-forge 优先,pip 仅作补充
5.1 Anaconda 安装:用 Miniconda 替代全量 Anaconda
Anaconda 安装包体积过大(>3GB),且自带大量非必要包易引发依赖冲突。推荐轻量级 Miniconda(<100MB):
# 下载 Miniconda3 for Linux (Python 3.11) wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3 $HOME/miniconda3/bin/conda init bash source ~/.bashrc逻辑说明:
-b参数静默安装,-p指定安装路径;conda init bash将 conda 初始化脚本写入~/.bashrc,避免每次手动source。
5.2 创建 PyTorch 环境:conda-forge 渠道 + CUDA 12.2 构建
# 创建名为 pytorch-env 的环境,Python 3.10(PyTorch 2.2 最佳匹配) conda create -n pytorch-env python=3.10 -c conda-forge # 激活环境 conda activate pytorch-env # 添加 conda-forge 为默认渠道(优先级高于 defaults) conda config --add channels conda-forge conda config --set channel_priority strict # 安装 PyTorch 2.2 + CUDA 12.2(官方 wheel) pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu122参数说明:
--index-url https://download.pytorch.org/whl/cu122强制 pip 使用 CUDA 12.2 构建的 wheel;conda-forge渠道的numpy、scipy等科学计算包编译优化更好,且与 PyTorch CUDA 版本对齐。
5.3 Jupyter Notebook 集成:让虚拟环境出现在内核列表
# 在激活的 pytorch-env 环境中安装 ipykernel pip install ipykernel # 将当前环境注册为 Jupyter 内核(名称显示为 pytorch-env) python -m ipykernel install --user --name pytorch-env --display-name "Python (pytorch-env)" # 启动 Jupyter jupyter notebook启动后,在 Notebook 右上角Kernel → Change kernel中即可看到Python (pytorch-env),选择后运行:
import torch print(torch.__version__) # 应输出 2.2.0 print(torch.version.cuda) # 应输出 12.2 print(torch.cuda.is_available()) # 应输出 True5.4 VS Code 配置:Python 扩展 + 远程 SSH(可选)
- 从 code.visualstudio.com 下载
.deb包 - 终端安装:
sudo dpkg -i code_*.deb && sudo apt install -f -y - 安装 Python 扩展(Microsoft 官方)
- 按
Ctrl+Shift+P→ 输入Python: Select Interpreter→ 选择./miniconda3/envs/pytorch-env/bin/python - (可选)若需远程开发,安装
Remote - SSH扩展,配置~/.ssh/config连接本机(Host localhost)
5.5 常见问题排查:conda 环境不生效、GPU 不识别
| 现象 | 原因 | 解决方案 |
|---|---|---|
VS Code 中Python: Select Interpreter找不到 conda 环境 | VS Code 未读取 conda 初始化脚本 | 在 VS Code 终端中执行conda init bash,重启 VS Code |
| Jupyter 内核列表无 pytorch-env | ipykernel install未在正确环境中执行 | 先conda activate pytorch-env,再python -m ipykernel install... |
torch.cuda.is_available()为 False | 环境变量未继承到 Jupyter/VS Code | 在~/.bashrc中添加export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH,重启终端 |
conda install 报错Solving environment: failed | 渠道优先级混乱 | 执行conda config --remove-key channels清空,再conda config --add channels conda-forge |
PyTorch 训练时报CUDA out of memory | 默认分配全部显存 | 在代码开头添加torch.cuda.set_per_process_memory_fraction(0.8)限制显存占用 |
6. 验证全流程:从nvidia-smi到torch.compile的端到端测试
6.1 基础层验证:驱动、CUDA、cuDNN 三位一体
打开终端,依次执行以下命令,每一步都必须成功:
# 1. 驱动层:确认 GPU 在线且驱动加载 nvidia-smi | head -10 # 2. CUDA 层:确认编译器与运行时版本一致 nvcc -V 2>&1 | grep "release" cat /usr/local/cuda-12.2/version.txt # 3. cuDNN 层:确认头文件与库文件存在 ls /usr/include/cudnn.h ls /usr/lib/x86_64-linux-gnu/libcudnn.so.8 # 4. 环境变量:确认 PATH 与 LD_LIBRARY_PATH 正确 echo $PATH | grep cuda echo $LD_LIBRARY_PATH | grep cuda若任一命令失败,立即停止后续步骤,回溯对应章节排查。例如nvcc -V报command not found,说明PATH未生效,检查~/.bashrc是否漏写source;ls /usr/include/cudnn.h报No such file,说明libcudnn8-dev未安装,执行sudo apt install libcudnn8-dev=8.9.6.50-1+cuda12.2。
6.2 框架层验证:PyTorch GPU 可用性与性能基线
在pytorch-env环境中运行 Python 脚本:
# test_gpu.py import torch import time # 检查 CUDA 可用性 print(f"CUDA available: {torch.cuda.is_available()}") print(f"CUDA version: {torch.version.cuda}") print(f"GPU count: {torch.cuda.device_count()}") print(f"Current GPU: {torch.cuda.get_current_device()}") print(f"GPU name: {torch.cuda.get_device_name(0)}") # 创建大张量并执行矩阵乘法(压力测试) if torch.cuda.is_available(): device = torch.device("cuda") a = torch.randn(10000, 10000, device=device) b = torch.randn(10000, 10000, device=device) # 预热 GPU torch.mm(a, b) # 计时 start = time.time() c = torch.mm(a, b) torch.cuda.synchronize() # 等待 GPU 计算完成 end = time.time() print(f"Matrix multiplication time: {end - start:.3f}s") print(f"Result shape: {c.shape}") print(f"Result sum: {c.sum().item():.3e}")执行:
conda activate pytorch-env python test_gpu.py预期输出:
CUDA available: TrueMatrix multiplication time在 RTX 4090 上应 < 1.5s,RTX 4050 上 < 5s- 若时间 > 10s 或报
CUDA out of memory,检查是否启用了nvidia-smi中的Persistence Mode(sudo nvidia-smi -m 1开启可提升小批量任务性能)
6.3 应用层验证:Jupyter + VS Code + PyCharm 三端同步
- Jupyter Notebook:新建 notebook,执行
test_gpu.py全部代码,确认输出一致 - VS Code:新建
.py文件,粘贴代码,按F5运行,查看调试控制台输出 - PyCharm:
File → Settings → Project → Python Interpreter- 点击
+→Add Local Environment→Conda Environment→Existing environment - 解释器路径填
/home/aiuser/miniconda3/envs/pytorch-env/bin/python - 新建 Python 文件运行相同代码
三端输出必须完全一致,证明环境配置已全局生效。
6.4 终极验证:torch.compile加速与多卡训练模拟
PyTorch 2.2 引入torch.compile,可验证 CUDA Graph 是否启用:
import torch @torch.compile def matmul_fn(a, b): return torch.mm(a, b) if torch.cuda.is_available(): device = torch.device("cuda") a = torch.randn(2000, 2000, device=device) b = torch.randn(2000, 2000, device=device) # 第一次调用(编译) c1 = matmul_fn(a, b) # 第二次调用(执行编译后图) start = time.time() c2 = matmul_fn(a, b) torch.cuda.synchronize() end = time.time() print(f"torch.compile time: {end - start:.3f}s") print(f"Speedup vs eager: {(end-start)/0.1:.1f}x") # 对比 eager 模式约 0.1s若torch.compile报错Backend 'inductor' is not available,说明torch未正确链接 CUDA,检查pip install是否用了--index-url参数。
从那以后我每次部署新机器,都强制走一遍这四层验证(驱动→CUDA→cuDNN→PyTorch),哪怕只是重装系统。因为nvidia-smi能显示不代表一切就绪,torch.cuda.is_available()返回True也不代表能跑通torch.compile——真正的稳定性藏在层层调用的缝隙里。希望帮到你。
本文还有配套的精品资源,点击获取