Hello, I'm running into this issue when compiling a Genred for the CPU backend. I assume it's a simple environment issue. I have g++ installed (as well as build-essential etc.).
How can I make sure that KeOps can find the compiler? Is there a good way to make this portable and search as widely as possible on unknown systems as well?
Stack trace:
/root/build/env/lib/python3.10/site-packages/pykeops/torch/generic/generic_red.py:627: in __call__
out = GenredAutograd.apply(
/root/build/env/lib/python3.10/site-packages/torch/autograd/function.py:506: in apply
return super().apply(*args, **kwargs) # type: ignore[misc]
/root/build/env/lib/python3.10/site-packages/pykeops/torch/generic/generic_red.py:78: in forward
myconv = keops_binder["nvrtc" if tagCPUGPU else "cpp"](
/root/build/env/lib/python3.10/site-packages/keopscore/utils/Cache.py:68: in __call__
obj = self.cls(*args)
/root/build/env/lib/python3.10/site-packages/pykeops/common/keops_io/LoadKeOps_cpp.py:15: in __init__
super().__init__(*args, fast_init=fast_init)
/root/build/env/lib/python3.10/site-packages/pykeops/common/keops_io/LoadKeOps.py:31: in __init__
self.init_phase2()
/root/build/env/lib/python3.10/site-packages/pykeops/common/keops_io/LoadKeOps_cpp.py:40: in init_phase2
mylib = importlib.import_module(
/usr/lib/python3.10/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
???
<frozen importlib._bootstrap>:1027: in _find_and_load
???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = 'pykeops_cpp_b5f6bb40b3', import_ = <function _gcd_import at 0x7f0774023400>
> ???
E ModuleNotFoundError: No module named 'pykeops_cpp_b5f6bb40b3'
<frozen importlib._bootstrap>:1004: ModuleNotFoundError
---------------------------------------------------------------------------------------------- Captured stdout setup -----------------------------------------------------------------------------------------------
Loaded tests/data/timeseries/gaussian.parquet, timeseries shape: (256, 4096)
----------------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------------
[KeOps] Generating code for formula Sum_Reduction(ComplexMult(Real2Complex(1/ComplexSquareAbs(ComplexMult(Var(1,2,0)-Var(2,2,1),Var(1,2,0)-Conj(Var(2,2,1))))),ComplexMult(Var(1,2,0)*ComplexReal(Var(0,2,1))-Real2Complex(Sum(Var(0,2,1)*Var(2,2,1))),Conj(ComplexMult(Var(1,2,0)-Var(2,2,1),Var(1,2,0)-Conj(Var(2,2,1)))))),0) ... OK
[pyKeOps] Compiling pykeops cpp b5f6bb40b3 module ...
[KeOps] Warning : There were warnings or errors compiling formula :
/bin/sh: 1: g++: not found
Hello, I'm running into this issue when compiling a Genred for the CPU backend. I assume it's a simple environment issue. I have g++ installed (as well as
build-essential
etc.).How can I make sure that KeOps can find the compiler? Is there a good way to make this portable and search as widely as possible on unknown systems as well?
Stack trace:
g++ -v
:Thanks!