Software pipelining of dataflow programs with dynamic constructs on multi-core processor

Yogesh Murarka, Pankaj Shailendra Gode, Sirish Kumar Pasupuleti, Soma Kohli · 2014

Dataflow programming, which has been traditionally used for DSP application development, has evolved to coarsegrain dataflow programming to support programmable multicore architecture of modern DSPs. Software pipelining is an important scheduling technique to map a coarse-grain dataflow on a multicore architecture. A software pipeline schedule is executed in the self-timed manner on programmable cores. However in presence of conditional paths in a dataflow program, a selftimed execution of a software pipeline schedule can introduce unpredictability in the execution time and degrade the application performance. This paper addresses the problem of computing a software pipeline schedule of dataflow programs with dynamic constructs for self-timed execution on multi-core platforms. In this paper, we present a software pipeline scheduling technique that reduces the variation in execution time across software pipeline iterations. The schedule, when executed in a self-timed manner improves application performance. We present an integer linear programing (ILP) formulation that optimizes the software pipeline schedule. Our ILP formulation models the effect of conditional paths in a dataflow on the execution time of the schedule. Experimental evaluation shows that our solution could reduce the decoding time of a MPEG4 frame by upto 30%.

Read the paper · More papers on PaperTik