Flat kernel selection: one choose() per op over measured per-device tables.
Spec: docs/design/flat-kernel-selection.md §4-§5. Everything here is generic over a choice std::variant whose alternatives are family structs (§4.1).
Definition in file select.hh.
#include <src/select/coverage.hh>#include <src/select/vendor.hh>#include <batchlas/blas/enums.hh>#include <batchlas/blas/queue-dispatch.hh>#include <batchlas/export.hh>#include <batchlas/util/sycl-device-queue.hh>#include <algorithm>#include <array>#include <charconv>#include <complex>#include <cstddef>#include <cstdint>#include <cstdio>#include <memory>#include <mutex>#include <optional>#include <set>#include <span>#include <stdexcept>#include <string>#include <string_view>#include <type_traits>#include <utility>#include <variant>#include <vector>Go to the source code of this file.
Classes | |
| struct | batchlas::select::Device |
| The device facts a can_run predicate and the table lookup read (§5.1). More... | |
| struct | batchlas::select::FamilyName< N > |
| A string literal as a template argument: the name of a NoFields family. More... | |
| struct | batchlas::select::NoFields< L > |
| Base of a family with no knobs: struct Cta : NoFields<"cta"> {};. More... | |
| struct | batchlas::select::overloaded< F > |
| std::visit over a choice with one lambda per family. More... | |
| struct | batchlas::select::Rules |
| What an op adds to the generic walk: its last-resort order. More... | |
| struct | batchlas::select::KeyField |
| One field of a lookup key, value as text; a Key lists the fields an op's table keys name. More... | |
| struct | batchlas::select::TableKey |
| One entry of a table's # keys: line. More... | |
| struct | batchlas::select::TableEntry |
| One ranked candidate of a row: its spelling and milliseconds per call for the whole batch. More... | |
| struct | batchlas::select::TableRow |
| One measured (or transcribed) shape and every candidate ranked there, fastest first. More... | |
| struct | batchlas::select::Table |
| One dtype's table: a tuned/<op>.<device>.txt file holds one per dtype. More... | |
| struct | batchlas::select::EmbeddedTable |
| A tuned/*.txt file compiled into the library: its basename and text. More... | |
| struct | batchlas::select::StrictPin |
| Tag for a strict ScopedPin: a class word ("native", "vendor") that cannot serve the shape throws std::invalid_argument instead of falling back to auto. More... | |
| class | batchlas::select::ScopedPin< Choice > |
RAII pin for op: wins over BATCHLAS_<OP>_ROUTE on this thread; nests, restoring the outer pin on exit. More... | |
| struct | batchlas::select::detail::NativeFacts |
| The coverage row's native_route_existed / native_route_supported (tri-state, -1 unknown). More... | |
| class | batchlas::select::TraceScope |
| Prints the last choose() decision for op under BATCHLAS_SELECT_TRACE=1, indents nested scopes, and records the coverage row. More... | |
| struct | batchlas::select::OpSpec |
| What an op's choice.hh declares once: its name, the library its Vendor family calls (one gate for can_run, the launch arm and the NoRouteError), and its last-resort order. More... | |
| struct | batchlas::select::NativeFacts |
| The coverage row's native_route_existed / native_route_supported (tri-state, -1 unknown). More... | |
Namespaces | |
| namespace | batchlas |
| namespace | batchlas::select |
| namespace | batchlas::select::detail |
| namespace | batchlas::select::testing |