RDMA란 무엇인가
RDMA는 Remote Direct Memory Access의 약자로, 원격 시스템의 메모리로 데이터를 직접 전달해 CPU와 운영체제 데이터 경로를 줄이는 기술입니다.
3줄 요약
RDMA의 데이터 경로, CPU 부하 감소, InfiniBand·RoCE와의 관계를 설명합니다.
이 글은 개념뿐 아니라 실제 인프라에서 어디에 쓰이는지까지 연결해 설명합니다.
RDMA의 데이터 경로, CPU 부하 감소, InfiniBand·RoCE와의 관계를 설명합니다.
이 글은 개념뿐 아니라 실제 인프라에서 어디에 쓰이는지까지 연결해 설명합니다.
이 글에서 다루는 내용
일반 네트워크 경로
전통적인 네트워크 I/O는 애플리케이션 데이터가 운영체제 커널과 버퍼를 여러 번 거칠 수 있습니다. 이 과정에서 CPU 사용과 메모리 복사가 발생합니다.
RDMA 경로
일반 I/O:
App → Kernel → TCP/IP → NIC → Network → NIC → Kernel → App
RDMA:
App/Memory → RDMA NIC → Network → RDMA NIC → Remote Memory
InfiniBand와 RoCE
InfiniBand는 RDMA를 핵심 기능으로 제공하며, RoCE는 Ethernet 위에서 RDMA를 구현합니다. 목적은 비슷하지만 네트워크 기반이 다릅니다.
AI 클러스터에서의 의미
대규모 GPU 학습에서는 서버 간에 엄청난 양의 tensor와 gradient가 이동합니다. RDMA는 CPU를 데이터 이동에서 해방시켜 GPU 통신에 더 적합한 경로를 제공합니다.
자주 묻는 질문
RDMA를 쓰면 CPU가 전혀 필요 없나요?
아닙니다. 연결 설정과 애플리케이션 제어 등에는 CPU가 필요하지만 데이터 전송 경로의 CPU 개입을 크게 줄일 수 있습니다.
RDMA는 인터넷에서도 쓰나요?
주로 데이터센터 내부의 고성능 네트워크에서 사용됩니다.