Page 1 of 1

_MM_SET_FLUSH_ZERO_MODE

Posted: Mon Apr 28, 2014 1:38 pm
by Zonder
Just came across this http://stackoverflow.com/questions/9314 ... nce-by-10x. I wasn't aware there was a performance hit with nearly zero numbers.

Are we currently using the optimization? I am unsure if we should or not but though I would post before I forget about it :)

Re: _MM_SET_FLUSH_ZERO_MODE

Posted: Mon Apr 28, 2014 5:52 pm
by drwbns
Wow. i never knew this existed either. does anyone with more knowledge have a better response to zonder?

Re: _MM_SET_FLUSH_ZERO_MODE

Posted: Mon Apr 28, 2014 6:09 pm
by dark_sylinc
Hi, like the link says, denormals are actually very rare, so statistically they don't impact framerate (unless you're doing something extremely wrong or prone to denormals that forces to hit denormals too often per frame).

This specific test bench shows because it keeps dividing by the same number 9000000 times. This is not a realistic scenario.

We can't set the flush mode because it's a thread-wide operation, making it a bold move if the user linking against Ogre expects denormals to behave as denormals.
If you don't care for denormals becoming zero (which is common for most games) set the flush to zero mode at the beginning of each thread you spawn in your own program.

I suggest you read the great Floating Point article series from Bruce Dawson for more information.