1.4 環境配置之CUDA&cuDNN
有了python環境和開發環境,馬上到主角登場。PyTorch登場前,針對GPU版,還需要額外安裝一些東西。
從1.1我們知道PyTorch的安裝可根據設備類型分為GPU版或CPU版。
CPU
對於CPU版本直接通過pip或者anaconda命令安裝即可,如:
>>> pip3 install torch torchvision torchaudio
Copy
具體的命令可查閱:https://pytorch.org/get-started/locally/
官網上給出的命令其實安裝了3個包,分別是torch, torchvision,torchaudio,這命令會根據當前系統自動選擇對應python版本的whl進行安裝,不需要使用者額外操作。但,如果網速不好,或者需要離線安裝,這時可以考慮下載whl包然後自行安裝,下載whl的連結:https://download.pytorch.org/whl/torch/
pytorch與torchvision版本匹配
若是手動下載的whl,需要注意pytorch與torchvision之間版本對應關係,這個可以到torchvision Github查看,這點非常重要,CV中一些報錯就是因為torchvision與pytorch版本不匹配導致的。這裡就copy過來,大家參考好了。
torch |
torchvision |
python |
---|---|---|
main / nightly |
main / nightly |
>=3.6, <=3.9 |
1.10.0 |
0.11.1 |
>=3.6, <=3.9 |
1.9.1 |
0.10.1 |
>=3.6, <=3.9 |
1.9.0 |
0.10.0 |
>=3.6, <=3.9 |
1.8.2 |
0.9.2 |
>=3.6, <=3.9 |
1.8.1 |
0.9.1 |
>=3.6, <=3.9 |
1.8.0 |
0.9.0 |
>=3.6, <=3.9 |
1.7.1 |
0.8.2 |
>=3.6, <=3.9 |
1.7.0 |
0.8.1 |
>=3.6, <=3.8 |
1.7.0 |
0.8.0 |
>=3.6, <=3.8 |
1.6.0 |
0.7.0 |
>=3.6, <=3.8 |
1.5.1 |
0.6.1 |
>=3.5, <=3.8 |
1.5.0 |
0.6.0 |
>=3.5, <=3.8 |
1.4.0 |
0.5.0 |
==2.7, >=3.5, <=3.8 |
1.3.1 |
0.4.2 |
==2.7, >=3.5, <=3.7 |
1.3.0 |
0.4.1 |
==2.7, >=3.5, <=3.7 |
1.2.0 |
0.4.0 |
==2.7, >=3.5, <=3.7 |
1.1.0 |
0.3.0 |
==2.7, >=3.5, <=3.7 |
<=1.0.1 |
0.2.2 |
==2.7, >=3.5, <=3.7 |
舉一反三,torchaudio、torchtext同理。
GPU版本
深度學習之所以能火,是因為有了強大的GPU支撐,自然地,絕大多數情況下我們會安裝GPU版本的pytorch。目前PyTorch不僅支持NVIDIA的GPU,還支持AMD的ROCm的GPU。不過我們還是以N卡為例,畢竟N卡還是主流,A卡仍需努力。
對於N卡,什麼型號是pytorch支持的呢?首先,需要計算能力(compute capability)≥3.0的GPU。很多地方都會看到計算能力≥3.0,理論出自哪呢? 我在官方文檔中找到了相關資訊文檔
It has a CUDA counterpart, that enables you to run your tensor computations on an NVIDIA GPU with compute capability >= 3.0
問題來了,怎麼知道自己的GPU的compute capability呢?請看NVIDA文檔,選擇你對應的系列,找到對應型號。
舉幾個例子:
GPU |
計算能力 |
---|---|
7.5 |
|
7.5 |
|
7.5 |
|
6.1 |
|
6.1 |
|
6.1 |
其實,只要是近幾年購買的N卡都是沒有問題的。確定了顯卡是支持的,接下來就要決定一個非常重要事情,就是選中對應的CUDA版本進行安裝。
CUDA
CUDA(ComputeUnified Device Architecture),是NVIDIA推出的運算平臺。 CUDA是一種由NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題。
與之配套的是cuDNN, NVIDIA cuDNN是用於深度神經網路的GPU加速庫。它強調性能、易用性和低記憶體開銷。NVIDIA cuDNN可以集成到更高級別的機器學習框架中。
細心的朋友在PyTorch官網就能發現, Compute Platform中並不給出顯卡型號,而是給出CUDA版本,這就要求我們安裝特定版本的CUDA,才能使用特定版本的PyTorch。例如PyTorch 1.10 只支持CUDA 10.2, CUDA 11.3,以及CUDA 11.1。為什麼這裡用了以及呢? 因為在官網上並沒有顯示CUDA 11.1,但是在https://download.pytorch.org/whl/torch,搜索,可以看到11.1的whl。
在這裡選擇10.2版本進行安裝,CUDA下載通過官網,官網通常只顯示最新版本cuda,這裡需要大家進入具體的版本下載介面,拖到底部,找到:
接著可以找到對應的CUDA版本,進入下載即可,這Installer Type 有 exe (network) 和 exe (local)兩種選擇,我們選local的方式,下載2.6G的cuda_10.2.89_441.22_win10.exe即可。
安裝方式十分簡單,一直下一步即可,只需要記住安裝到了哪裡,這裡預設路徑為
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
Copy
下面來測試一下CUDA安裝是否成功,可以打開命令窗,進入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin,然後輸入
nvcc -V
cuDNN
有了CUDA平臺,還需要安裝cuDNN,cuDNN全稱為NVIDIA CUDA Deep Neural Network (cuDNN) 。它是一個深度神經網路的加速庫,裡邊實現了神經網路常用的操作,並且是高度優化的,可以極大地榨幹NVIDA顯卡的性能,因此用N卡都會用cuDNN庫。
cuDNN庫的安裝非常簡單,與其說是安裝,不如說是下載庫檔,放到CUDA所在的目錄下。具體步驟如下:
- 打開網址:https://developer.nvidia.com/cudnn,點擊右上角,需要註冊,再登錄。
- 登錄後,點擊Download cuDNN,跳轉到下載頁面,選擇好cudnn版本,作業系統版本,即可開始下載
- 將下載好的壓縮包cudnn-10.2-windows10-x64-v8.2.4.15.zip 解壓
- 分別將bin、include、lib\x64下的檔分別對應拷貝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2資料夾下的bin、include、lib\x64下
- 打開命令視窗,在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite資料夾中分別執行bandwidthTest.exe和deviceQuery.exe。觀察到Result=PASS 即表示安裝成功。