본문으로 건너뛰기

[Ray] 단일 노드 RDT 마이크로벤치마크 도입

PR #59251 - [core][rdt] Single node RDT microbenchmarks

들어가며

Ray의 RDT(Ray Data Transport) 성능을 정밀하게 측정하기 위한 새로운 마이크로벤치마크 세트가 도입되었습니다. 기존 벤치마크는 단일 전송만 측정했는데, 실제 워크로드는 동일한 또는 다른 텐서를 반복적으로 전송하므로 대표성이 부족했습니다. 새 벤치마크는 세 가지 측면을 측정합니다.

핵심 코드 분석

벤치마크 유형

  1. throughput_new_send_per_recv: 새로운 RDT 참조가 여러 번 전송되는 처리량 측정 (크기에 따라 3-10회)
  2. throughput_same_send_per_recv: 동일한 RDT 참조가 반복 전송되는 처리량 측정 (생성자 1개, 수신자 다수)
  3. latency_test: 두 액터 간 단일 전송을 10회 반복하여 평균 지연 시간 측정

테스트 환경 설정

  • Nightly (T4): 최대 1GB 텐서로 OOM 방지
  • Weekly (B200): 최대 10GB 텐서로 대규모 전송 테스트
  • 백엔드: NCCL과 GLOO (NIXL은 전용 이미지 필요로 추후 추가)

기존 코드와의 차이

기존 벤치마크는 단일 전송 패턴만 측정:

def _run():
    ref = sender.send.options(**send_method_kwargs).remote()
    ref2 = receiver.recv.remote(ref)
    ray.get(ref2)
results = timeit(label, _run)

새 벤치마크는 다중 전송, 동일 참조 재사용, 순수 지연 시간 등 실제 워크로드에 가까운 패턴을 측정합니다.

왜 이게 좋은가

  1. 대표성 있는 벤치마크: 단일 전송이 아닌 반복 전송 패턴으로 실제 워크로드를 더 정확히 반영합니다.
  2. 처리량과 지연 분리: throughput 테스트와 latency 테스트를 별도로 분리하여 병목 지점을 정확히 파악할 수 있습니다.
  3. 자동화된 회귀 테스트: Nightly/Weekly CI에서 자동 실행되어 성능 회귀를 조기에 감지합니다.
  4. GPU 등급별 테스트: T4와 B200에서 각각 적절한 텐서 크기로 테스트하여, 다양한 하드웨어에서의 성능을 추적합니다.

참고 자료

댓글

관련 포스트

PR Analysis 의 다른글