Disagree here. Denormals for double give you an extra range of about 2^50, but you could easily get 2^500 extra range by processing at higer gain, double precision goes up to 2^1024, so lots of headroom there. A much better way to increase dynamic range would be some way to specify the exponent bias, far more valuable than faster denormal processing. Also, I have not yet seen an audio algorithm where the extra precision of denormals would make any difference or be audible, so I am perfectly happy with DAZ/FTZ.
Stefan > On 27. Mar 2023, at 17:27, robert bristow-johnson <[email protected]> > wrote: > > Thanks for the info, Ethan and Andreas. > > Well, that's what FPUs did before. There's little use for denorms if you set > DAZ and FTZ to 1. Then it's like denorms never existed. > > I can't believe it would take much additional real estate on the chip to just > make denorms work like any other float in the same instruction cycle. Either > way, the full mantissa *with* the hidden 1 (or without the hidden 1 for > denorms) has to go into a wide register with a barrel shifter. It should not > require any additional instruction clocks. > > I think denorms are a good idea. They should be handled routinely by now. > > L8r, > > robert > > Powered b y Cricket Wireless > > ------ Original message------ > From: Ethan Fenn > Date: Mon, Mar 27, 2023 10:02 AM > To: [email protected]; > Cc: > Subject:Re: Are there now 64-bit processors that deal with denorms routinely > with no exception or interrupt? > > My understanding is that on any reasonably modern Intel/AMD machines, you > just have to make sure that the Flush To Zero (FTZ) and Denormals Are Zero > (DAZ) hardware flags are set when your DSP code runs and there will be no > penalty. If you're building a standalone application, these are usually set > by default. If you're building s ome kind of plugin or library, I think it's > good practice to put in a couple lines of code at your entry point to make > sure they're set before doing any DSP. > > -Ethan > > > > On Mon, Mar 27, 2023 at 7:41 AM Andreas Gustafsson <[email protected]> > wrote: > robert bristow-johnson asked: > > If there are processors with FPUs that don't deal with denorms and > > cause an exception, I would be interested in knowing who the black > > sheep and the white sheep are. > > Is your concern that the exception or interrupt will cause the program > to abort, or just that it will be slow? Denormals can have a performance > penalty even if no interrupt or exception is involved, for example > when they are handled in microcode. > > On x86_64, denormals typically do not cause floating point exceptions > (unless you specifically ask for it by clearing the DM bit in MXCSR), > but they can nonetheless have a significant performance penalty. > > OTOH, the Apple M1 ARM processor appears to deal with denormals > without a performance penalty. > > > I know that 25 years ago, exceptions caused by denorms (and maybe > > NaNs) were a headache for some audio DSP coders. Are denorms still > > a problem where you have to force them to flush-to-zero so to not > > trip an exception? > > At least on x86_64, they are still a performance problem if you have > any exponential decays that can reach the denormal range. > -- > Andreas Gustafsson, [email protected]
