| Summary: | avx-1 test fails on AMD EPYC 7401P 24-Core Processor | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | Alexandra Hajkova <ahajkova> |
| Component: | general | Assignee: | Mark Wielaard <mark> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | ahajkova, jcheca, mark |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
fix avx-1 amd64 test
Add avx_estimate_insn.stdout.exp-amd variant |
||
|
Description
Alexandra Hajkova
2019-10-22 19:07:56 UTC
I am afraid rsqrtss is not like the other instructions in avx-1. The blog post you quote is very on topic: > (https://randomascii.wordpress.com/2013/07/16/floating-point-determinism/) The estimate instructions (rcpss, rcpps, rsqrtps, rsqrtss) are, as the name suggests, not expected to give a fully accurate result. They are supposed to provide estimates with bounded errors See also http://www-archive.xenproject.org/files/xensummit_germany09/AMD.pdf#page=15 So ideally we move these estimate instructions out of avx-1 and into their own testcase that checks the results are within the bounded error. Unfortunately I don't know of a good way to do that. Alternatively we might for now just assume there are only two implementations, the intel and amd one, and just print the results as we do now, but create two different .exp files for the new testcase. The test would then just pass if the result is either like the intel or the amd implementation. We can see what to do if another implementation pops up. Created attachment 123862 [details]
fix avx-1 amd64 test
My proposed patch:
The estimate instructions (rcpss, rcpps, rsqrtps, rsqrtss) are, as the name suggests,
not expected to give a fully accurate result. They may produce slighly different results
on different CPU families because their results are not defined by the IEEE standard.
This is the reason avx-1 test fails on amd now.
This patch assumes there are only two implementations, the intel and amd one.
It moves these estimate instructions out of avx-1 and into their own testcase -
avx_estimate_insn and creates two different .exp files for intel and amd.
After some discussion on irc pushed to git master. Thanks! commit ef9ac3aa0fd3ed41d74707ffe49abe9ad2797ddd Author: Alexandra Hájková <ahajkova@redhat.com> Date: Mon Nov 11 14:30:26 2019 +0100 fix avx-1 amd64 test The estimate instructions (rcpss, rcpps, rsqrtps, rsqrtss) are, as the name suggests, not expected to give a fully accurate result. They may produce slighly different results on different CPU families because their results are not defined by the IEEE standard. This is the reason avx-1 test fails on amd now. This patch assumes there are only two implementations, the intel and amd one. It moves these estimate instructions out of avx-1 and into their own testcase - avx_estimate_insn and creates two different .exp files for intel and amd. https://bugs.kde.org/show_bug.cgi?id=413330 Created attachment 146437 [details]
Add avx_estimate_insn.stdout.exp-amd variant
commit ef9ac3aa0fd3ed41d74707ffe49abe9ad2797ddd "fix avx-1 amd64 test" split off the estimate instructions into their own testcase avx_estimate_insn.
The commit message suggested that two .exp files would be added, one for the intel and one for the amd cases.
It seems the .exp-amd variant was forgotten. This patch adds it.
commit df214356db9ec0555e1f022688a381cee40f68c3 Author: Mark Wielaard <mark@klomp.org> Date: Tue Feb 8 13:12:46 2022 +0100 none/tests/amd64/avx_estimate_insn.vgtest fails on AMD processors commit ef9ac3aa0fd3ed41d74707ffe49abe9ad2797ddd "fix avx-1 amd64 test" split off the estimate instructions into their own testcase avx_estimate_insn. The commit message suggested that two .exp files would be added, one for the intel and one for the amd cases. It seems the .exp-amd variant was forgotten. This commit adds it. https://bugs.kde.org/show_bug.cgi?id=413330 |