在選擇安裝哪一個版本的 CUDA Toolkit (工具包)之前,需要注意,待安裝的 CUDA 開發工具包的版本不是越高越好。而是,首先要考慮安裝 CUDA 開發工具包是否與本機的 CUDA 驅動版本兼容,即 CUDA 工具包的版本號不超過本機已安裝的 CUDA 驅動版本號;其次, 還需要考慮安裝 CUDA 開發工具包的目的是什么?是進行 C++ 開發,還是進行 Python 開發。如果基於 C++ 開發,則在兼容本機 CUDA 驅動版本的條件下,可以安裝盡可能高版本;如果基於 Python 開發,則需根據所采用的深度學習框架(如 Pytorch、TensorFlow)支持的 CUDA 版本,選擇可支持的最新版本安裝。
下面以我的個人電腦安裝 CUDA Toolkit 為例,進行說明。個人電腦具體顯卡和軟件環境配置如下:
- 硬件配置:NVIDIA GeForce RTX 2070 with Max-Q Design
- 軟件配置:Windows 10 + anaconda + pytorch
如果需要安裝 TensorFlow GPU 版本,則需要查看 Windows 從源碼構建TensorFlow 網頁,確認官方支持的 Python 版本和相應的 CUDA 版本,具體如下圖(2020.12.20 截取)所示
從圖中可以看出,目前 TensorFlow 官方對 CUDA 版本支持最高為 10.1 ,支持的 Python 版本最高為 3.8。相對於 Pytorch 來說,落后一個版本,Pytorch 官方已經可以支持 CUDA 11.0,Python 版本可以支持 3.9,更多參見 https://pytorch.org/get-started/locally/ 。所以,如果只使用 Tensorflow ,推薦安裝 CUDA Toolkit 10.1 ,以減少一些環境配置上的麻煩。
具體步驟
首先查看本機 CUDA 驅動版本,安裝與其兼容的 CUDA Toolkit 版本,然后安裝相應的 cuDNN,最后安裝 PyTorch。
1)查看本機 CUDA 驅動版本,確認 CUDA Toolkit 的兼容版本。
在桌面上,右鍵,選擇 “NVIDIA 控制面板”,然后,在 “NVIDIA 控制面板” 窗口中,單擊 左下角的 “系統信息” ,即可顯示 CUDA 驅動版本信息,如下圖所示
查看網上文檔 CUDA Toolkit Release Note 中的 "Table 2. CUDA Toolkit and Compatible Driver Versions" 以確認本機CUDA驅動版本(上圖中的 "驅動程序版本:452.41")是否與當前最新的 CUDA Toolkit 版本兼容,其內容截圖如下:
從上圖中,可以看出,與本機 CUDA 驅動程序版本 452.41 兼容的最新的 CUDA Toolkit 版本為 CUDA 11.0.3 Update 1 ( >= 451.82 ),因此,在 CUDA Toolkit 歷史版本 中,選擇 CUDA 11.0.3 Update 1 進行下載。
2)安裝 CUDA 11.0.3 Update 1
選擇 “自定義(C)”,只安裝 CUDA 開發套裝部分,其他的不安裝。如下圖所示:
單擊 “下一步(N)” 進行安裝。
默認安裝目錄為 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0,示例程序安裝目錄為 C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0。
安裝完成后,在命令行窗口(cmd)中,輸入 nvcc -V 命令進行測試,然后轉到 demo_suite 目錄,運行demo程序 deviceQuery.exe 和 bandwidthTest.exe,如下所示:
C:\Users\klchang>nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2020 NVIDIA Corporation Built on Thu_Jun_11_22:26:48_Pacific_Daylight_Time_2020 Cuda compilation tools, release 11.0, V11.0.194 Build cuda_11.0_bu.relgpu_drvr445TC445_37.28540450_0 cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite deviceQuery.exe bandwidthTest.exe
3)下載並安裝與 CUDA 11.0 版本兼容的 cuDNN
cuDNN 的全稱為 NVIDIA CUDA® Deep Neural Network library,是 NVIDIA 專門針對深度神經網絡(Deep Neural Networks)中的基礎操作而設計的基於 GPU 的加速庫。下載 cuDNN 需要注冊,官網下載地址為 https://developer.nvidia.com/cudnn 。本人下載的 cuDNN 版本為 cudnn-11.0-windows-x64-v8.0.5.39.zip。
首先解壓 cudnn-11.0-windows-x64-v8.0.5.39.zip,解壓后的文件目錄如下所示
然后,將所有內容復制到 cuda 11.0 安裝目錄,即可完成 cuDNN 的安裝,如下圖所示
4)conda 安裝 pytorch
anaconda 環境中,Python版本為 3.8.3,根據官網安裝指南 ,如下圖所示:
conda 安裝 pytorch gpu 1.7.1 穩定版本的命令如下:
conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch
安裝完成后,測試 pytorch gpu。若安裝成功,則打印輸出 True,具體測試程序,如下所示:
import torch print(torch.cuda.is_available())
問題與解決
問題 1:
WARNING conda.gateways.disk.delete:unlink_or_rename_to_trash(139): Could not remove or rename C:\Users\klchang\anaconda3\pkgs\pytorch-1.7.0-py3.8_cuda110_cudnn8_0\Lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll. Please remove this file manually (you may need to reboot to free file handles)
InvalidArchiveError('Error with archive C:\\Users\\klchang\\anaconda3\\pkgs\\pytorch-1.7.0-py3.8_cuda110_cudnn8_0.tar.bz2. You probably need to delete and re-download or re-create this file. Message from libarchive was:\n\nCould not unlink')
解決方法:
手動刪除警告信息中提及的文件
C:\Users\klchang\anaconda3\pkgs\pytorch-1.7.0-py3.8_cuda110_cudnn8_0\Lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll
即可。
問題 2:
導入torch模塊時,出現“找不到指定模塊”錯誤,如下圖所示:
解決方法:
從提示中的
https://aka.ms/vs/16/release/vc_redist.x64.exe
下載 Visual C++ 2015 – 2019 Redistributable(x64).exe,安裝后,需要重啟電腦,如下圖所示。
參考資料
[1] Windows系統查看CUDA版本. https://cloud.tencent.com/developer/article/1351824
[2] win10 安裝CUDA 11.0后再安裝GPU版torch的踩坑記錄. https://blog.csdn.net/qq_29831163/article/details/108402722