>"At ultra-low bitwidths,
matrix multiplication can be effectively replaced with additions
, lowering the total arithmetic workload needed to infer through a model."
Interesting! I never knew that before... I will have to do some more research on this, but yes, it definitely sounds possible!
(Also (and this is just a wild guess/hunch here!)
in theory, matrix multiplication could be replaced with pre-computed cached lookups from a lookup table in memory
if, if and only if the resultant pre-computed lookup table of result matrices could fit into memory available!
In other words, think of a Matrix not as a 2D array, but as a 1D string. Think of the Matrix multiply operation as first appending the 1D string of the first matrix to the 1D string of the second matrix, then using that string as a Key to look-up a precomputed result in Memory...
Of course, the limitation to this approach is the availability of memory relative to the permutations of input values... It could work -- but only for smaller matrices... which leads to another strange idea... in that set of pre-computed matrix permutations, there might be duplicates... figure out a way to put duplicates in memory only once (could use pointers or some other scheme to do this) and you could theoretically store more matrices in the same memory and/or slightly larger matrices!
Anyway, just rambling out loud! :-)
Remember, "almost all programming can be viewed as an exercise in caching" to quote the legendary programmer Terje Mathisen! :-) )
Anyway, great article!