Skip to content

Increase SVE2 QuantizedMergedConvolution GEMM unroll M from 5 to 12 - #857

Merged
ermig1979 merged 1 commit into
devfrom
cursor/sve2-synet-quantized-merged-conv-m-886a
Aug 13, 2026
Merged

Increase SVE2 QuantizedMergedConvolution GEMM unroll M from 5 to 12#857
ermig1979 merged 1 commit into
devfrom
cursor/sve2-synet-quantized-merged-conv-m-886a

Conversation

@ermig1979

@ermig1979 ermig1979 commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Raise the SVE2 input/output 1x1 GEMM microkernel unroll M from 5 to 12 for SynetQuantizedMergedConvolutionCdc, SynetQuantizedMergedConvolutionCd, and SynetQuantizedMergedConvolutionDc.

SVE provides 32 vector registers (NEON has 16), so the previous M=5 cap left registers unused. The 2-wide (dstC > F) kernel now keeps 12 spatial rows: 24 accumulators plus source/weight vectors, which fits in the SVE register file.

Changes

  • SimdSve2SynetQuantizedMergedConvolutionInput.cpp: QuantizedMergedConvolutionInput_2xM supports M=1..12; main tile size n = 12.
  • SimdSve2SynetQuantizedMergedConvolutionOutput.cpp: QuantizedMergedConvolutionOutputConvolution_2xM supports M=1..12; main tile size n = 12.
  • Layout matches AVX-512 (offs0/offs6 reuse of src0..src5, hex M indices 0x0..0xC).

Based on dev. Depthwise kernels are unchanged.

Verification

AArch64 cross-compile of the SVE2 input/output/depthwise/init sources and TestSynetQuantizedMergedConvolution.cpp succeeds with -march=armv9-a+sve+sve2+i8mm+bf16. This environment is x86_64, so native SVE2 Test was not run. Please re-run ./Test "-r=.." -fi=SynetQuantizedMergedConvolution on ARM.

Open in Web Open in Cursor 

SVE has 32 vector registers, so the input and output 2xM kernels can
keep 12 spatial rows (24 accumulators plus weights/src) instead of 5.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>
@ermig1979
ermig1979 marked this pull request as ready for review August 13, 2026 10:29
@ermig1979
ermig1979 merged commit de7091a into dev Aug 13, 2026
1 check 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.

2 participants