Ubuntu14.04安装CUDA8.0+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 就安装成功了。