Yes, warp schedulers in Kepler can schedule two teams per cycle if:
- instructions are independent
- instructions taken from the same warp
- SM has sufficient execution resources for both commands.
If this meets your definition of superscalar, then it is superscalar.
As for pipelining, I view pipelining differently. Various execution units in Kepler SM conveyor belts. Letβs take a floating-point number as an example.
At given clock ticks, the Kepler shuttle scheduler can schedule a floating point multiplication operation by a floating point unit. The results of this operation may not be displayed for a number of hours later (i.e. they are not available in the next measure), but in the next measure, a new floating point operation may be scheduled on the same floating point functional units, because the hardware (in this case, floating point modules) pipelined.
clock operation pipeline stage result 0 MPY1 -> PS1 1 PS2 ... ... N-1 PSN -> result1
in the next hours after measure 0, a new multiplication command can be scheduled on the same HW, and the corresponding result will appear in the next cycle after result1 .
Not sure if this is what you meant by βdifferent operations at a timeβ
Robert Crovella
source share