Dear colleagues,
I wonder whether this computing model is realistic. I agree that
interrupting a computation may be necessary, on slow speed
computers even during a dot product computation.
But I have doubts whether this is necessary on a modern computer.
Let us assume that the two vectors have
10
to the power 5 components (/10^{5}), what is quite a large number.
Then computing a dot product requires twice as many arithmetic
operations. By pipelining this number even can be reduced by 1/2.
On a modern processor that performs 10 to the power of 15
operations (/10^15) in a second these can be done in 1devided by
(10 to the power 10) of a second (/
Best regards
Ulrich
Am 28.01.2016 um 02:38 schrieb David Biancolin:
(I'm one of the Berkeley students that implemented
the hardware EDP accelerator)
It seems to me that an interruptable EDP is absolutely
necessary; as you point out we definitely need to allow the OS
to preempt the currently running thread, and moreover
loads/stores generated by the EDP unit itself could generate
exceptions of their own. I don't think it is particularly
difficult to enable restartable or precise exception behavior in
the unit -- yes this might require writing out the state of the
accumulator to memory, but this is something we already need to
support for the rest of the architectural state of the machine.
For more aggressive machines with vector or wide packed-SIMD
extensions, the state of the register files is much greater than
that of the accumulator. We just need to handle the accumulator
as we would vector register state.
Indeed, i don't think there will be a place for EDP in small
cores (ex. the 35K transistor count cores you mentioned) --
however these microcontrollers often lack even a floating point
unit (for precisely the reason you gave).