Skip to content

Commit

Permalink
Turn on c2 asm f32 kernels
Browse files Browse the repository at this point in the history
This is the first time that we exploit the broken dependency between gemm & igemm

PiperOrigin-RevId: 724255293
  • Loading branch information
alankelly authored and xnnpack-bot committed Feb 7, 2025
1 parent 2750c59 commit 03d8261
Show file tree
Hide file tree
Showing 8 changed files with 899 additions and 402 deletions.
6 changes: 3 additions & 3 deletions cmake/gen/amd64_microkernels.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@

SET(PROD_AMD64_ASM_MICROKERNEL_SRCS
src/bf16-f32-gemm/gen/bf16-f32-gemm-1x32c2-minmax-asm-amd64-avx512bf16-broadcast.S
src/bf16-f32-gemm/gen/bf16-f32-gemm-7x32c2-minmax-asm-amd64-avx512bf16-broadcast.S)
src/bf16-f32-gemm/gen/bf16-f32-gemm-7x32c2-minmax-asm-amd64-avx512bf16-broadcast.S
src/f32-gemm/gen/f32-gemm-1x32c2-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-5x32c2-minmax-asm-amd64-avx512f-broadcast.S)

SET(NON_PROD_AMD64_ASM_MICROKERNEL_SRCS
src/bf16-f32-gemm/gen/bf16-f32-gemm-1x16c2-minmax-asm-amd64-avx512bf16-broadcast.S
Expand Down Expand Up @@ -42,7 +44,6 @@ SET(NON_PROD_AMD64_ASM_MICROKERNEL_SRCS
src/f32-gemm/gen/f32-gemm-1x16-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-1x16c2-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-1x32-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-1x32c2-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-1x64-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-2x16-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-2x16c2-minmax-asm-amd64-avx512f-broadcast.S
Expand All @@ -62,7 +63,6 @@ SET(NON_PROD_AMD64_ASM_MICROKERNEL_SRCS
src/f32-gemm/gen/f32-gemm-5x16-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-5x16c2-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-5x32-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-5x32c2-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-5x64-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-6x16-minmax-asm-amd64-avx512f-broadcast.S
src/f32-gemm/gen/f32-gemm-6x16c2-minmax-asm-amd64-avx512f-broadcast.S
Expand Down
4 changes: 2 additions & 2 deletions gen/amd64_microkernels.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Auto-generated file. Do not edit!
PROD_AMD64_ASM_MICROKERNEL_SRCS = [
"src/bf16-f32-gemm/gen/bf16-f32-gemm-1x32c2-minmax-asm-amd64-avx512bf16-broadcast.S",
"src/bf16-f32-gemm/gen/bf16-f32-gemm-7x32c2-minmax-asm-amd64-avx512bf16-broadcast.S",
"src/f32-gemm/gen/f32-gemm-1x32c2-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-5x32c2-minmax-asm-amd64-avx512f-broadcast.S",
]

NON_PROD_AMD64_ASM_MICROKERNEL_SRCS = [
Expand Down Expand Up @@ -39,7 +41,6 @@ NON_PROD_AMD64_ASM_MICROKERNEL_SRCS = [
"src/f32-gemm/gen/f32-gemm-1x16-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-1x16c2-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-1x32-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-1x32c2-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-1x64-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-2x16-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-2x16c2-minmax-asm-amd64-avx512f-broadcast.S",
Expand All @@ -59,7 +60,6 @@ NON_PROD_AMD64_ASM_MICROKERNEL_SRCS = [
"src/f32-gemm/gen/f32-gemm-5x16-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-5x16c2-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-5x32-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-5x32c2-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-5x64-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-6x16-minmax-asm-amd64-avx512f-broadcast.S",
"src/f32-gemm/gen/f32-gemm-6x16c2-minmax-asm-amd64-avx512f-broadcast.S",
Expand Down
675 changes: 541 additions & 134 deletions src/configs/gemm-config.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/operators/convolution-nhwc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1824,7 +1824,7 @@ enum xnn_status xnn_create_convolution2d_nhwc_f32(
xnn_code_cache_t code_cache,
xnn_weights_cache_t weights_cache,
xnn_operator_t* convolution_op_out) {
const struct xnn_gemm_config* gemm_config = xnn_init_f32_gemm_config();
const struct xnn_gemm_config* gemm_config = xnn_init_f32_igemm_config();
if (gemm_config == NULL) {
xnn_log_error("failed to create %s operator: unsupported hardware configuration",
xnn_operator_type_to_string(xnn_operator_type_convolution_nhwc_f32));
Expand Down
2 changes: 1 addition & 1 deletion src/operators/deconvolution-nhwc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1107,7 +1107,7 @@ enum xnn_status xnn_create_deconvolution2d_nhwc_f32(
return xnn_status_invalid_parameter;
}

const struct xnn_gemm_config* gemm_config = xnn_init_f32_gemm_config();
const struct xnn_gemm_config* gemm_config = xnn_init_f32_igemm_config();
if (gemm_config == NULL) {
xnn_log_error("failed to create %s operator: unsupported hardware configuration",
xnn_operator_type_to_string(xnn_operator_type_deconvolution_nhwc_f32));
Expand Down
1 change: 1 addition & 0 deletions src/xnnpack/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ XNN_INTERNAL const struct xnn_gemm_config* xnn_init_bf16_f32_gemm_config();
XNN_INTERNAL const struct xnn_gemm_config* xnn_init_f16_gemm_config();
XNN_INTERNAL const struct xnn_gemm_config* xnn_init_f32_gemm_config();
XNN_INTERNAL const struct xnn_gemm_config* xnn_init_f32_gemm_nr2_config();
XNN_INTERNAL const struct xnn_gemm_config* xnn_init_f32_igemm_config();
XNN_INTERNAL const struct xnn_gemm_config* xnn_init_f32_qc8w_gemm_config();
XNN_INTERNAL const struct xnn_gemm_config* xnn_init_f32_qc4w_gemm_config();
XNN_INTERNAL const struct xnn_gemm_config* xnn_init_pf16_gemm_config();
Expand Down
Loading

0 comments on commit 03d8261

Please sign in to comment.