High-throughput bayesian computing machine with reconfigurable hardware
Department of Electrical Engineering and Computer Science, University of California at Berkeley, CA 94704
In Proceedings of the 18th annual ACM/SIGDA international symposium on Field programmable gate arrays (2010), pp. 73-82.
@conference{lin2010high,
title={High-throughput bayesian computing machine with reconfigurable hardware},
author={Lin, M. and Lebedev, I. and Wawrzynek, J.},
booktitle={Proceedings of the 18th annual ACM/SIGDA international symposium on Field programmable gate arrays},
pages={73–82},
year={2010},
organization={ACM}
}
We use reconfigurable hardware to construct a high throughput Bayesian computing machine (BCM) capable of evaluating probabilistic networks with arbitrary DAG (directed acyclic graph) topology. Our BCM achieves high throughput by exploiting the FPGA’s distributed memories and abundant hardware structures (such as long carry-chains and registers), which enables us to 1) develop an innovative memory allocation scheme based on a maximal matching algorithm that completely avoids memory stalls, 2) optimize and deeply pipeline the logic design of each processing node, and 3) optimally schedule them. The BCM architecture we present not only can be applied to many important algorithms in artificial intelligence, signal processing, and digital communications, but also has high reusability, i.e., a new application needs not change a BCM’s hardware design, only new task graph processing and code compilation are necessary. Moreover, the throughput of a BCM scales almost linearly with the size of the FPGA on which it is implemented. A prototype of a Bayesian computing machine with 16 processing nodes was implemented with a Virtex-5 FPGA (XCV5LX155T-2) on a BEE3 (Berkeley Emulation Engine) platform. For a wide variety of sample Bayesian problems, comparing running the same network evaluation algorithm on a 2.4 GHz Core 2 Duo Intel processor and a GeForce 9400m using the CUDA software package, the BCM demonstrates 80x and 15x speedups respectively, with a peak throughput of 20.4 GFLOPS (Giga Floating-Point Operations per Second).
January 9, 2011 by hgpu