By: Sylvain Collange (full.name.delete.delete@this.this.gmail.com), July 12, 2013 6:00 am
Room: Moderated Discussions
Wilco (Wilco.Dijkstra.delete@this.ntlworld.com) on July 12, 2013 3:51 am wrote:
> Denormals are rarely used in FP code, but like most RISCs, the default setting for ARM is flush-to-zero,
> so it won't make a difference in the results even if you do encounter them. Compilers typically default
> to a non-IEEE compatible mode as well, so IEEE compliance of denormals is not really relevant.
I believe gcc still defaults to IEEE-754 mode and avoids NEON unless invoked with -mfast-math:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43703
By the way, wasn't the case of gradual underflow settled 30 years ago? If subnormals are rarely used, most of the time the way they are handled does not matter. Now for the remaining times, would you rather compute a certainly-wrong answer quickly or a potentially-correct answer for some performance penalty?
Either way, there is little point in handling subnormals in software/microcode nowadays. An FMA can be implemented with full-speed hardware subnormal support for very little overhead (ARM has a paper on that...)
In 2013, there is no excuse for not even providing a slower mode that complies with 28 year-old standards...
> Denormals are rarely used in FP code, but like most RISCs, the default setting for ARM is flush-to-zero,
> so it won't make a difference in the results even if you do encounter them. Compilers typically default
> to a non-IEEE compatible mode as well, so IEEE compliance of denormals is not really relevant.
I believe gcc still defaults to IEEE-754 mode and avoids NEON unless invoked with -mfast-math:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43703
By the way, wasn't the case of gradual underflow settled 30 years ago? If subnormals are rarely used, most of the time the way they are handled does not matter. Now for the remaining times, would you rather compute a certainly-wrong answer quickly or a potentially-correct answer for some performance penalty?
Either way, there is little point in handling subnormals in software/microcode nowadays. An FMA can be implemented with full-speed hardware subnormal support for very little overhead (ARM has a paper on that...)
In 2013, there is no excuse for not even providing a slower mode that complies with 28 year-old standards...