hardware-fpga-smartnic

FPGA

Since the inception of FPGA(field programmable gate array) technology there were actually only two FPGA companies in the market: Xilinx and Altera. Along the years, both companies did a terrific job growing the market and protecting their market share. When Intel acquired Altera, Xilinx was left as the only major FPGA company in the market. Xilinx had ~50% market share while Altera (Intel) has ~37% and Lattice Semiconductor has a 10% market share. In October 2020, AMD has acquired Xilinx. This concludes that the 2 largest CPU vendors have acquired the 2 largest FPGA companies.

fpga market

FPGA Companies

What’s FPGA
Field Programmable Gate Arrays (FPGAs) are semiconductor devices that are based around a matrix of configurable logic blocks (CLBs) connected via programmable interconnects. FPGAs can be reprogrammed to desired application or functionality requirements after manufacturing. This feature distinguishes FPGAs from Application Specific Integrated Circuits (ASICs), which are custom manufactured for specific design tasks.

FPGA Application
FPGA is a technology or semi-manufactures, not an end product, but due to their programmable nature, FPGAs are an ideal fit for many different markets. it can provide comprehensive solutions consisting of FPGA devices, advanced software, and configurable, ready-to-use IP cores for markets and applications

SmartNIC

SmartNICs provide several significant benefits to data-center networks including:

  • Accelerating network, storage, and compute tasks by executing them directly on the network interface card, eliminating the need to run these workloads on servers and freeing up CPU cycles, thus dramatically improving server performance and reducing overall power consumption resulting in lower system-level total cost of ownership.
  • Offloading increasingly complex networking tasks including overlay tunneling protocols such as VxLAN and complex virtual switching from server processors, freeing the server processors to perform actual, revenue-generating tasks.
  • Improving effective network bandwidth and throughput by executing offloaded functions in fast hardware instead of slower software.
  • Providing additional, flexible functionality that easily accommodates new and constantly changing networking and storage protocols.

SmartNIC offload

SmartNIC designs

  • Multicore SmartNICs, based on ASICs containing multiple CPU cores
  • FPGA-based SmartNICs
  • FPGA-augmented SmartNICs, which combine hardware-programmable FPGAs with ASIC network controllers

Multicore SmartNIC

A multicore SmartNIC design likely includes an ASIC that incorporates many software-programmable microprocessor cores. These cores are typically higher performance Arm processors, which process packets and offload from the main (and expensive) server CPUs. Multicore SmartNIC ASICs may also incorporate fixed function hardware engines that can offload well-defined tasks such as standardized security and storage protocols.

However, multicore SmartNICs suffer from at least two limitations:

  • They are based on software-programmable processors which are slower when used for network processing due to a lack of processor parallelism.
  • The fixed-function hardware engines in these multicore ASICs lack the data-plane programmability and flexibility that is increasingly required for SmartNIC offloading.

FPGA-based SmartNIC

An FPGA-based SmartNIC employs the expanded hardware programmability of FPGAs to build any data-plane functions required by the tasks offloaded to the SmartNIC. Because FPGAs are reprogrammable, the data-plane functions implemented by the FPGA can be torn down and reconfigured at will and in real time. All such offloaded functions operate at hardware – not software – speeds.

FPGA-based SmartNIC designs can accelerate network functions by several orders of magnitude over implementations based purely on software. Use of FPGAs in SmartNIC designs delivers the wire-speed performance and power efficiency of custom hardware with the ability to create deep packet/network processing pipelines that support complex offload tasks and improve single-flow network performance. Replicating these pipelines by exploiting the large amount of hardware parallelism inherent in FPGAs improves megaflow performance enough to meet the high-performance, high-bandwidth, high-throughput needs of next-generation data-center architectures based on speedier Ethernet networks.

Price is very high, expensive!!!

FPGA-Augmented SmartNIC(also called system-on chip (SoC))

It adds FPGA capabilities to the NIC. The on-board FPGA in a FPGA-augmented SmartNIC design enables significantly higher performance and feature expansion.

More refer to SmartNIC design and Mellanox SmartNIC

BlueField is the great one in market.

SmartNIC Market

SmartNIC vendor

SmartNIC Vendor SmartNIC Model Chip Technology
AWS Nitro Gen 3 SoC
Azure Catapult v3 Intel FPGA
Alibaba Cloud X-Dragon III SoC
GCP (generic Intel-based) SoC
Mellanox BlueField 2 SoC
Mellanox Innova-2 Flex Xilinx FPGA
Silicom (many) Intel and Xilinx FPGA
Pensando Naples Gen 1 SoC
  • Mellanox company(Acquired by Nvidia)
    • ConnectX(multicore SmartNIC)
    • Innova SmartNIC(based on Xilinx Fpga)
    • BlueField2(FPGA-Augmented)

      Bluefield-2 actually belongs to the SoC branch, meaning it is less performant but much more programmable. It is “so programmable” that it can actually be thought of as a Server in your Server. It has an 8-core ARM64 CPU, 8–16GB DRAM, up to 2x100G Ethernet interface + 1Gb OOB (out-of-band) management port and/or UART (universal asynchronous receiver-transmitter) to do the same. It can also be connected to an IPMI network to monitor it just like a server. Bluefield-2 DPU runs its own Linux distribution on top and has a Mellanox ConnectX-6 Ethernet module. It also supports DPDK and even P4 via the DOCA SDK specifically tailored to program the Bluefield via “native C” libraries and API