Smart network interface cards (NICs) with high-level programming are enabling the step up in application and virtualization performance that is needed to deliver on the promise of software-defined networking (SDN). By using smart NICs in every server, operators can ensure that network virtualization, load balancing and other low-level functions are offloaded from the server CPUs, ensuring that maximum processing power is available for applications. In addition, smart NICs provide a distributed hardware resource that can be used to offload or accelerate specific applications. Operators can use software provided by the smart NIC vendors or their partners, develop their own software or provide access as a service for their customers to use custom software.
Over the past 30 years NICs have developed from simple NICs with a single MAC, PHY and system interface to highly capable adapters with one, two or more network interfaces and hardware offload engines for Transmission Control Protocol (TCP)/Internet Protocol (IP), virtualization and other functions. The latest NICs are based on input/output (I/O) controllers that support network interfaces running at 10 Gbit/s, 25 Gbit/s, 50 Gbit/s or 100 Gbit/s. Smart NICs integrate field-programmable gate arrays (FPGAs), processors or processor-based smart I/O controllers with packet processing and virtualization acceleration. Most smart NICs can be programmed using standard FPGA or processor development tools; however, a growing number of vendors are also providing support for the packet processing language P4.
Key applications that can benefit from smart NICs include content delivery networks (CDNs), market trading, storage, edge computing and network virtualization. Many CDN operators, including Amazon, Facebook and Google, are using smart NICs. Microsoft Azure has been shipping all servers with FPGA-based smart NIC acceleration since 2015. There are now many different smart NICs available, using FPGA or processor based designs, covering aggregate bandwidths from 2 Gbit/s to 400 Gbit/s. Many of the leading NIC vendors have a smart NIC solution, several processor vendors have developed their own smart NICs and all the smart NIC vendors offer custom software services.
Heavy Reading's new report, Smart NICs: Accelerating Virtualized Applications, identifies and analyzes the full spectrum of vendors developing smart NICs for data center and networking applications. The report profiles 18 vendors and analyses both FPGA- and processor-based smart NICs, identifying their key features and highlighting the advantages they hold for service providers and telecom solution providers. The report includes not only information on smart NICs and the FPGAs, processors and smart I/O controllers they are based on, but also offers insights into how the overall market for smart NICs is developing.
FPGA-based smart NICs are available from several vendors, including Accolade, BittWare, Enyx, Ethernity, Napatech, Netcope, Reflex CES, Silicom and Solarflare. These adapters integrate FPGAs from Intel or Xilinx, including some with the latest Stratix 10 and UltraScale+ FPGAs. The basic I/O controller functionality is either implemented using the FPGA or handled by a separate I/O controller. Processor-based smart NICs are available from Artesyn, Broadcom, Cavium, Intel, Kalray, Mellanox, Netronome, Silicom and SolidRun. The smart NICs use processors or smart I/O controllers with integrated processor cores or programmable switching. Amazon and Google have developed their own smart NIC ASICs.
Smart NICs can be programmed using standard FPGA and processor development tools. HDL and OpenCL are most commonly used for FPGAs-based smart NICs and C/C++ for processor smart NICs. A growing number of vendors are supporting, or planning to support, P4, which is an open packet processing language that was developed by a group that includes Intel, Microsoft, Google, Barefoot Networks, Princeton University and Stanford University.
Moving to SDN in virtualized applications can result in reduced performance and increased latency over using dedicated systems. Smart NICs provide hardware acceleration for SDN and virtualized applications that is closely coupled with the networking interfaces and can be distributed across large server networks. Smart NICs are becoming a standard fit for servers in many large and hyper-scale data centers. The industry is now working to cover all the different requirements, from a basic smart NIC to one that will offload significant application functionality from server CPUs and handle multiple 100Gbit/s connections. Operators can use smart NICs to accelerate specific applications and virtualized functions and, with the right language and toolchain support, offer added value to their customers with application acceleration as a service.
— Simon Stanley, Analyst at Large, Heavy Reading