Ubuntu PyTorch 配置GPU環(huán)境

本文主要講ubuntu18.04配置NVIDIA GPU環(huán)境, 并安裝配置PyTorch丁屎。

先確認(rèn)GPU型號(hào)

方式一:

$ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation Device 249d (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 228b (rev a1)

方式二:

$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd0000249Dsv00001D05sd00001147bc03sc00i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-510 - distro non-free
driver   : nvidia-driver-510-server - distro non-free
driver   : nvidia-driver-515-server - distro non-free
driver   : nvidia-driver-515 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-470 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

方式二中荠锭, driver : nvidia-driver-470 - distro non-free recommended便是系統(tǒng)推薦的的GPU 驅(qū)動(dòng)版本。

安裝驅(qū)動(dòng)

只安裝驅(qū)動(dòng)

直接安裝推薦的版本:

sudo apt install nvidia-driver-470

驅(qū)動(dòng) + cuda 安裝

一般我們做深度學(xué)習(xí)使用nvidia gpu都需要安裝cuda晨川,安裝cuda之前一定要確認(rèn)依賴cuda的版本节沦,比如當(dāng)前最新版的PyTorch支持到的cuda版本為11.6, 而cuda最新版已經(jīng)到11.6了,故要安裝對(duì)應(yīng)的版本础爬。

我們根據(jù)英偉達(dá)官網(wǎng)鏈接 安裝甫贯。

根據(jù)需要選擇適合的cuda版本朴皆,點(diǎn)擊鏈接進(jìn)入安裝笆制, 此處我選擇11.6。


nvidia-cuda-install-01.jpg

點(diǎn)擊鏈接之后進(jìn)入下一步逞度,依次選擇操作系統(tǒng)、架構(gòu)渴逻、發(fā)行版(版本)疾党、安裝方式后,便給出的安裝信息惨奕。
ubuntu安裝方式欄有三個(gè)選項(xiàng)雪位,三個(gè)我都試過(guò),沒(méi)特殊原因推薦使用runfile(local)方式梨撞,我在使用deb(local)deb(network)安裝的時(shí)候雹洗,會(huì)直接安裝最新版的cuda,而我需要確定的一個(gè)版本11.6卧波。

此處我選擇"Linux-x86_64-Ubuntu-18.04-runfile(local)"

nvidia-cuda-install-02.jpg

復(fù)制安裝命令依次執(zhí)行:

$ wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run
$ sudo sh cuda_11.6.2_510.47.03_linux.run
===========
= Summary =
===========

Driver:   Installed
Toolkit:  Installed in /usr/local/cuda-11.6/

Please make sure that
 -   PATH includes /usr/local/cuda-11.6/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.6/lib64, or, add /usr/local/cuda-11.6/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.6/bin
To uninstall the NVIDIA Driver, run nvidia-uninstall
Logfile is /var/log/cuda-installer.log

安裝完成后根據(jù)提示配置環(huán)境變量

# cuda
export PATH="/usr/local/cuda-11.6/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH"

重啟系統(tǒng)

使用以上兩種方式安裝都需要重啟系統(tǒng)

$ sudo reboot

查看安裝是否成功:

$ nvidia-smi
Sat Jul  9 07:04:15 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   52C    P0    35W /  N/A |      5MiB /  8192MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1140      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

安裝PyTorch

安裝基礎(chǔ)包

我一般使用conda管理python環(huán)境, 安裝PyTorch之前先創(chuàng)建一個(gè)命名為dl-gpu的python環(huán)境:

$ conda create -y -n dl-gpu python=3.8

激活環(huán)境

$ conda activate dl-gpu

然后開(kāi)始安裝PyTorch,
首先進(jìn)入官網(wǎng)安裝鏈接时肿, 依次選擇PyTorch BuildYour OS港粱、Package螃成、LanguageCompute Platform

pytorch-install-01.jpg

此處我選擇的是"Stable(1.12.0)-Linux-Conda-Python-CUDA11.6"查坪,得到執(zhí)行的命令

$ conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge

注意點(diǎn):

  1. 如果是conda安裝寸宏,官網(wǎng)有一個(gè)提示 NOTE: 'conda-forge' channel is required for cudatoolkit 11.6, 需要先安裝conda-forge, 安裝可參考鏈接
  2. cuda版本與PyTorch支持的版本要盡量一致

驗(yàn)證安裝

執(zhí)行上述安裝命令

$ conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge

驗(yàn)證是否可用:

(dl-gpu) ?  ~ python -c "import torch;print(torch.cuda.device_count())"
1

這里輸出1則說(shuō)明GPU配置成功了。

安裝Jupyter

個(gè)人比較喜歡使用JupyterLab偿曙,所以本次安裝JupyterLab, 安裝細(xì)節(jié)見(jiàn)文檔

使用conda安裝

$ conda install -c conda-forge jupyterlab

使用pip安裝

pip install jupyterlab

啟動(dòng)Jupyter并驗(yàn)證Torch和GPU

$ jupyter-lab
import torch
# 查看顯卡數(shù)量
print('GPU count: ', torch.cuda.device_count())
# 獲取第一個(gè)GPU
gpu1 = torch.device(f'cuda:0')
print('GPU one: ', gpu1)

# 創(chuàng)建使用GPU的張量X, Y
X = torch.rand(2, 3, device=gpu1)
Y = torch.rand(3, 4, device=gpu1)
# 分別打印X击吱、Y、以及X和Y的乘積
X, Y, torch.mm(X, Y)
pytorch-gpu-py-example.jpg

其中device='cuda:0'表示當(dāng)前張量數(shù)據(jù)存儲(chǔ)在第0個(gè)GPU上遥昧。

常見(jiàn)問(wèn)題

常見(jiàn)問(wèn)題1: 重啟系統(tǒng)后無(wú)法連接驅(qū)動(dòng)了

$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

大概率是更新Linux內(nèi)核引起的覆醇,

  1. 先檢查驅(qū)動(dòng)和cuda版本
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_Mar__8_18:18:20_PST_2022
Cuda compilation tools, release 11.6, V11.6.124
Build cuda_11.6.r11.6/compiler.31057947_0

說(shuō)明驅(qū)動(dòng)和和cuda都是存在的。

  1. 查看已經(jīng)安裝的驅(qū)動(dòng)的版本信息
$ ls /usr/src|grep nvidia
nvidia-510.47.03

這里我的驅(qū)動(dòng)版本是: nvidia-510.47.03

  1. 使用dkms工具安裝驅(qū)動(dòng)
$ sudo apt install dkms
$ sudo dkms install -m nvidia -v 510.47.03
...
nvidia-peermem.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.4.0-121-generic/updates/dkms/

depmod...

DKMS: install completed.

等待完成后再次輸入nvidia-smi命令就發(fā)現(xiàn)驅(qū)動(dòng)好了

$ nvidia-smi
Sat Jul  9 08:14:07 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   56C    P0    34W /  N/A |      0MiB /  8192MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

為了避免出現(xiàn)此問(wèn)題炭臭,可關(guān)閉linux自動(dòng)更新:

編輯文件/etc/apt/apt.conf.d/10periodic, 將其中的所有值改為0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末永脓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鞋仍,更是在濱河造成了極大的恐慌常摧,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件威创,死亡現(xiàn)場(chǎng)離奇詭異落午,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)肚豺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門溃斋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吸申,你說(shuō)我怎么就攤上這事梗劫∠淼椋” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵梳侨,是天一觀的道長(zhǎng)蛉威。 經(jīng)常有香客問(wèn)我,道長(zhǎng)走哺,這世上最難降的妖魔是什么蚯嫌? 我笑而不...
    開(kāi)封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮丙躏,結(jié)果婚禮上择示,老公的妹妹穿的比我還像新娘。我一直安慰自己彼哼,他們只是感情好对妄,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布湘今。 她就那樣靜靜地躺著敢朱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摩瞎。 梳的紋絲不亂的頭發(fā)上拴签,一...
    開(kāi)封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音旗们,去河邊找鬼蚓哩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛上渴,可吹牛的內(nèi)容都是我干的岸梨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼稠氮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼曹阔!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起隔披,我...
    開(kāi)封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赃份,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后奢米,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抓韩,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年鬓长,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谒拴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涉波,死狀恐怖彪薛,靈堂內(nèi)的尸體忽然破棺而出茂装,到底是詐尸還是另有隱情,我是刑警寧澤善延,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布少态,位于F島的核電站,受9級(jí)特大地震影響易遣,放射性物質(zhì)發(fā)生泄漏彼妻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一豆茫、第九天 我趴在偏房一處隱蔽的房頂上張望侨歉。 院中可真熱鬧,春花似錦揩魂、人聲如沸幽邓。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)牵舵。三九已至,卻和暖如春倦挂,著一層夾襖步出監(jiān)牢的瞬間畸颅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工方援, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留没炒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓犯戏,卻偏偏與公主長(zhǎng)得像送火,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子先匪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容