Skip to content

Add SVE2 optimizations of SynetDynamicQuantizedInnerProduct16bGemmV0 - #1132

Merged
ermig1979 merged 2 commits into
devfrom
cursor/sve2-synet-dq-ip16b-gemmv0-067a
Oct 27, 2026
Merged

ermig1979 merged 2 commits into
devfrom
cursor/sve2-synet-dq-ip16b-gemmv0-067a

Conversation

@ermig1979

Copy link
Copy Markdown
Owner

Summary

Adds an SVE2 implementation of SynetDynamicQuantizedInnerProduct16bGemmV0, following the Neon GemmV0 algorithm and the existing SVE2 32-bit microkernel.

  • Per-row dynamic quantization of A (float or bfloat16 to uint8) and per-column quantization of B to int8. The int8 range follows p.overflow or AlgParam::overflow, and packed B is zero-filled through aK.
  • Packed int8 GEMM with svusdot, a 12 by 2 * svcntw() microkernel, and bfloat16 or float output through the shared SVE2 activations.
  • Dispatch prefers SVE2 ahead of Neon. Release notes for 8.0.167 and the VS2022 SVE2 project list the new sources.

Testing

Cross-built with aarch64-linux-gnu-g++ (-march=armv9-a+sve+sve2+i8mm+bf16) and ran Test -fi=SynetDynamicQuantizedInnerProduct16b under qemu-aarch64 at SVE vector lengths 128, 256, and 512. All three runs finished successfully after rebasing onto the latest dev, including float, bfloat16, constant int8 B, and dynamic B.

Open in Web Open in Cursor 

cursoragent and others added 2 commits October 27, 2026 08:12
…GemmV0.

Quantize and multiply dynamic 16-bit inner products with scalable SVE2 vectors and USDOT, using the Neon GemmV0 data layout.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>
Choose the int8 range from p.overflow or a.overflow, and zero-fill packed B through aK.

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

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 fe3b2b1 into dev Oct 27, 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