5#include <unordered_map>
29 temporaries_.push_back(std::move(arr));
35 std::make_move_iterator(arrays.begin()),
36 std::make_move_iterator(arrays.end()));
43 template <
class F,
class...
Args>
46 auto task = std::bind(std::forward<F>(f), std::forward<Args>(args)...);
49 auto task_wrap = [s = stream_, task = std::move(task)]()
mutable {
61 std::vector<array> temporaries_;
constexpr int DISPATCHES_PER_TASK
Definition encoder.h:13
CommandEncoder & get_command_encoder(Stream stream)
void notify_task_completion(const Stream &stream)
Definition scheduler.h:177
void notify_new_task(const Stream &stream)
Definition scheduler.h:173
void enqueue(const Stream &stream, F &&f)
Definition scheduler.h:165
std::vector< array > Args
Definition export.h:11
void add_temporary(array arr)
Definition encoder.h:28
CommandEncoder(Stream stream)
Definition encoder.h:16
void add_temporaries(std::vector< array > arrays)
Definition encoder.h:32
CommandEncoder & operator=(const CommandEncoder &)=delete
std::vector< array > & temporaries()
Definition encoder.h:39
CommandEncoder(const CommandEncoder &)=delete
void set_input_array(const array &a)
Definition encoder.h:23
CommandEncoder(CommandEncoder &&)=delete
void set_output_array(array &a)
Definition encoder.h:24
void dispatch(F &&f, Args &&... args)
Definition encoder.h:44
CommandEncoder & operator=(CommandEncoder &&)=delete