Re: 64bit processing - Why?
Re: 64bit processing - Why?
- Subject: Re: 64bit processing - Why?
- From: Justin Carlson <email@hidden>
- Date: Thu, 30 Jul 2009 22:34:16 -0400
Stephen Blinkhorn wrote: I don't think anyone has mentioned this yet and correct me if I'm wrong but you can't do double precision computation with SSE/Altivec which could be significant for certain plugins.
Example: ADDSUBPS vs. ADDSUBPD
Regarding SSE and fp calculations, registers, what Brian Willoughby said about fp calculations should be expanded on:
It also help to consider the internal operation of processors when performing math. Most multiply operations which work on 32-bit numbers produce a 64-bit result. Thus, even starting with pure 32- bit numbers you're losing precision. The details between fixed point and floating point are slightly different, but there's always some loss. Promoting single to double before multiplication allows preservation of more precision. You want to hang on to those fractional bits until the last step, just like analog processing maintain signals that are quieter than the noise floor.
While this is common on many architectures, it is not (correct me if I am wrong along the way) standard in AU plugin developers' most common deployment architecture: Intel, 32 bit, OS X. For this runtime, SSE instructions+registers are *default*. SSE mechanics differ from traditional FPU based calculations as intermediate results are stored in SSE registers at native width (one double occupies 64 bits in the SSE register), and not necessarily calculated beyond 32 or 64 bits of resolution when using SSE (this is standards compliant), as a FPU typically would. So there is variance for the target. SSE results are not stored in 80 bit fp registers, therefore, there is no use for the SSE insn being performed to calculate to 80 bits (for example) as the result is always stored at native width in this case.
Cheers,
J
|
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden