鎮(zhèn)江建工建設(shè)集團(tuán)網(wǎng)站百度搜索量怎么查
前言
系統(tǒng)一開始是CentOS 7.6,安裝依賴時(shí)yum給的內(nèi)核文件的版本號(hào)和uname -r的結(jié)果不一樣,這時(shí)不能直接裝依賴,裝上后后面裝驅(qū)動(dòng)時(shí)會(huì)報(bào)錯(cuò)找不到內(nèi)核頭文件(最開始我直接裝依賴了,以為高版本兼容低版本,然后裝驅(qū)動(dòng)時(shí)報(bào)錯(cuò)找不到957版的內(nèi)核頭文件),所以需先yum -y upgrade,升級(jí)完后需重啟(重啟后變成CentOS 7.9了),之后yum給的版本號(hào)和uname -r就一樣了,就可以裝依賴了。
升級(jí)前內(nèi)核版本是957,yum裝的話會(huì)裝1160,版本不一樣。

升級(jí)前

升級(jí)后

yum裝了1160版本的依賴,然后裝驅(qū)動(dòng)時(shí)報(bào)錯(cuò)找不到957版的內(nèi)核頭文件
安裝N卡驅(qū)動(dòng)
查看機(jī)器上有哪些顯卡
lspci | grep -i vga
lspci | grep -i nvidia

禁用nouveau
nouveau是N卡的開源驅(qū)動(dòng),linux會(huì)自動(dòng)安裝,不是NVIDIA官方的,安裝官方驅(qū)動(dòng)前需先禁止掉它。
執(zhí)行l(wèi)smod | grep nouveau,如果有輸出,說(shuō)明未禁用;如果沒有輸出,說(shuō)明已禁用。

未禁用nouveau
vim /usr/lib/modprobe.d/dist-blacklist.conf,注釋掉blacklist nvidiafb這一行,然后添加下面兩行
blacklist nouveau
options nouveau modeset=0
然后重建initramfs image,執(zhí)行下面的命令
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)
重啟
reboot
再執(zhí)行l(wèi)smod | grep nouveau,如果沒有輸出,說(shuō)明已禁用。

已禁用nouveau
安裝依賴
yum install kernel-devel kernel-headers gcc dkms gcc-c++
安裝驅(qū)動(dòng)
官方下載頁(yè),根據(jù)你的顯卡型號(hào)搜索。我的顯卡是Tesla P4,咨詢?nèi)豪锎罄?#xff0c;說(shuō)應(yīng)該用CUDA 11.2,所以這是我的型號(hào)的下載鏈接。


下載完后執(zhí)行
chmod +x NVIDIA-Linux-x86_64-460.106.00.run
./NVIDIA-Linux-x86_64-460.106.00.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.83.1.el7.x86_64 -no-x-check --no-opengl-files
# --kernel-source-path的值是裝完依賴后才有這個(gè)路徑
# 遠(yuǎn)程安裝會(huì)檢測(cè)x server,要讓它不檢測(cè)
# 不安裝opengl,因?yàn)榘惭bopengl,CentOS界面UI不能正常啟動(dòng)
安裝過程中
Would you like to register the kernel module sources with DKMS?選yes(服務(wù)器選yes,本地選no)
Install NVIDIA's 32-bit compatibility libraries?選yes
安裝完成后執(zhí)行nvidia-smi,如果有輸出,說(shuō)明驅(qū)動(dòng)已安裝。

從最開始升級(jí)內(nèi)核重啟后,到這一步,裝驅(qū)動(dòng)時(shí)可能提示要重啟,記不清了。
安裝CUDA
安裝
官方下載頁(yè),我下載的11.2.2的run文件,前面已經(jīng)說(shuō)了我的型號(hào)應(yīng)該用這個(gè)版本。
chmod +x cuda_11.2.2_460.32.03_linux.run
./cuda_11.2.2_460.32.03_linux.run --no-opengl-libs
安裝時(shí),X表示選中,即安裝,空白表示不選中,即不安裝。驅(qū)動(dòng)前面已經(jīng)安裝了,不用再安裝。設(shè)成下面的樣子,再Install。
CUDA Installer
- [ ] Driver[ ] 460.32.03
+ [X] CUDA Toolkit 11.2[X] CUDA Samples 11.2[X] CUDA Demo Suite 11.2[X] CUDA Documentation 11.2OptionsInstall
安裝完成后

vim /etc/profile
# 添加下面兩行,路徑要和上圖中一樣
export PATH=/usr/local/cuda-11.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH# 保存并重新加載
source /etc/profile
測(cè)試是否安裝成功
方法一
終端輸入cuda并連按兩次tab,若有候選命令,則再執(zhí)行nvcc --version,有輸出版本信息就是安裝成功。

自動(dòng)出現(xiàn)候選命令

方法二
執(zhí)行CUDA的示例程序進(jìn)行測(cè)試
cd /root/NVIDIA_CUDA-11.2_Samples/1_Utilities/deviceQuery
make
./deviceQuery


安裝cuDNN
安裝
官方下載頁(yè),一開始直接頁(yè)面內(nèi)搜11.2搜到兩個(gè)結(jié)果,是2021年的,然后在最頂部發(fā)現(xiàn)是11.x,就選它了。直接下載會(huì)提示讓登錄NVIDIA帳號(hào),查到一個(gè)不用登帳號(hào)的方法,就是在下面第二張圖箭頭處點(diǎn)右鍵,復(fù)制鏈接,然后用迅雷下,但是我用迅雷下載過程中中斷了,所以還是注冊(cè)了帳號(hào)。


tar -xvf cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz
# 以下三行命令from https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
# 參考鏈接中這一步復(fù)制的文件和官方文檔中不太一樣
cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
測(cè)試是否安裝成功
查到的資料是執(zhí)行cat /usr/local/cuda-11.2/include/cudnn.h | grep CUDNN_MAJOR -A 2,
# 參考鏈接中的兩個(gè)例子[root@ctnr ~]# cat /usr/include/cudnn_v7.h |grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)#include "driver_types.h"cat /usr/local/cuda-8.0/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 6
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 21
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)#include "driver_types.h"
但我這沒輸出,查看cudnn.h,里面有一句
#include "cudnn_version.h"
再查看cudnn_version.h,里面有cuDNN版本信息,連著的三行分別代表主版本、次版本以及修定版本。
#ifndef CUDNN_VERSION_H_
#define CUDNN_VERSION_H_#define CUDNN_MAJOR 8
#define CUDNN_MINOR 7
#define CUDNN_PATCHLEVEL 0#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)/* cannot use constexpr here since this is a C-only file */
/* Below is the max SM version this cuDNN library is aware of and supports natively */#define CUDNN_MAX_SM_MAJOR_NUMBER 9
#define CUDNN_MAX_SM_MINOR_NUMBER 0
#define CUDNN_MAX_DEVICE_VERSION (CUDNN_MAX_SM_MAJOR_NUMBER * 100) + (CUDNN_MAX_SM_MINOR_NUMBER * 10)#endif /* CUDNN_VERSION_H */
最后
前言中說(shuō)了yum裝的內(nèi)核版本要和系統(tǒng)一樣,你可能會(huì)想到這個(gè)命令,它就是安裝和你內(nèi)核版本一樣的依賴。
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
但我升級(jí)前用這個(gè)命令提示找不到957的包,然后去pkgs.org也搜不到957的包,就去群里問了大佬,他讓升kernel版本,升成1160。順便還吐槽了我們還在用3.10,而截止到2023年2月底linux官方還在維護(hù)的最低版本是4.14。

參考鏈接
【Linux】 查看機(jī)器是否有GPU_linux查看gpu_jn10010537的博客-CSDN博客
GPU, CUDA,cuDNN三者的關(guān)系總結(jié)_挽手等風(fēng)起的博客-CSDN博客
openEuler安裝GPU、CUDA、cudnn_openeuler安裝顯卡驅(qū)動(dòng)_irrationality的博客-CSDN博客
Kubernetes管理GPU應(yīng)用 - breezey - 博客園 (cnblogs.com)
Tensorflow-gpu版本安裝 - breezey - 博客園 (cnblogs.com)
CentOS部署顯卡驅(qū)動(dòng):CUDA,cuDNN_天然玩家的博客-CSDN博客
CentOS 7 安裝 NVIDIA 顯卡驅(qū)動(dòng)和 CUDA Toolkit_cuda toolkit centos_XueShengke的博客-CSDN博客
centos安裝cuda · 大專欄 (dazhuanlan.com)
centos7安裝顯卡驅(qū)動(dòng)、cuda以及cudnn_yingchenwy的博客-CSDN博客
CUDA與cuDNN安裝教程(超詳細(xì))_kylinmin的博客-CSDN博客
Installation Guide :: NVIDIA Deep Learning cuDNN Documentation