High Performance Machine Learning through Codesign and Rooflining