当前位置: 代码迷 >> 综合 >> ubuntu20.04+cuda11+kaldi 安装
  详细解决方案

ubuntu20.04+cuda11+kaldi 安装

热度:23   发布时间:2023-12-17 05:45:27.0
方案:ubuntu20.04+cuda11+kaldi

本人多次安装实践总结,安装kaldi最佳时间为北京时间早上6点-9点, 这段时间安装成功率最高,不会遇到卡死,断网,下载包失败等糟心的事。

网上说安装kaldi需要借助上网工具加速,这种说法也不太准确,我多次安装均在正常网络环境。

网上有文章说kaldi不能适配cuda11,要改配置。但我用的就是cuda11, 不需要改任何配置,成功安装跑起来嗖嗖的。

如果没GPU装kaldi没太大意思,还是先解决GPU在考虑安装问题吧。

前期准备工作:

  1. 确定操作系统版本:这和gcc版本相关,建议centos7 或ubuntu16.04以上。
  2. 下载安装包:git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstream
  3. 安装GPU驱动:安装kaldi之前nvcc -V, nvidia-smi确保GPU能用。
  4. 查看cpu核数: cat /proc/cpuinfo | grep “processor” | wc -l, 编译时候用到cpu个数
  5. 安装目录:选择空间较大的硬盘驱动,最好装在固态盘挂载的目录下

安装用到的脚本

完整脚本

1.安装和编译工具
cd tools
sudo extras/check_dependencies.sh
sudo apt-get install g++ make automake autoconf git sox gfortran libtool subversion python2.7   #一般系统默认有python2了,但是检查依赖时候会报没装python,所以按照提示也要装一下
sudo apt-get install zlib1g-dev
sudo extras/install_mkl.sh
sudo make2.编译源码,配置--use-cuda为no安装cpu版本,不配置安装的是GPU版本
cd ../src
sudo ./configure --shared //GPU版本,此时如果cuda版本太高会有提示,可忽略
sudo ./configure --shared --use-cuda=no //只用cpu版本安装
sudo make depend -j 8  //8 是cpu个数,一定要根据自己cpu资源设置成 2的幂次方数字
sudo make -j 8

安装记录

先克隆kaldi版本

git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstream

进入tools文件夹,查看依赖

cd tools
sudo extras/check_dependencies.sh

根据提示安装对应的依赖项,安装后可再次运行check_dependencies脚本查看是否安装所有依赖。

sudo apt-get install g++ automake autoconf sox gfortran libtool subversion python2.7

image-20210124075602625

安装mkl

./extras/install_mkl.sh

image-20210124075821247

mkl完事后opt目录下会有intel文件夹

image-20210124080030700

接下来编译配置工具

sudo make  -j 64

image-20210124081621465

退出tools目录切到src目录下, 先编译版本依赖

cd ../src/
sudo make depend -j 64

image-20210124082014373


然后编译版本,大概需要20分钟

make -j 64

image-20210124083813115

验证

cd ../egs/yesno/s5
sh run.sh

image-20210124084054184

测试成功

image-20210124084530347

以上就是安装过程,再次强调安装时间选择早上6点-9点,其它时间不适宜安装。另外最好购置较大固态硬盘,如1T以上,安装目录最好选择固态硬盘挂载的目录,如果固态硬盘很小,比如500G,可以选择将kaldi的egs目录搬运到机械盘上,参考之前这篇文章。除了在裸机上安装,还可以在容器里安装,明天补一个在容器安装的例子。

可以持续关注公众号,后续会连续出kaldi使用文章。

  相关解决方案