Skip to main content

Module host

Module host 

Source
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. HostClass and HostClass::detect are the same enum and the same detection as threadteam::HostClass, strided’s and faer’s cost tables, and are kept in sync with them by hand; the tcontract crate reuses this copy.

classns per flopmultiply-adds per nssource
x86_64-avx5120.03215.6AMD 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-apple0.018527Apple M5 Max, the serial GEMM rate (about 54 GFLOP/s, threadteam docs/design/thresholds.md section 3.2)
every other class0.018527the 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§

HostClass
The class of the machine, keyed by the kernel dispatch it will take.

Functions§

muladds_per_ns
Serial multiply-adds per nanosecond on this host (muladds_per_ns_of of HostClass::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_of of HostClass::detect); the one default the width choice uses everywhere. The width itself is the token’s decision (Exec::width_for over 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).