Hardware-aware design, search, and optimization of deep neural networks