AI Systems Performance Engineering (3)
Introduction
Chris Fregly의 AI Systems Performance Engineering $_[$$_{1}$$_]$ Chapter 4는 GPU와 GPU, node와 node 사이에서 data를 옮기는 통신 계층을 다룬다.
vLLM으로 multi-node serving 환경을 구성하면서 NCCL_SOCKET_IFNAME과 GLOO_SOCKET_IFNAME을 맞추고 NCCL_DEBUG=TRACE로 all-reduce 결과를 하나씩 확인했던 적이 있고 (vLLM Discussion #11353), 그 뒤에 NCCL과 RDMA, RoCE를 정리한 글도 썼다.
이 장은 같은 주제를 성능 관점에서 다시 다루는데, 통신과 연산을 overlap하는 방법부터 NCCL 환경 변수의 함정, 그리고 추론용 point-to-point library인 NIXL까지 이어진다.
이번 글에서는 Chapter 4 (Tuning Distributed Networking Communication)를 다룬다.