Automatic generation of application-specific accelerators for FPGAs from python loop nests

David Sheffield, Michael Anderson, Kurt Keutzer
2012 22nd International Conference on Field Programmable Logic and Applications (FPL)  
We present Three Fingered Jack, a highly productive approach to mapping vectorizable applications to the FPGA. Our system applies traditional dependence analysis and reordering transformations to a restricted set of Python loop nests. It does this to uncover parallelism and divide computation between multiple parallel processing elements (PEs) that are automatically generated through high-level synthesis of the optimized loop body. Design space exploration on the FPGA proceeds by varying the
more » ... ber of PEs in the system. Over four benchmark kernels, our system achieves 3× to 6× relative to soft-core C performance.
doi:10.1109/fpl.2012.6339372 dblp:conf/fpl/SheffieldAK12 fatcat:hphpwnv4uvdkxlwhptkr6p7ery