batchlas::ops::syrk Namespace Reference

Functions

◆ candidates()

template<class T>
auto batchlas::ops::syrk::candidates ( )
constexpr

Every compiled choice in tie-break order (§6.3); triangular is float only (R7).

Definition at line 25 of file choice.hh.

◆ form_of()

std::string_view batchlas::ops::syrk::form_of ( std::int64_t a,
std::int64_t b )
inline

Definition at line 38 of file choice.hh.

◆ triangular_groups()

std::int64_t batchlas::ops::syrk::triangular_groups ( std::int64_t n,
std::int64_t tile )
inlineconstexpr

Definition at line 57 of file choice.hh.

◆ gram_tile()

int batchlas::ops::syrk::gram_tile ( std::int64_t n)
inlineconstexpr

Definition at line 63 of file choice.hh.

◆ gram_threads()

int batchlas::ops::syrk::gram_threads ( std::int64_t n)
inlineconstexpr

Definition at line 64 of file choice.hh.

◆ gram_slm_bytes()

template<class T>
std::int64_t batchlas::ops::syrk::gram_slm_bytes ( std::int64_t n)
constexpr

Definition at line 69 of file choice.hh.

◆ herk_gram_pinned()

bool batchlas::ops::syrk::herk_gram_pinned ( )
inline

herk's opt-in to the conjugating gram kernel: syrk's pin is exactly gram.

Definition at line 74 of file choice.hh.

Types

◆ SyrkChoice

fieldless (tile, leg derived); natives: CUDA GPU

Definition at line 22 of file choice.hh.

Variables

◆ last_resort

std::array<std::string_view, 3> batchlas::ops::syrk::last_resort {"triangular", "gram", "vendor"}
inlineconstexpr

none runs

Definition at line 30 of file choice.hh.

◆ spec

select::OpSpec batchlas::ops::syrk::spec {Op::syrk, select::Lib::level3, {last_resort}}
inlineconstexpr

op, vendor library, rules

Definition at line 31 of file choice.hh.

◆ key_names

std::array<std::string_view, 5> batchlas::ops::syrk::key_names
inlineconstexpr
Initial value:
{"form:exact", "trans:exact", "n:log:2", "k:log",
"batch:log"}

Keys: form (transcribed squareish ratio of n, k) and trans N|T|C exact; n weight 2 (work ~ n^2 k batch); k = op(A)'s inner.

Definition at line 35 of file choice.hh.

◆ grid_n

std::array<int, 30> batchlas::ops::syrk::grid_n
inlineconstexpr
Initial value:
{1, 2, 4, 8, 16, 32, 64, 128, 129, 256,
257, 384, 385, 512, 513, 640, 641, 768, 769, 896,
897, 1024, 1025, 1152, 1153, 1536, 1537, 2176, 2177, 4096}

n axis

Definition at line 44 of file choice.hh.

◆ grid_trans

std::array<std::string_view, 3> batchlas::ops::syrk::grid_trans {"N", "T", "C"}
inlineconstexpr

trans axis of the grid

Definition at line 48 of file choice.hh.

◆ grid_k

std::array<int, 6> batchlas::ops::syrk::grid_k {1, 7, 8, 64, 512, 4096}
inlineconstexpr

k axis of the grid

Definition at line 49 of file choice.hh.

◆ grid_batch

std::array<int, 17> batchlas::ops::syrk::grid_batch {1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16, 26, 27, 128, 1024, 32768}
inlineconstexpr

Definition at line 50 of file choice.hh.

◆ kMaxGridBatch

std::int64_t batchlas::ops::syrk::kMaxGridBatch = 65535
inlineconstexpr

batch ceiling of both tile kernels

Definition at line 54 of file choice.hh.

◆ kMaxGridTiles

std::int64_t batchlas::ops::syrk::kMaxGridTiles = 65535
inlineconstexpr

triangular's tile-count ceiling

Definition at line 55 of file choice.hh.

◆ kTriangularWg

int batchlas::ops::syrk::kTriangularWg = 256
inlineconstexpr

syrk_triangular_tiles' 16 x 16 work-group

Definition at line 56 of file choice.hh.

Classes

struct  Gram
 syrk_gram_tiles: one tile covers C; n <= 128, tile SLM fits More...
struct  Triangular
 syrk_triangular_tiles<float>: 128-wide tiles of one half More...
struct  Vendor
 backend::syrk_vendor (per-item ?syrk loop) More...