引用:
原帖由 RacingPHT 于 2008-9-6 02:18 发表 
G80的ALU延迟应该远大于4。
具体可以查询文档。里面提到为了避免register l/s hazard,需要的最小线程数字。
我认为4 cycle的设计只是为了简化/节约调度器的复杂度而已。
偶看对于常用计算指令:
一条算数指令的延迟是固定的,不同算数种类的指令有不同的延迟。
而主要算数指令fadd, fmul, madd,iadd等的延迟应该就是4。
例如下面有两条指令,指令2对指令1是有dependent关系的,而指令2一定是可以4个cycles后就能保证正确性了。
指令延迟说的就是dependent条件下的吞吐间隔。
除非第二条指令需要等更多cycles才能保证正确性,那才能说是延迟超过4cycle。
指令1:fadd fr0=fr1+fr2
指令2:fadd fr2=fr0+fr0
pdf里的:
Arithmetic Instructions
To issue one instruction for a warp, a multiprocessor takes:
4 clock cycles for:
single-precision floating-point add, multiply, and multiply-add,
integer add,
bitwise operations, compare, min, max, type conversion instruction;
__mul24 and __umul24 provide signed and unsigned 24-bit integer multiplication in 4
clock cycles.