Infiniband

  1. 개념

  2. 주요 특징

  3. Infiniband와 AKS 의 관계

    최근 들어 HPC 및 AI 워크로드의 컨테이너화가 가속화되면서, AKS 클러스터 내에서 InfiniBand 네트워크를 활용하는 경우가 늘고 있습니다. 이는 AKS가 제공하는 컨테이너 오케스트레이션의 편의성과 InfiniBand가 제공하는 초고성능 통신을 결합하여, 복잡하고 고성능을 요구하는 HPC/AI 워크로드를 클라우드에서 효율적으로 실행하기 위함입니다.

Infiniband On AKS

  1. 참고 자료

  2. 아키텍처

    image.png

  3. NVIDIA Operator Stack 용어 설명

    1. Node Feature Discovery (NFD)
      • 모든 노드의 하드웨어(GPU, Infiniband NIC 등)를 감지하고, 해당 정보를 쿠버네티스 노드에 레이블로 추가하는 역할을 담당합니다.
      • 노드 레이블링: 감지된 특징들을 kubernetes.io/hostname, kubernetes.azure.com/mode, kubernetes.azure.com/accelerator: nvidia와 같은 표준 및 사용자 정의 레이블로 변환하여 노드에 적용합니다.
    2. Network Operator (NO)
      • NFD가 감지한 정보를 바탕으로 GPU 노드에 Infiniband 드라이버(OFED), RDMA, SR-IOV 플러그인 등을 설치하여 Infiniband 네트워크를 구성합니다.
    3. GPU Operator
      • GPU 노드에 엔비디아 GPU 드라이버, CUDA 런타임, 컨테이너 툴킷을 설치하여 컨테이너가 GPU를 사용할 수 있도록 지원합니다.
    4. Volcano Scheduler
      • Kubernetes Control Plan과 통합되어 분산 AI/ML 학습과 같은 배치 워크로드를 위한 고급 스케줄링 기능을 제공합니다.
      • CycleCloud에서 Slurm과 비슷한 스케줄링 역할을 쿠버네티스 환경에서 지원합니다.
    5. NCCL Allreduce
      • NVIDIA Collective Communications Library (엔비디아 집단 통신 연산 라이브러리)
      • NVIDIA GPU에서 병렬 컴퓨팅을 위한 고성능 집단 통신(Collective Communication)을 제공하는 라이브러리입니다.
      • GPU 클러스터 환경에서 여러 GPU 간에 데이터 교환이 효율적으로 이루어지도록 설계되었습니다.

<aside> 💡

Helm 사용

해당 테스트 과정에서는 NFD, Network Operator, GPU Operator를 배포하기 위해 helm을 사용하여 배포합니다.

예외) Volcano Scheduler는 github yaml 파일 기준으로 설치됩니다.

</aside>

  1. NCCL Allreduce 테스트 프로세스

    테스트 프로세스 도식화 링크