Closed kingsword5566 closed 3 years ago
Hello,
Did you compile Kaldi with CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
?
This error is most likely due to a mismatch in the compilation flag.
Srikanth
Sorry my fault.
But when I add -D_GLIBCXX_USE_CXX11_ABI=0
in kaldi.mk
It cause many errors.
Without that the Kaldi library will be incompatible with Pytorch. I don't know if adding the option directly to kaldi.mk makes sense. Would that be different from doing the following?
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
./configure --shared
make clean && make depend -j $NUM_JOBS
make -j $NUM_JOBS
It was success when I normal compile. But add the -D_GLIBCXX_USE_CXX11_ABI
it would get some strange error
My kaldi version is c81f517
The kaldi version seems way too old (from 2018). Would it be possible to update it?
I updated to newest version and export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
before make
It still got some ld
error
../hmm/libkaldi-hmm.so: undefined reference to `fst::FstHeader::Write(std::ostream&, std::string const&) const'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'fgmm-global-gselect-to-post' failed
The detail compile process is below:
tools/
./extras/check_dependencies.sh
make -j4
src/
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
./configure --shared
make -j clean depend; make -j4
If this helps, here is my installation script.
#!/bin/bash
set -e
nj=$(nproc)
home=$PWD
conda_url=https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
venv_dir=$PWD/venv
mark=.done-venv
if [ ! -f $mark ]; then
echo 'Making python virtual environment'
name=$(basename $conda_url)
if [ ! -f $name ]; then
wget $conda_url || exit 1
fi
[ ! -f $name ] && echo "File $name does not exist" && exit 1
[ -d $venv_dir ] && rm -r $venv_dir
sh $name -b -p $venv_dir || exit 1
. $venv_dir/bin/activate
echo 'Installing conda dependencies'
yes | conda install -c conda-forge sox
yes | conda install -c conda-forge libflac
touch $mark
fi
echo "if [ \$(which python) != $venv_dir/bin/python ]; then source $venv_dir/bin/activate; fi" > env.sh
source $venv_dir/bin/activate
export CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
mark=.done-kaldi-tools
if [ ! -f $mark ]; then
echo 'Building Kaldi tools'
rm -rf kaldi
git clone https://github.com/kaldi-asr/kaldi.git || true
# git checkout d619890
cd kaldi/tools
extras/check_dependencies.sh || exit 1
make -j $nj || exit 1
cd $home
touch $mark
fi
mark=.done-kaldi-src
if [ ! -f $mark ]; then
echo 'Building Kaldi src'
cd kaldi/src
./configure --shared --use-cuda=yes --mathlib=ATLAS || exit 1
make clean || exit 1
make depend -j $nj || exit 1
make -j $nj || exit 1
cd $home
touch $mark
fi
mark=.done-pytorch
if [ ! -f $mark ]; then
#### MODIFY THIS TO YOUR VERSION OF PYTORCH/CUDA
pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
cd $home
touch $mark
fi
export KALDI_ROOT=$home/kaldi
mark=.done-pkwrap
if [ ! -f $mark ]; then
echo 'Building pkwrap src'
rm -rf pkwrap
git clone https://github.com/idiap/pkwrap.git
cd pkwrap
# git checkout ccf4094
make
pip install -e .
cd $home
touch $mark
fi
@pchampio
Thanks a lot! Now I compiled my kaldi successfully
But when I compile pkwrap
, I encountered the error:
/usr/include/cublas_api.h:72:10: fatal error: driver_types.h: No such file or directory
I checked my directory and found that driver_types.h
is under the /usr/local/cuda/include
not /usr/include
Solved by cp -r /usr/local/cuda/include/* /usr/include
Hi I follow the instructions of installation but I encountered some errors in
import pkwrap
. The error message are:undefined symbol: _ZN5kaldi23SplitStringOnFirstSpaceERKSsPSsS2_
I check the step
make
but it shows normal.Finished processing dependencies for pkwrap==0.2.27.2