batchlas::ops::trmm Namespace Reference

Functions

◆ candidates()

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

Every compiled choice, in tie-break order (§6.3): triangular, expand, vendor.

Definition at line 22 of file choice.hh.

Types

◆ TrmmChoice

row tile (trmm_row_tile) derived; natives: CUDA GPU

Definition at line 19 of file choice.hh.

Variables

◆ last_resort

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

nothing runs

Definition at line 24 of file choice.hh.

◆ spec

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

op, vendor library, rules

Definition at line 26 of file choice.hh.

◆ kMaxGridBatch

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

both natives: batch in grid z; 65536 throws

Definition at line 28 of file choice.hh.

◆ kMaxGridTiles

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

triangular: row x column tiles in grid y

Definition at line 29 of file choice.hh.

◆ kNativeWg

int batchlas::ops::trmm::kNativeWg = 256
inlineconstexpr

widest native work-group: the 128-row tile, the expansion

Definition at line 30 of file choice.hh.

◆ key_names

std::array<std::string_view, 4> batchlas::ops::trmm::key_names {"side:exact", "order:log:2", "q:log", "batch:log"}
inlineconstexpr

Keys: side exact; order = A.rows(), weight 2 (work ~ order^2 q batch); q = B.cols() (Left) or B.rows() (Right).

Definition at line 33 of file choice.hh.

◆ grid_order

std::array<int, 9> batchlas::ops::trmm::grid_order {1, 16, 32, 64, 128, 256, 512, 1024, 2048}
inlineconstexpr

order axis

Definition at line 36 of file choice.hh.

◆ grid_q

std::array<int, 5> batchlas::ops::trmm::grid_q {1, 16, 128, 1024, 4096}
inlineconstexpr

q axis of the grid

Definition at line 37 of file choice.hh.

◆ grid_batch

std::array<int, 4> batchlas::ops::trmm::grid_batch {1, 128, 1024, 32768}
inlineconstexpr

batch axis of the grid

Definition at line 38 of file choice.hh.

Classes

struct  Triangular
 trmm_triangular_tiles: Side::Left; tile grid <= 65535 More...
struct  Expand
 expand_triangular + the public gemm; scratch must fit More...
struct  Vendor
 backend::trmm_vendor (cublas?trmm loop) More...