Co-Optimizing CPUs and Accelerators in Constrained Systems
Alec Roelke, Mircea R. Stan · 2018
The rapid rise in popularity of machine learning techniques to mimic functionalities of human cognition and solve problems such as natural language processing has driven a push toward the creation of application-specific accelerators included alongside general-purpose CPUs to improve the performance of inference applications. While significant work has been done to model these accelerators and create ways to explore their design spaces and have even incorporated external effects like data transfer latency, they do not account for the portion of the workload running on the CPU. When designing an electronic system under constraints, prioritizing the accelerator can harm the power or performance of the CPU and reduce the overall quality of the design when running workloads with significant components on it. In this work, we present several workloads running on a RISC- V system with an accelerator tailored to each one and show how the overall power, performance, and area can benefit in the presence of constraints by co-designing the two parts. By using this methodology, we show that power, performance, and area can be improved by up to 66%, 40%, and 25 %, respectively, given constraints on each metric.