Hello All, (especially Sun engineers)

I wanted to use this email to get people thinking about how Altivec can increase the 
performance of Java3D applications.  That is, I hope to see responses to this email.

I know Java3D is not yet supported on the macintosh platform, and I know that most of 
us hope it would be.  I know I would sell my dell inspiron 8100 craptop if I could 
develop on a Powerbook... anyways, I digress.

By the way, Java3D may not exist on the Mac, but the vector math classes certainly do. 
 So consider not only how J3D could be accelerated, but also how the vecmath classes 
could!

So first I will give a rough overview of what Altivec can do, and then I hope to see a 
flood of emails!

Altivec Overview:
------------------------------------------
1) Altivec is a Single Instruction Multiple Data processing unit onboard the G4 
processors (built by Motorola, sold in Apple Macs).  This means for example, that for 
certain cpu instructions, it is possible to process several chunks of data 
simultaneously, instead of just one chunk. This can in some cases lead to a 
performance increase of 8x, sometimes more sometimes less.

2) The Altivec processing unit onboard the G4 processor can be used SIMULTANEOUSLY 
with other normal CPU operations.  This is unlike Pentiums MMX (I believe) which 
allows only SIMD or tradtional CPU operations at once, but not both.

3) Altivec handles intER and intRA element operations. There are 2 integer inter 
element units, 1 floating point inter element unit, and 1 intra element unit.  All 
units may run simultaneously (I believe).

4) intra element operations allows Altivec to very quickly take the bits of a data 
chunk, and rearrange them in any which way into a new data chunk.

5) inter element operations consist of a set of floating point and integer operations. 
 All floating point operations in Altivec are currently single precision, while 
integer operations are 8 or 16 or 32 bit. (I believe)

6) To be more precise, the inter element integer operations supported on one of the 
units is: -, +, ?=, logical shifts, and logical operations, all in a single cycle.

7) the inter element integer operations supported on the other such unit handles 
multiplication, and multiplication with addition (known as multiply and accumulate I 
believe) within a maximum of 4 cycles (I believe)

8) the inter element floating point operations supported include addition, 
subtraction, multiply, and multiply accumulate, within a maximum of 4 cycles (I 
believe)
--------------------------------------

Hows that for a crash course!
I hope to hear about how to improve vecmath and J3D performance!

I would refer you to the following article on Altivec by Tom Thompson if you would 
like to know more, or would just like to figure out if I have made any mistakes in my 
info!
http://www.mactech.com/articles/mactech/Vol.15/15.07/AltiVecRevealed/

Cheers!
Ian Nieves
[EMAIL PROTECTED]

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to