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系統準備
- 安裝NVIDIA官方顯卡驅動(需支持CUDA13.0,版本≥535.xx):打開Windows cmd,執行
nvidia-smi
,確認輸出中“CUDA Version”≥13.0; - 啟用WSL2并安裝Ubuntu系統(推薦22.04/24.04 LTS):終端執行
wsl --list --verbose
,確認WSL版本為2; - (可選)安裝Microsoft Visual Studio:用于跨平臺編譯需求,參考CUDA官方前置要求。
(二)WSL2-Ubuntu準備
- 配置網絡:開啟系統代理(避免下載緩慢,參考WSL2怎么設置網絡自動代理);
- 權限與更新:確保擁有
sudo
權限,執行系統更新命令:sudo apt update && sudo apt upgrade -y
三、第一步:安裝Anaconda(前置核心步驟)
WSL - Linux 安裝 Anaconda3-2025.06-0 詳細教程 [WSL 分發版均適用]_wsl安裝anaconda-CSDN博客
3.1 下載Anaconda安裝包
- 從Anaconda官網查詢最新Linux版本(截至2025年8月,推薦Anaconda3-2025.07-Linux-x86_64.sh);
- 終端執行下載命令(保存至
/tmp
目錄,避免占用用戶目錄):wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2025.07-Linux-x86_64.sh
3.2 運行安裝腳本
- 執行安裝命令:
bash /tmp/Anaconda3-2025.07-Linux-x86_64.sh
- 交互操作:
- 按
ENTER
翻頁閱讀許可協議,直至出現“Do you accept the license terms? [yes|no]”,輸入yes
; - 確認安裝路徑(默認
/home/[用戶名]/anaconda3
,推薦默認),按ENTER
; - 詢問“是否初始化Anaconda到shell”,必須輸入
yes
(自動配置環境變量,為后續conda安裝cuDNN鋪路)。
- 按
3.3 驗證Anaconda安裝
- 生效環境變量:關閉當前終端并重新打開,或執行
source ~/.bashrc
(Zsh用戶為source ~/.zshrc
); - 驗證命令:
conda --version # 輸出如“conda 25.7.0”,說明conda命令可用 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密鑰環
- 執行下載命令(從NVIDIA WSL-Ubuntu專屬倉庫獲取):
(base) love@AI:~$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
- 下載日志:
--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]
- 下載日志:
- 安裝密鑰環(確保后續CUDA包來源可信):
(base) love@AI:~$ sudo dpkg -i cuda-keyring_1.1-1_all.deb
- 安裝日志(關鍵片段):
[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
- 更新軟件包列表:
(base) love@AI:~$ sudo apt-get update
- 更新日志(關鍵片段):
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
- 更新日志(關鍵片段):
- 安裝CUDA13.0 Toolkit(指定版本避免自動升級):
(base) love@AI:~$ sudo apt-get -y install cuda-toolkit-13-0
- 安裝過程:系統自動下載3389 MB依賴包(含
cuda-cccl-13-0
、cuda-nvcc-13-0
等核心組件),最終提示“Setting up cuda-toolkit-13-0 (13.0.0-1) …”,表示安裝完成。
- 安裝過程:系統自動下載3389 MB依賴包(含
4.4 配置CUDA環境變量
- 編輯shell配置文件(以Bash為例):
nano ~/.bashrc
- 在文件末尾添加以下內容(指定CUDA13.0安裝路徑):
export PATH=/usr/local/cuda-13.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-13.0/lib64:$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-13.0
- 保存并生效:按
Ctrl+X
→輸入Y
→按ENTER
,執行source ~/.bashrc
。
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環境
- 確保處于base環境(終端前綴顯示
(base)
),若未激活執行:conda activate base
- (可選)創建獨立虛擬環境(推薦,避免污染base環境):
conda create -n cuda13_env python=3.13 # 適配Python 3.13版本 conda activate cuda13_env
5.2 通過conda安裝cuDNN9.12
- 執行安裝命令(指定與CUDA13.0兼容的cuDNN9.12版本):
(base) love@AI:~$ conda install nvidia::cudnn=9.12 cuda-version=13
- 安裝日志(關鍵片段):
Channels:- defaults- nvidia Platform: linux-64 Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ##environment location: /home/love/anaconda3added / 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_3cudnn nvidia/linux-64::cudnn-9.12.0.46-h2b6041c_0libcudnn nvidia/linux-64::libcudnn-9.12.0.46-h24322f0_0libcudnn-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安裝
- 查看conda已安裝包:
conda list | grep cudnn # 輸出“cudnn 9.12.0.46 h2b6041c_0 nvidia”
- 檢查庫文件路徑(conda環境內):
ls $CONDA_PREFIX/lib/libcudnn* # 顯示libcudnn.so、libcudnn_static.a等文件
參考鏈接: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 torchDownloading https://download.pytorch.org/whl/cu129/torch-2.8.0%2Bcu129-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (30 kB)
Collecting torchvisionDownloading 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環境:
(base) love@AI:~$ 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. >>>
- 執行驗證代碼:
import torch # 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)
- 預期輸出(示例):
PyTorch 版本: 2.8.0+cu129 支持的 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 額外驗證(可選,確保編譯功能)
- 驗證CUDA編譯器:
nvcc --version # 確認CUDA編譯器正常,支持本地編譯
- 驗證conda環境與系統CUDA協同:
echo $CUDA_HOME # 輸出“/usr/local/cuda-13.0”,確認環境變量生效 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
。
- 若conda/pip下載緩慢,配置國內鏡像(如清華conda鏡像:
- 編譯報錯處理:
- 若報錯“nvcc not found”,重新執行
source ~/.bashrc
; - 若報錯“libcudnn.so not found”,激活conda環境(
conda activate cuda13_env
)并執行export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
。
- 若報錯“nvcc not found”,重新執行
九、結語
本文完成WSL2-Ubuntu中Anaconda→CUDA13.0→cuDNN9.12→PyTorch的完整部署,通過實操日志和多維度驗證,確保環境支持本地CUDA編譯與GPU加速深度學習任務。后續可基于此環境安裝依賴CUDA的自定義軟件包(如深度學習框架插件、自定義算子),直接用于模型訓練與推理開發。
參考鏈接匯總
- Anaconda安裝:https://aicity.blog.csdn.net/article/details/144737143?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
- CUDA13.0安裝:https://aicity.blog.csdn.net/article/details/144735570?spm=1011.2415.3001.10575&sharefrom=mp_manage_link;
- 官方指引:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_network
- cuDNN9.12安裝:https://aicity.blog.csdn.net/article/details/144734627?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
- 網絡代理配置:https://blog.csdn.net/u014451778/article/details/146073726?sharetype=blog&shareId=146073726&sharerefer=APP&sharesource=u014451778&sharefrom=link
- CUDA Toolkit場景說明:https://aicity.blog.csdn.net/article/details/148660071?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
- PyTorch下載源:https://download.pytorch.org/whl/cu129