Since people say you cannot double-pump the MPX bus, is it possible to have a seperate bus for each processor on a dual processor machine?</strong><hr></blockquote>
Actually I wouldn't expect any appreciable difference Mhz for Mhz in LW on a 64-bit CPU. LW uses doubles which are already handled in the current G4 FPU's. Making the integers longer won't help those floats/doubles at all. A wider Altivec would make a difference, but that really isn't contingent on a 64-bit CPU, just how much it would impact the instruction set. I agree with most of Programmers points there, but think with proper planning, extension could be transparent for existing code and no more difficult for future code. Proper planning are two pretty big words there though.
I do think you may have hit on a really good use for the extra bits in the ints though. Carrying that extra precision for free would make the editing process that much more bulletproof. Even if you only need a couple extra bits per color, use what is available if there is no speed penalty.</strong><hr></blockquote>
The 32 -> 64 bit performance difference would definitely be very slight (we're talkin' 5% or less here)... even if you just use 32-bit integers. The reason is that the pointers have to be twice as big, so if you use a lot of pointers (common in C++) then your data gets bigger.
The "extra bits of precision" isn't really going to factor in for either graphics or audio... they'll go to single precision floating point first, and double precision next. Floating point has the advantage of being able to maintain precision of very small numbers and fractional values without havnig to explicitly code the location of the binary point. Since audio is normally 16-bit per sample and graphics 8-bit (more recently 10 and 16), the 24-bit mantissa of single precision floating point is plenty.
One of the more common uses I've heard for really large integers is tracking money -- you don't want round off errors, and numbers of pennies routinely exceeds 4.5 billion these days.
Comments
<strong>I just had a thought.
Since people say you cannot double-pump the MPX bus, is it possible to have a seperate bus for each processor on a dual processor machine?</strong><hr></blockquote>
Theoretically yes, practically no.
I say roll on the 13th and a Silent G4 update. I know I will be buying if at the right price!!!!
<strong>
Actually I wouldn't expect any appreciable difference Mhz for Mhz in LW on a 64-bit CPU. LW uses doubles which are already handled in the current G4 FPU's. Making the integers longer won't help those floats/doubles at all. A wider Altivec would make a difference, but that really isn't contingent on a 64-bit CPU, just how much it would impact the instruction set. I agree with most of Programmers points there, but think with proper planning, extension could be transparent for existing code and no more difficult for future code. Proper planning are two pretty big words there though.
I do think you may have hit on a really good use for the extra bits in the ints though. Carrying that extra precision for free would make the editing process that much more bulletproof. Even if you only need a couple extra bits per color, use what is available if there is no speed penalty.</strong><hr></blockquote>
The 32 -> 64 bit performance difference would definitely be very slight (we're talkin' 5% or less here)... even if you just use 32-bit integers. The reason is that the pointers have to be twice as big, so if you use a lot of pointers (common in C++) then your data gets bigger.
The "extra bits of precision" isn't really going to factor in for either graphics or audio... they'll go to single precision floating point first, and double precision next. Floating point has the advantage of being able to maintain precision of very small numbers and fractional values without havnig to explicitly code the location of the binary point. Since audio is normally 16-bit per sample and graphics 8-bit (more recently 10 and 16), the 24-bit mantissa of single precision floating point is plenty.
One of the more common uses I've heard for really large integers is tracking money -- you don't want round off errors, and numbers of pennies routinely exceeds 4.5 billion these days.