[LAD] [Faudiostream-devel] Prototyping algorithms and ideas

Tim Goetze tim at quitte.de
Fri Feb 1 16:01:35 UTC 2008


[Paul Davis]

>On Fri, 2008-02-01 at 08:14 +0100, Yann Orlarey wrote:
>
>> The minimal combination to activate FTZ mode seems to be :
>> 
>> "-O3 -march=native -mfpmath=sse -ffast-math"
>> 
>> when you are on a sse capable cpu. Here it works, you don't have 
>> denormals any more :-).
>
>Ardour takes manual control of FTZ and DAZ flags, and also offers DC
>offsets (adding a very very tiny value to every sample) as ways to
>control denormals. Our experience (or our users' experience) has been
>that FTZ is better than DAZ, but that neither reduces denormal effects
>as much as a DC offset. It is still possible to see denormal-induced
>performance slowdowns even when FTZ is in effect, although the magnitude
>is reduced.

On this Core2 (6600) chip, this:

  #ifdef __SSE3__
  _MM_SET_DENORMALS_ZERO_MODE (_MM_DENORMALS_ZERO_ON);
  #endif

  #ifdef __SSE__
  _MM_SET_FLUSH_ZERO_MODE (_MM_FLUSH_ZERO_ON);
  #endif

along with -mfpmath=sse -msse -msse3 reliably eliminates denormals 
completely.  DSP code runs at full speed with no more need for DC, 
noise, Nyquist or other signal injection.

Flush-to-zero alone did not bring a palpable improvement when I 
evaluated the different options.  On this chip that is, of course.

Cheers, Tim



More information about the Linux-audio-dev mailing list