High-Performance Reduction Circuits Using Deeply Pipelined Operators on FPGAs

Ling Zhuo, Gerald R. Morris, Viktor K. Prasanna
2007 IEEE Transactions on Parallel and Distributed Systems  
Field-programmable gate arrays (FPGAs) have become an attractive option for accelerating scientific applications. Many scientific operations such as matrix-vector multiplication and dot product involve the reduction of a sequentially produced stream of values. Unfortunately, because of the pipelining in FPGA-based floating-point units, data hazards may occur during these sequential reduction operations. Improperly designed reduction circuits can adversely impact the performance, impose
more » ... ce, impose unrealistic buffer requirements, and consume a significant portion of the FPGA. In this paper, we identify two basic methods for designing serial reduction circuits: the tree-traversal method and the striding method. Using accumulation as an example, we analyze the design trade-offs among the number of adders, buffer size, and latency. We then propose high-performance and area-efficient designs using each method. The proposed designs reduce multiple sets of sequentially delivered floating-point values without stalling the pipeline or imposing unrealistic buffer requirements. Using a Xilinx Virtex-II Pro FPGA as the target device, we implemented our designs and present performance and area results. Index Terms-Parallel algorithms, reconfigurable hardware.
doi:10.1109/tpds.2007.1068 fatcat:eadjnjpuxvfzhofscrngrq3gby