NVIDIA/nvbandwidth

A tool for bandwidth measurements on NVIDIA GPUs.

해결하는 문제

NVIDIA GPU 간 및 호스트 CPU와 GPU 간의 실제 메모리 대역폭과 지연 시간을 측정할 수 있는 표준화된 방법을 제공합니다. NVLink과 같은 링크를 통한 데이터 전송 속도가 고성능 컴퓨팅 및 AI 워크로드에서 종종 버퍼링 지점이 되기 때문에 이 측정은 매우 중요합니다.

작동 방식

이 도구는 두 가지 다른 방법을 사용하여 다양한 메모리 복사(memcpy) 패턴을 수행합니다:

  • 복사 엔진(Copy Engine, CE): 표준 CUDA memcpy API를 사용합니다.
  • 스트리밍 멀티프로세서(Streaming Multiprocessor, SM): 사용자 정의 커널을 사용하여 데이터를 이동합니다.

정확성을 보장하기 위해 측정 중에 작업 큐잉 오버헤드를 제거하기 위해 "스핀 커널"을 사용합니다. 지연 시간 측정에는 포인터 추적(메모리 주소의 연결 리스트 생성) 기술을 사용하여 하드웨어 프리패치 및 데이터 캐시 히트를 방지하여 더 현실적인 원시 메모리 접근 시간 측정을 보장합니다.

대상 사용자

  • 시스템 아키텍트: GPU 클러스터가 최고 성능으로 구성되었는지 확인하기 위해.
  • ML 엔지니어: 다중 GPU 트레이닝 또는 추론 파이프라인에서의 버퍼링 지점을 진단하기 위해.
  • 클러스터 관리자: 다중 노드 배포에서 NVLink 및 인터노드 메모리 교환(IMEX)의 건강 상태와 성능을 검증하기 위해.

주요 기능

  • 멀티노드 지원: MPI와 NVIDIA IMEX를 사용하여 서로 다른 물리적 노드 간의 대역폭을 측정 가능.
  • 유연한 테스트: 단방향 및 양방향 전송을 지원하며, UUID를 통해 특정 GPU 간 페어 테스트도 가능.
  • 지능형 샘플링: 대규모 클러스터에서는 GPU 페어의 하위 집합을 샘플링하여 테스트 시간을 단축하면서도 토폴로지 커버리지를 유지.
  • 세부 메트릭 제공: 중앙값 또는 평균 대역폭을 보고하며, 특정 지연 시간 측정값도 제공.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트