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).