Skip to content

Add AMX-INT8 optimizations of SynetDynamicQuantizedInnerProduct16bGemmV0 - #1129

Merged
ermig1979 merged 1 commit into
devfrom
cursor/amxbf16-synet-dq-ip16b-gemmv0-83fa
Oct 26, 2026
Merged

ermig1979 merged 1 commit into
devfrom
cursor/amxbf16-synet-dq-ip16b-gemmv0-83fa

Conversation

@ermig1979

Copy link
Copy Markdown
Owner

Summary

Adds an AMX-INT8 implementation of SynetDynamicQuantizedInnerProduct16bGemmV0 and dispatches it ahead of AVX-512 VNNI.

  • A is quantized per row and reordered into 16×64 blocks. B keeps the VNNI panel layout and is padded to a multiple of 64 along K so AMX tiles can consume the tail.
  • The product uses 16×16×64 _tile_dpbusd microkernels (32×32 output tiles), matching AmxBf16::SynetDynamicQuantizedInnerProduct32fGemmV0. The last K chunk reuses that body, then dequantizes, adds bias, and applies the activation with AVX-512 (FP32 or BF16 output).
  • M == 1 stays on the AVX-512 VNNI kernel. The int32 accumulator is a separate buffer whose stride is rounded up to 32, and the AMX scratch buffer is allocated whenever it is reserved.

Release notes for 8.0.167 and the VS2022 AMX project list the new sources. The 16b auto test now runs the AMX path.

Test

Release build with -DSIMD_AMXBF16=ON on AMX-INT8 hardware:

./Test -r=.. -fi=SynetDynamicQuantizedInnerProduct16bForward -tt=1 -ts=1

Result: all tests finished successfully. On 333×555×444, AMX was about 1.4×–2.1× faster than AVX-512 VNNI (common time 0.155 ms vs 0.276 ms).

Open in Web Open in Cursor 

…t16bGemmV0.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>
Copilot AI balanced review requested due to automatic review settings October 26, 2026 12:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@ermig1979
ermig1979 merged commit 9c10ab1 into dev Oct 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants