遇到了這樣的報錯,說明 torch不能使用cuda
反思
我頻繁地嘗試安裝不同的 nvdia 驅動,浪費了很多時間。因為我的錯誤地認為nvidia會自帶cuda,其實cuda需要單獨安裝。
還有我的torch是cpu版本的,即使nvidia cuda安裝了,torch也使用不了cuda。
pip show torch
, cuda版的torch會有 +cu126
注意事項:
- nvidia 安裝驅動
- nvdia 安裝 cuda
- torch 安裝 cuda 版本
- cudnn
安裝 nvidia app
下述圖片是大家電腦默認的nvidia,鼠標點擊之后的樣子
我非常喜歡在電腦上安裝 nvidia 的APP之后,以后只需鼠標點擊就可以更新驅動。
我不喜歡在官網上看哪個顯卡需要下載哪個驅動,安裝桌面端的應用之后,鼠標點擊更新驅動就行,驅動升級很方便。
https://www.nvidia.com/en-us/software/nvidia-app/ 點擊下載
在安裝的時候,我選擇的默認設置,精簡安裝。
在安裝成功之后,就可以通過鼠標點擊更新驅動。
輸入nvcc -V
,查看 cuda 是否安裝。上述我們只是完成了 nvidia 驅動的安裝,還沒有安裝 cuda。
點擊下載 cuda:
https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local
安裝成功后,再輸入 nvcc -V
,出現下述結果說明 cuda 安裝成功。
安裝 pytorch cuda
進入 pytorch 官網下載對應的版本
如果這個時候,你的torch依然不能使用cuda,你可能和我遇到了一樣的問題。
安裝的是 cpu 的torch,無需卸載,直接安裝cuda的torch版本,會自動卸載CPU版本的torch。
輸入 pip show torch
, 出現 2.x.x+cu126
,出現了cu 才表示你的torch 安裝的是cuda版本。
cpu版的torch無法使用cuda:
安裝 torch 的cuda版本:
import torch
torch.cuda.is_available()
我的報錯到這里就解決了。
cudnn
cuDNN(CUDA Deep Neural Network library)是 NVIDIA 提供的 GPU 加速深度學習庫,用于優化和加速深度神經網絡(DNN)運算。它為 深度學習框架(如 TensorFlow、PyTorch、MXNet)提供底層支持,能夠 顯著提高 卷積計算、池化、歸一化等操作的性能。
我電腦的cuda安裝路徑:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6
檢查cudnn是否存在
import torch
print("CUDA 是否可用:", torch.cuda.is_available())
print("cuDNN 是否可用:", torch.backends.cudnn.is_available())
print("cuDNN 版本:", torch.backends.cudnn.version())
print("GPU 數量:", torch.cuda.device_count())
print("當前 GPU:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "無")
輸出:
CUDA 是否可用: True
cuDNN 是否可用: True
cuDNN 版本: 90501
GPU 數量: 1
當前 GPU: NVIDIA RTX A6000
我之前就已經安裝過 cudnn 了。需要把cudnn壓縮包里面的文件解壓到 cuda的文件夾里去。
看到文件夾里面有這些 cudnn_xxx
文件,這就說明下載過了 cudnn。
參考資料
- CUDA安裝教程(超詳細Windows版. https://blog.csdn.net/AI_dataloads/article/details/133043869
- pytorch-gpu win10配置+cuda+cudnn. https://zhuanlan.zhihu.com/p/100279727