What is an FPGA?

What is an FPGA?

HPC Basics Series

The Field Programmable Gate Array is a silicon chip that is physically programmable.  If we accept the notion that Moore’s Law is on life support (if not dead) as we are rapidly approaching the physical limits of miniaturization in chip manufacturing. Likewise, if we accept the notion that the amount of data that needs to be processed daily will continue to grow at a rate that approximates exponentially, we have two choices, throw more processors at the problem (assuming it scales) or solve the problem in silico.  This means that the algorithm to be accelerated must be transferred to the hardware rather than remaining in software.  To solve a problem in silico and have a durable solution means the hardware now has to be reconfigurable so that it may address the requirement for an upgrade path with regards to the algorithms on the physical chip.  In  A Reconfigurable Design Framework for FPGA Adaptive Computing, Ming Liu and collaborators at the 2009 International Conference on Reconfigurable Computing and FPGAs, examined the idea of hardware that could be reconfigured on-the-fly to address processing demands.  This area of scientific inquiry has continued to mature with several books being published on the topic.  

Now that chips can be programmed directly, and repetitively, to accelerate performance, this has given rise to heterogeneous computing environments – the mixing of CPUs, GPUs and FPGAs.  Additionally, FPGAs, requiring low power, are now being seen doing a variety of jobs in portable (battery powered) applications.  One such example, albeit a rather esoteric example, is using an FPGA as a Digital to Analog Converter (DAC) and amplifier for stereo headphones.  Instead of having the conversion algorithm in software and running on a low power CPU, Chord Electronics chose to implement digital to analog conversion directly on an FPGA.  This did two things, first, it reduced the devices power requirements thereby improving battery life (very important in a portable device), and second, it allows a path for upgrades. As new audio formats come out for decoding, one need only re-flash the FPGA and the device is capable of decoding the new format. This bit of future proofing allows Chord to charge a premium for their device.  This is a rather esoteric example in the marketplace, but, where there are requirements for speed and capacity beyond what is feasible from CPU’s, the ability to program a chip directly, cutting out a low–level layer of software, is often the only mechanism available to achieve the compute speed required to accomplish a task in a reasonable amount of time with the degree of accuracy demanded by the problem.

At Nimbix, our customers use FPGAs primarily for development purposes; however, FPGAs can be used in artificial intelligence applications as low-latency inference engines, in addition to other acceleration tasks.  To engage the Xilinx FPGAs, the user will need to either upload a containerized application and specify the appropriate FPGA type within the container or select the appropriate FPGA development tile from the Nimbix catalog.  In the case of FPGA accelerated applications, select the application from the catalog and it will be automatically configured to run with the appropriate type of FPGA.

Get started on the Nimbix Cloud today.