[PD-dev] 64-bit Tcl/Tk
Mathieu Bouchard
matju at artengine.ca
Sat Dec 16 18:57:56 CET 2006
On Sat, 16 Dec 2006, Hans-Christoph Steiner wrote:
> On Dec 16, 2006, at 12:18 PM, chris clepper wrote:
>> The 64 bit buzzword refers to memory addressing; double precision floats
>> are different than 64 bit CPUs or applications. FPUs have used 64 bit
>> floats for years regardless of their addressing capabilities.
> So does that mean it would be possible to make Pd use 64-bit floats on all
> CPUs without a major performance hit?
No, it's only possible to use 32-bit floats because the t_atom structure
contains a t_word union, which is often assumed to be the same size as a C
pointer; so in 32-bit mode you can only put a 32-bit float in a t_word.
If you put a double in t_word, then it becomes 8 bytes, so a t_atom
depends 12 or 16 bytes depending on whether t_atomtype gets extended to
the same size as the t_word. If it's 12 bytes you may get a slowdown due
to non-alignment, and in both cases you have a slowdown because it's more
RAM.
If t_atom were an opaque type, I know how to make it support 63-bit
floats, as well as all the other possible atoms, all in a 8-byte (64-bit)
structure, in both 32-bit and 64-bit mode. Note that I really mean 63-bit
floats here, and not 64-bit. (The same trick could be applied to shrinking
t_atom to 4 bytes in 32-bit mode if using 31-bit floats.)
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada
More information about the Pd-dev
mailing list