Ask the Professor: Reconfigurable Computing
The computer science academic community has investigated the use of field-programmable gate arrays for quite some time. To get beyond the product hype, we interviewed associate professor Kris Gaj of George Mason University's Department of Electrical and Computer Engineering, who has long been involved in reconfigurable computing.
GCN: We've heard claims of anything from a 40- to 20,000-fold increase in performance speeds over standard commodity chips. What kind of improvement can users expect from a well-engineered program?
Gaj: Our group has developed multiple applications for a few reconfigurable computers, from SRC, SGI and Cray. We have seen speed-ups compared to a single traditional microprocessor (Pentium 4) anywhere from none to over 1,000 [times].
The speed-up really depends on a particular task, and how well this task can be divided into smaller operations that can execute in parallel. [The claim of a] 20,000-times speed-up is probably an exaggeration, unless you use a lot of FPGAs, but such machines would really cost a fortune.
GCN: Where is that performance improvement coming from?
Gaj: A microprocessor executes instructions sequentially, one by one. A single instruction does only a small part of the job, so it takes a long time to complete the entire sequence of such instructions constituting the program. Additionally, a microprocessor cannot be reconfigured, so a lot of resources may need to be allocated for functions that will never be used by a particular program.
An FPGA may execute multiple operations in parallel. Since it is reconfigurable, you do not need to waste any resources, such as circuit area, for implementing operations that are not used by a given program. The contents of an FPGA may also change on the fly, i.e., during the program execution, so you do not need to have all resources tied up at the beginning of computations.
GCN: Do you predict companies like Cray and SGI can bring FPGA computing to a broader audience of users?
Gaj: I would not expect an FPGA in every PC at home anytime soon. For a couple of years, the primary use of reconfigurable computers will be for scientific computations, such as weather simulations, space exploration, human genome project and simulation of nuclear reactions. These machines should be treated as an alternative for traditional supercomputers, and may eventually outperform and replace some or most of them.
For bringing FPGAs to a broader audience, the prices must drop by at least an order of magnitude, and tools must be developed that make the programming of these machines much easier than it is right now. Additionally, in many cases, traditional microprocessors would be completely sufficient for [a] majority of personal and business applications.