Hybrid Optimization/heuristic Instruction Scheduling for Programmable Accelerator Codesign

Tony Nowatzki,Newsha Ardalani,Karthikeyan Sankaralingam,Jian Weng
DOI: https://doi.org/10.1145/3243176.3243212
2018-01-01
Abstract:Recent programmable accelerators are faster and more energy efficient than general purpose processors, but expose complex hardware/software abstractions for compilers. A key problem is instruction scheduling, which requires sophisticated algorithms for mapping instructions to distributed processing elements, routing of operand dependences, and timing the arrival of operands to enable high throughput. The complex dependences between mapping, communication and timing make prior scheduling techniques insufficient. Optimization-based approaches are too slow, and heuristic-based approaches cannot achieve high quality. Our first insight is that the algorithm can be solved in a series of phases with overlapping responsibilities to reduce complexity. Second, it is possible to combine optimization-based and stochastic-heuristic based search strategies, to exploit the best features of both. This leads to the two primary techniques we explore, phase overlapping and hybridization. In this work we explore the codesign of scheduling algorithms with a challenging-to-schedule programmable accelerator. We show we can improve its area by 35% by trimming its scheduling-friendly structures, using a scheduling algorithm that is 5x faster than the state-of-the-art optimization-based scheduler, with up to 2x better throughput.
What problem does this paper attempt to address?