Open Sqvid opened 1 week ago
The rational behind changing threshold is that matmul op uses integer filling and should provide the precise answer on precise inputs. If there are features that affect that statement, the threshold is adjusted accordingly.
Based on the output value, it looks like a cancellation happening. The first thing to try would be changing inexact 2.25 to exact 2 or 4. It will likely resolve the problem. If it helps, I'll proceed with purging this scale value from input files. If it doesn't, will need your help to figure out where exactly the difference is coming from. Thanks.
Thanks for replying so quickly. Your suggestion seems spot-on, as changing the parameter to -attr-scales=src:common:0.25+dst:common:2+wei:common:0.5
does pass the test. I'd appreciate if you did go ahead and purge the scale value, if you're happy with that. Thanks.
@dzarukin Were you able to look into purging the test cases? Thanks.
@dzarukin Were you able to look into purging the test cases? Thanks.
Hi @Sqvid, the change is under review, should land some time this week. Thank you.
I see, thanks for the update
Summary
The recent change introduced by a8b478b21f7240caa4d68d2b5aee88b54bbd3092 causes a failure on aarch64.
Version
oneDNN v3.7.0 (commit a8b478b21f7240caa4d68d2b5aee88b54bbd3092)
Environment
fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm ssbs paca pacg dcpodp svei8mm svebf16 i8mm bf16 dgh rng
linux-6.5.0 22.04.1-Ubuntu
gcc-10, g++10
3.22.1
CXX=g++-10 CC=gcc-10 cmake .. -DCMAKE_BUILD_TYPE=Debug -DDNNL_AARCH64_USE_ACL=1 -DDNNL_BUILD_FOR_CI=ON -DDNNL_TEST_SET=NIGHTLY -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DONEDNN_BUILD_GRAPH=0 -DDNNL_ENABLE_JIT_PROFILING=0 -DDNNL_OMP_RUNTIME=1
Steps to reproduce
Failure only appears in Release build.
ONEDNN_VERBOSE=all ./build/tests/benchdnn/benchdnn --matmul --skip-impl=ref --dt=s8:s8:f32 --stag=ab --wtag=ab --dtag=ab --bia_dt=u8 --attr-scales=src:common:0.25+dst:common:2.25+wei:common:0.5 --attr-zero-points=src:common:1+dst:common:2+wei:common:-1 --attr-post-ops=sum 1x30:30x20
Observed behavior
Expected behavior
The returned value of
0
seems reasonably close to the expected1.49012e-08
. Could you share the rational behind changing the threshold? Thank you.@dzarukin