unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
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

  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).