安裝CUDA/cuDNN 之後 torch.cuda.is_available()傳回 False

確定環境已經安裝 CUDA / cuDNN 之後, 還是無法存取 CUDA:

查看是否有cuda

檢查 cuda 是否可以存取方式如以下:

import torch
print(torch.cuda.is_available())  # 如果返回 True,表示 CUDA 可用
print(torch.cuda.current_device())  # 顯示當前使用的 GPU
print(torch.cuda.get_device_name(0))  # 顯示 GPU 名稱

發現是 pytorch 版本安裝錯誤, 安裝到 CPU 版本:

測試用指令:

torch.__version__

顯示為 cpu 版本, 所以無法使用.

pytorch 安裝方式:
https://pytorch.org/

Run this Command:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

從 python 移除 pytorch package 指令:

python -m pip uninstall torch torchvision torchaudio

檢視 python 已安裝的 package 指令:

python -m pip list

服用 pytorch 網站上的 command 之後, 就可以正常使用 torch 的 GPU了:


要手動安裝 cuDNN (CUDA 深度神經網路函式庫),主要是在您使用的深度學習框架沒有內建自動下載 cuDNN,但您需要利用 NVIDIA GPU 進行加速計算時。

以下是需要手動安裝 cuDNN 的主要情況:

1️⃣ 深度學習框架未自動整合 cuDNN

某些深度學習框架或其特定版本在透過 pipconda 安裝時,不會將 CUDA Toolkit 和 cuDNN 函式庫打包在一起。

  • 常見情況:
    • TensorFlow/Keras: 過去的 TensorFlow 版本(特別是舊版或非 gpu 結尾的版本)通常要求使用者手動安裝 CUDA ToolkitcuDNN。雖然新版本(如 TensorFlow 2.x)在安裝時會更智慧地處理依賴,但有時仍需要手動配置,特別是當您需要使用特定版本的 CUDA/cuDNN 組合時。
    • 其他框架: 某些較小眾或自定義的深度學習框架、以及像 PaddlePaddle 這樣為了縮小發布包體積的框架,可能不會預設包含 cuDNN。
    • 特定環境需求: 當您在伺服器共用環境中進行環境配置,且需要精確控制 CUDA 和 cuDNN 的版本來匹配應用程式時。

2️⃣ 框架要求與系統 CUDA/cuDNN 版本不匹配

如果您已經在系統上安裝了 CUDA Toolkit,並且您使用的深度學習框架(如 PyTorch/TensorFlow)要求一個與您系統安裝的 cuDNN 版本不同的版本才能正常運作,您可能需要手動下載並替換相應版本的 cuDNN 檔案。

  • 版本匹配的重要性:
    • cuDNN 必須與其所依賴的 CUDA Toolkit 版本嚴格匹配。錯誤的版本會導致程式運行時找不到特定的動態連結函式庫(例如 cudnn64_8.dll 錯誤)。
    • 深度學習框架對 CUDA 和 cuDNN 也有特定的版本要求。

📌 範例:

您的系統安裝了 CUDA 12.1。

您使用的 PyTorch 版本在其發佈時是為 cuDNN 8.9.x 編譯的。

如果您的系統中 CUDA 12.1 目錄下的 cuDNN 是舊的 8.6.x 版本,您就需要手動下載並複製 cuDNN 8.9.x 的檔案來覆蓋安裝,以確保 PyTorch 能夠正常加速運算。


3️⃣ 追求最佳效能或客製化

cuDNN 提供了高度優化的深度學習操作(如卷積池化正規化等)。透過手動安裝最新或特定版本的 cuDNN,您可以:

  • 獲得最佳效能: 確保您使用的是針對最新 NVIDIA GPU 架構(如 Tensor Core)優化的最新函式庫,以實現最快的訓練和推論速度。
  • 使用最新功能: cuDNN 新版本可能包含新的優化演算法或對新硬體功能的支援。

何時不需要手動安裝?

如果您使用 PyTorch 等框架並透過 Conda 或帶有 CUDA 版本的 pip 安裝指令(例如 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121),那麼 CUDA RuntimecuDNN 的相容版本通常會自動隨 PyTorch 套件一起安裝,這時候您就不需要手動下載和複製檔案了。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *