Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming > #2341
| From | Rui Maciel <rui.maciel@gmail.com> |
|---|---|
| Newsgroups | comp.programming |
| Subject | Re: 64 bit code |
| Date | 2012-10-13 17:05 +0100 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <k5c3ft$ha9$1@speranza.aioe.org> (permalink) |
| References | (4 earlier) <162dnU-Rw5IpVOrNnZ2dnUVZ8qCdnZ2d@bt.com> <k59snb$oqm$1@speranza.aioe.org> <k59un2$qem$1@dont-email.me> <k5beod$t0h$1@speranza.aioe.org> <k5blp3$3fj$1@dont-email.me> |
BartC wrote:
> If the hardware can directly deal with 64-bit floats, then there is little
> performance loss (compared with attempting 64-bit arithmetic on 32-bit
> hardware, or in software).
It really depends on the hardware and how the code was compiled. For
example, the x86-64 ISA includes instructions which take operands that pack
four single-precision numbers, while the double precision version can only
pack two double-precision ones, which means that compilers are able to pull
some magic tricks. For instance, take the following functions:
<code>
float foo(float const A[], float const B[], float const C[], float const
D[])
{
float value = 0;
for(int i = 0; i < 10; i++)
value += A[i]+B[i] + C[i] + D[i];
return value;
}
double bar(double const A[], double const B[], double const C[], double
const D[])
{
float value = 0;
for(int i = 0; i < 10; i++)
value += A[i]+B[i] + C[i] + D[i];
return value;
}
</code>
With g++ 4.6, compiling this code with -mtune=k8 -O2, foo() results in a
loop with 9 instructions, while bar() results in a loop with 11
instructions. If -mtune=k8 -O3 is used, foo() unrolls to 50 instructions
while bar() is unrolled to 71.
This example might be very specific, but it indicates thath the performance
penalty associated with the use of double-precision numbers instead of
single-precision ones may not be that small.
> Anyway, I remember using 32-bit floats in an application (originally using
> software emulation), and they weren't of sufficient accuracy for some
> types of problems (mapping for example). They only have 1 in 8 million
> precision after all. Switching to 64-bits solved that problem.
That isn't a FP error, only a blatant design error. Single-precision
numbers simply weren't capable of representing the numbers that needed to be
represented. It's like trying to represent unicode characters in 7-bit
ASCII.
Rui Maciel
Back to comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
64 bit code bob <bob@coolfone.comze.com> - 2012-10-10 08:22 -0700
Re: 64 bit code Jongware <jongware@no-spam.plz> - 2012-10-10 17:35 +0200
Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-10 17:37 +0100
Re: 64 bit code Robert Wessel <robertwessel2@yahoo.com> - 2012-10-10 12:54 -0500
Re: 64 bit code Fritz Wuehler <fritz@spamexpire-201210.rodent.frell.theremailer.net> - 2012-10-10 21:37 +0200
Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-10 21:46 -0500
Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-10 20:43 +0100
Re: 64 bit code "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-10-12 08:40 +0100
Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-12 12:36 -0500
Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-12 20:57 +0100
Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-12 21:30 +0100
Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-12 16:33 -0500
Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-13 00:44 +0100
Re: 64 bit code Ben Pfaff <blp@cs.stanford.edu> - 2012-10-12 20:07 -0700
Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-13 11:11 +0100
Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-13 13:11 +0100
Re: 64 bit code Willem <willem@turtle.stack.nl> - 2012-10-13 12:34 +0000
Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-13 09:50 -0500
Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-13 17:25 +0100
Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-13 17:53 +0100
Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-13 17:05 +0100
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-13 10:37 +0200
Re: 64 bit code "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-10-27 12:18 +0100
Re: 64 bit code "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-10-27 12:54 +0100
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-27 15:13 +0200
Re: 64 bit code Robert Miles <milesrf@Usenet-News.net> - 2012-10-28 04:12 -0500
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-28 13:10 +0100
Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-29 04:38 +0000
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-29 09:30 +0100
Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-30 22:09 +0000
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-31 09:47 +0100
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-31 09:55 +0100
Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-31 14:32 +0000
Re: 64 bit code Patricia Shanahan <pats@acm.org> - 2012-10-27 08:51 -0700
Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-27 17:23 +0100
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-27 20:43 +0200
Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-30 22:16 +0000
Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-31 09:53 +0100
Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-31 14:33 +0000
Re: 64 bit code Fritz Wuehler <fritz@spamexpire-201211.rodent.frell.theremailer.net> - 2012-11-01 00:25 +0100
Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-10 21:04 +0100
Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-10 21:52 +0100
Re: 64 bit code Ian Collins <ian-news@hotmail.com> - 2012-10-11 10:50 +1300
Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-10 21:54 -0500
Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-11 13:11 +0100
Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-11 11:17 -0500
Re: 64 bit code Ben Pfaff <blp@cs.stanford.edu> - 2012-10-10 13:17 -0700
Re: 64 bit code Fritz Wuehler <fritz@spamexpire-201210.rodent.frell.theremailer.net> - 2012-10-11 19:36 +0200
Re: 64 bit code Ben Pfaff <blp@cs.stanford.edu> - 2012-10-12 08:13 -0700
Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-10 20:38 +0100
Re: 64 bit code Robin Vowels <robin.vowels@gmail.com> - 2012-10-10 15:22 -0700
Re: 64 bit code Robert Miles <milesrf@Usenet-News.net> - 2012-10-12 02:13 -0500
csiph-web