Linux 패치, AMD GPU로 직접 네트워크 오프로딩을 수행하는 "KNOD" 도입
요약
AMD GPU를 활용해 커널 내부에서 직접 네트워크 오프로딩을 수행하는 'KNOD' 패치가 Linux 커널 메일링 리스트에 게시되었습니다. 이 기술은 CPU 부하를 줄이고 GPU의 병렬 처리 능력을 활용해 네트워크 패킷 처리 성능을 극대화합니다.
핵심 포인트
- 사용자 공간 런타임 없이 커널 내에서 GPU 큐 관리 및 패킷 처리 수행
- XDP 및 IPsec 작업을 GPU로 오프로딩하여 CPU 병목 현상 해결
- NIC에서 GPU 메모리로의 직접 DMA를 통한 효율적인 데이터 전송
- AMD의 오픈 소스 드라이버 스택을 활용하여 RDNA2 등 하드웨어 지원
Linux 패치, AMD GPU로 직접 네트워크 오프로딩을 수행하는 "KNOD" 도입

지난해 일본에서 열린 Linux Plumbers Conference에서 자신의 개념을 처음 선보인 이후, Taehee Yoo는 어제 RFC(Request For Comments) 명목으로 KNOD 패치를 Linux 커널 메일링 리스트에 게시했습니다.
KNOD는 ROCm이나 다른 사용자 공간(user-space) 구성 요소 없이도 가속화된 패킷 처리를 위해 완전히 커널에 의해 구동되는 커널 내 네트워크 오프로드(network offload) 장치를 위한 것입니다. 커널 코드 자체가 GPU 큐(queues)를 관리하고, 패킷당 프로그램(per-packet program)을 GPU 머신 코드로 JIT 컴파일하며, 작업을 디스패치(dispatching)합니다. 네트워크 어댑터는 수신된 패킷을 GPU 메모리로 직접 DMA(Direct Memory Access)합니다. 이 개념은 또한 기존의 XDP 프로그램과 IPsec SA를 투명한 방식으로 GPU로 직접 오프로딩할 수 있게 해줍니다.
"L4 부하 분산(load balancing)을 수행하는 XDP 프로그램이나 IPsec 암호화와 같이 사소하지 않은 패킷당 작업을 수행하는 라인 레이트(Line-rate) 패킷 처리는 호스트 CPU에 의해 제한됩니다. 각 코어는 한 번에 하나의 패킷만 처리하므로, 확장을 위해서는 더 많은 코어를 사용해야 합니다. GPU는 그 반대 형태입니다. 수천 개의 레인(lanes)이 동시에 많은 패킷에 대해 동일한 작은 프로그램을 실행(SIMT)하며, 이는 XDP의 패킷당 프로그램 모델과 일치합니다.
knod는 해당 패킷당 연산을 호스트 CPU에서 GPU로 이동시킵니다. NIC는 수신된 패킷을 GPU 메모리로 직접 DMA하며, GPU는 일괄 처리(batch)된 패킷들에 대해 병렬로 프로그램을 실행하고 결과만을 반환합니다. 즉, 모든 패킷에 대한 판결(verdict)과 호스트로 전달될 패킷 자체를 반환합니다. CPU는 더 이상 패킷당 프로그램 비용을 지불하지 않으며, 처리량(throughput)은 코어 수가 아닌 GPU 점유율(occupancy)에 따라 확장됩니다."
결정적으로 이 과정은 완전히 커널(kernel) 내부에서 발생합니다. 오늘날의 GPU 패킷 처리(packet processing)는 일반적으로 사용자 공간(userspace) GPU 런타임(CUDA 및 관련 기술)에서 작업을 실행하고 해당 런타임을 데이터 경로(data path)에 유지하지만, KNOD는 대신 커널에서 GPU 큐(queues)를 구축하고 프로그램을 컴파일하며 이를 디스패치(dispatch)합니다. 따라서 사용자 공간에 별도로 설치하거나 실행 상태로 유지할 필요 없이 기존의 오프로드 경로(XDP, xfrm)에 바로 연결됩니다.
이 코드의 개발은 Radeon RX Vega를 포함한 GCN 하드웨어와 RDNA2 하드웨어에서 이루어졌습니다. AMD는 완전히 오픈 소스이며 업스트림(upstream)된 드라이버 스택을 갖추고 있다는 점에서 여기서 뚜렷한 이점을 가집니다. NVIDIA 측의 경우 공식 오픈 소스 커널 드라이버가 있지만 업스트림 상태는 아니며, Nouveau/NOVA 드라이버는 아직 이러한 작업을 수행할 만큼 성숙하지 않았습니다. KNOD를 통해 Intel GPU를 지원하는 것도 향후 옵션이 될 수 있지만, 현재까지의 모든 작업은 AMD GPU를 대상으로 수행되었습니다.
KNOD를 위한 이 매우 흥미로운 Linux 커널 패치들은 Linux 커널 메일링 리스트(Linux kernel mailing list)에서 검토할 수 있습니다.
GPU를 직접 사용하여 커널 내부에서 네트워크 패킷을 처리하는 것에 대한 더 자세한 배경 정보는 LPC 2025 발표를 통해 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기