public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Andrew Pinski <pinskia@gmail.com>
To: Ramana Radhakrishnan <ramana.radhakrishnan@foss.arm.com>
Cc: Benedikt Huber <benedikt.huber@theobroma-systems.com>,
		"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>,
		"philipp.tomsich@theobroma-systems.com"
	<philipp.tomsich@theobroma-systems.com>
Subject: Re: [PATCH] [aarch64] Implemented reciprocal square root (rsqrt) estimation in -ffast-math
Date: Sat, 27 Jun 2015 02:01:00 -0000	[thread overview]
Message-ID: <CA+=Sn1=Mh6MB3oAW+GcQp5Jp8MFoXrPM-kzidCfQU2m3jjM=gQ@mail.gmail.com> (raw)
In-Reply-To: <558BBAB8.60705@foss.arm.com>

On Thu, Jun 25, 2015 at 1:24 AM, Ramana Radhakrishnan
<ramana.radhakrishnan@foss.arm.com> wrote:
> Benedikt,
>
> On 25/06/15 08:01, pinskia@gmail.com wrote:
>>
>>
>>
>>
>>
>>> On Jun 18, 2015, at 5:04 AM, Benedikt Huber
>>> <benedikt.huber@theobroma-systems.com> wrote:
>>>
>>> arch64 offers the instructions frsqrte and frsqrts, for rsqrt estimation
>>> and
>>> a Newton-Raphson step, respectively.
>>> There are ARMv8 implementations where this is faster than using fdiv and
>>> rsqrt.
>>> It runs three steps for double and two steps for float to achieve the
>>> needed precision.
>>
>>
>> This is NOT a win on thunderX at least for single precision because you
>> have to do the divide and sqrt in the same time as it takes 5 multiples
>> (estimate and step are multiplies in the thunderX pipeline).  Doubles is 10
>> multiplies which is just the same as what the patch does (but it is really
>> slightly less than 10, I rounded up). So in the end this is NOT a win at all
>> for thunderX unless we do one less step for both single and double.
>>
>
>
> Have you seen this https://gcc.gnu.org/ml/gcc-patches/2015-03/msg00164.html
> ? Really this is something that should be gated by the costs infrastructure


Yes I saw that in fact I did not look into the latencies of our core
until this patch came out.  But yes this should be gated by a cost
infrastructure and most likely not as part of the -mcpu=generic cost
(well the rsqrt if we change it to 1 iterations and 2 iterations).

Thanks,
Andrew

> .
>
>
> regards
> Ramana
>
>
>
>
>
>
>> Thanks,
>> Andrew
>>
>>
>>>
>>> There is one caveat and open question.
>>> Since -ffast-math enables flush to zero intermediate values between
>>> approximation steps
>>> will be flushed to zero if they are denormal.
>>> E.g. This happens in the case of rsqrt (DBL_MAX) and rsqrtf (FLT_MAX).
>>> The test cases pass, but it is unclear to me whether this is expected
>>> behavior with -ffast-math.
>>>
>>> The patch applies to commit:
>>> svn+ssh://gcc.gnu.org/svn/gcc/trunk@224470
>>>
>>> Please consider including this patch.
>>> Thank you and best regards,
>>> Benedikt Huber
>>>
>>> Benedikt Huber (1):
>>>   2015-06-15  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
>>>
>>> gcc/ChangeLog                            |   9 +++
>>> gcc/config/aarch64/aarch64-builtins.c    |  60 ++++++++++++++++
>>> gcc/config/aarch64/aarch64-protos.h      |   2 +
>>> gcc/config/aarch64/aarch64-simd.md       |  27 ++++++++
>>> gcc/config/aarch64/aarch64.c             |  63 +++++++++++++++++
>>> gcc/config/aarch64/aarch64.md            |   3 +
>>> gcc/testsuite/gcc.target/aarch64/rsqrt.c | 113
>>> +++++++++++++++++++++++++++++++
>>> 7 files changed, 277 insertions(+)
>>> create mode 100644 gcc/testsuite/gcc.target/aarch64/rsqrt.c
>>>
>>> --
>>> 1.9.1
>>>
>

  reply	other threads:[~2015-06-27  1:33 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-18 11:57 Benedikt Huber
2015-06-18 12:03 ` [PATCH] 2015-06-15 Benedikt Huber <benedikt.huber@theobroma-systems.com> Benedikt Huber
2015-06-27  8:12   ` Andrew Pinski
2015-06-18 12:36 ` [PATCH] [aarch64] Implemented reciprocal square root (rsqrt) estimation in -ffast-math Kumar, Venkataramanan
2015-06-24 16:49 ` Evandro Menezes
2015-06-24 16:55   ` Dr. Philipp Tomsich
2015-06-24 17:16     ` Benedikt Huber
2015-06-24 18:37       ` Evandro Menezes
2015-06-24 20:11         ` Dr. Philipp Tomsich
2015-06-24 20:54           ` Evandro Menezes
2015-06-25 11:52             ` Benedikt Huber
2015-06-25  7:01     ` Kumar, Venkataramanan
2015-06-25  7:03 ` pinskia
2015-06-25  9:43   ` Ramana Radhakrishnan
2015-06-27  2:01     ` Andrew Pinski [this message]
2015-06-25 11:07   ` Benedikt Huber
2015-06-25 13:27     ` Michael Matz
2015-06-25 15:43     ` Kumar, Venkataramanan
2015-06-25 15:52       ` Dr. Philipp Tomsich
2015-06-25 16:47         ` Kumar, Venkataramanan
2015-06-28 15:13           ` pinskia
2015-06-29  8:30             ` Kumar, Venkataramanan
2015-06-29  9:07               ` Dr. Philipp Tomsich
2015-06-29  9:22                 ` Kumar, Venkataramanan
2015-06-29 11:44                   ` James Greenhalgh
2015-06-29 11:56                     ` Dr. Philipp Tomsich
2015-06-29 16:57                       ` pinskia
2015-06-29 19:07                         ` Kumar, Venkataramanan
2015-07-14 22:26                           ` Evandro Menezes
2015-07-20  9:46                             ` Kumar, Venkataramanan
2015-07-20 15:58                               ` Evandro Menezes
2015-07-13 19:09                       ` Evandro Menezes
2015-07-14 22:20                 ` Evandro Menezes
2015-06-29 14:20               ` Benedikt Huber
2015-06-29 17:35               ` Benedikt Huber
2015-06-29 17:44                 ` Kumar, Venkataramanan

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CA+=Sn1=Mh6MB3oAW+GcQp5Jp8MFoXrPM-kzidCfQU2m3jjM=gQ@mail.gmail.com' \
    --to=pinskia@gmail.com \
    --cc=benedikt.huber@theobroma-systems.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=philipp.tomsich@theobroma-systems.com \
    --cc=ramana.radhakrishnan@foss.arm.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).