Since VMware vSphere 6.7 Update 1, VMware expanded its array of supported hardware accelerators by introducing support for the Intel® Arria® 10 GX Field Programmable Gate Array (FPGA) devices. This blog post zooms in on what an FPGA is, what the generic FPGA architecture looks like and how to expose an Intel® Arria® 10 GX FPGA to workloads running on vSphere.
Why an FPGA?
FPGA devices have been around for decades, for example in industrial automation or in the automotive industry. Today, the FPGA is finding its way into the data center. We now have the ability to utilize these devices for our workloads.
An FPGA is a high-end device with embedded logic elements to offload the CPU. In essence, the logic elements are integrated circuits that contain logic gates and I/O circuitry. The latter ingests data from a source and puts out the result data. Using its logic elements, we can design any digital circuit. Once the digital circuit is completed, it can be compiled (also referred to as ‘synthesizing’) into a bitfile (or bitstream) and loaded into the FPGA. The FPGA now behaves like the digital circuit we designed.
The highly parallel architecture of FPGAs allows for higher performance, lower latency, lower power consumption, and higher throughput for computations. Typical workloads for FPGA devices include Network Function Virtualization (NFV), deep neural networks, digital signal processing, and cryptography workloads.
Zooming in on the Intel® Arria® 10 GX FPGA, the following high-level architecture is used. Most noticable is the FPGAs main chipset containing the logic elements. The number of logic elements set the limit for the digital circuits as designed by developers. The Arria® 10 GX FPGA comes with networking interfaces as well, allowing to remotely connect to the FPGA.
FPGA on vSphere Support
To use the Intel® Arria® FPGA with VMware vSphere, version 6.7 Update 1 is required. DirectPath I/O is the only supported method today. This means that the hardware address of the PCIe device (the FPGA in this case) is directly exposed in the virtual machine. Using DirectPath I/O will introduce constraints on vSphere features like vMotion and DRS because of the one-to-one relationship between the PCIe device and the virtual machine. However, it will provide near bare-metal performance characteristics. VMware Infrastructure administrators can now make this programmable hardware accelerator available in VMware vSphere virtual machines.
To verify your ESXi host on FPGA device availability, you can check the vCenter Server UI under Hardware > PCI Devices. The Intel® Arria® FPGA will list as an Intel® Processing accelerator.
Another way to check the presence of an FPGA device in an ESXi host is to issue the lspci |grep -i accel command. This requires root access to the ESXi host.
This will output a similar entry like this:
0000:5e:00.0 Processing accelerators: Intel Corporation Device 09c4
Once DirectPath I/O (also referred to as Passthrough-enabled Device) is enabled for the FPGA device, you can add a new PCIe device using the FPGA to a virtual machine. You are now set to use the FPGA device. Check the instructions in the Acceleration Stack Quick Start Guide for Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA on how to utilize the FPGA.
The Intel® Arria® 10 GX FPGA provides the ability for remote connections using its onboard network interfaces. vSphere with Bitfusion can also help to assign these FPGA devices to remote workloads. Remote access to the FPGA provides the ability to use vMotion for the virtual workloads utilizing the FPGA remotely, even though that same FPGA device is also accessed directly by a local virtual machine using vSphere DirectPath I/O.
Check out the following VMworld video by Intel® to learn about their FPGA device running in vSphere, what the performance impact is and how vMotion can still be used when using remote connections to the FPGA device.
With innovations on FPGA devices and other hardware accelerators increasing, vSphere expands its support for these devices. Please refer to the VMware Hardware Compatibility List (HCL) to stay up-to-date on what devices are supported with vSphere as we will continue to expand support for hardware accelerators. Click here to learn more about Intel® FPGA devices.
More Resources to Learn
Exploring the GPU Architecture and why we need it.
Out now! Learning Guide – GPUs for Machine Learning on vSphere
Virtual GPU and FPGA with Bitfusion at Tech Field Day Extra at VMworld 2019