25#include <sycl/sycl.hpp>
28namespace shamsys::instance {
41 [[nodiscard]]
const char *what()
const noexcept override {
return msg_.c_str(); }
69 std::optional<shamcomm::StateMPI_Aware> forced_state;
89 void init(
int argc,
char *argv[]);
106 [[deprecated(
"Please use shamrock smi instead")]]
107 void print_device_list();
125 u32 get_compute_queue_eu_count(
u32 id = 0);
127 inline sycl::device get_compute_device() {
return get_compute_queue().get_device(); }
135 sycl::queue &get_alt_queue(
u32 id = 0);
140 std::shared_ptr<sham::DeviceScheduler> get_compute_scheduler_ptr();
141 std::shared_ptr<sham::DeviceScheduler> get_alt_scheduler_ptr();
149 void print_mpi_capabilities();
151 void print_mpi_comm_info();
153 void check_dgpu_available();
void start_mpi(MPIInitInfo mpi_info)
Start MPI.
void print_queue_map()
Print SYCL queue map.
sycl::queue & get_compute_queue(u32 id=0)
void init_sycl_mpi(std::string search_key, MPIInitInfo mpi_info)
Start SYCL & MPI.
bool is_initialized()
to check whether the NodeInstance is initialized
void close()
close the NodeInstance Aka : Finalize both MPI & SYCL
void close_mpi()
Finalize MPI.
std::uint32_t u32
32 bit unsigned integer
Class to manage the scheduling of kernels on a device.
Exception type for the NodeInstance.
Provide information about MPI capabilities.
Struct containing MPI Init informations Usage.
Struct containing Sycl Init informations Usage.
Functions related to the MPI communicator.