Somebody can explain this?

Guilherme

Newcomer
Hi friends!

I'd wanna know what means that:

ALU 1
1 Vec3 ADD + Input Modifier
1 Scalar ADD + Input Modifier
ALU 2
1 Vec3 ADD/MUL/MADD
1 Scalar ADD/MUL/MADD
Branch Execution Unit
1 Flow Control Instruction

I got it from a R520 review. I was reading and cannot understand this part. I know what is an ALU, but what is the rest?

Tanx if helping.
 
The rest are just the various functions the ALU performs and the formats its works on. Vec3 is 3 component vector, scalar is a number, input modifier probably means SINCOS or some special higher-order function, MADD = ADD(ition) + MUL(tiplication), branch execution unit is for dynamic branching.

Wikipedia, gamedev.net, flipcode.com, etc. should be able to help you.
 
Pete said:
input modifier probably means SINCOS or some special higher-order function
Err, no. Input modifier are some "simple" arithmetic operations which can be performed independantly on any of the (up to 3) inputs to an operation. These input modifiers include things like negation, scale by 2, bias (minus 0.5), reversion (1-input). You can also have more than one modifier per input.
As for the implementation of SINCOS, it's possible that some gpu would implement it directly (possibly requiring more than one clock cycle), or it's possible a gpu doesn't know anything about it (the driver uses taylor series expansion to break it down to "simpler" ops).
 
Guilherme said:
Hi friends!

I'd wanna know what means that:

ALU 1
1 Vec3 ADD + Input Modifier
1 Scalar ADD + Input Modifier
ALU 2
1 Vec3 ADD/MUL/MADD
1 Scalar ADD/MUL/MADD
Branch Execution Unit
1 Flow Control Instruction

I got it from a R520 review. I was reading and cannot understand this part. I know what is an ALU, but what is the rest?

Tanx if helping.
You're either at the wrong site; or you want to learn something that this site hopefully can progress onto being.

I'd personally be more interested in the latter, mostly because that would mean "free" education. Otherwise and other than lots of help-me-understand posts in public forums or emails to hardware folks, a course in a school would be better.

Or, your post can be a trick question post :)
 
One problem here for the OP is that a unit considered an "ALU" in the context of GPUs is actually a much more complicated functional unit than what is usually called an "ALU" in the context of CPUs (this gets worse by the fact that while there is plenty of decent-quality literature and university courses available on CPU architecture/design, there is practically nothing of the sort available for GPU architecture/design).

In CPU terminology, a unit called an "ALU" is generally only capable of performing a single (scalar) operation at a time, and the operations it can perform are limited to very simple integer operations (add, subtract, compare, and/or/xor, shift); other common operations such as load/store, multiply, branch, as well as anything that is vector or floating-point, are normally handled by other units that are NOT normally referred to as ALUs.

In a GPU, however, an "ALU" has come to means something rather different; it is a unit capable of perfoming at least a full four-element-vector floating-point operation all at once, implying the existence of at least four floating-point units. Many "ALU" designs in GPUs also offer extra options; if you don't need a full length-4 vector calculation, then you can split the 4 units so that some of them work on one instruction and the others on another instruction at the same time (in the case of the R520 pixel shader ALUs as listed above, the only split available is length-3 vector + scalar).
 
Last edited by a moderator:
Guilherme said:
Hi friends!

I'd wanna know what means that:

ALU 1
1 Vec3 ADD + Input Modifier
1 Scalar ADD + Input Modifier
ALU 2
1 Vec3 ADD/MUL/MADD
1 Scalar ADD/MUL/MADD
Branch Execution Unit
1 Flow Control Instruction

I got it from a R520 review. I was reading and cannot understand this part. I know what is an ALU, but what is the rest?

Tanx if helping.
The Input Modifier can do simple bit-operations like *2, *4, *0.5 et cetera.

To apply all DX modifiers one also need sometimes to bias values with -0.5 (or other pre-defined values.) Instead of the Bias, R300-R580 got a full ADD implemented.

The main unit offers a MAD-Unit (Multiply-Add, Multiplay cames first though) and is able to perform a dot product instead of a MAD-operation.

Since color values are often need different operations as the alpha value, R300-R580 offer separate color (Vector3) and alpha (scalar) combiner.
 
The explanation of the ALU's capabilities is already simplified, no special-function ALU, no crossbars, no interpolators, ...
 
Last edited by a moderator:
Back
Top