> The compiler writer always knows exactly how big each operand
> is, how many components it has, and which ones are needed. A
> vector instruction set will be the simplest ISA for software
> developers.

As someone who deals extensively with the low-level details of programming 
various ISAs, I disagree.  In practice most SIMD ISAs are a PITA to generate 
efficient code for. If you're not careful you end up with dozens of bizarre 
corner case instructions, or spending as much time shuffling data around as 
you do actual computations.  Expanding fixed length short vector expressions 
(i.e. shaders) into scalar code is trivial. 

It's only when you start dealing with multi-dimensional variable 
size/stride/bound arrays (i.e. full blown Fortran 90) that things start 
getting hairy. By that time you've already got a proper compiler, and getting 
decent efficiency out of a SIMD ISA actually even harder.

Remember that we've got *lots* of very similar threads to play with. Many of 
the techniques used on single-threaded[1] general purpose CPUs/applications 
are detrimental to overall performance in this environment.

Paul

[1] Most "multicore" CPUs still fall into this category.
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to