Ubuntu配置GPU支持的TensorFlow和pytorch

電腦剛剛重做了系統(tǒng)乌庶,環(huán)境干凈的一批,簡單記錄一下左痢,如果哪里不對靡羡,請留言,我會予以修正俊性。

參考:

Ubuntu21.10下安裝TensorFlow及配置GPU支持(cuda11.1+cudnn8.1.0)
Linux查看當(dāng)前Cuda(CUDA Toolkit )版本
Ubuntu22.04安裝CUDA略步、cudnn詳細(xì)步驟

Target:

Nvidia driver(545.29.02), CUDA(12.3/12.4), Tensorflow-gpu, cuDNN

步驟

安裝Nvidia driver

  1. 添加PPA源
sudo add-apt-repository ppa:graphics-drivers/ppa

為系統(tǒng)安裝依賴項(xiàng)以構(gòu)建內(nèi)核模塊:

sudo apt-get install dkms build-essential
  1. 查看顯卡硬件型號
ubuntu-drivers devices

輸出如下:


GPU

可以看到推薦安裝的驅(qū)動版本號為:


select driver
  1. 安裝NVIDIA驅(qū)動
sudo ubuntu-drivers autoinstall

系統(tǒng)會自動安裝推薦版本驅(qū)動,接著重啟系統(tǒng)定页。重啟時間會比以往慢一點(diǎn)趟薄,開機(jī)時會顯示NVRM: loading NVIDIA UNIX Open Kernel Module for...
等著就可以了。

安裝CUDA

  1. 檢測所需CUDA版本:
nvidia-smi

顯示如下典徊,右上角的CUDA version 就是與此驅(qū)動相匹配的Cuda版本 12.3杭煎,一般來說可以安裝12.3或者更低一點(diǎn)的版本,此教程中安裝12.3版本卒落,如果下面出現(xiàn)12.4版本是第二次修改后結(jié)果羡铲,使用者統(tǒng)一就好:


coda
  1. 下載相關(guān)依賴
sudo apt-get install freeglut3 freeglut3-dev libxi-dev libxmu-dev

大概需要個1分鐘吧

  1. 下載安裝文件
    下載網(wǎng)址:https://developer.nvidia.com/cuda-downloads
    按照自身系統(tǒng)選擇后會出現(xiàn)安裝命令,此教程選擇runfile儡毕,需要保持網(wǎng)絡(luò)連接也切,
    cuda_run

    運(yùn)行命令的第一行:
wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run

結(jié)果如下圖所示:


cuda_run_install
  1. 安裝cuda-toolkit
sudo sh ./cuda_12.3.0_545.23.06_linux.run --toolkit --silent --override

運(yùn)行時間可能有點(diǎn)長,耐心等待一下

  1. 配置環(huán)境變量
    (非必要) 由于沒有vim,先安裝vim:
sudo apt install vim

打開bashrc文件, sudo 可避免保存時出現(xiàn)E212:無法打開并寫入文件 的錯誤提示

sudo vim ~/.bashrc

輸入i進(jìn)入輸入模式添加如下內(nèi)容雷恃,添加好后按‘Esc’退出輸入模式疆股,':wq':保存文件并退出 Vim 編輯器。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

使修改生效:

source ~/.bashrc
  1. 檢驗(yàn)安裝
nvcc --version

獲得輸出如下


cuda_final

安裝Tensorflow-gpu

  1. 創(chuàng)建新的虛擬環(huán)境env
conda create -n env python=3.9

進(jìn)入此虛擬環(huán)境

conda activate env

如果想使用下一步簡便的指令倒槐,需要Python 3.6–3.9

  1. 安裝tensorflow-gpu
pip install tensorflow[and-cuda]
tensorflow-gpu
  1. 進(jìn)入python環(huán)境進(jìn)行測試
python
>>> import tensorflow as tf
>>> print(tf.__version__)
>>> tf.test.is_built_with_cuda()
>>> print(tf.config.list_physical_devices('GPU'))
tfTest

安裝pytorch

  1. 進(jìn)入官網(wǎng) https://pytorch.org/get-started/locally/
    如果cuda版本低一點(diǎn)就按照他這個來
    image.png

    如果cuda版本是12.4旬痹,目前不支持直接用命令安裝,進(jìn)入建議的Github: https://github.com/pytorch/pytorch#from-source讨越,只有一丟丟麻煩
    image.png
  2. 通過source安裝


    image.png

    (1) 兩個需求:1是python版本唱凯,在創(chuàng)建虛擬環(huán)境的時候已經(jīng)確定為3.9,滿足要求谎痢;2是確定gcc版本,我不確定正常來說有沒有g(shù)cc卷雕,但我這個新的虛擬環(huán)境中是可以找到的节猿,如果沒有安裝一個就好了

gcc --version
gcc

(2)安裝依賴
安裝 Intel 的數(shù)學(xué)核心庫(MKL)和MAGMA 庫

  • Intel MKL (Math Kernel Library):這是一個高度優(yōu)化的數(shù)學(xué)庫,專為加速數(shù)學(xué)運(yùn)算而設(shè)計(jì)漫雕,尤其是在 Intel 架構(gòu)的處理器上滨嘱。它提供了高性能的線性代數(shù)運(yùn)算、快速傅里葉變換浸间、矢量數(shù)學(xué)以及統(tǒng)計(jì)功能太雨。這些庫優(yōu)化了多種數(shù)學(xué)操作,特別是在 CPU 上運(yùn)行的密集型數(shù)學(xué)計(jì)算魁蒜,從而提高了 PyTorch 在 CPU 上的性能囊扳。
  • MAGMA(Matrix Algebra on GPU and Multicore Architectures):這是一個數(shù)學(xué)庫,旨在利用 GPU 進(jìn)行密集的線性代數(shù)運(yùn)算兜看,如矩陣分解锥咸、求解線性方程組等。MAGMA 是為了優(yōu)化這類計(jì)算在多核心架構(gòu)和 GPU 上的執(zhí)行而設(shè)計(jì)的细移。對于在 GPU 上使用 PyTorch 進(jìn)行深度學(xué)習(xí)訓(xùn)練搏予,尤其是涉及到復(fù)雜的線性代數(shù)運(yùn)算(如在訓(xùn)練過程中使用到的大規(guī)模矩陣操作)時,MAGMA 可以提供顯著的性能提升弧轧。magma-cuda124:這個包特別為 CUDA 12.4 版本編譯的 MAGMA 庫版本雪侥。
conda install intel::mkl-static intel::mkl-include
# CUDA only: Add LAPACK support for the GPU if needed
conda install -c pytorch magma-cuda124  # or the magma-cuda* that matches your CUDA version from https://anaconda.org/pytorch/repo

(3)下載pytorch資源

git clone --recursive https://github.com/pytorch/pytorch
cd pytorch

下載會有點(diǎn)慢。精绎。速缨。別急
(4)安裝pytorch

export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py develop

這個時候可能會出現(xiàn)缺少cmake/yaml等庫,通過pip安裝好后重新運(yùn)行以上代碼捺典,這一步時間巨長鸟廓,長到什么程度,這篇攻略就是這個時候?qū)懙模鞯囊眨穗鼓埃乙ニX

image.png

(5)測試

import torch
print(torch.version)

安裝cudnn以優(yōu)化計(jì)算

cudnn的安裝順序并不影響以上tensorflow和、pytorch的安裝员咽,相反毒涧,pytorch可以幫助我們確定版本合適的cudnn
(通過pytorch確定cudnn版本,并下載所輸出的版本贝室,這個是當(dāng)前torch所能支持的cudnn最高版本契讲;若不需要pytorch,可通過下方版本確定網(wǎng)址確定版本)

import torch
print(torch.version)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
  1. 下載安裝文件
    版本確定網(wǎng)址: https://docs.nvidia.com/deeplearning/cudnn/latest/reference/support-matrix.html
    對應(yīng)的下載網(wǎng)址: https://developer.nvidia.com/rdp/cudnn-archive
    需要注冊后下載列表中: Local installer for Ubuntu20.04 x86_64(Deb)滑频,
    gmail沒有問題捡偏,其他的不確定

    cudnn

  2. 安裝

  • 進(jìn)到文件下載位置,雙擊deb文件


    cudnn_install

    或者在deb文件存放目錄下打開終端 輸入

sudo dpkg -i cudnn-......(Tab 自動填充)
  • 輸入CUDA GPG key
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
  • Refresh the repository metadata.
- sudo apt-get update
image.png
  • Install the runtime library.
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y

8后面的數(shù)字取決于上面獲取中ubuntu2004-8.9.3.28, cuda12.x取決于下一步候選的版本

報錯:
image.png
apt-cache policy libcudnn8
image.png

重新Install the runtime library.

sudo apt-get install libcudnn8=8.9.3.28-1+cuda12.1
  • Install the developer library.
sudo apt-get install libcudnn8-dev=8.9.3.28-1+cuda12.1
  • Install the code samples.
sudo apt-get install libcudnn8-samples=8.9.3.28-1+cuda12.1
  • 驗(yàn)證是否安裝成功:
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN

注:如果上面的make命令提示缺少FreeImage.h峡迷,運(yùn)行:

sudo apt-get install libfreeimage3 libfreeimage-dev

之后重新運(yùn)行

make clean && make
./mnistCUDNN
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末银伟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子绘搞,更是在濱河造成了極大的恐慌彤避,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夯辖,死亡現(xiàn)場離奇詭異琉预,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蒿褂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門圆米,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贮缅,你說我怎么就攤上這事榨咐。” “怎么了谴供?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵块茁,是天一觀的道長。 經(jīng)常有香客問我桂肌,道長数焊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任崎场,我火速辦了婚禮佩耳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谭跨。我一直安慰自己干厚,他們只是感情好李滴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛮瞄,像睡著了一般所坯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挂捅,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天芹助,我揣著相機(jī)與錄音,去河邊找鬼闲先。 笑死状土,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伺糠。 我是一名探鬼主播蒙谓,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼训桶!你這毒婦竟也來了彼乌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤渊迁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后灶挟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琉朽,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年稚铣,在試婚紗的時候發(fā)現(xiàn)自己被綠了箱叁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡惕医,死狀恐怖耕漱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抬伺,我是刑警寧澤螟够,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站峡钓,受9級特大地震影響妓笙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜能岩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一寞宫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拉鹃,春花似錦辈赋、人聲如沸鲫忍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悟民。三九已至,卻和暖如春焕蹄,著一層夾襖步出監(jiān)牢的瞬間逾雄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工腻脏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸦泳,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓永品,卻偏偏與公主長得像做鹰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鼎姐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

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