1. 程式人生 > >Ubuntu14.04安裝CUDA8.0+kaldi詳細步驟

Ubuntu14.04安裝CUDA8.0+kaldi詳細步驟

Ubuntu14.04安裝CUDA8.0+kaldi詳細步驟

一、預先安裝

  1. kaldi需要安裝在帶有NVIDIA顯示卡的物理機或者伺服器上。
  2. 下載 Ubuntu 14.04 版本,並且取消更新,防止出現問題。
  3. 安裝 CUDA 以及 Kaldi 之前的相關依賴檔案的基本配置

輸入指令:

sudo apt-get update

sudo apt-get install libtool

sudo apt-get install autoconf

sudo apt-get install wget    

sudo apt-get install perl

sudo apt-get install subversion

sudo apt-get install build-essential

sudo apt-get install gfortran

sudo apt-get install libatlas-dev

sudo apt-get install libatlas-base-dev

sudo apt-get install zlib1g-dev (中間的是數字 1)

sudo apt-get install gawk

二、安裝 CUDA

複雜常規版:

1. 下載 cuda_8.0.61_375.26_linux.run 驅動

- 放在主資料夾下

2. 安裝 CUDA 依賴庫

- 安裝軟體: 

輸入:sudo apt-get install ppa-purge

- 增加安裝源: 

輸入:sudo apt-add-repository ppa:xorg-edgers

- 更新安裝源: 

輸入:sudo apt-get update

輸入:

sudo apt-get install freeglut3-dev

sudo apt-get install build-essential

sudo apt-get install libx11-dev 

sudo apt-get install libxmu-dev 

sudo apt-get install libxi-dev

sudo apt-get install libgl1-mesa-glx 

sudo apt-get install libglu1-mesa

sudo apt-get install libglu1-mesa-dev

3. 刪除已有的 nvidia:

輸入:

sudo apt-get remove --purge nvidia*

4. 編輯黑名單

輸入:

sudo vi /etc/modprobe.d/blacklist.conf

- 在終端的末尾新增:

blacklist amd76x_edac 

注:這個本身就有,就在這後面新增後面以下五行,注意不要拼錯

blacklist vga16fb

blacklist nouveau

blacklist rivafb

blacklist nvidiafb

blacklist rivatv

5. 檢查是否安裝了kernel header和 package development

$ uname –r

檢視 kenel header資訊

$ sudo apt-get install linux-headers-$(uname -r)

檢查全部通過。繼續安裝

6.檢視自己的驅動狀態

$ lsmod | grep nouveau

如果有顯示就要執行下面的操作了

建立blacklist-nouveau.conf

touch /etc/modprobe.d/blacklist-nouveau.conf 

gedit blacklist-nouveau.conf 

下面是新增的內容

blacklist nouveau

options nouveau modeset=0

更新一下:

$ sudo update-initramfs -u

執行檢查是否禁用

$lsmod | grep nouveau

沒有東西輸出變是成功啦 

然後再更新並重啟

$ sudo update-initramfs -u

$ sudo reboot

執行檢查是否禁用

$lsmod | grep nouveau

7. 關閉圖形化介面並安裝 CUDA

- 操作:按住Ctrl+Alt+F1

輸入:賬號和密碼

輸入:

sudo service lightdm stop

chmod +x cuda_8.0.61_375.26_linux.run

sudo ./ cuda_8.0.61_375.26_linux.run

注:之後一直長按回車鍵,直到百分比進度條到 100%,之後除了OpenGL選擇(n),其他全部選擇(y)es,然後一路回 車就可以了。

如果在OpenGL處選擇了yes就會導致登陸介面 無限迴圈和黑屏。

等待 CUDA 安裝完成之後,螢幕最後會顯示:

8. 設定環境變數

輸入:

sudo vi /etc/profile 

- 在檔案的最後一行新增 PATH="$PATH:/usr/local/cuda-8.0/bin"

- 然後儲存並退出

輸入:

source /etc/profile 

輸入:

echo $PATH

輸入:

sudo vi /etc/ld.so.conf 

- 在第二行寫入 include /usr/local/cuda-8.0/lib64

檢視一下是否設定成功了

 $ env

如果有上面新增的路徑則為成功。

注:如果是第一次裝機,先要設定一下 root 密碼 

輸入:

sudo passwd root 

root 密碼設定好之後,輸入 su 進入 root 賬號

輸入:ldconfig

輸入:exit

輸入:sudo service lightdm start

Alt + ctrl +F7,返回到圖形化登入介面,輸入密碼登入。 倘若沒有遇到迴圈登入的問題,基本說明cuda的安裝成功了

9.檢查是否成功

檢查路徑/dev/下 有無存在名為nvidia*,我的有三個

如果沒有的話官方也給瞭解決方案,如下:

新建一個指令碼檔案,把官網給的程式碼貼上進去,並執行就好。我這裡新建一個名為 nvi.sh的檔案

輸入:

$touch nvi.sh

$sudo gedit nvi.sh

輸入下列內容,並儲存

#!/bin/bash

/sbin/modprobe nvidia

if [ "$?" -eq 0 ]; then

# Count the number of NVIDIA controllers found.

NVDEVS=`lspci | grep -i NVIDIA`

N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`

NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`

N=`expr $N3D + $NVGA - 1`

for i in `seq 0 $N`; do

mknod -m 666 /dev/nvidia$i c 195 $i

done

mknod -m 666 /dev/nvidiactl c 195 255

else

exit 1

fi

/sbin/modprobe nvidia-uvm

if [ "$?" -eq 0 ]; then

# Find out the major device number used by the nvidia-uvm driver

D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

mknod -m 666 /dev/nvidia-uvm c $D 0

else

exit 1

fi

給這個指令碼賦予執行許可權,然後執行

$ sudo chmod a+x nvi.sh

$ sudo ./nvi.sh

10.檢查 CUDA Toolkit

$nvcc –version

會顯示cuda8.0的版本資訊

11.嘗試編譯cuda的例子

cd到例子存放的路徑,預設路徑是 ~/NVIDIA_CUDA-8.0_Samples (即 /home/xxx/ NVIDIA_CUDA-8.0_Samples, xxx是你自己的使用者名稱。或者直接cd,然後ls,可能會出現NVIDIA_CUDA-8.0_Samples資料夾)

然後終端輸入:

# make

執行生成的二進位制檔案

cd ~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release

執行一下 $ ./deviceQuery

檢查一下系統和CUDA-Capable device的連線情況

$ ./bandwidthTest

出現Result=Pass 意味著終於安裝好啦

三、安裝 Kaldi

第一步:下載 Kaldi 原始碼

現在 Kaldi 的最新網址是:http://www.kaldi-asr.org/

同時,下載地址是:https://github.com/kaldi-asr/kaldi

下載後,提取並放在主資料夾下即可。

注:可以選擇git clone ,但是網路不穩定或者網速較慢時可以選擇直接去github上下載kaldi的zip包,然後解壓縮安裝。

第二步:準備階段

編譯 Kaldi 之前需要完成:

1. 修改 gcc 以及 g++版本 

注:Ubuntu14.04 預設安裝的 gcc/g++版本是 4.8,編譯 Kaldi 所需的版本要在 4.8.3 以上,所以 需要要把 gcc/g++版本升級成 4.9

1.1 首先檢視安裝的版本:

輸入:

ls /usr/bin/gcc*

如果沒有版本 4.9,則需要安裝:

輸入:

sudo apt-get install gcc-4.9 

sudo apt-get install gcc-4.9-multilib

sudo apt-get install g++-4.9 

sudo apt-get install g++-4.9-multilib

1.2 安裝之後選擇當前版本

修改 gcc

輸入:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40

之後輸入:

sudo update-alternatives --config gcc

之後手動選擇所需 gcc 版本編號,輸入 1,即選擇當前 gcc 版本為 4.9,之後回車

修改 g++

輸入:

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40

之後輸入:

sudo update-alternatives --config g++

之後需要手動選擇 g++版本編號,輸入 1,即選擇當前 g++版本為 4.9,之後回車

1.3 修改後檢視當前版本

輸入:

gcc --version

g++ --version

檢視當前版本 ,如果顯示為4.9則升級gcc/g++成功。

2. 修改預設 shell

輸入:sudo ln -s -f bash /bin/sh

3. 安裝 git

輸入:sudo apt-get install git

第三步:編譯 Kaldi

輸入:

cd ./kaldi-master/tools

make –j 4

注:如果中途沒有退出的話就基本沒問題了。需要注意的是安裝過程中全程保持網路暢通。

 如果實在看下載進度條沒速度,就自己下載好相應的包,放在應該存放的目錄下即可。

輸入:

cd ../src

./configure

注:檢查 OpenFST 和 ATLAS 兩個外部庫是否安裝成功,並且檢查 CUDA 是否安裝成功。如果出現提示OpenFST沒有安裝,到tools目錄下刪除openfst的資料夾,重新解壓openfst的壓縮檔案,再進入到openfst資料夾下./configure然後make install。

沒問題的話應該有如下顯示:

 

輸入:

make depend –j 4

make –j 4

注:如果有 8 個 cpu 可以將 4 替換成 8,這部分時間會比較長。

第四步:單獨編譯 cudamatrix

輸入:

cd kaldi-maser/src/cudamatrix/

sudo nano Makefile

- 把檔案中的 TESTFILES 改成 BINFILES

輸入:

cd ~/kaldi-master/src/cudamatrix

make all

./cu-vector-test

如果不報錯並顯示如下資訊,則說明 CUDA 進行矩陣運算了。

自此,Kaldi 就安裝成功了。