batchlas::ops::gemv Namespace Reference

Functions

◆ candidates()

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

Every compiled choice, in tie-break order: the transcribed ladder.

Definition at line 21 of file choice.hh.

◆ device_allows()

bool batchlas::ops::gemv::device_allows ( const GemvChoice & c,
const select::Device & d,
bool transposed )
inline

can_run's device terms (host-callable for tests). Cta body 3 is reqd_sub_group_size(32).

Definition at line 24 of file choice.hh.

Types

◆ GemvChoice

fieldless: body and segment width W derived in the drivers

Definition at line 18 of file choice.hh.

Variables

◆ last_resort

std::array<std::string_view, 2> batchlas::ops::gemv::last_resort {"vendor", "direct"}
inlineconstexpr

CPU: vendor, else direct (no GPU gate).

Definition at line 30 of file choice.hh.

◆ spec

select::OpSpec batchlas::ops::gemv::spec {Op::gemv, 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, 4> batchlas::ops::gemv::key_names {"trans:exact", "out:log", "red:log", "batch:log"}
inlineconstexpr

Keys: trans exact (ConjTrans folds to T); out, red: y and x lengths (swap with trans). Work ~ out red batch.

Definition at line 34 of file choice.hh.

◆ grid_out

std::array<int, 8> batchlas::ops::gemv::grid_out {1, 8, 64, 255, 256, 1024, 4096, 32768}
inlineconstexpr

Both sides of every transcribed threshold plus a coarse log grid; the transcriber spells the same.

Definition at line 37 of file choice.hh.

◆ grid_red

std::array<int, 11> batchlas::ops::gemv::grid_red {1, 8, 32, 63, 64, 128, 352, 353, 1024, 4096, 32768}
inlineconstexpr

Definition at line 38 of file choice.hh.

◆ grid_batch

std::array<int, 8> batchlas::ops::gemv::grid_batch {1, 16, 128, 319, 320, 1024, 8192, 32768}
inlineconstexpr

Definition at line 39 of file choice.hh.

Classes

struct  Cta
 sycl_gemv::gemv_native_cta, sub-group per output; Trans/ConjTrans More...
struct  Direct
 sycl_gemv::gemv_native_direct, item per output; every device More...
struct  Vendor
 backend::gemv_vendor; any shape, needs the library More...