lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> If you look at the reference info, you'll see that all Intel/IBM
compatible
> processors/coprocessors handle ints and fixed/floats natively.  SIMD stuff
> allows the appearance of processing a vector in one bite (not byte) but it
> (should) only work if you are using a scalar (as was used in an example
> earlier - vector vec * 10, where each member of the vector is multiplied
by
> the value 10) - hence the acronym SIMD (Single Instruction, Multiple
Data).

It is indeed Single Instruction, Multiple Data.  But you are not limited to
a scalar as the second piece of data, it is true multiple data for both
operands.

So could could have something like (pseudo assembly):

  vector v1, v2
  add v1,v2

This is true for both the Intel (ie P4) (P4 SIMD) and IBM (PowerPC AltiVec)
processors that you mentioned.

But you're right, its not "true" vector support in a 3D sense.  You can't,
for example, do a dot product, or anything more complex than applying the
same Instruction to all peices of data in the same way.  The intel version
is also tedious to use in other ways, due to a lack of orthogonality in many
ways (IBM's processor is somewhat more orthogonal in that regard), and the
difficulty of getting data in/out of the SSE register sets can slow down
what could potentially be a huge speed up.

Love, Light and Peace,
- Peter Loveday
Director of Development, eyeon Software