CentOS7.X安裝英偉達顯卡采坑之路


1、系統信息

操作系統版本:CentOS7.X

顯卡版本:英偉達 Tesla P100

其他軟件包安裝信息:

  • CUDA 9.0
  • CUDNN 7.4.2.24
  • lightgbm 2.2.X
  • Boost 1.61
  • CMake 3.12

特別說明,如果沒有在官網找到你的顯卡版本對應的驅動,請盡快尋找你的顯卡提供商確認驅動信息,不要輕易嘗試;那就是在浪費時間,切記!

2、安裝P100驅動

這里安裝P100驅動的方式,通過Yum Rpm包的安裝方式,其他相關的Linux系統可以通過對應的包管理或者二進制的方式安裝,如果是CentOS系統,我們非常推薦使用Yum進行安裝。

2.1 查看顯卡信息

我們可以通過查看pci的接口,確認顯卡信息,以及是否識別出顯卡,當然默認沒有這個工具,我們需要安裝;安裝方式如下:

yum install pciutils -y

可以通過過濾VGA來精確信息:

lspci|grep -i vga

2.2 安裝顯卡驅動

這里我們通過wget在線下載驅動,通過rpm安裝載入到系統中:

wget http://cn.download.nvidia.com/tesla/410.79/nvidia-diag-driver-local-repo-rhel7-410.79-1.0-1.x86_64.rpm
rpm -ivh nvidia-diag-driver-local-repo-rhel7-410.79-1.0-1.x86_64.rpm 

在往下走之前我們需要配置epel源,便於后面安裝dkms

yum install epel-*

通過Yum安裝,目前這是最簡單的方式,如果你想挑戰也可以采用二進制tarall的方式:

yum install dkms -y
yum install nvidia* -y

最后為了生效,我們需要重啟操作系統:

reboot

往往重啟后,你不確定是否成功,那如果去查看信息呢,我推薦通過一下三個步驟:

lspci | grep -i nv         # 查看是否加載驅動配置
lsmod | grep -i nouveau    # 是否關閉了默認顯卡驅動
dmesg | grep NVRM          # 查看開啟加載是否有異常信息

到了這里,成責成,不成你就要日志了,別照着網上文章亂搞。

3、開發工具包安裝

只有驅動還是不夠的,我們換需要一個些工具包便於我們使用,其中 CUDA、CUDNN就是我們要安裝的包。

3.1 CUDA工具包安裝

導入官方CUDA包

rpm -ivh http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-9.0.176-1.x86_64.rpm

通過Yum安裝即可

yum install cuda-9.0.176-1

我們推薦不要安裝太新的,好多組件不一定能夠支持。

查看版本技巧:yum search --showduplicates cuda

3.2 CUDNN安裝

PS:下載CUDNN,你可能需要一個會員,需要登錄才能夠下載

Download下載地址: https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.4.2/prod/9.0_20181213/cudnn-9.0-linux-x64-v7.4.2.24.tgz

上傳到服務器上后,解壓Copy對應的庫文件即可(這里我們默認你已經回上傳文件到服務之上):

tar xf cudnn-9.0-linux-x64-v7.4.2.24.solitairetheme8 
cp cuda/include/cudnn.h /usr/local/cuda/include
cp -a cuda/lib/* /usr/local/cuda/lib64/

4、lightgbm安裝

這個安裝對於CentOS7的系統是非常坑的,必須要來編譯原聲的組件,編譯失敗的因素很多,你准備好了?

4.1 OpenGL安裝

安裝OpenGL,默認情況下CUDA安裝時已經安裝,所以無需單獨安裝;(特別注意,有時候會遇到軟連接丟失造成找不到so庫文件),解決方法就是補全軟連接即可了。

PS:補全方式,類似常規方法,通過ln 命令模擬確實的so文件即可。

4.2 Boost安裝

安裝前,你需要安裝一些依賴,來保證后面的步驟能夠順序執行(我並不能保證你按照我的方式一定會成功,但至少我成功了,如果出錯你需要詳細檢查報錯信息+你的機智來解決問題)

yum install wget gcc python python python-devel -y

安裝命令如下,你可以直接Copy執行(在Root身份下)

cd /usr/local/src
wget https://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.gz
tar xf boost_1_61_0.tar.gz 
cd boost_1_61_0
./bootstrap.sh --prefix=/usr/local/include/boost
./b2 install

我們還需要安裝tools工具,放心這個不會報錯,錦上添花的功能:

cd tools/build/
./b2 install --prefix=/usr/local/include/boost

4.3 CMake安裝

沒有什么特別好說的,常規操作(你在Root身份下直接復制即可):

cd /usr/local/src
wget https://cmake.org/files/v3.12/cmake-3.12.0-rc1.tar.gz
tar -zxf cmake-3.12.0-rc1.tar.gz
cd cmake-3.12.0-rc1
./bootstrap
gmake -j $(nproc)
gmake install

檢查是否成功與查看版本:

cmake --version

4.4 正文lightgbm

PS:開始前,我們認為已經安裝了Python3的環境,當然Python2也是可以的,不過你需要做好心理准備。

命令如下:建議Root用戶或等同權利的用戶執行

cd /usr/local/src/
git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM
mkdir build ; cd build
cmake -DUSE_GPU=1 ..
make -j 12
cd ../python-package/
python3 setup.py install

將so動態庫Copy到系統之中,自行操作,不在演示。

4.5 測試

安裝基礎測試數據包:

pip3 install wheel numpy scipy scikit-learn -U -i https://pypi.doubanio.com/simple

下載解析處理數據:

cd /usr/local/src
git clone https://github.com/guolinke/boosting_tree_benchmarks.git
cd boosting_tree_benchmarks/data
wget "https://archive.ics.uci.edu/ml/machine-learning-databases/00280/HIGGS.csv.gz"
gunzip HIGGS.csv.gz
python3 higgs2libsvm.py

PS: 這里你可能會遇到xrange錯誤,因為Python3已經沒有xrange,這里修改為range即可。

創建測試數據:

cat > lightgbm_gpu.conf <<EOF
max_bin = 63
num_leaves = 255
num_iterations = 50
learning_rate = 0.1
tree_learner = serial
task = train
is_training_metric = false
min_data_in_leaf = 1
min_sum_hessian_in_leaf = 100
ndcg_eval_at = 1,3,5,10
sparse_threshold = 1.0
device = gpu
gpu_platform_id = 0
gpu_device_id = 0
EOF
echo "num_threads=$(nproc)" >> lightgbm_gpu.conf

測試命令如下:

# Run of GPU
/usr/local/src/LightGBM/lightgbm config=lightgbm_gpu.conf data=higgs.train valid=higgs.test objective=binary metric=auc 
# Run of CPU
/usr/local/src/LightGBM/lightgbm config=lightgbm_gpu.conf data=higgs.train valid=higgs.test objective=binary metric=auc device=cpu

這里可以將生成的lightgbm命令與So文件Copy到系統之中方便后期使用。

5、小結

看到這里說明你已經成功了,是不是很Easy,當然如果你沒搞定回頭看看錯誤信息;我的這個博文你不一定能夠成功,至少我成功過了,切記不要根據網上的帖子亂搞。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM