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 https://github.com/kaldi-asr/kaldi,但是网络不稳定或者网速较慢时可以选择直接去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 就安装成功了。