Acceleration products
Graphics processing units
GPU's were originally developed to deliver the graphics rendering capabilities used in Visualization
applications. Computer scientists and the companies that produced GPUs soon realized that the large-
scale parallel computing capability of GPUs could be harnessed to run general purpose
computational applications, leading to the development of GPGPUs.
Leading vendors such as NVIDIA® and AMD™-ATI began specializing their GPUs and creating
programming environments to make them fully programmable for computational applications. In
addition, they introduced programming support for high-level languages such as C. NVIDIA has
created the CUDA parallel architecture and programming model and ATI has introduced Stream
Computing using the AMD Compute Abstraction Layer (CAL) and Brook+ APIs. Each of these are
proprietary programming architectures. Both AMD-ATI and NVIDIA plan to support OpenCL, an open
standard C-based language for programming of GPUs, CPUs and other parallel processors.
Field Programmable Gate Arrays
Field programmable gate arrays (FPGAs) are semiconductor devices that can be programmed after
they are manufactured to perform, in hardware, any set of logical functions. FPGAs contain
programmable "logic blocks" and reconfigurable interconnects for wiring these blocks together to
perform complex functions. They can be thought of as reconfigurable integrated circuits.
FPGAs have been widely used for applications such as digital signal processing and embedded
controllers. In recent years, several companies have taken advantage of the inherent parallelism of the
logic resources on FPGAs to develop FPGA-based platforms that can be used to create customized
Acceleration solutions. These platforms come with development systems that allow designers to define
an Acceleration solution in which the key parts of the required computational processes are actually
compiled into the FPGA.
FPGA acceleration products for servers come in two different physical configurations. Some products
use FPGAs on PCI-X or PCI Express cards that install in a system slot. Others consist of accelerator
modules that plug directly into a processor socket on the system motherboard.
FPGA-based acceleration solutions vendors include XtremeData™ , Nallatech™ and DRC as well as
others.
Comparing GPU and FPGA Acceleration
Both GPU-based and FPGA-based acceleration offer unique and cost-effective solutions for supporting
large-scale computationally intense applications on industry standard systems. In general, there is no
one right answer; however, there are factors to consider when comparing the two technologies.
FPGA-based acceleration may be able to offer the best performance possible for specific
Acceleration application appliances that do not require frequent changes.
Creating and modifying acceleration applications using GPU's and their development systems is
generally easier than using FPGAs.
FPGA-based acceleration products tend to use less power than GPU's.
Because it is software-based, GPU-based acceleration does not require hardware re-programming
to run a different acceleration application.
FPGAs work well on small objects such as characters or lower precision numbers (1 to 32 bit).
Current GPUs work well with 32 bit floating point precision as well as small objects. The next
generation GPUs are expected to work well with 64 bit floating point precision.
4