Skip to main content
NVIDIA CUDA WSL2 WSL2 讓 Windows 直接跑 Linux 原生的 CUDA 工具鏈,兼得 Windows 桌面與 Linux 開發環境。關鍵差異在於:驅動只裝在 Windows 端,WSL 內部只裝 toolkit、不裝也不該裝 Linux 原生 driver 套件。這篇涵蓋兩種安裝路徑:有 sudo 權限的系統層級 apt,與完全免 root 的使用者層級 runfile。 若你要的是原生 Windows(非 WSL)的 CUDA 與 cuDNN 配置,改看 Windows CUDA & cuDNN 開發環境建置指南
先確認版本,不要照抄指令裡的版本號本手冊指令以 CUDA Toolkit 13.3、driver 610.43.02、runfile 檔名 cuda_13.3.1_610.43.02_linux.run 為例(2026-07 當時版本)。這些數字會隨 NVIDIA 發布而變動,照抄舊版本號會 404,或裝到與框架不相容的版本。動手前務必:
  • CUDA Downloads 確認當前 toolkit 版本與 runfile 的完整檔名(檔名內含 driver 版本號,最常打錯這裡)。
  • 對照 PyTorch 版本對照表 選 CUDA 版本,並非越新越好,先確認你的框架支援。
  • 把後續所有 13.3 / 13-3 / cuda-13.3 換成你實際要裝的版本號。

1. 前置條件確認

Windows 主機端先裝好支援 WSL 的 NVIDIA 驅動(Game Ready 或 Studio 皆可,新版皆內建 WSL CUDA 支援)。驅動只裝在 Windows 端。
1

更新 WSL 本體與 kernel

在 Windows PowerShell 確認並更新 WSL 版本:
2

在 WSL 內確認能看到 GPU

此步驟不需要任何 CUDA toolkit,只驗證驅動映射:
若這步就抓不到卡,先回頭處理 Windows 端驅動與 WSL kernel 版本,不要往下裝 toolkit

2. 系統層級安裝(apt,需 sudo)

由具備 sudo 權限的帳號執行一次即可,所有使用者共用同一份 toolkit。
1

安裝 WSL 專用 keyring 並裝 toolkit

安裝路徑:/usr/local/cuda-13.3,預設權限 755,所有使用者皆可讀取執行。
2

設定全域環境變數(僅 sudo 使用者可執行)

所有使用者登入後自動載入此設定,無需個別配置。
3

多版本共存切換

裝了多個版本時,用 update-alternatives 切換 /usr/local/cuda symlink 指向:

3. 使用者層級安裝(runfile,免 sudo)

無 sudo 權限的帳號用 runfile 裝到自訂目錄,全程不需要 root。
1

下載並執行 runfile

2

設定個人環境變數

4. 兩種安裝方式對照

點任一格看補充說明。有 sudo 且多人共用同一穩定版本走 apt;權限受限或多專案各自鎖版本走 runfile。

5. 使用者切換方式

WSL 的身分切換分「單次」「永久預設」「WSL 內臨時」三種。

6. nvidia-smi 找不到的排查

WSL 環境下 nvidia-smi 由 Windows 驅動掛載至 /usr/lib/wsl/lib/nvidia-smi,與 Linux 原生的 nvidia-utils 套件無關。
切勿依照 apt 建議安裝 nvidia-utils。在 WSL 裝 Linux 原生 driver 工具會覆蓋掉 Windows 掛載的 libcuda.so,反而弄壞 GPU 映射。
1

確認掛載檔案是否存在

2

若存在,補進 PATH

無 sudo 權限則寫入 ~/.bashrc
若目錄為空,回頭檢查 Windows 端驅動與 WSL kernel 版本。

7. sudo 相關注意事項

insults 彩蛋不是故障若 sudo 密碼輸錯或帳號無權限時,出現類似 I'm sorry <user>. I'm afraid I can't do that 的訊息,這是 sudoers 設了 Defaults insults 的幽默拒絕訊息(致敬 HAL 9000),屬正常行為,非系統故障。
檢查帳號是否具備 sudo,以及加入/移除 sudo 群組(後者需 root 執行):
自動化帳號的權限設計
  • 安裝階段由具 sudo 權限帳號一次性完成。
  • 平日運作帳號不具備 sudo,僅透過 ~/.bashrc 設定個人環境變數。
  • 若必須有限度提權,用 sudoers 的 NOPASSWD 搭配指令白名單,而非開放完整 sudo。

8. 常見錯誤對照表

驗證

裝完後跑一遍驗證流程,確認四層都通:驅動映射(nvidia-smi)、編譯器(nvcc)、框架層(PyTorch)、以及 libcuda.so 未被 toolkit 覆蓋。點播放逐行看: nvidia-smi 顯示的 CUDA Version 是驅動支援的最高 CUDA 版本(例如 13.3),不代表你裝的 toolkit 版本;toolkit 版本以 nvcc --version 為準。CUDA 具向下相容性,驅動比 toolkit 新沒問題,反過來不行。