[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