WSL 搭建深度学习环境,流程基本上是一样的,完整细节可参考我之前的博客:
在WSL2-Ubuntu中安装CUDA12.8、cuDNN、Anaconda、Pytorch并验证安装_cuda 12.8 pytorch版本-CSDN博客
之所以记录下来,是因为CUDA和cuDNN版本升级后,部分安装细节有调整(便捷度提升),所以单独开篇记录。
一、引言
因需安装依赖本地CUDA编译的软件包,需完整部署CUDA Toolkit、cuDNN及PyTorch环境。从CUDA12.9版本起,NVIDIA支持通过Anaconda安装cuDNN,故调整流程为先装Anaconda(前置)→再装CUDA13.0→接着装cuDNN9.12→最后装PyTorch,确保版本适配且操作高效,关键步骤附官方及实操参考链接,保障可复现性。
二、前提条件(Windows端+WSL端)
(一)Windows系统准备
(二)WSL2-Ubuntu准备
三、第一步:安装Anaconda(前置核心步骤)
WSL – Linux 安装 Anaconda3-2025.06-0 详细教程 [WSL 分发版均适用]_wsl安装anaconda-CSDN博客
3.1 下载Anaconda安装包
3.2 运行安装脚本
- 按ENTER翻页阅读许可协议,直至出现“Do you accept the license terms? [yes|no]”,输入yes;
- 确认安装路径(默认/home/[用户名]/anaconda3,推荐默认),按ENTER;
- 询问“是否初始化Anaconda到shell”,必须输入yes(自动配置环境变量,为后续conda安装cuDNN铺路)。
3.3 验证Anaconda安装
conda env list # 显示base环境及路径,确认环境正常
参考链接:在 Windows 11 下的 WSL – Ubuntu 24.04 中安装 Anaconda3
四、第二步:安装CUDA13.0 Toolkit
4.1 验证WSL与GPU通信
终端执行nvidia-smi,确认输出中“CUDA Version”≥13.0(若未显示,需更新Windows端显卡驱动)。
nvidia-smi
无需登录(关闭登录窗口即可)
CUDA 与 cuDNN 免登录下载政策详解(基于官方权威信息)_cudnn下载-CSDN博客
CUDA Toolkit 13.0 Downloads | NVIDIA Developer

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-13-0
4.2 下载并安装CUDA密钥环
- 下载日志: –2025-08-24 11:31:34– https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
Connecting to 127.0.0.1:7897… connected.
Proxy request sent, awaiting response… 200 OK
Length: 4328 (4.2K) [application/x-deb]
Saving to: ‘cuda-keyring_1.1-1_all.deb’
cuda-keyring_1.1-1_all.deb 100%[=================================================>] 4.23K –.-KB/s in 0s
2025-08-24 11:31:36 (912 MB/s) – ‘cuda-keyring_1.1-1_all.deb’ saved [4328/4328]
- 安装日志(关键片段): [sudo] password for love:
Selecting previously unselected package cuda-keyring.
(Reading database … 40769 files and directories currently installed.)
Preparing to unpack cuda-keyring_1.1-1_all.deb …
Unpacking cuda-keyring (1.1-1) …
Setting up cuda-keyring (1.1-1) …
4.3 更新软件源并安装CUDA13.0
- 更新日志(关键片段): Hit:1 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble InRelease
Get:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:4 https://developer.download.nvidia.cn/compute/cuda/repos/wsl-ubuntu/x86_64 InRelease [1581 B]
Fetched 3275 kB in 4s (741 kB/s)
Reading package lists… Done
- 安装过程:系统自动下载3389 MB依赖包(含cuda-cccl-13-0、cuda-nvcc-13-0等核心组件),最终提示“Setting up cuda-toolkit-13-0 (13.0.0-1) …”,表示安装完成。
4.4 配置CUDA环境变量
export LD_LIBRARY_PATH=/usr/local/cuda-13.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-13.0
4.5 验证CUDA13.0安装
nvcc -V # 输出如“Cuda compilation tools, release 13.0, V13.0.48”
ls /usr/local/cuda-13.0 # 显示bin、lib64、include等目录,确认安装完整性
参考链接:在 Windows 11 下的 WSL – Ubuntu 24.04 中安装 CUDA 的记录;
官方指引:CUDA下载(WSL-Ubuntu deb_network方式)

五、第三步:安装cuDNN9.12(Anaconda方式)
CUDA 深度神经网络库 (cuDNN) | NVIDIA 开发者
同样是免登录下载和安装。

官方文档更新未及时,注意修改“cuda-version=”的版本号。
一般 cuDNN 能自动降级适配CUDA,但较老的 cuDNN 版本可能无法向后兼容较新版本的 CUDA 。
cuDNN 安装命令:
conda install nvidia::cudnn cuda-version=13
或者:
conda install nvidia::cudnn=9.12 cuda-version=13
5.1 激活Anaconda环境
conda activate cuda13_env
5.2 通过conda安装cuDNN9.12
– defaults
– nvidia
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/love/anaconda3
added / updated specs:
– cuda-version=13
– nvidia::cudnn=9.12
The following NEW packages will be INSTALLED:
cuda-version pkgs/main/noarch::cuda-version-13.0-hbda6634_3
cudnn nvidia/linux-64::cudnn-9.12.0.46-h2b6041c_0
libcudnn nvidia/linux-64::libcudnn-9.12.0.46-h24322f0_0
libcudnn-dev nvidia/linux-64::libcudnn-dev-9.12.0.46-h2b6041c_0
Proceed ([y]/n)? y
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

5.3 验证cuDNN9.12安装
参考链接:Windows 11 系统下,通过 WSL 里的 Ubuntu 24.04 安装 CUDNN 记录;
CUDA与cuDNN适配说明:是否需要预先安装CUDA Toolkit?

六、第四步:安装PyTorch(适配CUDA13.0)
Get Started

pip3 install torch torchvision –index-url https://download.pytorch.org/whl/cu129
6.1 执行安装命令
从PyTorch官方仓库(https://download.pytorch.org/whl/cu129 )安装适配CUDA13.0的版本(CUDA向下兼容,cu129包支持CUDA13.0):
(base) love@AI:~$ pip3 install torch torchvision –index-url https://download.pytorch.org/whl/cu129
6.2 安装日志(关键片段)
Looking in indexes: https://download.pytorch.org/whl/cu129
Collecting torch
Downloading https://download.pytorch.org/whl/cu129/torch-2.8.0%2Bcu129-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (30 kB)
Collecting torchvision
Downloading https://download.pytorch.org/whl/cu129/torchvision-0.23.0%2Bcu129-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (6.1 kB)
# 自动下载依赖(nvidia-cuda-nvrtc-cu12、nvidia-cudnn-cu12等)
Downloading https://download.pytorch.org/whl/cu129/torch-2.8.0%2Bcu129-cp313-cp313-manylinux_2_28_x86_64.whl (1240.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 GB 1.9 MB/s eta 0:00:00
Successfully installed nvidia-cublas-cu12-12.9.1.4 … torch-2.8.0+cu129 torchvision-0.23.0+cu129 triton-3.4.0
七、第五步:完整验证深度学习环境
验证PyTorch深度学习环境Torch和CUDA还有cuDNN是否正确配置的命令-CSDN博客
验证代码示例(python环境):
import torch # 导入 PyTorch 库
print("PyTorch 版本:", torch.__version__) # 打印 PyTorch 的版本号
# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device) # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available()) # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled) # 打印 cuDNN 是否已启用
# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())
# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)
# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)
# 对张量进行逐元素相加
z = x + y
# 打印结果
print("张量 z 的值:")
print(z) # 输出张量 z 的内容
7.1 Python交互模式验证(核心步骤)
Python 3.13.5 | packaged by Anaconda, Inc. | (main, Jun 12 2025, 16:09:02) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# 1. 验证版本信息
print("PyTorch 版本:", torch.__version__) # 输出“2.8.0+cu129”
print("支持的 CUDA 版本:", torch.version.cuda) # 输出“12.9”(向下兼容CUDA13.0)
print("cuDNN 版本:", torch.backends.cudnn.version()) # 输出“91204”(对应cuDNN9.12)
# 2. 验证GPU可用性
print("CUDA 可用:", torch.cuda.is_available()) # 输出“True”
print("cuDNN 已启用:", torch.backends.cudnn.enabled) # 输出“True”
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("当前设备:", device) # 输出“cuda:0”
print("GPU 设备名:", torch.cuda.get_device_name(0)) # 输出GPU型号(如“NVIDIA GeForce RTX 4090”)
# 3. 验证GPU张量运算(核心功能验证)
x = torch.rand(5, 3).to(device) # 创建随机张量并转移到GPU
y = torch.rand(5, 3).to(device)
z = x + y # GPU上执行张量相加
print("GPU 张量运算结果:\\n", z)
支持的 CUDA 版本: 12.9
cuDNN 版本: 91204
CUDA 可用: True
cuDNN 已启用: True
当前设备: cuda:0
GPU 设备名: NVIDIA GeForce RTX 4090
GPU 张量运算结果:
tensor([[1.0225, 1.4994, 1.9415],
[0.8256, 1.4385, 1.3833],
[0.8874, 0.4490, 1.1313],
[1.4452, 0.3707, 1.2173],
[0.8632, 1.1795, 1.0678]], device='cuda:0')

7.2 额外验证(可选,确保编译功能)
echo $LD_LIBRARY_PATH | grep $CONDA_PREFIX/lib # 确认conda的cuDNN路径被识别
八、注意事项与常见问题
- 确保cuDNN版本(9.12)与CUDA13.0匹配,可通过NVIDIA cuDNN兼容性表查询;
- Python版本推荐3.9~3.13,避免过高版本导致依赖包不兼容。
- 若conda/pip下载缓慢,配置国内镜像(如清华conda镜像:conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/nvidia/);
- 若CUDA源无法访问,替换为中科大CUDA源:sudo sed -i 's/developer.download.nvidia.com/mirrors.ustc.edu.cn\\/nvidia-cuda/' /etc/apt/sources.list.d/cuda.list。
- 若报错“nvcc not found”,重新执行source ~/.bashrc;
- 若报错“libcudnn.so not found”,激活conda环境(conda activate cuda13_env)并执行export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH。
九、结语
本文完成WSL2-Ubuntu中Anaconda→CUDA13.0→cuDNN9.12→PyTorch的完整部署,通过实操日志和多维度验证,确保环境支持本地CUDA编译与GPU加速深度学习任务。后续可基于此环境安装依赖CUDA的自定义软件包(如深度学习框架插件、自定义算子),直接用于模型训练与推理开发。


