Loop distribution for K-loops on Reconfigurable Architectures

O S Dragomir, K Bertels
2011 2011 Design, Automation & Test in Europe  
Within the context of Reconfigurable Architectures, we define a kernel loop (K-loop) as a loop containing in the loop body one or more kernels mapped on the reconfigurable hardware. In this paper, we analyze how loop distribution can be used in the context of K-loops. We propose an algorithm for splitting K-loops that contain more than one kernel and intraiteration dependencies. The purpose is to create smaller loops (Ksub-loops) that have more speedup potential when parallelized. Making use of
more » ... partial reconfigurability, the K-sub-loops can take advantage of having more area available for multiple kernel instances to execute in parallel on the FPGA. In order to study the potential for performance improvement of using the loop distribution on K-loops, we make use of a suite of randomly generated test cases. The results show an improvement of more than 40% over previously proposed methods in more than 60% of the cases. The algorithm is also validated with a K-loop extracted from the MJPEG application. A speedup of maximum 8.22 is achieved when mapping MJPEG on VirtexIIPro with partial reconfiguration and 13.41 when statically mapping it on the Virtex-4. for (i = 0; i < N; i + +) do SW1(blocks[i]) ; // sw function K1(blocks[i]) ; // hw mapped kernel SW2(blocks[i]) ; // sw function K2(blocks[i]) ; // hw mapped kernel SW3(blocks[i]) ; // sw function
doi:10.1109/date.2011.5763245 dblp:conf/date/DragomirB11 fatcat:25d3nxytnbfgdn5ok2kf7bxvbq