October 23, 2018
Zsolt István
Today’s workloads in the datacenter suffer from stagnating CPU performance and increasing data volumes. One promising solution to breaking traditional trade-offs and scaling further comes in the form of specialization, that is, moving parts of an application to a more efficient hardware implementation. Field programmable gate arrays (FPGAs) are one example of re-programmable hardware that can be used as a specialized accelerator for a wide range of applications. Since they are being widely deployed in datacenters (e.g., at Microsoft) and in the cloud (e.g., Amazon EC2 and Huawei Cloud), building heterogeneous systems and incorporating acceleration functionality in software systems is expected to become common. However, since these devices operate differently from traditional CPUs, a shift is required in the ways we express algorithms and write code for them. In this talk I will provide an overview of FPGA internals, programming flow and capabilities, through the example of a Regular Expression matching accelerator. This example will also give an intuition on how FPGA-based execution breaks trade-offs inherent to software running on CPUs.