Streamroller: A Unified Compilation and Synthesis System for Streaming Applications

14
Следующее
Популярные
Опубликовано 6 сентября 2016, 17:15
Multicore systems have become the industry standard from high-end servers, down through desktops and gaming platforms, and finally into handheld devices. While the industry is still scrambling to find the right model to program these systems, compiler techniques for exploiting coarse grain parallelism have noticeably lagged behind. Stream programming is one model that has wide applicability in the multimedia, graphics, and signal processing domains. Streaming models execute as a set of independent kernels that explicitly communicate data through channels. This talk will present Streamroller, a unified compilation and synthesis system for mapping streaming applications on to multicores and for synthesizing custom application engines for stream programs. The talk will focus on a compiler technique for planning and orchestrating the execution of streaming applications on multicore platforms. The technique addresses the problems of equal work distribution across cores to keep all the cores busy, reducing communication overhead by efficiently overlapping all DMA transfers with computation, and minimizing synchronization overhead. A coarse grain software pipelining technique based on integer linear programming is presented which systematically handles these problems. The talk will also describe the code generation template for implementing the software pipeline onto the Cell architecture. The software pipelining method is compared to a method which simply executes a copy of the stream graph on each available processor. The naive unfolding method works well for completely stateless stream programs, whereas software pipelining produces quality schedules for stream programs with an arbitrary mix of stateful and stateless filters. For a range of streaming applications, a geometric mean speedup of 14.7x was observed on a 16-core Cell platform compared to a single core.
автотехномузыкадетское