Methods for energy-efficient compute and communication in deep learning