From: Wilco Dijkstra via Libc-alpha <libc-alpha@sourceware.org>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>,
"Paul A. Clarke" <pc@us.ibm.com>
Cc: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>,
"libc-alpha@sourceware.org" <libc-alpha@sourceware.org>
Subject: Re: [PATCH v3 5/7] math: Remove powerpc e_hypot
Date: Thu, 11 Nov 2021 17:05:01 +0000 [thread overview]
Message-ID: <VE1PR08MB5599992C2E504845EE76799783939@VE1PR08MB5599.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <37a5bc8c-a9ec-952d-427e-62632f7f7a0a@linaro.org>
Hi Adhemerval,
> On 10/11/2021 11:34, Wilco Dijkstra wrote:
>> I think the new algorithm will always be slower due to the dependent sqrt and
>> division. So it's hard to improve unless we only use it for special cases (eg. when
>> ax and ay are close). Returning sqrt (fma (ax, ax, ay * ay)) is about twice as fast
>> and gives just over 1 ULP, so we're losing a lot of performance for a small ULP
>> improvement.
>
> My main drive for this change is remove the arch-specific implementation in
> favor of an implementation that might be optimized better by the compiler
> without the need to extra hacks by arch-specific hooks (as I did for power7).
I'm all for having a single optimized generic implementation like we did for other
math functions. In general there is little scope for compiler optimizations due to
conservative FP settings - it is all down to highly optimizing both the algorithm
and implementation.
> Another option is to use the powerpc implementation which favor FP over integer
> as the default one.
That is the fastest implementation. It is less accurate though (~1.04ULP with FMA
and ~1.21ULP without FMA), so I'm not sure that would be acceptable.
I did some quick optimizations on the new algorithm, on Neoverse N1 my fastest
version is less than 10% slower than the powerpc version, and has ~0.94 ULP error.
Cheers,
Wilco
next prev parent reply other threads:[~2021-11-11 17:05 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-01 20:20 [PATCH v3 0/7] Improve hypot() Adhemerval Zanella via Libc-alpha
2021-11-01 20:20 ` [PATCH v3 1/7] math: Simplify hypotf implementation Adhemerval Zanella via Libc-alpha
2021-11-01 20:20 ` [PATCH v3 2/7] math: Use an improved algorithm for hypot (dbl-64) Adhemerval Zanella via Libc-alpha
2021-11-01 20:20 ` [PATCH v3 3/7] math: Use an improved algorithm for hypotl (ldbl-96) Adhemerval Zanella via Libc-alpha
2021-11-01 20:20 ` [PATCH v3 4/7] math: Use an improved algorithm for hypotl (ldbl-128) Adhemerval Zanella via Libc-alpha
2021-11-01 20:20 ` [PATCH v3 5/7] math: Remove powerpc e_hypot Adhemerval Zanella via Libc-alpha
2021-11-09 19:28 ` Paul A. Clarke via Libc-alpha
2021-11-10 14:34 ` Wilco Dijkstra via Libc-alpha
2021-11-10 14:43 ` Paul A. Clarke via Libc-alpha
2021-11-10 14:47 ` Adhemerval Zanella via Libc-alpha
2021-11-11 17:05 ` Wilco Dijkstra via Libc-alpha [this message]
2021-11-11 17:13 ` Adhemerval Zanella via Libc-alpha
2021-11-11 19:48 ` Wilco Dijkstra via Libc-alpha
2021-11-11 20:54 ` Adhemerval Zanella via Libc-alpha
2021-11-01 20:20 ` [PATCH v3 6/7] i386: Move hypot implementation to C Adhemerval Zanella via Libc-alpha
2021-11-01 20:20 ` [PATCH v3 7/7] math: Remove the error handling wrapper from hypot and hypotf Adhemerval Zanella via Libc-alpha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=VE1PR08MB5599992C2E504845EE76799783939@VE1PR08MB5599.eurprd08.prod.outlook.com \
--to=libc-alpha@sourceware.org \
--cc=Wilco.Dijkstra@arm.com \
--cc=adhemerval.zanella@linaro.org \
--cc=pc@us.ibm.com \
--cc=tuliom@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).