sherpa-onnx icon indicating copy to clipboard operation
sherpa-onnx copied to clipboard

compile cuda version sherpa-onnx errors

Open shanguanma opened this issue 2 months ago • 5 comments

I follow the content https://k2-fsa.github.io/sherpa/onnx/python/install.html#method-2-from-pre-compiled-wheels-cpu-cuda to install it.

The command is as follows:

cmake \
  -DSHERPA_ONNX_ENABLE_PYTHON=ON \
  -DBUILD_SHARED_LIBS=ON \
  -DSHERPA_ONNX_ENABLE_CHECK=OFF \
  -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \
  -DSHERPA_ONNX_ENABLE_C_API=OFF \
  -DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \
  -DSHERPA_ONNX_ENABLE_GPU=ON \
  ..

make -j

The error is as follows:

[ 93%] Building CXX object sherpa-onnx/python/csrc/CMakeFiles/_sherpa_onnx.dir/offline-speaker-diarization.cc.o
[ 93%] Linking CXX executable ../../bin/sherpa-onnx-offline-punctuation
[ 95%] Linking CXX executable ../../bin/sherpa-onnx-offline-zeroshot-tts
[ 95%] Linking CXX executable ../../bin/sherpa-onnx-online-punctuation
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
[ 95%] Linking CXX executable ../../bin/sherpa-onnx-offline-tts
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-punctuation.dir/build.make:114: bin/sherpa-onnx-offline-punctuation] Error 1
make[1]: *** [CMakeFiles/Makefile2:2944: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-punctuation.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 95%] Linking CXX executable ../../bin/sherpa-onnx-vad
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-online-punctuation.dir/build.make:114: bin/sherpa-onnx-online-punctuation] Error 1
[ 96%] Linking CXX executable ../../bin/sherpa-onnx-offline-source-separation
make[1]: *** [CMakeFiles/Makefile2:3028: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-online-punctuation.dir/all] Error 2
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-source-separation.dir/build.make:114: bin/sherpa-onnx-offline-source-separation] Error 1
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
make[1]: *** [CMakeFiles/Makefile2:2986: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-source-separation.dir/all] Error 2
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-vad.dir/build.make:114: bin/sherpa-onnx-vad] Error 1
make[1]: *** [CMakeFiles/Makefile2:3101: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-vad.dir/all] Error 2
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-zeroshot-tts.dir/build.make:114: bin/sherpa-onnx-offline-zeroshot-tts] Error 1
make[1]: *** [CMakeFiles/Makefile2:3185: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-zeroshot-tts.dir/all] Error 2
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-tts.dir/build.make:114: bin/sherpa-onnx-offline-tts] Error 1
make[1]: *** [CMakeFiles/Makefile2:3143: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-tts.dir/all] Error 2
[ 96%] Linking CXX executable ../../bin/sherpa-onnx-offline-parallel
[ 98%] Linking CXX executable ../../bin/sherpa-onnx-offline-denoiser
[ 98%] Linking CXX executable ../../bin/sherpa-onnx-offline-language-identification
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-language-identification.dir/build.make:114: bin/sherpa-onnx-offline-language-identification] Error 1
make[1]: *** [CMakeFiles/Makefile2:2860: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-language-identification.dir/all] Error 2
[ 98%] Linking CXX executable ../../bin/sherpa-onnx-offline-audio-tagging
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-denoiser.dir/build.make:114: bin/sherpa-onnx-offline-denoiser] Error 1
make[1]: *** [CMakeFiles/Makefile2:2818: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-denoiser.dir/all] Error 2
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-parallel.dir/build.make:114: bin/sherpa-onnx-offline-parallel] Error 1
make[1]: *** [CMakeFiles/Makefile2:2902: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-parallel.dir/all] Error 2
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-audio-tagging.dir/build.make:114: bin/sherpa-onnx-offline-audio-tagging] Error 1
make[1]: *** [CMakeFiles/Makefile2:2776: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-audio-tagging.dir/all] Error 2
[ 98%] Linking CXX executable ../../bin/sherpa-onnx-offline
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline.dir/build.make:114: bin/sherpa-onnx-offline] Error 1
make[1]: *** [CMakeFiles/Makefile2:2734: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline.dir/all] Error 2
[ 98%] Linking CXX executable ../../bin/sherpa-onnx-offline-speaker-diarization
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-speaker-diarization.dir/build.make:114: bin/sherpa-onnx-offline-speaker-diarization] Error 1
make[1]: *** [CMakeFiles/Makefile2:3227: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-offline-speaker-diarization.dir/all] Error 2
[ 98%] Linking CXX executable ../../bin/sherpa-onnx-keyword-spotter
[ 98%] Linking CXX executable ../../bin/sherpa-onnx
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-keyword-spotter.dir/build.make:114: bin/sherpa-onnx-keyword-spotter] Error 1
make[1]: *** [CMakeFiles/Makefile2:2692: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx-keyword-spotter.dir/all] Error 2
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/csrc/CMakeFiles/sherpa-onnx.dir/build.make:114: bin/sherpa-onnx] Error 1
make[1]: *** [CMakeFiles/Makefile2:2650: sherpa-onnx/csrc/CMakeFiles/sherpa-onnx.dir/all] Error 2
[100%] Linking CXX shared module ../../../lib/_sherpa_onnx.cpython-311-x86_64-linux-gnu.so
/usr/bin/ld: cannot find /lib64/libm.so.6: No such file or directory
/usr/bin/ld: cannot find /lib64/libmvec.so.1: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [sherpa-onnx/python/csrc/CMakeFiles/_sherpa_onnx.dir/build.make:1186: lib/_sherpa_onnx.cpython-311-x86_64-linux-gnu.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:3331: sherpa-onnx/python/csrc/CMakeFiles/_sherpa_onnx.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

Could you help me? Thanks a lot.

NOTE: I also try to use pre-compiled wheels .i.e.:pip install sherpa-onnx==1.12.11+cuda -f https://k2-fsa.github.io/sherpa/onnx/cuda.html, to install sherpa-onnx It did not throw an error. After I entered the specified node (because I was using a GPU node in a slurm training cluster), I kept getting the following error: python3 -c "import sherpa_onnx; print(sherpa_onnx.__file__)" Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/maduo/.conda/envs/sherpa_onnx_py311/lib/python3.11/site-packages/sherpa_onnx/__init__.py", line 1, in <module> from sherpa_onnx.lib._sherpa_onnx import ( ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/maduo/.conda/envs/sherpa_onnx_py311/lib/python3.11/site-packages/sherpa_onnx/lib/_sherpa_onnx.cpython-311-x86_64-linux-gnu.so)

shanguanma avatar Sep 02 '25 08:09 shanguanma

Hi @shanguanma! I'm Dosu and I’m helping the sherpa-onnx team.

You’re hitting two separate issues:

  1. Build errors: /lib64/libm.so.6 and /lib64/libmvec.so.1 not found
    These are standard math libraries from glibc and libmvec. Their absence usually means your system is missing core runtime libraries or your build node is misconfigured. On most Linux systems, these should be present by default. Try:
ls -l /lib64/libm.so.6 /lib64/libmvec.so.1

If they’re missing, you’ll need to install or restore the glibc and libmvec packages. For example, on CentOS/RHEL:

sudo yum install glibc libmvec

On Ubuntu/Debian:

sudo apt-get install libc6 libmvec1

If you’re on a managed cluster, you may need to ask your admin to fix the node.

  1. Runtime error: GLIBCXX_3.4.30 not found
    This means your system’s libstdc++.so.6 is too old for the pre-built wheel you installed. You can check your available GLIBCXX versions with:
strings /usr/lib*/libstdc++.so.6 | grep GLIBCXX

If GLIBCXX_3.4.30 is missing, you need a newer GCC/libstdc++ (GCC 10+). On Ubuntu 20.04+ or CentOS 8+, this should be available. If you’re using an older OS, you may need to update GCC or use a newer runtime node.

Other notes:

  • Make sure your CUDA toolkit is version 11.8, as required for GPU support source.
  • On clusters, build and runtime environments can differ. Always check that the node you build on matches the node you run on, especially for system libraries and toolchain versions.

If you’re still stuck after these checks, let me know your Linux distribution and version, and I can suggest more specific commands.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

dosubot[bot] avatar Sep 02 '25 08:09 dosubot[bot]

Please post complete logs.

csukuangfj avatar Sep 05 '25 08:09 csukuangfj

@csukuangfj ,thanks for your reply. The above bug has not been reproduced yet, but the new problem is that there is no problem with compilation. I follow the below steps to install sherpa-onnx:

conda activate s2s
pip install uv
uv pip install torch==2.7.1  torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu118
git clone https://github.com/k2-fsa/sherpa-onnx
cd sherpa-onnx
mkdir build
cd build

cmake \
  -DSHERPA_ONNX_ENABLE_PYTHON=ON \
  -DBUILD_SHARED_LIBS=ON \
  -DSHERPA_ONNX_ENABLE_CHECK=OFF \
  -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \
  -DSHERPA_ONNX_ENABLE_C_API=OFF \
  -DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \
  -DSHERPA_ONNX_ENABLE_GPU=ON \
  ..

make -j
export PYTHONPATH=$PWD/../sherpa-onnx/python/:$PWD/lib:$PYTHONPATH

the error is as follows:

python3 -c "import sherpa_onnx; print(sherpa_onnx.__file__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/data/maduo/codebase/sherpa-onnx/sherpa-onnx/python/sherpa_onnx/__init__.py", line 1, in <module>
    from sherpa_onnx.lib._sherpa_onnx import (
ModuleNotFoundError: No module named 'sherpa_onnx.lib'

then I will try to install pre-compile wheels as the follow commands:

uv pip install sherpa-onnx==1.12.13+cuda -f https://k2-fsa.github.io/sherpa/onnx/cuda.html

the error is as follows:

python3 -c "import sherpa_onnx; print(sherpa_onnx.__file__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/data/maduo/codebase/sherpa-onnx/sherpa-onnx/python/sherpa_onnx/__init__.py", line 1, in <module>
    from sherpa_onnx.lib._sherpa_onnx import (
ModuleNotFoundError: No module named 'sherpa_onnx.lib'

Could you help me?

shanguanma avatar Sep 18 '25 06:09 shanguanma

Image

Please create a symlink inside

/data/maduo/codebase/sherpa-onnx/sherpa-onnx/python/sherpa_onnx/lib

See the screenshot above.

csukuangfj avatar Sep 18 '25 06:09 csukuangfj

Thanks a lot, it is working for me.

shanguanma avatar Sep 18 '25 06:09 shanguanma