Windows CUDA & cuDNN 開發環境建置指南
CUDA (Compute Unified Device Architecture) 是 NVIDIA 顯卡的靈魂,它讓 GPU 不只是打遊戲的顯卡,而是能進行平行運算的超級計算機。 搭配 cuDNN (Deep Neural Network Library),我們才能在 PyTorch 或 TensorFlow 中使用 GPU 加速模型訓練。
這篇指南在 Windows 環境下正確安裝與配置這些核心組件。了解其中配置後,也可於 Linux 環境下進行類似配置。
1. 顯卡驅動程式更新
Section titled “1. 顯卡驅動程式更新”在安裝 CUDA 之前,擁有一個健康的驅動程式版本是必須的。
-
檢查系統資訊
右鍵點擊桌面空白處,進入 NVIDIA Control Panel (控制面板),點擊左下角的「系統資訊」。

-
確認當前版本
在系統資訊中,你可以看到目前的驅動程式版本與支援的最高 CUDA 版本。

-
下載最新驅動
前往 NVIDIA 驅動程式下載頁面。

-
安裝與重啟
下載後執行安裝程式,安裝過程中螢幕閃爍黑屏是正常現象。安裝完成後,請務必重新啟動電腦以套用變更。

-
驗證驅動程式
重新啟動電腦後,驗證驅動程式版本是否正確。

2. 安裝 CUDA Toolkit
Section titled “2. 安裝 CUDA Toolkit”CUDA Toolkit 包含了編譯器、開發工具與 runtime libraries。
若要查看官方版本的安裝流程,請參閱 CUDA Installation Guide for Microsoft Windows。
-
確認版本需求
並非越新越好!請先確認你的深度學習框架(PyTorch/TensorFlow)支援的版本。
本範例使用 CUDA 12.8.1 作為示範。
請注意,需確認 Pytorch 支援的版本。

配合 CUDA Toolkit 版本選擇 Pytorch 版本

-
選擇安裝包類型
在下載頁面,你會看到兩種安裝類型:
類型 Network (exe) Local (exe) 檔案大小 小 (~13.7 MB) 大 (~3.3 GB) 安裝方式 安裝時需連網下載 離線安裝 (包含所有元件) 建議 網速快可選此項 推薦 (避免安裝中斷) 
-
執行安裝
執行下載的
.exe檔。對於大多數使用者,選擇 “Express (快速)” 安裝即可。若你是進階使用者,需要多版本共存,可選擇 “Custom (自訂)” 並取消勾選 Driver (因為第一步已經裝了最新的)。

-
驗證環境變數
安裝程式通常會自動加入環境變數。檢查
CUDA_PATH是否存在:- 搜尋 “編輯系統環境變數”
- 點擊 “環境變數”
- 在系統變數中尋找
CUDA_PATH

若未出現請查找是否有該資料夾,並將以下路徑添加:
變數名稱 路徑 CUDA_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8 CUDA_PATH_V12_8 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8 打開終端機 (PowerShell / CMD) 輸入驗證指令:
Terminal window nvcc -V若看到類似
Cuda compilation tools, release 12.x, V12.x.x的輸出,即代表安裝成功。
3. 配置 cuDNN
Section titled “3. 配置 cuDNN”cuDNN 是加速神經網路運算的關鍵函式庫,它不是執行檔,而是一包需要手動放置的二進位檔案。
-
下載 cuDNN
前往 cuDNN Archive (需登入 NVIDIA 開發者帳號)。 請下載與你的 CUDA 版本 (12.x for CUDA 12.x) 對應的 Zip 檔案。
而下載的 cuDNN 版本(cuDNN v8.x.x)是 NVIDIA 對函式庫更新的版本。


-
解壓縮與檔案搬移
解壓縮下載的 zip 檔,你會看到
bin,include,lib等資料夾。我們需要將這些檔案複製到 CUDA 的安裝目錄中。預設 CUDA 路徑:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x請依序進行以下複製操作 (系統可能會要求管理員權限):
資料夾解壓縮資料夾/
資料夾bin/
- cudnn.dll * ➡️ 複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin

- cudnn.dll * ➡️ 複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin
資料夾include/
- cudnn.h * ➡️ 複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\include

- cudnn.h * ➡️ 複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\include
資料夾lib/
資料夾x64/
- cudnn.lib * ➡️ 複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\lib\x64

- cudnn.lib * ➡️ 複製到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\lib\x64
bin\cudnn*.dll複製到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bininclude\cudnn*.h複製到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\includelib\x64\cudnn*.lib複製到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\lib\x64
-
檢查 cuDNN 環境變數
確保
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin已加入系統環境變數 Path。C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\lib\x64不需要加入系統環境變數 Path 中(由編譯器配置處理)。路徑 用途 是否加入 PATH ...\CUDA\v12.x\bin運行時載入 .dll檔案是 ...\CUDA\v12.x\lib\x64編譯時連結 .lib檔案否(由編譯器配置處理) - 確保運行時能找到
.dll檔案(需將bin加入 PATH)。 - 確保編譯時能找到
.lib檔案(由編譯器配置處理)。 - 若需要指定
lib\x64路徑,可在編譯器設定中配置(例如 Visual Studio 的庫路徑)。
- 確保運行時能找到
4. 驗證與測試
Section titled “4. 驗證與測試”環境裝好了,真的能跑嗎?讓我們用 Python 實測一下。
在終端機輸入 nvidia-smi 看出驅動對應的「最高 CUDA 版本」(例如顯示 CUDA Version: 12.3)。
建立測試環境
Section titled “建立測試環境”建議使用 Conda 隔離環境,避免與系統 Python 衝突。
# 建立 Python 3.11 環境conda create -n test_gpu python=3.11 -y
# 啟動環境conda activate test_gpu
# 安裝 PyTorch (請依官網指令調整版本)pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128跑個測試腳本
Section titled “跑個測試腳本”建立一個 gpu_test.py 檔案與執行:
import torchimport torch.nn as nn
print("="*40)print(f"PyTorch Version: {torch.__version__}")print(f"CUDA Available: {torch.cuda.is_available()}")
if torch.cuda.is_available(): device = torch.device("cuda") print(f"Device Name: {torch.cuda.get_device_name(device)}") print(f"CUDA Version: {torch.version.cuda}")
# 簡單的卷積運算測試 cuDNN try: model = nn.Conv2d(1, 1, 3).to(device) data = torch.randn(1, 1, 64, 64).to(device) out = model(data) print("✓ cuDNN Test Passed! Convolution executed successfully.") except Exception as e: print(f"✗ cuDNN Error: {e}")else: print("✗ CUDA not detected.")print("="*40)執行結果若出現 ✓ cuDNN Test Passed!,恭喜你!你的 GPU 運算環境已經準備就緒。
常見問題 (Troubleshooting)
Section titled “常見問題 (Troubleshooting)”Q: nvcc -V 找不到指令?
Section titled “Q: nvcc -V 找不到指令?”A: 請確認 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x\bin 已經加入到系統環境變數的 Path 中。
Q: PyTorch 報錯 AssertionError: Torch not compiled with CUDA enabled
Section titled “Q: PyTorch 報錯 AssertionError: Torch not compiled with CUDA enabled”A: 你可能安裝到了 CPU 版本的 PyTorch。請使用 pip uninstall torch 移除後,務必加上 --index-url 指定 CUDA 版本的 whl 來源重新安裝。
Q: 驅動太新會影響舊版 CUDA 嗎?
Section titled “Q: 驅動太新會影響舊版 CUDA 嗎?”A: 通常不會。NVIDIA 驅動有向下相容性 (Backward Compatibility)。新的驅動 (如 550.xx) 可以執行舊的 CUDA Toolkit (如 11.8) 編譯的程式。但反過來(舊驅動跑新 CUDA)是不行的。詳細的相容性規則(如 Minor Version Compatibility、Forward Compatibility)請參閱 CUDA 版本相容性。