先說(shuō)下自己之前的環(huán)境(都是Linux系統(tǒng),差別不大):
- Centos7.6
- NVIDIA Driver Version 440.33.01(等會(huì)需要更新驅(qū)動(dòng))
- CUDA10.1
- Pytorch1.6/1.7
提示,如果想要保留之前的PyTorch1.6或1.7的環(huán)境,請(qǐng)不要卸載CUDA環(huán)境,可以通過(guò)Anaconda管理不同的環(huán)境,互不影響。但是需要注意你的NVIDIA驅(qū)動(dòng)版本是否匹配。
在這里能夠看到官方給的對(duì)應(yīng)CUDA版本所需使用驅(qū)動(dòng)版本。
通過(guò)上表可以發(fā)現(xiàn),如果要使用CUDA11.1,那么需要將顯卡的驅(qū)動(dòng)更新至455.23或以上(Linux x86_64環(huán)境)。由于我之前的驅(qū)動(dòng)版本是440.33.01,那么肯定不滿足,所以需要更新下顯卡的驅(qū)動(dòng)。通過(guò)以下指令可以查看你電腦上的驅(qū)動(dòng)版本:
如果你的驅(qū)動(dòng)版本是滿足的,那么可以直接跳到創(chuàng)建Pytorch1.8虛擬環(huán)境章節(jié)。
更新驅(qū)動(dòng)
卸載舊驅(qū)動(dòng)
我之前安裝的是NVIDIA-440的版本,找到之前下載的安裝程序,然后打開(kāi)終端通過(guò)以下指令進(jìn)行卸載:
sh ./NVIDIA-Linux-x86_64-440.33.01.run --uninstall
安裝新驅(qū)動(dòng)
1)下載驅(qū)動(dòng),直接去NVIDIA官網(wǎng)下載:https://www.nvidia.cn/Download/index.aspx?lang=cn
根據(jù)你的GPU型號(hào)以及操作信息選擇對(duì)應(yīng)的驅(qū)動(dòng),注意CUDA Toolkit11版的當(dāng)前可選的只有11.0和11.2,而我們要裝的是11.1所以選擇11.2即可。
2)關(guān)閉Xserver服務(wù) (如果沒(méi)有安裝桌面系統(tǒng)可以跳過(guò))
我的桌面系統(tǒng)是gdm(GNOME Display Manager)類(lèi)型的,通過(guò)systemctl
可以看到:
systemctl status gdm.service
顯示結(jié)果:
● gdm.service - GNOME Display Manager
Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-01-22 09:27:06 CST; 1 months 22 days ago
Process: 32347 ExecStartPost=/bin/bash -c TERM=linux /usr/bin/clear > /dev/tty1 (code=exited, status=0/SUCCESS)
Main PID: 32344 (gdm)
Tasks: 22
CGroup: /system.slice/gdm.service
├─32344 /usr/sbin/gdm
└─32357 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-mBzawN/databa...
Jan 22 09:27:06 localhost.localdomain systemd[1]: Starting GNOME Display Manager...
Jan 22 09:27:06 localhost.localdomain systemd[1]: Started GNOME Display Manager.
關(guān)閉gdm服務(wù):
systemctl stop gdm.service
注意,如果還開(kāi)啟了類(lèi)似VNC遠(yuǎn)程桌面的服務(wù)也要記得關(guān)閉。
3)安裝新版本驅(qū)動(dòng)
sh ./NVIDIA-Linux-x86_64-460.32.03.run
4)檢查nvidia服務(wù)
通過(guò)以下指令能夠看到當(dāng)前主機(jī)上的nvidia驅(qū)動(dòng)版本以及所有可用GPU設(shè)備信息。
5)再次開(kāi)啟桌面服務(wù)、VNC等
如果不是gdm或者不使用桌面環(huán)境可以跳過(guò)此步驟
systemctl start gdm.service
創(chuàng)建PyTorch1.8虛擬環(huán)境
為了不同版本之間的環(huán)境互相隔離,強(qiáng)烈建議使用Anaconda的虛擬環(huán)境。其實(shí)使用起來(lái)也非常簡(jiǎn)單:
創(chuàng)建虛擬環(huán)境,這里我創(chuàng)建了一個(gè)名為torch18的虛擬環(huán)境,并且創(chuàng)建python3.8的編譯環(huán)境。
conda create -n torch18 python=3.8
安裝完成后,激活虛擬環(huán)境
接著安裝點(diǎn)常用的包,這里直接通過(guò)requirements.txt
批量安裝(不需要可以跳過(guò))
pip install -r requirements.txt
requirements.txt
文件里可以是你常用的一些包,例如:
numpy==1.17.0
matplotlib==3.2.1
lxml==4.6.2
tqdm==4.42.1
如果需要退出虛擬環(huán)境,執(zhí)行以下指令即可:
安裝PyTorch1.8
在線安裝
進(jìn)入PyTorch官網(wǎng):https://pytorch.org/
我們通過(guò)選擇自己的系統(tǒng)類(lèi)型、安裝方式以及CUDA的版本可以得到對(duì)應(yīng)的安裝指令。官方默認(rèn)會(huì)順帶安裝torchvision和torchaudio但我只需要torchvision所以通過(guò)以下指令安裝 (注意,要進(jìn)入對(duì)應(yīng)的虛擬環(huán)境安裝,例如上面的torch18環(huán)境):
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
安裝完成后就可以使用了,不需要在單獨(dú)安裝CUDA,并且不會(huì)影響之前安裝的CUDA版本。
下面進(jìn)行簡(jiǎn)單的測(cè)試:
首先在終端輸入python
進(jìn)入python環(huán)境:
然后導(dǎo)入torch
包,查看cuda是否可用:
import torch
torch.cuda.is_available()
如果打印的是True
表示成功
離線安裝
有些時(shí)候,可能你的設(shè)備無(wú)法連接外網(wǎng),此時(shí)需要提前準(zhǔn)備好需要安裝的whl文件,那么我們這里就以torch
和torchvision
為例(注意安裝torch前需要提前安裝好numpy包)。剛剛我們?cè)诰€安裝時(shí)發(fā)現(xiàn)安裝指令最后有個(gè)網(wǎng)址,https://download.pytorch.org/whl/torch_stable.html,沒(méi)錯(cuò)就是官方存放所有的安裝包,所以我們可以直接去那里下載。
我們?cè)谶@里可以找到我們需要的torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl
以及torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl
兩個(gè)文件即可。注意,cu111
代表CUDA11.1,cp38
表示python3.8的編譯環(huán)境,linux_x86_64
表示x86的平臺(tái)64位操作系統(tǒng)。下載完成后,我們將這兩個(gè)文件傳入你的離線主機(jī)(服務(wù)器)中。接著在保存這兩個(gè)文件夾的目錄下打開(kāi)終端:
進(jìn)入對(duì)應(yīng)虛擬環(huán)境
安裝torch
pip install torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl
安裝torchvison
pip install torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl
安裝完成后進(jìn)行簡(jiǎn)單的測(cè)試:
首先在終端輸入python
進(jìn)入python環(huán)境:
然后導(dǎo)入torch
包,查看cuda是否可用:
import torch
torch.cuda.is_available()
如果打印的是True
表示成功
通過(guò)docker安裝
在有些情況下是需要使用docker來(lái)跑深度學(xué)習(xí)環(huán)境的(現(xiàn)在很多大公司都是使用paas平臺(tái)來(lái)部署的)。那么我們就需要使用pytorch官方的docker鏡像了。我們可以在docker hub上去搜索相關(guān)鏡像,https://registry.hub.docker.com/。下圖是我搜索的pytorch字段的結(jié)果(點(diǎn)擊Tags后)。
我們可以看到當(dāng)前最新的docker 鏡像有pytorch/pytorch:1.8.0-cuda11.1-cudnn8-devel
和pytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime
,對(duì)于普通開(kāi)發(fā)者下載pytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime
就行了。關(guān)于安裝docker的過(guò)程這里不贅述。
1)我們直接通過(guò)以下指令就能pull這個(gè)鏡像了
docker pull pytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime
2)注意,在啟動(dòng)鏡像前需要確保已安裝NVIDIA Container Toolkit
,否則會(huì)報(bào)錯(cuò)(若已安裝可直接跳過(guò)此步驟):
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
安裝NVIDIA Container Toolkit
,參考官方文檔:https://github.com/NVIDIA/nvidia-docker
這里以Centos7為例:
首先根據(jù)你的系統(tǒng)類(lèi)型以及版本下載對(duì)應(yīng).repo
文件到/etc/yum.repos.d
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
清空yum的過(guò)期緩存數(shù)據(jù)(如果不是root用戶需要加sudo)
安裝NVIDIA Container Toolkit
(如果不是root用戶需要加sudo)
yum install -y nvidia-docker2
重啟docker服務(wù)(如果不是root用戶需要加sudo)
3)通過(guò)docker啟動(dòng)pytorch1.8.0容器
docker run --gpus all --rm -it --ipc=host pytorch/pytorch:1.8.0-cuda11.1-cudnn8-runtime
4)進(jìn)入容器后可以通過(guò)nvidia-smi
看到所有的GPU設(shè)備信息
5)接著進(jìn)入python環(huán)境簡(jiǎn)單測(cè)試下pytorch能否正常調(diào)用GPU(打印True為成功)
import torch
torch.cuda.is_available()
到此這篇關(guān)于Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Linux安裝Pytorch GPU 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- pytorch 如何用cuda處理數(shù)據(jù)
- pytorch model.cuda()花費(fèi)時(shí)間很長(zhǎng)的解決
- pytorch中.to(device) 和.cuda()的區(qū)別說(shuō)明
- PyTorch CUDA環(huán)境配置及安裝的步驟(圖文教程)
- 將pytorch的網(wǎng)絡(luò)等轉(zhuǎn)移到cuda