Bug 53: This Split-K Is Not OK
- Split-K is an important technique for improving the cache utilization of a matrix multiplication.
- This code multiplies two input matrices (mk times kn) and adds the result to a third input matrix (mn).
- Row-major: mk has m rows and k columns, kn has k rows and n columns, mn has m rows and n columns.
- The matrix multiplication is performed as a series of passes. Each pass updates all elements of mn.
- s is the section length. There are ceil(k/s) passes, each pass iterating over at most s indexes in [0, k).
- Each pass computes n section-wise dot products (one per column of kn) for each of the m rows of mk.
Fix The Tiny Bug In This Go Code: