Skip to content

libstdc++.so.6: version `GLIBCXX_3.4.32' not found #423

@nathankessler

Description

@nathankessler

On my system, running the following command throws the following error:

pykeops.test_torch_bindings()

Traceback (most recent call last):
  File "<python-input-1>", line 1, in <module>
    pykeops.test_torch_bindings()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/torch/test_install.py", line 21, in test_torch_bindings
    my_conv(x, y).view(-1), torch.tensor(expected_res).type(torch.float32)
    ~~~~~~~^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/torch/generic/generic_red.py", line 693, in __call__
    out = GenredAutograd_fun(params, *args)
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/torch/generic/generic_red.py", line 383, in GenredAutograd_fun
    return GenredAutograd.apply(*inputs)[0]
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/torch/autograd/function.py", line 575, in apply
    return super().apply(*args, **kwargs)  # type: ignore[misc]
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/torch/generic/generic_red.py", line 291, in forward
    return GenredAutograd_base._forward(*inputs)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/torch/generic/generic_red.py", line 91, in _forward
    myconv = keops_binder["nvrtc" if tagCPUGPU else "cpp"](
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        tagCPUGPU,
        ^^^^^^^^^^
    ...<9 lines>...
        params.optional_flags,
        ^^^^^^^^^^^^^^^^^^^^^^
    ).import_module()
    ^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore/utils/Cache.py", line 92, in __call__
    obj = self.cls(*args)
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/common/keops_io/LoadKeOps_nvrtc.py", line 16, in __init__
    super().__init__(*args, fast_init=fast_init)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/common/keops_io/LoadKeOps.py", line 18, in __init__
    self.init(*args)
    ~~~~~~~~~^^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/pykeops/common/keops_io/LoadKeOps.py", line 127, in init
    ) = get_keops_dll(
        ~~~~~~~~~~~~~^
        map_reduce_id,
        ^^^^^^^^^^^^^^
    ...<14 lines>...
        device_id_request,
        ^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore/utils/Cache.py", line 33, in __call__
    self.library[str_id] = self.fun(*args)
                           ~~~~~~~~^^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore/get_keops_dll.py", line 114, in get_keops_dll_impl
    map_reduce_obj = map_reduce_class(red_formula_string, aliases, *args)
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore/mapreduce/gpu/GpuReduc1D.py", line 17, in __init__
    Gpu_link_compile.__init__(self)
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore/binders/nvrtc/Gpu_link_compile.py", line 64, in __init__
    self.my_c_dll = CDLL(jit_compile_dll(), mode=RTLD_LAZY)
                    ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/ctypes/__init__.py", line 390, in __init__
    self._handle = _dlopen(self._name, mode)
                   ~~~~~~~^^^^^^^^^^^^^^^^^^
OSError: /home/protostus/miniconda3/envs/scikit-env/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /home/protostus/.cache/keops2.3/Linux_protostus-ASUS-TUF-Gaming-A15-FA506QM-TUF506QM_6.8.0-51-generic_p3.13.5/nvrtc_jit.so)

Running pykeops.check_health() does not seem to detect an issue:

pykeops.check_health()

Platform Information
============================================================
Operating System: Linux Ubuntu 24.04
Python Version: 3.13.5
Environment Type: conda (scikit-env)

Relevant Environment Variables
------------------------------------------------------------
CONDA_DEFAULT_ENV = scikit-env
VIRTUAL_ENV is not set
PATH = /usr/local/cuda-12.4/bin:/usr/local/cuda-12.4/bin:/home/protostus/miniconda3/envs/scikit-env/bin:/home/protostus/miniconda3/condabin:/home/protostus/.cabal/bin:/home/protostus/.ghcup/bin:/home/protostus/.elan/bin:/usr/local/texlive/2023/bin/x86_64-linux:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/opt/nvim-linux64/bin:/opt/nvim-linux64/bin
PYTHONPATH is not set
CXX is not set

Base Configuration
------------------------------------------------------------
Base Directory Path: /home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore ✅
Bindings Source Directory: /home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore ✅
KeOps Cache Folder: /home/protostus/.cache/keops2.3 ✅
Default Build Folder Name: Linux_protostus-ASUS-TUF-Gaming-A15-FA506QM-TUF506QM_6.8.0-51-generic_p3.13.5
Default Build Path: /home/protostus/.cache/keops2.3/Linux_protostus-ASUS-TUF-Gaming-A15-FA506QM-TUF506QM_6.8.0-51-generic_p3.13.5 ✅
JIT Binary Path: /home/protostus/.cache/keops2.3/Linux_protostus-ASUS-TUF-Gaming-A15-FA506QM-TUF506QM_6.8.0-51-generic_p3.13.5 ✅
Disable Pragma Unrolls: Enabled ✅
Compile Options:  -shared -fPIC -O3 -std=c++11
C++ Compiler Flags:   -shared -fPIC -O3 -std=c++11 -I/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore/include -I/home/protostus/miniconda3/envs/scikit-env/lib/python3.13/site-packages/keopscore -fopenmp -flto=auto

Relevant Environment Variables:
KEOPS_CACHE_FOLDER is not set
CXXFLAGS is not set

CUDA Support
------------------------------------------------------------
CUDA Support: Enabled ✅
Libcuda Path: /lib/x86_64-linux-gnu
Libnvrtc Path: /usr/local/cuda/targets/x86_64-linux/lib
CUDA Version: 12040
Number of GPUs: 1
GPU Compile Flags: -DMAXIDGPU=0 -DMAXTHREADSPERBLOCK0=1024 -DSHAREDMEMPERBLOCK0=49152 
CUDA Include Path: /usr/local/cuda/include

Relevant Environment Variables:
CUDA_VISIBLE_DEVICES is not set
CUDA_PATH is not set

OpenMP Support
------------------------------------------------------------
OpenMP Support: Enabled ✅
OpenMP Library Path: /home/protostus/miniconda3/envs/scikit-env/lib/libgomp.so.1
C++ Compiler: g++

Relevant Environment Variables:
OMP_PATH is not set

Metadata

Metadata

Assignees

Labels

c++related to compilation and c++xx

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions