|
Uni20
Asynchronous tensor and runtime library.
|
Compile-time-gated performance duration measurements. More...
#include <algorithm>#include <array>#include <atomic>#include <chrono>#include <concepts>#include <cstddef>#include <exception>#include <functional>#include <optional>#include <ranges>#include <span>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | uni20::performance::BatchMeasurement |
| Detailed timing summary for one synchronous lightweight batch. More... | |
| class | uni20::performance::DetailedMeasurements< Event, EventCount > |
| Fixed-size detailed collector retaining every measured batch. More... | |
| class | uni20::performance::DurationMeasurements< Event, EventCount > |
| Fixed-size coarse wall-duration collector indexed by an event enum. More... | |
| struct | uni20::performance::DurationStatistics |
| Aggregate duration statistics for repeated instances of one event. More... | |
| struct | uni20::performance::NoMeasurements |
| Explicit disabled measurement policy used by ordinary operation overloads. More... | |
Namespaces | |
| namespace | uni20 |
| namespace | uni20::performance |
Concepts | |
| concept | uni20::performance::DurationMeasurementPolicy |
| Measurement policy that either disables instrumentation or records event durations. | |
| concept | uni20::performance::BatchMeasurementPolicy |
| Measurement policy compatible with detailed synchronous batch records. | |
Typedefs | |
| using | uni20::performance::Duration = std::chrono::nanoseconds |
| Duration type shared by performance measurement collectors. | |
| using | uni20::performance::WallClock = std::chrono::steady_clock |
| Clock used for host wall-duration measurements. | |
Enumerations | |
| enum class | uni20::performance::MeasurementLevel { uni20::performance::none , uni20::performance::coarse , uni20::performance::detailed } |
| Selects how much performance instrumentation an operation instantiates. More... | |
Functions | |
| template<class Measurements , class Event , class Executor , class Function > requires BatchMeasurementPolicy<Measurements, Event> && std::invocable<Function&, std::size_t> | |
| void | uni20::performance::measure_batch (Measurements &measurements, Event event, std::size_t size, Executor &&executor, Function &&function) |
| Execute a synchronous batch with compile-time-selected timing detail. | |
| template<class Measurements , class Event , class Function > requires DurationMeasurementPolicy<Measurements, Event> && std::invocable<Function> | |
| decltype(auto) | uni20::performance::measure_duration (Measurements &measurements, Event event, Function &&function) |
| Invoke a function with compile-time-gated wall-duration measurement. | |
Variables | |
| template<class Measurements > | |
| constexpr MeasurementLevel | uni20::performance::measurement_level_v = std::remove_cvref_t<Measurements>::measurement_level |
| Compile-time instrumentation level declared by a measurement policy. | |
Compile-time-gated performance duration measurements.