Expand description
Host class and the serial GEMM rate of each class.
The rate the width and batch rules use is keyed by the kernel dispatch the
machine takes, not by the CPU model. The class is threadteam::HostClass,
re-exported here: one enum and one detection for the dispatch costs and the
rates below.
| class | ns per flop | multiply-adds per ns | source |
|---|---|---|---|
x86_64-avx512 | 0.032 | 15.6 | AMD Ryzen AI 9 HX 470 at 2.0 GHz (boost off): GEMM f64 0.0641 ns per MAC (faer-benchmark data/probes/20261026-awake-team-linux/tables-consts-exec3.md, gemm_per_mac; the tc_matmul seq times of tables-confirm-exec3.md agree: 0.0678, 0.0657, 0.0644 ns per MAC at n = 48, 64, 96), halved to a flop (a MAC is two flops), then 1 / (2 * 0.032) = 15.6 |
aarch64-apple | 0.0185 | 27 | Apple M5 Max, the serial GEMM rate (about 54 GFLOP/s, threadteam docs/design/thresholds.md section 3.2) |
| every other class | 0.0185 | 27 | the generic row: the fastest known value of each column (the minimum of the ns per flop, the maximum of the multiply-adds per ns over the measured classes); it keeps work serial |
The rate of a class and the dispatch costs of the same class in threadteam
come from the same machine in the same clock state: boost on or off moves both
by about 1.66x and leaves their ratio stable within a few percent
(raw-exec3-boost, tables-*-exec3-boost.md).
Enums§
- Host
Class - The class of the machine, keyed by the kernel dispatch it will take, not by
the CPU model. Detected once per process by
HostClass::detect.
Functions§
- muladds_
per_ ns - Serial multiply-adds per nanosecond on this host (
muladds_per_ns_ofofHostClass::detect). - muladds_
per_ ns_ of - Serial multiply-adds per nanosecond of one GEMM item on a host class: the
same rate as
ns_per_flop_of(1 / ns_per_flop / 2), rounded as the table in the module documentation states it. - ns_
per_ flop - Estimated serial time per real flop on this host (
ns_per_flop_ofofHostClass::detect); the one default the width choice uses everywhere. The width itself is the token’s decision (Exec::width_forover this estimate). - ns_
per_ flop_ of - Estimated serial time per real flop of a GEMM item on a host class (the table in the module documentation).