mirror of
https://github.com/amd/blis.git
synced 2026-05-13 18:52:14 +00:00
-Similar to downscale optimizations made for u8s8s32 gemm, the following optimizations are made to improve the downscale performance for u8s8s16 gemm: a. The store to temporary s16 buffer can be avoided when k < KC since intermediate accumulation will not required for the pc loop (only 1 iteration). The downscaled values (s8) are written directly to the output C matrix. b. Within the micro-kernel when beta != 0, the s8 data from the original C output matrix is loaded to a register, converted to s16 and beta scaling applied on it. The previous design of copying the s8 value to the s16 temporary buffer inside jc loop and using the same in beta scaling is removed. -Alpha scaling (multiply instruction) by default was resulting in performance regression when k dimension is small and alpha=1 in s16 micro-kernels. Alpha scaling is now only done when alpha != 1. AMD-Internal: [CPUPL-3237] Change-Id: If25f9d1de8b9b8ffbe1bd7bce3b7b0b5094e51ef