RDMA(원격 직접 메모리 접근) (RDMA (Remote Direct Memory Access))
쉽게 풀면
보통 컴퓨터 간에 데이터를 주고받으려면 운영체제와 CPU가 데이터를 여러 번 복사하고 처리하는 과정을 거쳐야 해서 시간이 걸린다. RDMA는 이 과정을 생략하고, 한 컴퓨터가 다른 컴퓨터의 메모리에 마치 자신의 메모리인 것처럼 직접 데이터를 읽고 쓸 수 있게 해준다. 그 결과 지연 시간이 크게 줄고 CPU 부담도 낮아진다. 흔히 인피니밴드 네트워크와 함께 쓰이며, 대규모 분산 학습에서 GPU 간 데이터 교환 속도를 끌어올리는 데 중요한 역할을 한다.
왜 중요한가
RDMA는 대규모 분산 시스템에서 통신 지연과 CPU 오버헤드를 줄이는 핵심 기술이기 때문에, 대규모 언어모델 학습이나 분산 데이터베이스, 고성능 컴퓨팅(HPC) 연구에서 시스템 성능을 좌우하는 요소로 다뤄집니다. GPU 클러스터의 규모가 커질수록 노드 간 통신이 전체 학습 속도의 병목이 되는 경우가 많아, RDMA 기반 네트워크 설계와 최적화는 시스템 논문에서 빠지지 않는 주제입니다.
논문에서는 이렇게 쓰입니다
분산 학습 과정에서 여러 컴퓨터가 계산 결과를 주고받을 때, CPU 개입을 최소화하는 RDMA 기술을 사용해 통신 속도를 높였다는 뜻이다.
분산 스토리지 시스템 연구에서 RDMA가 데이터 접근 지연을 줄이는 수단으로 쓰인다는 뜻이다.
분산 데이터베이스 분야에서 RDMA가 질의 처리 성능을 높이는 데 활용된다는 뜻이다.
조금 더 깊게 보면
RDMA는 커널을 거치지 않고 데이터를 전송하는 커널 바이패스(kernel bypass)와, CPU 개입 없이 네트워크 카드가 직접 메모리에 접근하는 제로카피(zero-copy) 방식을 함께 활용해 낮은 지연 시간을 달성합니다. 이를 구현하는 방식으로는 인피니밴드 외에도 이더넷 위에서 RDMA를 구현한 RoCE(RDMA over Converged Ethernet)나 iWARP 같은 프로토콜이 있으며, 어떤 프로토콜을 쓰느냐에 따라 필요한 네트워크 장비와 설정이 달라집니다.
주의할 점
RDMA를 쓰려면 이를 지원하는 전용 네트워크 카드와 스위치가 필요하며, 일반적인 클라우드 인스턴스에서는 항상 지원되지는 않는다.