TCP Offloading에서 CPU Offloading으로

1.
Low Latency와 관련한 일을 하다 보니까 FPGA나 SmartNIC으로 프로그램을 구현할 수 있냐는 질문을 가끔 받습니다. 솔직히 해본 경험도 없고 자료 정리도 하지 않았습니다. 우연히 정리를 할 이유가 생겨서 TCP Offloading에서 멈추었던 네트워킹과 관련한 자료를 아주 오랜 만에 읽었습니다.SmartNIC에 대한 연구를 위함입니다. TCP Offloading은 말 그대로 CPU가 처리하는 TCP/IP와 관련한 기능을 분리하여 Ethernic Card에서 처리하도록 하는 기능입니다. 물론 TCP Offloading과 관련한 표준은 없기때문에 다양한 방법이 있습니다. Ethernic Card의 ASIC을 이용하는 방법, OnLoad와 같은 소프트웨어를 이용하는 방법, RDMA를 기초로 하여 구현하는 방법등 다양합니다. SmartNIC도 이와 같은 기능의 연장성으로 이해할 뿐 별다른 고민을 하지 않았죠.

우선 CPU에서 출발해보죠. CPU GPU TPU NPU에 올라온 COU 구조를 보면 아래와 같습니다.

현재의 CPU 기본 구조는 폰노이만 구조에 기반하여 발전하였습니다. 폰노이만 아키텍쳐는 유연한 계산 능력이라는 장점이 뚜렷한 구조입니다. 순차적인 계산을 통해 이전 계산 결과와 다음 계산 결과의 유기적인 연계가 가능한 구조이기도 합니다. CPU는 폰노이만 아키텍쳐에서 Control, Cache 등의 메모리 영역이 고도화된 구조를 지향합니다. 여러 Level 의 캐시를 대량 집적하여 다양한 형태의 복잡한 프로그램을 효율적으로 실행하는 데에 그 목적이 있다고 할 수 있습니다. 하지만 직렬(순차) 실행으로 인한 문제점을 현대의 모든 CPU가 동일하게 가지고 있기도 합니다.

TCP Offloading을 넘어서 CPU Offloading이라고 하면 CPU가 하는 여러가지 일중에서 특정한 기능을 외주화하는 개념으로 이해할 수 있습니다. 어떤 업무를 외주화하고 구체적인 외주처리방식을 정하는 것에 따라 다양한 개념이 등장합니다. SmartNIC과 관련한 검색을 해보니까 여러가지가 등장합니다. 그 중 일부입니다.

Intelligence Processing Unit,
Infrastructure Processing Unit (IPU)
Data Processing Unit(DPU)
Neural Processing Unit(NPU)

SmartNIC을 어떻게 정의하느지는 벤더마다 다르지만 저는 NIC이 Smart하게 동작하도록 만든 부품 모두라고 생각합니다. 그것을 Nvidia가 DPU라고 부르든, 혹은 Intel이 IPU라고 보르든 Network기능=NIC를 공통으로 가지고 있기 때문에 SmartNIC입니다. 그러면 SmartNIC이 일반 NIC과 어떤 점이 다를까요?

 

1. Networking Functions

Network functions that a SmartNIC is capable of running include routing, firewalling, telemetry, load balancing, NAT, and overlay networks. All of this can be processed by the SmartNIC’s CPU, reducing the load on the host server’s CPU, freeing up cycles to run other revenue–generating enterprise applications.

2. Storage Functions

SmartNICs can also function as storage controllers, managing the hard drives (HDDs) or SSDs (solid–state drives) found on data center servers. Furthermore, SmartNICs are typically connected to the same BUS as the storage that is in servers. As such, the SmartNIC can talk directly to the storage devices, negating the need for data to flow to the server’s CPU, instead data only needs to flow from the storage device to SmartNIC. Moreover, SmartNICs can run VMware NSX on the NIC itself, improving network bandwidth, reducing latency, and freeing up CPU cycles for better application performance.

3. DDoS Defense

SmartNICs can protect data center servers from DDoS attacks. DDoS attacks occur when a person or organization floods the target network or server with an overwhelming amount of traffic, causing a denial of service to normal traffic to the target site or network. SmartNICs have the ability to block DDoS attacks. Offloading the detection and prevention of DDoS attacks from the host server to the SmartNIC prevents the main system CPU from being overwhelmed by the DDoS attack and improves DDoS mitigation capacity. This is so because SmartNICs can be programmed to drop DDoS attack packets dynamically. F5 claims that a data center server equipped with a SmartNIC can withstand a DDoS attack 300x in magnitude when compared to a server without a SmartNIC. Moreover, SmartNICs can filter all inbound and outbound packets, similar to how Ip Tables works, providing a robust architecture for filtering network traffic.

4. Encryption

Also, DPUs can accelerate data center servers by offloading data encryption from the server’s CPU to the DPU. Data processing units have built in hardware-based encryption and key infrastructure engines, including a true random number generator, built-in PKI engine, and a secure key store that keep session keys encrypted in memory. Additionally, when it comes to security, SmartNICs provide significant security since they create an air gap between the host system’s operating system and the SmartNICs operating system, preventing attacks on the SmartNIC’s OS.

5. Offloading Tasks from CPU to SmartNIC

The ability of SmartNICs to offload computationally intensive tasks from a server’s CPU onto a SmartNIC is of significant importance for data center because operators typically want to extract as much performance from existing hardware as possible, and SmartNICs allow them to do so by offloading tasks from the host server’s CPU to the SmartNIC’s multi-core processor. SmartNICs offer data center operators more performance without having to change out all of the existing hardware. SmartNICs can easily be integrated into legacy data center servers as they plug in via PCIe slot.

개인적으로 1번과 5번은 예상했지만 2,3,4번은 생각밖이고 Storage Controller는 미처 생각하지 못했습니다. The Rise Of SmartNICs도 SmartNIC를 비슷한 기능으로 정의합니다. 이중에서 제가 이해하는 핵심은 Offloading입니다.

Offloading

CPU offload is a significant value proposition for a SmartNIC. Computationally intensive tasks like hashing for blockchains and transcoding video can be handled by the SmartNIC itself, freeing up precious server CPU resources.

CPU Offloading을 위해서는 Application의 기능을 일부 혹은 전체를 담당하여야 하기 때문에 “programmable NIC”이라는 표현되 괜찮아 보입니다. OpenFabrics의 Enabling Applications to Exploit SmartNICs and FPGAs And Accelerators에서 정의한 SmartNIC도 비슷합니다.
Intel의 의견입니다.


2.
그러면 어떤 유형들의 SmartNIC가 있을까요? 먼저 Mellanox가 내놓은 Enhancing Networks with SmartNICs를 소개합니다. 관련보고서는 Offloading을 위하여 ASIC, FPGA, SOC기술을 기반으로 한 SmartNIC제품이 있다고 합니다. Nvidia의 Choosing the Best SmartNIC에서도 같은 관점으로 분류합니다. 다만 DPU Based SmartNIC이라는 개념도 사용합니다.

Download (PDF, 703KB)

사실 비슷한 기능을 벤더들 마다 다른 이름으로 부르면서 시장을 선점하려고 합니다. SmartNIC은 Mellanox와 Broadcom와 같은 네트워킹벤더들이 사용하는 개념입니다. 반면 Intel은 IPU라고 하고 Arm, Nvidia는 DPU라고 합니다. 개념을 통한 기술 주도권 경쟁입니다. 어찌되었든 넓은 의미로 SmartNIC입니다. 다만 ServeTheHome이 발표한 2021 STH NIC Continuum에서는 SmartNIC과 IPU/DPU를 진화의 단계로 바라봅니다.

좀더 자세한 사항은 아래에서 확인하실 수 있습니다.

DPU vs SmartNIC and the STH NIC Continuum Framework

마지막으로 독일 뮌헨공과대학이 정리한 SmartNICs: Current Trends in Research and Industry입니다.

Download (PDF, 748KB)

3.
그러면 SmartNIC을 이용한 매매시스템을 어떻게 구성할 수 있을까요? Algo-Logic사의 자료입니다. 미국의 경우 이런 솔류션을 제공하는 곳들이 많은데 가격이 적지않습니다. Algo-Logic이 제공하는 솔류션의 핵심이 개발환경(DEVELOPMENT FRAMEWORK)입니다.

Download (PDF, 1.43MB)

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.