Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #1022

Re: Compiler optimization and floating point operations

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED!nerds-end
From Cameron McInally <cameron.mcinally@nyu.edu>
Newsgroups comp.compilers
Subject Re: Compiler optimization and floating point operations
Date Mon, 28 Oct 2013 20:41:38 -0400
Organization Compilers Central
Lines 20
Sender johnl@iecc.com
Approved comp.compilers@iecc.com
Message-ID <13-10-039@comp.compilers> (permalink)
References <13-10-026@comp.compilers> <13-10-029@comp.compilers> <13-10-037@comp.compilers>
NNTP-Posting-Host news.iecc.com
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1
X-Trace leila.iecc.com 1383014845 23570 64.57.183.58 (29 Oct 2013 02:47:25 GMT)
X-Complaints-To abuse@iecc.com
NNTP-Posting-Date Tue, 29 Oct 2013 02:47:25 +0000 (UTC)
Keywords optimize, arithmetic
Posted-Date 28 Oct 2013 22:47:25 EDT
X-submission-address compilers@iecc.com
X-moderator-address compilers-request@iecc.com
X-FAQ-and-archives http://compilers.iecc.com
Xref csiph.com comp.compilers:1022

Show key headers only | View raw


On Mon, Oct 28, 2013 at 6:50 PM,  <christian.bau@cbau.wanadoo.co.uk> wrote:
>> [I think you mean they're not associative.  I don't know any situations
>> where a+b != b+a, but lots where a+(b+c) != (a+b)+c -John]
>
> Take fused multiply-add, and the expression a*b + c*d.
> It can be evaluated either as fma (a, b, c*d) or fma (c, d, a*b).
>
> It would seem natural that the code for a*b + c*d and for c*d + a*b
> would be different, with different results.

Right, that's called reassociation. The order of operations in the
expression tree has changed, so the finite precision rounding occurs
on different intermediate results. The same problem exists in some
floating point parallel reductions and such.

Most compilers will offer a directive, similar to FP_CONTRACT, for
such critical pieces of code. Some compilers [the good ones ;)] even
have flags to disable optimization passes that involve reassociation.

-Cameron

Back to comp.compilers | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

Compiler optimization and floating point operations Abid <abidmuslim@gmail.com> - 2013-10-23 13:47 -0700
  Re: Compiler optimization and floating point operations Cameron McInally <cameron.mcinally@nyu.edu> - 2013-10-23 22:55 -0400
  Re: Compiler optimization and floating point operations glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2013-10-24 02:56 +0000
  Re: Compiler optimization and floating point operations George Neuner <gneuner2@comcast.net> - 2013-10-24 07:41 -0400
    Re: Compiler optimization and floating point operations Jean-Marc Bourguet <jm@bourguet.org> - 2013-10-24 15:51 +0200
    Re: Compiler optimization and floating point operations "Steven G. Kargl" <sgk@troutmask.apl.washington.edu> - 2013-10-24 16:38 +0000
      Re: Compiler optimization and floating point operations christian.bau@cbau.wanadoo.co.uk - 2013-10-28 15:54 -0700
    Re: Compiler optimization and floating point operations George Neuner <gneuner2@comcast.net> - 2013-10-24 15:51 -0400
    Re: Compiler optimization and floating point operations glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2013-10-24 20:21 +0000
    Re: Compiler optimization and floating point operations christian.bau@cbau.wanadoo.co.uk - 2013-10-28 15:50 -0700
      Re: Compiler optimization and floating point operations Cameron McInally <cameron.mcinally@nyu.edu> - 2013-10-28 20:41 -0400

csiph-web