You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We use __rv_kmada all over the place for MAC operations. KMADA is a saturating instruction, aka it prevents accumulator overflows.
It turns out that ARM's CMSIS-NN actually uses SMLAD which is a non-saturating (aka. warping) Multiply-Add. To bit bit-accurate in edge cases where an overflow might occur, we should replace the __rv_kmada with __rv_kmda? (Need to double check this!).
However prio is pretty low since we are implementing the outdated RVP draft anyways. The newer draft has dropped saturating accumulating instructions completely (see [email protected]), hence we would have to replace them anyways when migrating to the newer spec (e.g. make use of PM2ADDA.H).
The text was updated successfully, but these errors were encountered:
We use
__rv_kmada
all over the place for MAC operations.KMADA
is a saturating instruction, aka it prevents accumulator overflows.It turns out that ARM's CMSIS-NN actually uses
SMLAD
which is a non-saturating (aka. warping) Multiply-Add. To bit bit-accurate in edge cases where an overflow might occur, we should replace the__rv_kmada
with__rv_kmda?
(Need to double check this!).However prio is pretty low since we are implementing the outdated RVP draft anyways. The newer draft has dropped saturating accumulating instructions completely (see
[email protected]
), hence we would have to replace them anyways when migrating to the newer spec (e.g. make use ofPM2ADDA.H
).The text was updated successfully, but these errors were encountered: