Skip to content

benchdnn: --skip-impl does not work as expected for the --reorder driver #4386

@Sqvid

Description

@Sqvid

Summary

--skip-impl does not work as expected for the --reorder driver. It skips all implementations rather than just the matching one.

Version

main: f1af0d5

Environment

oneDNN includes hardware-specific optimizations and may behave
differently on depending on the compiler and build environment. Include
the following information to help reproduce the issue:

  • OS version: Linux 6.14
  • git hash: f1af0d5
  • Platform: Seen on x64 and AArch64

Steps to reproduce

All impls skipped rather than only those matching "jit":

$ ./build/tests/benchdnn/benchdnn --reorder --skip-impl='jit' --allow-enum-tags-only=0 --sdt=f32 --ddt=f32 --stag=ab --dtag=ba 32x32
0:SKIPPED (Skip-impl option hit) (0 ms) __REPRO: --reorder --allow-enum-tags-only=false --sdt=f32 --ddt=f32 --stag=ab --dtag=ba --skip-impl=jit 32x32
tests:1 passed:0 skipped:1 mistrusted:0 unimplemented:0 invalid_arguments:0 failed:0 listed:0
total: 0.00s; create_pd: 0.00s (9%); create_prim: 0.00s (0%); fill: 0.00s (0%); execute: 0.00s (0%); compute_ref: 0.00s (0%); compare: 0.00s (0%);

But manually commenting out all impls above simple_reorder in cpu/reorder/cpu_reorder_regular_f32_f32.cpp gives the following as expected:

$ ./build/tests/benchdnn/benchdnn --reorder --skip-impl='jit' --allow-enum-tags-only=0 --sdt=f32 --ddt=f32 --stag=ab --dtag=ba 32x32
0:PASSED (9 ms) __REPRO: --reorder --allow-enum-tags-only=false --sdt=f32 --ddt=f32 --stag=ab --dtag=ba --skip-impl=jit 32x32
============================================================
= Implementation statistics (--summary=no-impl to disable) =
============================================================
| simple:any : 1 (100%)                                    |
============================================================
tests:1 passed:1 skipped:0 mistrusted:0 unimplemented:0 invalid_arguments:0 failed:0 listed:0
total: 0.01s; create_pd: 0.00s (1%); create_prim: 0.00s (0%); fill: 0.00s (18%); execute: 0.00s (0%); compute_ref: 0.00s (0%); compare: 0.01s (75%);

Observed behavior

--skip-impl returns early rather than searching to the end of the list.

Expected behavior

Only an implementation that matches the skip filter should be excluded from the impl search. I'd expect to see the same as what happens when I comment out implementations manually.

Metadata

Metadata

Assignees

No one assigned

    Labels

    component:commoncomponent:testsCodeowner: @oneapi-src/onednn-archsightingSuspicious library behavior. Should be promoted to a bug when confirmed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions