select.hh File Reference

Overview

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