Less than one bit per weight, processing-in-memory, and the hardware architectures that make it possible