Originally posted by: noxnet Why 5D-Shader? I read that this comes from the GPUs original purpose (graphics visualisation) and it is due to 5D-Vectors (conatining color values RGBA and ?) needed for this. Is this ture?
I think it was only one of the reasons behind this choice. IMHO the reasoning looked like RGBA + special function ( sin,cos, ... ).
But the real reason behind the choice is more complex. In general processing unit can be divided into 2 parts: execution control and computing units. Engineers have limited amout of transistors at their disposal, which have to be splitted into this 2 categories.
In typical CPU most of the transistors goes into execution control ( instruction decoding, branch prediction, out of order execution .... ) and computing units take rather small area.
In the case of gpus most of the transistors is used for computing units. But there are also variantions. One the one side there is nvidia with more advance control unit ( simplifying - one "control unit" per "one scalar" ) on the other hand there is ATI with 5 CU per thread. So in the case of ATI there is less transistors used for execution control and more for computations.
Such a choice has some advantages - 5870 has 2/3 fermi transistors and almost twice the peak computational power. But on the other hand it's much harder to write kernel which uses all 5xxx resources. Depending on the problem ATI GPU usage can be as low as 20-30% or as high as 95%.
For Nvidia which has more execution control transistors it's much easier to write kernel achieving high gpu utilisation ( but for the cost of lower peek flops ).