That document is from 2002 - today all these suggestions make little sense unless you want your code to run explicitly on a CPU without SSE. The best strategy for avoiding denormals is to enforce the compiler to use SSE and avoid the FPU, then set the Denormals-Are-Zero (DAZ) and Flush-To-Zero (FTZ) flag in the SSE status register.
Stefan > On 10 Mar 2017, at 7:27 , Michael Gogins <michael.gog...@gmail.com> wrote: > > Here is much more complete information: > http://www.musicdsp.org/files/denormal.pdf > > Hope this helps, > Mike > > ----------------------------------------------------- > Michael Gogins > Irreducible Productions > http://michaelgogins.tumblr.com > Michael dot Gogins at gmail dot com > > > On Fri, Mar 10, 2017 at 5:06 PM, Evan Balster <e...@imitone.com> wrote: >> Hey, Stephen — >> >> For best performance, I recommend following Michael's suggestion about >> adding some noise to the waveform. Or use platform-dependent techniques to >> enable flush-to-zero on the CPU. Conditionally flushing works, but it takes >> up cycles — and with filters you often want as much performance as you can >> get! >> >> – Evan Balster >> creator of imitone >> >> On Thu, Mar 9, 2017 at 11:11 PM, ChordWizard Software >> <corpor...@chordwizard.com> wrote: >>> >>> Hi Michael, >>> >>> Many thanks, denormal numbers it was. >>> >>> I have now added a check after each filter calculation point that flushes >>> small numbers to zero. >>> >>> With this extra step, the filter now consumes about 30% less time than the >>> rendering phase, instead of 800% more! >>> >>> I never knew about this, looks like a real trap, for very little benefit. >>> If people are looking to squeeze out a few more digits of precision or >>> exponent limit, surely the sensible thing is to switch to doubles? >>> >>> There doesn't seem to be any consistent way to switch this annoying >>> "feature" off in standard C++, but at least I am forewarned now, and the >>> performance benefit hugely outweighs the cost of my messy little hack to >>> circumvent it. >>> >>> Thanks for the quick and insightful advice. >>> >>> Regards, >>> >>> Stephen Clarke >>> Managing Director >>> ChordWizard Software Pty Ltd >>> corpor...@chordwizard.com >>> http://www.chordwizard.com >>> ph: (+61) 2 4960 9520 >>> >>> >>> _______________________________________________ >>> dupswapdrop: music-dsp mailing list >>> music-dsp@music.columbia.edu >>> https://lists.columbia.edu/mailman/listinfo/music-dsp >>> >> >> >> _______________________________________________ >> dupswapdrop: music-dsp mailing list >> music-dsp@music.columbia.edu >> https://lists.columbia.edu/mailman/listinfo/music-dsp > _______________________________________________ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp _______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp