Failing to cmake exla on a new Bumblebee project

Hey everyone ! I was trying to start a new bumblebee project on my OpenSuse installation and i’m running on this issue which seems to be related to gcc/cmake but not exactly sure which approach to take to fix it :sweat_smile:

/.local/share/rtx/installs/erlang/26.0.2/erts-14.0.2/include -Icache/xla_extension/include -O3 -Wall -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers -Wno-comment -shared -std=c++17 -w -DLLVM_VERSION_STRING= c_src/exla/exla.cc c_src/exla/exla_nif_util.cc c_src/exla/exla_client.cc -o cache/libexla.so -Lcache/xla_extension/lib -lxla_extension -Wl,-rpath,'$ORIGIN/xla_extension/lib'
In file included from cache/xla_extension/include/xla/service/executable.h:33:0,
                 from cache/xla_extension/include/xla/service/compiler.h:40,
                 from cache/xla_extension/include/xla/client/local_client.h:29,
                 from cache/xla_extension/include/xla/pjrt/gpu/gpu_helpers.h:25,
                 from c_src/exla/exla_client.h:11,
                 from c_src/exla/exla.cc:4:
cache/xla_extension/include/xla/service/service_executable_run_options.h: In member function ‘absl::lts_20230125::StatusOr<std::unique_ptr<stream_executor::Stream, xla::StreamPool::PtrDeleter> > xla::ServiceExecutableRunOptions::BorrowStream(int, stream_executor::StreamPriority) const’:
cache/xla_extension/include/xla/service/service_executable_run_options.h:73:12: error: could not convert ‘stream’ from ‘xla::StreamPool::Ptr {aka std::unique_ptr<stream_executor::Stream, xla::StreamPool::PtrDeleter>}’ to ‘absl::lts_20230125::StatusOr<std::unique_ptr<stream_executor::Stream, xla::StreamPool::PtrDeleter> >’
     return stream;
            ^~~~~~
In file included from cache/xla_extension/include/xla/service/executable.h:33:0,
                 from cache/xla_extension/include/xla/service/compiler.h:40,
                 from cache/xla_extension/include/xla/client/local_client.h:29,
                 from cache/xla_extension/include/xla/pjrt/gpu/gpu_helpers.h:25,
                 from c_src/exla/exla_client.h:11,
                 from c_src/exla/exla_client.cc:1:
cache/xla_extension/include/xla/service/service_executable_run_options.h: In member function ‘absl::lts_20230125::StatusOr<std::unique_ptr<stream_executor::Stream, xla::StreamPool::PtrDeleter> > xla::ServiceExecutableRunOptions::BorrowStream(int, stream_executor::StreamPriority) const’:
cache/xla_extension/include/xla/service/service_executable_run_options.h:73:12: error: could not convert ‘stream’ from ‘xla::StreamPool::Ptr {aka std::unique_ptr<stream_executor::Stream, xla::StreamPool::PtrDeleter>}’ to ‘absl::lts_20230125::StatusOr<std::unique_ptr<stream_executor::Stream, xla::StreamPool::PtrDeleter> >’
     return stream;
            ^~~~~~
make: *** [Makefile:57: cache/libexla.so] Error 1

appreciate any help with it :pray:

Please include Elixir, Erlang, gcc and any other relevant versions. :slight_smile:

Hi José !
Here’s the relevant versions:
OS: openSUSE Leap 15.5 (Kernel 5.14.21)
gcc (SUSE Linux) 7.5.0
cmake version 3.20.4
Elixir 1.15.5 (compiled with Erlang/OTP 26)
Erlang/OTP 26(26.0.2)
bazel 6.1.2
Python 3.6.15
NumPy 1.19.5

Let me know if you need more logs.
I’ve tried compiling xla from source but it also failed towards the end of the compilation process.

Assuming you are on latest XLA (v0.5.1), it all looks good to me.

I can only think of it being a gcc issue, which I can’t be of much help, sorry. :frowning:

Hey @urielfcampos, the only idea I have is to update GCC to at least version 9 and see if it changes anything.

Thanks Jonatan and Jose !

I’ve tried updating GCC to 9 and to 12 but no luck on getting it to compile :cry:
I will try and switch to Ubuntu and see how it goes haha

Managed to get it working on WSL2 so i guess that’s the simplest way to go about it