At one point I had a weird obsession in making neural networks train only on uint_8. I tried:
0 to 255 is all you get. You know, "Real Programmers scorn floating point arithmetic."
You want 16 bits? Make it a 8 bits overflow counter.
We don't need divisions or multiplications when we have bit shifts.
My end goal was language models (probably not "large") but I barely got to make an acceptable MNIST after begrudgingly accepting that I should sully my 8 bits purity with negative numbers.
I still have that itch to scratch that I feel the process of gradient descent could be replaced by something better designed for the type of information we want to flow back ("move that thingie in that direction for the loss to go down")
Basically I liked the idea of easy visualization and forcing myself to not use any sort of layer normalization (that I secretly suspect I never fully understood)