電腦剛剛重做了系統(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
- 添加PPA源
sudo add-apt-repository ppa:graphics-drivers/ppa
為系統(tǒng)安裝依賴項(xiàng)以構(gòu)建內(nèi)核模塊:
sudo apt-get install dkms build-essential
- 查看顯卡硬件型號
ubuntu-drivers devices
輸出如下:
可以看到推薦安裝的驅(qū)動版本號為:
- 安裝NVIDIA驅(qū)動
sudo ubuntu-drivers autoinstall
系統(tǒng)會自動安裝推薦版本驅(qū)動,接著重啟系統(tǒng)定页。重啟時間會比以往慢一點(diǎn)趟薄,開機(jī)時會顯示NVRM: loading NVIDIA UNIX Open Kernel Module for...
等著就可以了。
安裝CUDA
- 檢測所需CUDA版本:
nvidia-smi
顯示如下典徊,右上角的CUDA version 就是與此驅(qū)動相匹配的Cuda版本 12.3杭煎,一般來說可以安裝12.3或者更低一點(diǎn)的版本,此教程中安裝12.3版本卒落,如果下面出現(xiàn)12.4版本是第二次修改后結(jié)果羡铲,使用者統(tǒng)一就好:
- 下載相關(guān)依賴
sudo apt-get install freeglut3 freeglut3-dev libxi-dev libxmu-dev
大概需要個1分鐘吧
- 下載安裝文件
下載網(wǎng)址:https://developer.nvidia.com/cuda-downloads
按照自身系統(tǒng)選擇后會出現(xiàn)安裝命令,此教程選擇runfile儡毕,需要保持網(wǎng)絡(luò)連接也切,
運(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-toolkit
sudo sh ./cuda_12.3.0_545.23.06_linux.run --toolkit --silent --override
運(yùn)行時間可能有點(diǎn)長,耐心等待一下
- 配置環(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
- 檢驗(yàn)安裝
nvcc --version
獲得輸出如下
安裝Tensorflow-gpu
- 創(chuàng)建新的虛擬環(huán)境env
conda create -n env python=3.9
進(jìn)入此虛擬環(huán)境
conda activate env
如果想使用下一步簡便的指令倒槐,需要Python 3.6–3.9
- 安裝tensorflow-gpu
pip install tensorflow[and-cuda]
- 進(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'))
安裝pytorch
- 進(jìn)入官網(wǎng) https://pytorch.org/get-started/locally/
如果cuda版本低一點(diǎn)就按照他這個來
如果cuda版本是12.4旬痹,目前不支持直接用命令安裝,進(jìn)入建議的Github: https://github.com/pytorch/pytorch#from-source讨越,只有一丟丟麻煩
-
通過source安裝
(1) 兩個需求:1是python版本唱凯,在創(chuàng)建虛擬環(huán)境的時候已經(jīng)確定為3.9,滿足要求谎痢;2是確定gcc版本,我不確定正常來說有沒有g(shù)cc卷雕,但我這個新的虛擬環(huán)境中是可以找到的节猿,如果沒有安裝一個就好了
gcc --version
(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
(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())
-
下載安裝文件
版本確定網(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沒有問題捡偏,其他的不確定
安裝
-
進(jìn)到文件下載位置,雙擊deb文件
或者在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
- 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取決于下一步候選的版本
apt-cache policy libcudnn8
重新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