src/width/gemm_fp16f32_ref.c file

Functions

void vm_fp16_modules_register(void)
static void vm_gemm_fp16f32_scalar(float* c, const int ldc, const vm_fp16_t* a, const int lda, const vm_fp16_t* b, const int ldb, const int m, const int n, const int k, const float alpha, const float beta)
void vm_fp16_init(void)
Install the scalar GEMM, then run vm_fp16_modules_register().
void vm_fp16_set_gemm(vm_fp16_gemm_fn fn, const char* note)
Replace the GEMM slot.
auto vm_fp16_note(void) -> const char*
fp16=scalar until a module overrides the slot.
void vm_gemm_fp16f32(float* c, int ldc, const vm_fp16_t* a, int lda, const vm_fp16_t* b, int ldb, int m, int n, int k, float alpha, float beta)
See vm_fp16_gemm_fn.

Variables

static vm_fp16_gemm_fn gemm_slot
static const char* fp16_note

Function documentation

void vm_fp16_init(void)

Install the scalar GEMM, then run vm_fp16_modules_register().

Call before the first vm_gemm_fp16f32 if a module must override the slot. A second call does not replace an already installed slot.

void vm_fp16_set_gemm(vm_fp16_gemm_fn fn, const char* note)

Replace the GEMM slot.

fn == NULL is ignored.

note is printed by the caller via vm_fp16_note(). It is not vm_cpu_note().

void vm_gemm_fp16f32(float* c, int ldc, const vm_fp16_t* a, int lda, const vm_fp16_t* b, int ldb, int m, int n, int k, float alpha, float beta)

See vm_fp16_gemm_fn.

Dispatches the installed slot.