CentOS 7.0 下 GPU 安裝配置指南及 TensorFlow / Openface 的 GPU 使用

本文來源同事賈老板层宫,本人負(fù)責(zé)編輯

1. 準(zhǔn)備工作

# 檢查顯卡
$ lspci | grep -i vga 04:00.0 VGA compatible controller: NVIDIA Corporation Device 1b00 (rev a1) 
# 檢查系統(tǒng)版本实束,確保系統(tǒng)支持(需要Linux-64bit系統(tǒng)) 
$ uname -m && cat /etc/*release x86_64 CentOS Linux release 7.2.1511 (Core)
# 安裝GCC 
$ yum install gcc gcc-c++ 
# 安裝Kernel Headers Packages 
$ yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

2. 安裝顯卡驅(qū)動(dòng)

$ sh NVIDIA-Linux-x86_64-381.22.run
  • 開始安裝


  • Accept


  • Building kernerl modules 安裝


  • 32bit兼容包選擇, 這里要注意選擇 No,不然后面就會(huì)出錯(cuò)。


  • X- configuration 的選擇頁為 Yes


  • 后面的都選擇默認(rèn)即可

3. 安裝CUDA

  • 開始安裝
$ sh cuda_8.0.61_375.26_linux.run
# accept
-------------------------------------------------------------
  Do you accept the previously read EULA?
accept/decline/quit: accept
# no
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n
-------------------------------------------------------------
# 后面的就都選yes或者default
Do you want to install the OpenGL libraries?
(y)es/(n)o/(q)uit [ default is yes ]: 
Do you want to run nvidia-xconfig?
This will update the system X configuration file so that the NVIDIA X driver
is used. The pre-existing X configuration file will be backed up.
This option should not be used on systems that require a custom
X configuration, such as systems with multiple GPU vendors.
(y)es/(n)o/(q)uit [ default is no ]: y
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]: 

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
 [ default is /root ]: 

Installing the NVIDIA display driver...
The driver installation has failed due to an unknown error. Please consult the driver installation log located at /var/log/nvidia-installer.log.

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-8.0
Samples:  Installed in /root, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_192.log
  • 驗(yàn)證安裝結(jié)果
# 添加環(huán)境變量
# 在 ~/.bashrc的最后面添加下面兩行
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH
# 使生效
$ source ~/.bashrc
# 驗(yàn)證安裝結(jié)果
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 381.22                 Driver Version: 381.22                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Graphics Device     Off  | 0000:02:00.0     Off |                  N/A |
| 21%   50C    P8    33W / 265W |      8MiB / 11172MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

4. 安裝 cuDNN 庫

$ tar -xvzf cudnn-8.0-linux-x64-v6.0.tgz
$ cp -P cuda/include/cudnn.h /usr/local/cuda-8.0/include
$ cp -P cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
$ chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

5. 在 Docker 中使用 cuda

下面介紹了如何在docker中使用cuda粥诫,主要使用了nvidia-docker

  • 安裝docker
$ yum install docker
# 啟動(dòng) Docker 服務(wù),并將其設(shè)置為開機(jī)啟動(dòng)
$ systemctl start docker.service 
$ systemctl enable docker.service 
# 1. Install nvidia-docker and nvidia-docker-plugin
$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker-1.0.1-1.x86_64.rpm
$ sudo rpm -i /tmp/nvidia-docker*.rpm && rm /tmp/nvidia-docker*.rpm
$ sudo systemctl start nvidia-docker
# 2. 使用nvidia-docker啟動(dòng)容器
$ nvidia-docker run -it --name=CONTAINER_NAME -d DOCKER_IMAGE_NAME /bin/bash 
# 3. 進(jìn)入容器
$ docker attach CONTAINER_NAME

注意

2 使用nvidia-docker啟動(dòng)容器

這里需要對(duì)image進(jìn)行重新編譯蒙畴,添加nvidia-docker需要的Label酪耕,否則運(yùn)行起來的容器會(huì)不能使用GPU。

6. TensorFlow 的 GPU 使用

下載安裝GPU版本的TensorFlow滓彰,運(yùn)行以下代碼即可測(cè)試控妻,無報(bào)錯(cuò)說明cuda安裝成功

import tensorflow as tf

# 新建一個(gè) graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# 新建session with log_device_placement并設(shè)置為True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# 運(yùn)行這個(gè) op.
print sess.run(c)

7. Openface 的 GPU 使用

# 啟動(dòng)編譯好的 openface 鏡像 chinapnr/openface:0.3
$ nvidia-docker run -it -v /local-folder/:/root/openface_file/ --name=openface -d chinapnr/openface:0.3 /bin/bash
# 進(jìn)入容器
$ docker exec -it openface /bin/bash
# 訓(xùn)練模型
$ cd /root/openface/training
$ ./main.lua -data /root/cuda-base/openface/CASPEAL-align-folder/ -device 1 -nGPU 1 -testing -alpha 0.2 -nEpochs 100 -epochSize 160 -peoplePerBatch 35 -imagesPerPerson 20 -retrain /root/openface/models/openface/nn4.small2.v1.t7 -modelDef /root/openface/models/openface/nn4.small2.def.lua -cache ../../cuda-base/openface/work
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市揭绑,隨后出現(xiàn)的幾起案子弓候,更是在濱河造成了極大的恐慌,老刑警劉巖他匪,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件菇存,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡邦蜜,警方通過查閱死者的電腦和手機(jī)依鸥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畦徘,“玉大人毕籽,你說我怎么就攤上這事【荆” “怎么了关筒?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)杯缺。 經(jīng)常有香客問我蒸播,道長(zhǎng),這世上最難降的妖魔是什么萍肆? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任袍榆,我火速辦了婚禮,結(jié)果婚禮上塘揣,老公的妹妹穿的比我還像新娘包雀。我一直安慰自己,他們只是感情好亲铡,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布才写。 她就那樣靜靜地躺著,像睡著了一般奖蔓。 火紅的嫁衣襯著肌膚如雪赞草。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天吆鹤,我揣著相機(jī)與錄音厨疙,去河邊找鬼。 笑死疑务,一個(gè)胖子當(dāng)著我的面吹牛沾凄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播知允,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼搭独,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了廊镜?” 一聲冷哼從身側(cè)響起牙肝,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗤朴,沒想到半個(gè)月后配椭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雹姊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年股缸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吱雏。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡敦姻,死狀恐怖瘾境,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情镰惦,我是刑警寧澤迷守,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站旺入,受9級(jí)特大地震影響兑凿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茵瘾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一礼华、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拗秘,春花似錦圣絮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奸腺,卻和暖如春餐禁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背突照。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工帮非, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讹蘑。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓末盔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親座慰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陨舱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容