pulp-platform / snitch_cluster

An energy-efficient RISC-V floating-point compute cluster.
https://pulp-platform.github.io/snitch_cluster/
Apache License 2.0
48 stars 46 forks source link

GEMM: Add switch cases for different GEMM flavors. #121

Closed viv-eth closed 4 months ago

viv-eth commented 6 months ago

The new implementation_t let's you now select which kernel variant you want to run. The supported flavors include:

  1. BASELINE : Assembly-based baseline kernel (FP32, FP16, FP8)
  2. NAIVE : Simple for-loops for computing the GEMM (FP64, FP32, FP8)
  3. NAIVE_UNROLLED : for-loops with loop unrolling (FP32)
  4. OPT : Optimized kernels leveraging SSRs and FREP (FP64, FP32, FP16)
  5. OPT_EX : Optimized low-precision kernels with expanding to the next higher precision (FP16, FP8)