Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Feb 2012 23:10:12 -0800
From:      Peter Wemm <peter@wemm.org>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        freebsd-amd64@freebsd.org
Subject:   Re: Gcc46 and 128 Bit Floating Point
Message-ID:  <CAGE5yCoTN-qMMs3tLew8W7FgUFmT-kkXeuP7MGKKE3oM7eNC3Q@mail.gmail.com>
In-Reply-To: <20120229192417.U3167@besplex.bde.org>
References:  <4F3EA37F.9010207@speakeasy.org> <CAGE5yCpvF0-b1iKAVGbya=fUNaYbGyrpj1PHSQxw4BvycNMLDg@mail.gmail.com> <4F3EC0B4.6050107@speakeasy.org> <4F4DA398.6070703@speakeasy.org> <20120229161408.G2514@besplex.bde.org> <4F4DDCE7.9000008@speakeasy.org> <20120229192417.U3167@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 29, 2012 at 12:40 AM, Bruce Evans <brde@optusnet.com.au> wrote:
> On Wed, 29 Feb 2012, Thomas D. Dean wrote:
>> On 02/28/12 22:03, Bruce Evans wrote:
>>> But why would you want it? It is essentially unusable on sparc64,
>>> since it is several thousand times slower than 80-bit floating point
>>> on i386. At equal CPU clock speeds, it is only about 1000 times slower.
>>> ...
>> I have an application that takes 10 days to run on a 4.16GHz Core-i7
>> 3930K. No output until it finishes.
>
> Look elsewhere :-). =A01000 times slower than that would be bad :-).

See below:

>> The application uses libgmp, but, about 1/2 to 2/3 of the work will fit =
in
>> a 128-bit float.

This is what he's getting at.  If he could get access to 128 bit fp,
he could move between 1/2 and 2/3 of the work into hardware operations
and bypass a large chunk of GMP work which would be many many times
slower than 128 bit hardware FP.

ports gcc with -march/-mtune set correctly and quadmath is his only
option.  If he's got gcc-4.6 generating code for generic amd64
instructions it won't use that stuff and will soft-float it.  Those
switch settings might be the difference between the earlier code
reports that didn't show use of the instructions vs later ones that
did.

libm and libc can't grow support for __float128 with our existing
compiler.  We could write some in assembler but that doesn't do
anything for libc like printf.  he also said "no output for 10 days"
so I'm guessing printf isn't an issue.

Keeping it out of band with gcc-4.6+ / libquadmath and some impedance
matching with libgmp is his only practical option.  Later snapshots of
gcc may even be required if its missing things he needs.

--=20
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV
"All of this is for nothing if we don't go to the stars" - JMS/B5
"If Java had true garbage collection, most programs would delete
themselves upon execution." -- Robert Sewell



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGE5yCoTN-qMMs3tLew8W7FgUFmT-kkXeuP7MGKKE3oM7eNC3Q>