Skip to content

Add SVE2 optimizations for SynetConvolution16bNhwcDepthwise - #851

Merged
ermig1979 merged 1 commit into
devfrom
cursor/sve2-synet-conv16b-nhwc-depthwise-396e
Aug 13, 2026
Merged

Add SVE2 optimizations for SynetConvolution16bNhwcDepthwise#851
ermig1979 merged 1 commit into
devfrom
cursor/sve2-synet-conv16b-nhwc-depthwise-396e

Conversation

@ermig1979

Copy link
Copy Markdown
Owner

Summary

Adds SVE/SVE2/SVE-BF16 optimizations for Base::SynetConvolution16bNhwcDepthwise on ARM/ARM64.

  • New SimdSve2SynetConvolution16bNhwcDepthwise.cpp with VL-agnostic default depthwise and specialized 3x3 kernels (bf16/f32 src/dst via LoadSrc + activation + bf16 store).
  • Wire Sve2::SynetConvolution16bInit to select Sve2::SynetConvolution16bNhwcDepthwise when preferable (before NchwGemm / Neon fallback).
  • Declare Sve2::SynetConvolution16bNhwcDepthwise in SimdSynetConvolution16b.h.
  • Extend depthwise cases in Test::SynetConvolution16bAutoTest.
  • Add the new source to prj/vs2022/Sve2.vcxproj and .filters.
  • Update docs/2026.html release 7.2.165 notes to include SVE2 for this class.

Test plan

  • On ARM64 with SVE2: configure/build per AGENTS.md, then from build/:
    • export LD_LIBRARY_PATH="$(pwd):$LD_LIBRARY_PATH"
    • ./Test "-r=.." -fi=SynetConvolution16b -tt=1 -ts=1
  • Confirm log shows Sve2::NhwcDepthwise for depthwise shapes (e.g. group==srcC) and matches Base within EPS.
  • Optional: compare performance vs Neon for the same depthwise cases.
Open in Web Open in Cursor 

Port the NHWC depthwise bf16 path to SVE/SVE2/SVE-BF16 with VL-agnostic
default and 3x3 kernels, wire SynetConvolution16bInit dispatch, extend
depthwise tests, update VS2022 Sve2 project files, and release 7.2.165 notes.

Co-authored-by: Ihar Yermalayeu <igor.ermolaev@altezza.org>
@ermig1979
ermig1979 marked this pull request as ready for review August 13, 2026 05:55
@ermig1979
ermig1979 merged commit 8c47efb 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