choice.hh File Reference

Overview

gemm: direct, tiled, small, reg, wide, vendor.

evidence: docs/perf/gemm.md

Definition in file choice.hh.

#include <src/select/select.hh>
#include <array>
#include <complex>
#include <cstdint>
#include <string_view>
#include <type_traits>
#include <variant>

Go to the source code of this file.

Classes

struct  batchlas::ops::gemm::Direct
 gemm_direct: one work-item per element, any form; max_wg >= 64 More...
struct  batchlas::ops::gemm::Tiled
 gemm_tiled: 16x16 shared-memory tile, any form; max_wg >= 256 More...
struct  batchlas::ops::gemm::Small
 gemm_small: several matrices per work-group; real, see small_fits More...
struct  batchlas::ops::gemm::Reg
 gemm_reg, float only: m x n x k macro tile with k unroll u; must name a reg_configs entry that instantiates the call's transpose form, and max_wg must cover its threads(). More...
struct  batchlas::ops::gemm::Wide
 gemm_wide, every scalar: 16-byte-granule m x n x k tiles; must name a wide_configs entry that instantiates the call's form, and max_wg must cover its threads(). More...
struct  batchlas::ops::gemm::Vendor
 backend::gemm_vendor; needs the level-3 library More...
struct  batchlas::ops::gemm::Forms
 Transpose forms an instantiation exists for, after the real-scalar C->T fold. More...
struct  batchlas::ops::gemm::RegCfg
 One compiled register config: tr/tc thread tile, stages, the forms instantiated, and whether NN takes the unpredicated leg when the layout allows (derived per call, never a gate). More...
struct  batchlas::ops::gemm::WideCfg
 One compiled wide config. More...

Namespaces

namespace  batchlas
namespace  batchlas::ops
namespace  batchlas::ops::gemm