28 #ifndef SPLA_LIBRARY_HPP
29 #define SPLA_LIBRARY_HPP
35 #include <unordered_map>
195 std::unordered_map<std::string, std::string> m_env;
196 std::unique_ptr<class Accelerator> m_accelerator;
197 std::unique_ptr<class Registry> m_registry;
198 std::unique_ptr<class Dispatcher> m_dispatcher;
199 std::unique_ptr<class Logger> m_logger;
200 std::unique_ptr<class TimeProfiler> m_time_profiler;
201 bool m_force_no_acc =
false;
Types of supported accelerators for computations.
Callback function called on library message event.
Status of library operation execution.
Interface for an computations acceleration backend.
Definition: accelerator.hpp:58
Class responsible for dispatching of execution of a single task.
Definition: dispatcher.hpp:58
Library global state automatically instantiated on lib init.
Definition: library.hpp:48
Status set_queues_count(int count)
Set number of GPU queues for parallel ops execution.
Definition: library.cpp:136
class Dispatcher * get_dispatcher()
Definition: library.cpp:206
bool is_set_force_no_acceleration()
Definition: library.cpp:171
Status set_platform(int index)
Selects platform for computations for current accelerator.
Definition: library.cpp:128
Status set_device(int index)
Selects device for computations for current accelerator.
Definition: library.cpp:132
Status time_profile_dump()
Dumps to default output current time profile.
Definition: library.cpp:184
Status time_profile_reset()
Reset current time profile.
Definition: library.cpp:191
class Logger * get_logger()
Definition: library.cpp:210
Library(const Library &)=delete
Status set_default_callback()
Sets default library callback to log messages to console.
Definition: library.cpp:146
class TimeProfiler * get_time_profiler()
Definition: library.cpp:214
Status get_accelerator_info(std::string &info)
Get acc info in a form of a string.
Definition: library.cpp:175
Status set_force_no_acceleration(bool value)
Sets option to force cpu only usage without acceleration.
Definition: library.cpp:165
static Library * get()
Access global library instance.
Definition: library.cpp:218
class Registry * get_registry()
Definition: library.cpp:202
Status set_message_callback(MessageCallback callback)
Set callback function called on library message event.
Definition: library.cpp:140
Library(Library &&)=delete
Library()
Definition: library.cpp:70
class Accelerator * get_accelerator()
Definition: library.cpp:198
Status set_accelerator(AcceleratorType accelerator)
Set accelerator to be used in library computations.
Definition: library.cpp:106
void finalize()
Finalize library execution.
Definition: library.cpp:97
Library logger.
Definition: logger.hpp:48
Registry with key-algo mapping of stored algo implementations.
Definition: registry.hpp:78
Scope-based time profiler to measure perf of schedule tasks execution.
Definition: time_profiler.hpp:70
#define SPLA_API
Definition: config.hpp:43
Definition: algorithm.hpp:37