WP375 (v1.0) September 10, 2010 www.xilinx.com 1
© Copyright 2010 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, and other designated brands included herein are trademarks of Xilinx in the United States and other
countries. PCI, PCI Express, PCIe, and PCI-X are trademarks of PCI-SIG. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. All other trademarks are the
property of their respective owners.
For over a quarter of a century, Xilinx® FPGAs
continue to be the platform of choice for designing
programmable systems. Due to their inherent
flexibility, Xilinx FPGAs have been used in
programmable solutions such as serving as a
prototype vehicle as well as being a highly flexible
alternative to application-specific integrated circuits.
Advancements in silicon, software, and IP have
proven Xilinx FPGAs to be the ideal solution for
accelerating applications on high-performance
embedded computers and servers.
This white paper describes the various use models
for applying FPGAs in High Performance
Computing (HPC) systems.
White Paper: FPGAs
WP375 (v1.0) September 10, 2010
High Performance Computing
Using FPGAs
By: Prasanna Sundararajan
2 www.xilinx.com WP375 (v1.0) September 10, 2010
Introduction
Introduction
Until the early 2000s, general purpose single-core CPU-based systems were the
processing systems of choice for HPC applications. They replaced exotic
supercomputing architectures because they were inexpensive, and performance
scaled with frequency in line with Moore's Law. Presently, the HPC industry is going
through another historical step change. General-purpose CPU vendors changed
course in the mid-2000s to rely on multicore architectures to meet high-performance
demands. The technique of simply scaling a single-core processor's frequency for
increased performance has run its course, because as frequency increases, power
dissipation escalates to impractical levels.
The shift to multicore CPUs forces application developers to adopt a parallel
programming model to exploit CPU performance. Even using the newest multicore
architectures, it is unclear whether the performance growth expected by the HPC end
user can be delivered, especially when running the most data- and compute- intensive
applications. CPU-based systems augmented with hardware accelerators as
co-processors are emerging as an alternative to CPU-only systems. This has opened up
opportunities for accelerators like Graphics Processing Units (GPUs), FPGAs, and
other accelerator technologies to advance HPC to previously unattainable
performance levels.
High Performance Computing: System Types
Systems in the HPC market span a spectrum of system types. They range from
massive compute server farms to computers embedded inside equipment. For
discussion purposes, these systems are classified into two different groups:
High-performance servers
High-performance embedded computers
High-Performance Servers
High-performance servers comprise a class of systems typically used by scientists,
engineers, and analysts to simulate and model applications and analyze large
quantities of data. Typical systems range from server farms to big supercomputers. A
summary of different industries and applications are provided in Table 1.
These applications are compute and data intensive and are in constant need of
increased compute power and bandwidth to memory. With higher compute power,
algorithms of greater complexity can be employed to produce more accurate results.
Tabl e 1 : Typical Applications for High Performance Servers
Industry Sample Applications
Government labs
Climate modeling, nuclear waste simulation, warfare modeling,
disease modeling and research, and aircraft and spacecraft
modeling
Defense
Video, audio, and data mining and analysis for threat monitoring,
pattern matching, and image analysis for target recognition
Financial services Options valuation and risk analysis of assets
Geosciences and engineering Seismic modeling and analysis, and reservoir simulation
Life sciences Gene encoding and matching, and drug modeling and discovery