New A packing kernels for F32 API in LPGEMM.

-New packing kernels for A matrix, both based on AVX512 and AVX2 ISA,
for both row and column major storage are added as part of this change.
Dependency on haswell A packing kernels are removed by this.
-Tiny GEMM thresholds are further tuned for BF16 and F32 APIs.

AMD-Internal: [SWLCSG-3380, SWLCSG-3415]

Change-Id: I7330defacbacc9d07037ce1baf4a441f941e59be
This commit is contained in:
Mithun Mohan
2025-02-21 14:19:37 +00:00
parent 8a69141294
commit 7394aafd1e
13 changed files with 1106 additions and 96 deletions

View File

@@ -59,10 +59,14 @@
#define LPGEMM_PACKA_FUNC_MAP_AVX512_VNNI_BF16 \
PAMACRO(U8S8S32OS32, packa_u8s8s32os32) \
PAMACRO(F32F32F32OF32, packa_mr6_f32f32f32of32_avx512) \
PAMACRO(BF16BF16F32OF32, packa_mr16_bf16bf16f32of32) \
PAMACRO(BF16S4F32OF32, packa_mr16_bf16bf16f32of32) \
PAMACRO(S8S8S32OS32, packa_u8s8s32os32) \
#define LPGEMM_PACKA_FUNC_UPD_MAP_AVX512_VNNI_BF16_TO_AVX2 \
PAMACRO(F32F32F32OF32, packa_mr6_f32f32f32of32_avx2) \
#define LPGEMM_PACKB_FUNC_MAP_AVX512_VNNI_BF16 \
PBMACRO(U8S8S32OS32, packb_nr64_u8s8s32o32) \
PBMACRO(F32F32F32OF32, packb_nr64_f32f32f32of32) \
@@ -110,10 +114,14 @@
#define LPGEMM_PACKA_FUNC_MAP_AVX512_VNNI \
PAMACRO(U8S8S32OS32, packa_u8s8s32os32) \
PAMACRO(F32F32F32OF32, packa_mr6_f32f32f32of32_avx512) \
PAMACRO(BF16BF16F32OF32, packa_mr16_bf16bf16f32of32) \
PAMACRO(BF16S4F32OF32, packa_mr16_bf16bf16f32of32) \
PAMACRO(S8S8S32OS32, packa_u8s8s32os32) \
#define LPGEMM_PACKA_FUNC_UPD_MAP_AVX512_VNNI_TO_AVX2 \
PAMACRO(F32F32F32OF32, packa_mr6_f32f32f32of32_avx2) \
#define LPGEMM_PACKBMXP_FUNC_MAP_AVX512_VNNI \
PBMXPMACRO(F32OBF16, packb_mxp_nr64_f32obf16)
@@ -147,10 +155,14 @@
#define LPGEMM_PACKA_FUNC_MAP_AVX512 \
PAMACRO(U8S8S32OS32, packa_u8s8s32os32) \
PAMACRO(F32F32F32OF32, packa_mr6_f32f32f32of32_avx512) \
PAMACRO(BF16BF16F32OF32, packa_mr16_bf16bf16f32of32) \
PAMACRO(BF16S4F32OF32, packa_mr16_bf16bf16f32of32) \
PAMACRO(S8S8S32OS32, packa_u8s8s32os32) \
#define LPGEMM_PACKA_FUNC_UPD_MAP_AVX512_TO_AVX2 \
PAMACRO(F32F32F32OF32, packa_mr6_f32f32f32of32_avx2) \
#define LPGEMM_PACKB_FUNC_MAP_AVX512 \
PBMACRO(U8S8S32OS32, packb_nr64_u8s8s32o32) \
PBMACRO(F32F32F32OF32, packb_nr64_f32f32f32of32) \
@@ -160,6 +172,9 @@
PBMACRO(BF16S4F32OF32, NULL) \
PBSMACRO(BF16S4F32OF32, NULL)
#define LPGEMM_PACKB_FUNC_UPD_MAP_AVX512_VNNI_TO_AVX2 \
PBMACRO(F32F32F32OF32, packb_nr16_f32f32f32of32) \
#define LPGEMM_PACKBMXP_FUNC_MAP_AVX512 \
PBMXPMACRO(F32OBF16, packb_mxp_nr64_f32obf16)
@@ -180,6 +195,7 @@
#define LPGEMM_PACKA_FUNC_MAP_AVX2 \
PAMACRO(U8S8S32OS32, NULL) \
PAMACRO(BF16BF16F32OF32, NULL) \
PAMACRO(F32F32F32OF32, packa_mr6_f32f32f32of32_avx2) \
KMACRO(BF16S4F32OF32, NULL) \
PAMACRO(S8S8S32OS32, NULL) \