Scalable and Modular Algorithms for Floating-Point Matrix Multiplication on Reconfigurable Computing Systems
- 5 March 2007
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 18 (4) , 433-448
- https://doi.org/10.1109/tpds.2007.1001
Abstract
The abundant hardware resources on current reconfigurable computing systems provide new opportunities for high-performance parallel implementations of scientific computations. In this paper, we study designs for floating-point matrix multiplication, a fundamental kernel in a number of scientific applications, on reconfigurable computing systems. We first analyze design trade-offs in implementing this kernel. These trade-offs are caused by the inherent parallelism of matrix multiplication and the resource constraints, including the number of configurable slices, the size of on-chip memory, and the available memory bandwidth. We propose three parameterized algorithms which can be tuned according to the problem size and the available hardware resources. Our algorithms employ linear array architecture with simple control logic. This architecture effectively utilizes the available resources and reduces routing complexity. The processing elements (PEs) used in our algorithms are modular so that it is easy to embed floating-point units into them. Experimental results on a Xilinx Virtex-ll Pro XC2VP100 show that our algorithms achieve good scalability and high sustained GFLOPS performance. We also implement our algorithms on Cray XD1. XD1 is a high-end reconfigurable computing system that employs both general-purpose processors and reconfigurable devices. Our algorithms achieve a sustained performance of 2.06 GFLOPS on a single node of XD1Keywords
This publication has 9 references indexed in Scilit:
- Comparative Analysis of High Level Programming for Reconfigurable Computers: Methodology and Empirical StudyPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2007
- 64-bit floating-point FPGA matrix multiplicationPublished by Association for Computing Machinery (ACM) ,2005
- Closing the Gap: CPU and FPGA Trends in Sustainable Floating-Point BLAS PerformancePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- An FPGA based parameterizable system for matrix product implementationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- A re-evaluation of the practicality of floating-point operations on FPGAsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Parallel matrix multiplication on a linear array with a reconfigurable pipelined bus systemIEEE Transactions on Computers, 2001
- SUMMA: scalable universal matrix multiplication algorithmConcurrency: Practice and Experience, 1997
- Pumma: Parallel universal matrix multiplication algorithms on distributed memory concurrent computersConcurrency: Practice and Experience, 1994
- Matrix algorithms on a hypercube I: Matrix multiplicationParallel Computing, 1987