Skip to content

Add f32-ibilinear-chw microkernel benchmark - #10770

Draft
leduclean wants to merge 1 commit into
google:masterfrom
leduclean:pr1-bench-ibilinear-chw
Draft

Add f32-ibilinear-chw microkernel benchmark#10770
leduclean wants to merge 1 commit into
google:masterfrom
leduclean:pr1-bench-ibilinear-chw

Conversation

@leduclean

@leduclean leduclean commented Jul 17, 2026

Copy link
Copy Markdown

There is no benchmark for the f32-ibilinear-chw microkernel family, so changes to these kernels cannot be measured.

The benchmark builds its indirection buffer and interpolation coefficients with xnn_indirection_init_resize_bilinear2d_chw_f32 the operator's own code, as bench/f32-dwconv.cc already does for dwconv so it cannot drift from the layout xnn_resize_bilinear2d_nchw actually produces.

Shapes are the decoder ladder from bench/operators/resize-bilinear-nhwc.cc, so the CHW microkernel numbers stay comparable with the operator benchmark, plus a few working sets larger than cache.

Every existing ukernel is registered: scalar p1/p2/p4, neon and neonfma p4/p8/p16, sse p4/p8, wasmsimd p4/p8. The #if guards mirror ibilinear-chw-config.c.

Only the x86 path (sse_p4/p8, scalar_p1/p2/p4) has been built and run; the ARM and wasm registrations are compile-time-guarded and untested.

This microkernel family had no benchmark. Build the indirection buffer with
xnn_indirection_init_resize_bilinear2d_chw_f32 so the layout cannot drift from
the operator's, and rotate buffers across iterations as bench/f32-dwconv.cc
does. Shapes reuse bench/operators/resize-bilinear-nhwc.cc, plus a few working
sets larger than cache.

Registers all f32-ibilinear-chw ukernels: scalar, neon, neonfma, sse, wasmsimd.

Signed-off-by: Le Duc Léandre <lleduc@kalrayinc.com>
@google-cla

google-cla Bot commented Jul 17, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

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.

1 participant