Skip to content

Add SVE2 optimizations for SynetInnerProduct32fProd - #820

Merged
ermig1979 merged 1 commit into
devfrom
cursor/sve2-synet-inner-product-32f-7af4
Aug 5, 2026
Merged

Add SVE2 optimizations for SynetInnerProduct32fProd#820
ermig1979 merged 1 commit into
devfrom
cursor/sve2-synet-inner-product-32f-7af4

Conversation

@ermig1979

@ermig1979 ermig1979 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Summary

Adds SVE/SVE2 optimizations for Base::SynetInnerProduct32fProd on ARM/ARM64, following the existing Neon and AVX2/AVX-512BW reordered-weight product kernels. Builds on the SVE2 SynetInnerProduct32fGemm work already on dev.

Changes

  • src/Simd/SimdSve2SynetInnerProduct32f.cppSve2::SynetInnerProduct32fProd with InnerProductKxKNr microkernels (1x1 / 1x4 / 1x8) using svcntw(), svld1_f32 / svmla_f32_x / svst1_f32, and predicated tail stores; SynetInnerProduct32fInit selects Prod when Preferable.
  • SimdSynetInnerProduct32f.h — declare Sve2::SynetInnerProduct32fProd.
  • docs/2026.html — note under release 7.2.165.

VS2022 project entries, Autotest registration, and SimdLib.cpp SVE2 dispatch for this API were already added with the Gemm SVE2 work.

Validation

  • x86_64 Release: CMake build succeeded; ./Test "-r=.." -fi=SynetInnerProduct32f -tt=1 -ts=1 finished successfully (Base/Sse41/Avx2/Avx512bw paths).
  • aarch64 cross-compile (-DSIMD_SVE2=ON, aarch64-linux-gnu-g++): libSimd.so built successfully, including SimdSve2SynetInnerProduct32f.cpp.
  • Full SVE2 correctness/performance needs ARM64 SVE2 hardware/CI.
Open in Web Open in Cursor 

Port Neon/AVX-style reordered-weight InnerProductKxKNr kernels to SVE2
(1x1/1x4/1x8 tiles with scalable F=svcntw()), enable Prod in Init when
Preferable, and note the change under release 7.2.165.

Co-authored-by: Ihar Yermalayeu <ermig1979@gmail.com>
@ermig1979
ermig1979 marked this pull request as ready for review August 5, 2026 09:32
@ermig1979
ermig1979 merged commit 556fec7 into dev Aug 5, 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