|
Uni20
Asynchronous tensor and runtime library.
|
Coroutine scheduler for AsyncTask. More...
#include "async.hpp"#include "cuda_task.hpp"#include "scheduler.hpp"#include "task_registry.hpp"#include <algorithm>#include <cstdint>#include <numeric>#include <random>#include <uni20/common/display.hpp>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| class | uni20::async::DebugScheduler |
| Single-threaded scheduler with configurable runnable-batch ordering. More... | |
| struct | uni20::async::DebugSchedulerOptions |
| Configuration for deterministic debug scheduling. More... | |
| class | uni20::async::ScopedScheduler |
| RAII helper that temporarily overrides the global scheduler. More... | |
Namespaces | |
| namespace | uni20 |
| namespace | uni20::async |
| This represents the reverse-mode adjoint for functions of complex variables, assuming a real-valued scalar loss function ( L \colon \mathbb{C} \to \mathbb{R} ). | |
Enumerations | |
| enum class | uni20::async::DebugSchedulerOrder { uni20::async::fifo , uni20::async::reverse , uni20::async::random } |
Runnable-batch ordering policy for DebugScheduler. More... | |
Functions | |
| template<class Function > requires std::invocable<Function&, std::size_t> | |
| void | uni20::async::execute_batch (std::size_t size, Function &&function) |
| Execute a synchronous lightweight batch on the global scheduler. | |
| IAsyncScheduler * | uni20::async::get_global_scheduler () |
| Returns the currently-installed process-wide scheduler. | |
| void | uni20::async::reset_global_scheduler () |
| Restores the process-wide scheduler to the default debug scheduler. | |
| void | uni20::async::schedule (AsyncTask &&task) |
| Schedule a task on the currently configured global scheduler. | |
| void | uni20::async::schedule (CudaTask &&task) |
| Schedule a CUDA task on the currently configured global scheduler. | |
| void | uni20::async::schedule (CudaTask &&task, int device) |
| Schedule a CUDA task with initial device affinity. | |
| void | uni20::async::set_global_scheduler (IAsyncScheduler *sched) |
| Sets the process-wide scheduler used by async helpers. | |
Coroutine scheduler for AsyncTask.