centos7.5安裝1050Ti NVIDIA Driver 和 CUDA9
前言,最近來了新的需求,需要研究下GPU加速下ffmpeg解碼視訊的效能情況。好吧,個人雖然對於硬體上的東西不太明白,不過還是摸著石頭過河,一步一坑的走著。。。:)
整個過程斷斷續續持續了兩天左右,光是找能用的伺服器就花了半天,結果發現不是不能用,只是我沒裝過,所以看上去1050Ti有點太大,找不到伺服器有適合的PCIE插槽插入,結果在硬體組的大佬指導下才知道原來優酷的安裝視訊裡面別人已經說過了,需要把側面的螺絲和擋板給下掉,場面一度尷尬。。。好的,找到插槽後,直接把卡對準插入就行了,然後找個6pin的電源插口進行連線,因為這個N卡是需要獨立供電的,不然負載上不去。硬體上就完事了,接下來就是驅動和軟體的坑了。本文也主要將這部分內容,關於安裝的步驟以及出現的問題和解決的措施。
整個流程如下圖:(https://developer.nvidia.com/ffmpeg)
驅動的下載
檢測伺服器是否存在N卡
命令:
lspci | grep -i nvidia
如果都沒有 那就沒必要看下去了:)
之後你可以根據你的N卡的型號去選擇相應的驅動下載 要是還不確定要下哪個版本的驅動
那麼只能安裝個nvidia_detect工具檢測下了
安裝nvidia_detect
新增ELPepo源
$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
安裝NVIDIA驅動檢測
$ sudo yum install nvidia-detect
$ nvidia-detect -v
根據結果登入NVIDIA官網http://www.geforce.cn/drivers設定驅動檢索條件(注意儘量設定語言英文)
參考 https://blog.csdn.net/fanhenghui/article/details/80090864
驅動的安裝
N卡的驅動有兩種:一種是開源的nouveau,一種是官方的驅動。因為大部分linux發行版都預設支援開源版本的驅動,而現在必須安裝官方的驅動(追求某些特性,木的辦法)。而這預設的驅動會在之後的cuda安裝過程中有干擾,所以必須將其加入到blacklist黑名單中。
根據cuda不同的版本,可能需要設定不同位置的黑名單列表。具體的可以去百度搜
“cuda <版本號,比如9.0>”,第一個應該就是官網的地址,可以進去檢視相應的安裝說明,我看了1小時的10.0和9.0的英文安裝說明,有點煩,不過條理還是挺清楚的。
廢話少說,看步驟
檢測nouveau的使用
lsmod | grep nouveau
檢視是否執行 如果沒有 那這一步可以省略了 不過還是小心下是否有安裝其他的開源驅動
加入黑名單
echo -e “blacklist nouveau\noptions nouveau modeset=0” > /etc/modprobe.d/blacklist.conf
重新建立initramfs image檔案
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r) --force
安裝NVIDIA GPU驅動
我用的是.run file檔案進行安裝的,如果用其他的安裝包管理器的方式安裝也行。不過我喜歡用前者罷了。
簡單的兩條命令:
chmod 644 NVIDIA-Linux-x86_64-*.run
./NVIDIA-Linux-x86_64-*.run
之後的裡面的設定我都是選的yes
安裝完成檢測
#先進行重啟進入多使用者模式
init 3
nvidia-smi #可以顯示出你的N卡的執行情況,如果沒有這個命令說明安裝失敗
X Server問題
我在安裝過程中遇到 "X Sever"的問題,網上搜了下發現基本就是把之前的桌面程式關掉以及殘留的檔案鎖刪除。
· 對於Ubuntu
sudo service lightdm stop
· 對於centos
rm -rf /tmp/.X*
之後再重新安裝就可以了
CUDA9.0的安裝
好了上面的安裝完成後,就需要之後的安裝了
我本來是安裝的最新版的CUDA10.0的,結果安裝後,測試程式碼deviceQuery檢測時發現版本好像有問題?!黑人臉,我看了系統支援的核心和gcc等要求,發現是可以的,莫名其妙!不過時間緊,就沒去仔細看了,直接下了下面一個大版本9.0的。
這裡注意下需要下載相應核心版本的開發包以及標頭檔案
CUDA的下載
直接百度搜cuda加版本號的第一個結果基本就可以直接到官網下載地址了,根據系統需求以及安裝方式選擇相應的安裝檔案
升級系統和編譯工具
yum update
yum install kernel-devel kernel-headers gcc make
yum -y upgrade kernel kernel-devel
我這裡遇到的問題是桌面版的核心有四個版本,而終端版的核心預設設定了一個,結果退出桌面進入字元終端模式時核心版本不一樣,結果為了統一起來,我桌面版直接進入相同版本的核心去了,可能很少人遇到吧。
安裝
這個安裝就直接accept後一路yes或者預設下去就行了
如果不亂改動,那麼/usr/local/cuda就是安裝的軟連線的路徑了
設定環境變數
vim /etc/bashrc
...
CUDA_HOME=/usr/local/cuda
export CUDA_HOME
PATH=$PATH:$CUDA_HOME/bin
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib
export LD_LIBRARY_PATH
安裝成功後進入不了桌面
輸入startx發現報錯,然後cat了一下/var/log/Xorg.0.log日誌,顯示
........
Fatal server error:
no screens found
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
Please also check the log file at "/var/log/Xorg.0.log" for additional information.
ddxSigGiveUp: Closing log
giving up.
xinit: No such file or directory (errno 2): unable to connect to X server
xinit: No such process (errno 3): Server error.
報“no screens found”,懷疑是之前nvidia安裝驅動的桌面配置被換掉了,結果恢復了一下,重新startx發現正常啟動桌面了。網上也搜到說secure boot的解決方法,但我看了下我的bios設定,並無卵用。
思路參考自:https://blog.csdn.net/keiths7/article/details/7822424