Closed ghost closed 3 months ago
Hi @smarm0, when the --flag=G
is specified, all the library does is reads the mean and variance values (they are inputs in this case, not outputs) and uses them as the part of norm operation. It doesn't have to use the mean and variance of the data to perform the check of this mode. Thus, they don't match in benchdnn either.
@dzarukin Thank you for the clarification, much appreciated.
Summary
The benchdnn test for lnorm fails when oneDNN is built against the ACL backend. While investigating I found that the mean used in
/tests/benchdnn/lnorm/ref_lnorm.cpp
does not seem to be the mean of the underlying data (a similar mismatch exists for the variance). Can someone shed some light on this discrepancy?Version
Report oneDNN version and githash. Version information is printed to stdout in verbose mode. oneDNN v3.6.0 (commit 094cc1dda4a24ccf0a54987a34c4475e00a926f9)
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:
Steps to reproduce
Patch
/tests/benchdnn/lnorm/ref_lnorm.cpp
:Then run the benchmark with
OMP_NUM_THREADS=1 ONEDNN_VERBOSE=all tests/benchdnn/benchdnn -v5 --lnorm --flags=G 70x70
Observed behavior
The added exception is thrown indicating that the calculated mean of the
src
data does not match the mean stored insmean
.Expected behavior
I would assume that
smean
holds the actual mean of the data. In case I have misunderstood something I would greatly appreciate any clarification. Thank you.