Ubuntu 安裝 GPU 驅動、CUDA、cuDNN,以及是否安裝成功的檢測 - 知乎
首先確認電腦上安裝了 NVIDIA 顯卡
lspci | grep -i nvidia
一、安裝顯卡驅動
1.1 命令行安裝(我是用1.2圖形界面安裝的,簡單的一匹,這個方法不推薦!?。。?/h3>
確認有顯卡以后輸入下面命令,以檢查之前是否安裝了驅動。
nvidia-smi
如果返回類似于下面的界面,說明已經安裝了顯卡驅動:
如果返回類似于下面的界面,則表示顯卡驅動還沒有安裝。
如果發(fā)現(xiàn)沒有安裝過驅動,則可再輸入下面命令,以查看顯卡型號以及推薦的驅動版本。
ubuntu-drivers devices
如下圖,這里推薦我們安裝的是 nvidia-driver-530 - distro。
如果我們愿意安裝這個版本的驅動,則輸入即可安裝該驅動:
sudo ubuntu-drivers autoinstall
安裝過程中按照提示操作,除非你知道每個提示的真實含義,否則所有的提示都選擇默認就可以了,安裝完成后重啟系統(tǒng),NVIDIA 顯卡就可以正常工作了。
此時,再次輸入
nvidia-smi
就可以看到 GPU 的信息了。下面的界面說明已經安裝顯卡驅動了。
注意,上圖中的 CUDA Version 后面寫了一個版本號。該版本號并不是你已經安裝了該版本的 CUDA 的意思,而是說此顯卡最大支持的CUDA版本號。因此我們仍然需要手動從官網(wǎng)下載CUDA,且版本號不能高于這個。
1.2圖形界面安裝(推薦?。?,我A3000裝530 tested,無法識別,又更改成525,就ok了?。?/h3>
搜索ubuntu自帶的"軟件和更新",點擊“附加驅動”,選擇合適的顯卡驅動,點擊“應用更改”。
(如果附加驅動列表為空,可以嘗試更換網(wǎng)絡源)
從NV官網(wǎng)推薦的顯卡驅動包安裝,大坑,勿用?。∏屑桑?!
Ubuntu 卸載 Nvidia 驅動和安裝最新驅動_卸載nvidia驅動 ubuntu-CSDN博客
二、安裝 CUDA(我cuda 11.6,11.8都裝成功過,但要注意匹配pytorch版本!?。?/h3>
這一步有大坑?。?!即:下載 CUDA 的時候,到底應該選擇什么版本的?
安裝教程的 NVIDA 官方文檔見:NVIDIA CUDA Installation Guide for Linux
下面安裝 CUDA。
首先確認你需要安裝的 CUDA 版本。
以我要使用的 pytorch 為例。我打開 pytorch 官網(wǎng):PyTorch 查看其支持哪些版本的 CUDA。
如上圖所示,目前最高只支持 11.8 版本的 CUDA,那我就最高安裝 11.8 版本的 CUDA,不能安裝 12.1 版本的。
為什么我要強調不能安裝 12.1 版本呢?
因為當你打開 NVIDIA 官方網(wǎng)站下載 CUDA 的時候,默認就是最新版本,在本文成文時是 12.1 版本。如下圖,在最最直接的、沒有強調任何版本的情況的網(wǎng)址下面,就是 12.1 版本。
也就是說,在本文成文的時間節(jié)點,默認情況下,你就是會下載錯版本的。(沒錯,我第一次就下載錯了)
如果想要下載 11.8 版本的 CUDA,需要專門點擊右上角的放大鏡進行搜索才能找到,而且網(wǎng)址也是特別長的一大串。
CUDA(Compute Unified Device Architecture)是由NVIDIA提供的一種用于GPU并行計算的平臺和編程模型。它通過為開發(fā)人員提供一套工具、API和庫,使得使用GPU進行高性能計算變得更加容易。CUDA支持C/C++、Python、Fortran等多種編程語言,并且可以在Linux、Windows和macOS等操作系統(tǒng)上運行。
訪問CUDA Toolkit 11.8 Downloads(一定要注意確認CUDA版本),在頁面上選擇適合系統(tǒng)的CUDA版本,并下載對應的運行文件(.deb文件)。
另外,NVIDA 在下載頁面非常貼心的提供了下載+安裝需要的所有代碼。
以我的計算機環(huán)境為例,我需要依次運行下面命令:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.1-530.30.02-1_amd64.deb
# 安裝公共 cuda-repo-ubuntu2204-12-1-local GPG key
sudo cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
三、配置 CUDA 的環(huán)境變量
安裝成功后需要配置一下環(huán)境變量。這步很關鍵,如果不配置環(huán)境變量,則運行機器學習運算的時候會找不到GPU。
首先跳轉到 /usr/local 目錄下面,記錄自己 CUDA 的文件夾名稱
然后打開 .bashrc 文件,準備添加環(huán)境變量。
sudo vim ~/.bashrc
注:
~/.bashrc
是一個在bash shell中運行時自動加載的Shell腳本文件。它通常位于用戶主目錄下,并且是一個隱藏文件(因為文件名以'.'開頭)。在Unix/Linux系統(tǒng)中,用戶的主目錄通常是/home/username
或者/Users/username
。-
/.bashrc
文件包含了一些環(huán)境變量、別名和其他自定義設置,這些設置將在每次啟動bash shell時自動加載。它的作用包括但不限于:- 定義環(huán)境變量:例如PATH、LD_LIBRARY_PATH等,它們指定了系統(tǒng)在何處查找可執(zhí)行文件和共享庫。
- 創(chuàng)建自定義別名:例如將
ls -l
別名為ll
,可以避免每次都輸入完整命令。 - 設定默認的文本編輯器、歷史記錄長度、提示符等bash shell參數(shù)。
- 運行其他的Shell腳本,從而自動化一些操作。
~/.bashrc
文件的內容和格式:~/.bashrc
文件可以使用任何文本編輯器進行編輯,其內容可以根據(jù)您的需要進行修改。以下是一些可能會出現(xiàn)在.bashrc
文件中的代碼段:
bash
# 設置PATH環(huán)境變量
export PATH=$PATH:/usr/local/bin
# 創(chuàng)建別名
alias ll='ls -l'
# 自定義提示符
PS1='\u@\h:\w\$ '
# 運行其他Shell腳本
if [ -f ~/custom_scripts.sh ]; then
. ~/custom_scripts.sh
fi
.bashrc
文件中的語法采用bash shell的語法,因此您可以使用任何bash shell支持的命令和語法。需要注意的是,如果您不小心編寫了有誤的代碼,可能會導致bash shell出現(xiàn)錯誤或無法啟動。
進入 vim 編輯器后,默認處于命令模式。
此時按 j 向下跳行,跳到最后一行。
然后按 o (小寫哦)進入插入(編輯)模式,并且向下新開一行,在行首插入
復制下面兩行代碼,在該行(即最后一行)粘貼或者輸入下面代碼。
export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
這里解釋一下代碼的含義:
export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
這是一個設置環(huán)境變量的命令,將CUDA 12.1的二進制文件目錄添加到系統(tǒng)的PATH環(huán)境變量中。
其中:
- export: 這個命令用于設置環(huán)境變量,將一個值分配給一個環(huán)境變量。
- PATH: 這是一個系統(tǒng)環(huán)境變量,包含了一系列用冒號分隔的目錄路徑。當在終端中輸入一個命令時,系統(tǒng)會按照PATH中的順序在這些目錄中查找可執(zhí)行文件。
- /usr/local/cuda-12.1/bin: 這是CUDA 12.1的二進制文件目錄所在的路徑。
- ${PATH:+:${PATH}}: 這個語法用于將當前的PATH變量內容添加到新的PATH變量值中。如果PATH已經存在,那么就在它的末尾添加一個冒號和原始PATH變量值。如果PATH不存在,那么就只設置為CUDA 12.1的二進制文件目錄。
通過運行上述命令,可以將CUDA 12.1的二進制文件目錄添加到PATH環(huán)境變量中,使得系統(tǒng)能夠找到相關的可執(zhí)行文件。
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
這個命令是用來設置環(huán)境變量LD_LIBRARY_PATH,以便讓系統(tǒng)能夠正確地找到CUDA庫文件的路徑。
其中:
- export: 這個指令告訴bash shell將變量導出到子進程中,并在整個會話期間都有效。
- LD_LIBRARY_PATH: 這是一個環(huán)境變量,用于指定共享庫文件的搜索路徑。當程序需要使用共享庫時,系統(tǒng)會根據(jù)該變量的值在指定的路徑下查找所需的共享庫文件。
- /usr/local/cuda/lib64: 這是CUDA庫文件的默認安裝路徑。
- ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}: 這段語法表示如果LD_LIBRARY_PATH變量已經定義,則在原有的路徑后面添加CUDA庫文件的路徑;否則,就創(chuàng)建一個新的LD_LIBRARY_PATH變量并將其設置為CUDA庫文件的路徑。
通過運行該命令,將CUDA庫文件路徑添加到LD_LIBRARY_PATH環(huán)境變量中,可以確保CUDA庫文件被正確加載,并且可以被程序訪問和使用。 需要注意的是,此命令中${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}的語法可能不是所有shell都支持,通常只能在bash和zsh等主流的Unix shell中使用。
然后按下 Esc 鍵,從編輯模式返回命令模式。
然后輸入英文冒號進入末行模式。
然后輸入 wq 并回車,表示保存并退出。
最后,
source ~/.bashrc
?我的ubuntu上的shell為zsh版本,按上述步驟進行改了命令在zshrc中添加并source后完成安裝。!!!!
?利用下面命令查看cuda版本
nvcc --version?
四、安裝 cuDNN(按tar包安裝,超級簡單?。?!千萬不要用deb包按?。。。?/h3>
cuDNN(CUDA Deep Neural Network Library)是一個針對深度學習應用優(yōu)化的加速庫,它使用CUDA技術加速深度神經網(wǎng)絡的訓練和推斷。這個庫提供了一些高效的原語,例如卷積、池化、歸一化等,可以幫助開發(fā)人員快速實現(xiàn)深度神經網(wǎng)絡,并且提升訓練和推斷的速度。
- CUDA和cuDNN是兩個相互依賴的軟件包,它們之間有以下關系:
- CUDA是必需的:cuDNN需要依賴于CUDA才能夠工作。因為cuDNN是使用CUDA技術實現(xiàn)的,所以只有支持CUDA的硬件和系統(tǒng)才能夠運行它。在安裝cuDNN之前,必須先安裝CUDA,并且在環(huán)境變量中設置CUDA的路徑。
- cuDNN是可選的:盡管cuDNN可以提升深度學習應用的性能和效率,但它并不是必需的。如果不使用cuDNN,仍然可以使用CUDA進行深度學習計算。cuDNN只是一個可選的加速庫,可以根據(jù)需要選擇是否使用它。
- cuDNN提供了深度學習相關的API和方法:為了使開發(fā)人員更容易地使用cuDNN,這個庫提供了一些專門針對深度學習的API和方法,例如卷積、池化、歸一化等。這些方法已經被高度優(yōu)化,可以在支持CUDA的硬件上快速執(zhí)行。
總的來說,CUDA提供了基礎的GPU并行計算能力,而cuDNN則是在這個基礎上為深度學習應用提供的高級的計算加速庫。兩者結合起來可以大幅提升深度學習應用的性能和效率。
首先在https://developer.nvidia.com/cudnn下載相應版本的cudnn。這一步需要注冊或者擁有英偉達賬號。
然后,參考 cuDNN 的安裝官方文檔進行安裝:NVIDIA cuDNN Documentation
雖然我是 Ubuntu,但是也按照 「1.3.1. Tar File Installation」部分的講解進行操作,而不按照「1.3.2. Debian Local Installation」的部分進行操作。
上面的話非常重要,一定要按tar安裝,切忌?。。。?/strong>
我剛開始按Deb包步驟安裝,比較復雜,失敗了。又按tar文件安裝的,成功了。詳見官方安裝文檔之
1.3.1.?Tar File Installation
而且,按tar安裝,超級簡單?。?!
五、安裝pytorch
進入pytorch官網(wǎng),復制這一段操作指令。
由于我用的cuda不是最新版,是cuda11.6,因此需要找以前的pytorch版本Previous PyTorch Versions | PyTorch
pip安裝Previous PyTorch Versions | PyTorch中的cuda11.6
Linux and Windows
# ROCM 5.2 (Linux only)
pip install torch==1.13.1+rocm5.2 torchvision==0.14.1+rocm5.2 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/rocm5.2
# CUDA 11.6
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
# CUDA 11.7
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
# CPU only
pip install torch==1.13.1+cpu torchvision==0.14.1+cpu torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cpu
五、檢查 CUDA、cuDNN 是否安裝成功
我們在終端里面依次輸入下面代碼:
import torch
然后
print(torch.version.cuda)
如上圖,可以正確返回 cuda 版本號,說明 cuda 安裝成功。
print(torch.backends.cudnn.version())
如上圖所示,可以正確返回 cuDNN 的 版本號,說明 cuDNN 安裝成功。
最后輸入:
print(torch.cuda.is_available())
返回是 True,說明 CUDA 和 GPU 驅動的搭配是正確的。
到此,說明 GPU 驅動、CUDA、cuDNN 已經完全安裝完成。
六、卸載 CUDA
看這個官方文檔:
https://blog.csdn.net/Maggie_JK/article/details/132666245NVIDIA CUDA Installation Guide for Linux
七、問題解決
CUDA安裝了但nvcc -V顯示command not found_Maggieee1023的博客-CSDN博客文章來源:http://www.zghlxwxcb.cn/news/detail-844745.html
八、tensorflow如果識別不了GPU
看下面版本要求 https://www.tensorflow.org/install/pip文章來源地址http://www.zghlxwxcb.cn/news/detail-844745.html
到了這里,關于Ubuntu 安裝 GPU 驅動、CUDA、cuDNN、Pytorch以及是否安裝成功的檢測的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!