27#include "neml2/dispatchers/WorkScheduler.h"
101 const std::vector<DeviceStatus> &
status()
const {
return _devices; }
103 std::vector<Device>
devices()
const override {
return _available_devices; }
124 std::vector<Device> _available_devices;
133 std::vector<DeviceStatus> _devices;
136 std::function<double(
const DeviceStatus &)> _custom_availability_calculator;
A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed.
Definition OptionSet.h:52
bool schedule_work_impl(Device &, std::size_t &) const override
Pick the next device to dispatch work to.
void completed_work_impl(Device, std::size_t) override
Update the scheduler with the completion of the last batch.
StaticHybridScheduler(const OptionSet &options)
Construct from options.
const std::vector< DeviceStatus > & status() const
Definition StaticHybridScheduler.h:101
void dispatched_work_impl(Device, std::size_t) override
Update the scheduler with the dispatch of the last batch.
std::vector< Device > devices() const override
Device options.
Definition StaticHybridScheduler.h:103
static OptionSet expected_options()
Options for the scheduler.
bool all_work_completed() const override
Check if all work has been completed.
void set_availability_calculator(std::function< double(const DeviceStatus &)>)
Set a custom availability calculator.
WorkScheduler(const OptionSet &options)
Construct a new WorkScheduler object.
Definition DiagnosticsInterface.h:31
c10::Device Device
Definition types.h:69
Definition StaticHybridScheduler.h:41
std::size_t load
Definition StaticHybridScheduler.h:54
DeviceStatus(Device device, std::size_t batch_size, std::size_t capacity, double priority)
Definition StaticHybridScheduler.h:42
std::size_t batch_size
Definition StaticHybridScheduler.h:51
std::size_t capacity
Definition StaticHybridScheduler.h:52
Device device
Definition StaticHybridScheduler.h:50
double priority
Definition StaticHybridScheduler.h:53