AKS(Azure Kubernetes Service) GPU 노드 분할 전략

AKS(Azure Kubernetes Service) NVIDIA GPU 지원 노드 풀을 지원하여 AI/ML 학습, 실시간 추론 및 대규모 데이터 분석을 비롯한 계산 집약적 워크로드를 실행합니다. 일반적으로 GPU는 일대일 모델에 할당됩니다. 여기서 단일 Kubernetes Pod는 Azure VM(가상 머신) 내에서 전체 GPU 디바이스를 사용합니다. 이 모델은 단순성과 강력한 격리를 제공하지만 워크로드가 클러스터에서 사용 가능한 GPU 리소스를 완전히 사용하지 않는 시나리오에서 사용이 미달로 이어질 수 있습니다.

사용률을 개선하고 동시 워크로드를 지원하기 위해 고객은 노드 풀에 다양한 GPU 분할 전략을 통합할 수 있습니다. 이러한 접근 방식을 사용하면 여러 워크로드가 단일 물리적 GPU를 더 작은 논리 단위로 분할하거나 소프트웨어 또는 GPU 드라이버 수준에서 액세스를 확장하여 단일 물리적 GPU를 공유할 수 있습니다.

이 문서에서는 AKS의 NVIDIA GPU에 대한 세 가지 기본 노드 분할 전략인 MIG(다중 인스턴스 GPU),시간 조각화MPS(다중 프로세스 서비스)에 대해 알아봅니다.

AKS의 GPU 노드 분할 전략 개요

AKS 환경에서 사용할 수 있는 세 가지 주요 전략은 MIG(다중 인스턴스 GPU), 시간 조각화 및 MPS(다중 프로세스 서비스)입니다. 각 접근 방식은 AKS 플랫폼 관리, 격리 유형 및 배포 사용 사례 측면에서 다릅니다.

Strategy AKS에서 관리 또는 허용 GPU 공유 유형 권장 대상
MIG(다중 인스턴스 GPU) 관리형(또는 GPU Operator를 통해 사용자가 관리) 하드웨어 분할 프로덕션 워크로드
시분할(NVIDIA GPU Operator를 통해) 사용자 관리형, AKS 허용 소프트웨어 예약 가변 GPU 로드를 사용하여 실험
다중 프로세스 서비스(MPS, NVIDIA GPU 연산자) 사용자 관리형, AKS 허용 CUDA 수준 프로세스 멀티플렉싱 대기 시간이 짧고 처리량이 높은 워크로드

AKS에서 관리되는 MIG(다중 인스턴스 GPU)

MIG(다중 인스턴스 GPU)는 A100, H100 및 H200 시리즈와 같은 일부 NVIDIA GPU 아키텍처에서 사용할 수 있는 하드웨어 기반 분할 기능입니다. MIG를 사용하면 단일 물리적 GPU를 각각 전용 컴퓨팅 코어, 메모리 및 캐시가 있는 여러 개의 격리된 인스턴스로 나눌 수 있습니다. 이렇게 하면 강력한 워크로드 격리 및 예측 가능한 성능 특성이 보장되어 MIG가 프로덕션 환경에 적합합니다.

AKS에서 MIG는 관리되는 기능입니다. MIG 사용 노드 풀 프로비전되면 Azure GPU 하드웨어를 구성하고, 필요한 드라이버 스택을 설치 및 유지 관리하고, NVIDIA 디바이스 플러그 인을 통해 Kubernetes와 MIG 인스턴스를 통합합니다. 각 MIG 조각은 불연속 할당 가능한 리소스로 Kubernetes 스케줄러에 노출되므로 Pod가 세분화되고 결정적인 방식으로 GPU 용량을 요청할 수 있습니다.

이 방법은 엔터프라이즈 배포에 몇 가지 이점을 제공합니다. 하드웨어 수준 분할을 통해 프로덕션 수준의 격리를 제공하고 드라이버 업데이트 및 구성을 포함한 수명 주기 관리를 AKS에 위임하여 운영 오버헤드를 줄입니다. 또한 MIG 인스턴스는 스케줄러의 관점에서 독립적인 GPU 디바이스로 작동하여 예측 가능한 배치 및 리소스 할당을 가능하게 합니다.

그러나 MIG는 또한 특정 제약 조건을 도입합니다. 분할 구성은 노드 풀 수준에서 정적입니다. 즉, 변경 내용에 노드 다시 프로비전이 필요합니다. 유연성은 기본 GPU 하드웨어에서 지원하는 미리 정의된 MIG 프로필로 제한됩니다.

NVIDIA GPU 연산자(사용자 관리)를 사용하여 시간 조각화

시분할은 시간에 따라 실행을 번갈아 배치하여 여러 Kubernetes pod가 단일 GPU를 공유할 수 있도록 하는 소프트웨어 기반 GPU 공유 메커니즘입니다. 이 방법은 GPU 드라이버, Kubernetes 디바이스 플러그 인 및 컨테이너 런타임 구성을 관리하는 NVIDIA GPU 연산자를 통해 구현됩니다.

시간 슬라이싱은 AKS 노드 풀에서 구성할 수 있지만 플랫폼에서 관리되지는 않습니다. 클러스터 운영자는 일반적으로 Helm을 통해 NVIDIA GPU Operator를 배포하고 구성하며, 디바이스 플러그인 설정을 통해 시간 분할 기능을 활성화할 책임이 있습니다. 구성되면 여러 Pod가 동일한 GPU 리소스에 대한 액세스를 요청할 수 있으며 해당 워크로드는 시간 공유 방식으로 예약됩니다.

시간 조각화는 특정 GPU 하드웨어 기능에 의존하지 않고 CUDA에서 지원하는 대부분의 NVIDIA GPU와 함께 사용할 수 있으므로 유연성과 광범위한 호환성을 제공합니다. 버스트 또는 가변 GPU 사용률 패턴이 있는 개발, 테스트 또는 워크로드에 유용합니다.

유연성에도 불구하고 시분할은 하드웨어 수준의 격리를 제공하지 않습니다. 모든 워크로드는 동일한 GPU 메모리 및 컴퓨팅 리소스를 공유하므로 경합과 예측할 수 없는 성능이 발생할 수 있습니다. 구성 및 수명 주기 관리는 사용자 중심이므로 운영자는 드라이버 업데이트, 호환성 및 튜닝도 처리해야 합니다. 따라서 일반적으로 엄격한 SLA(서비스 수준 계약)가 필요한 프로덕션 워크로드에는 시간 조각화가 권장되지 않습니다.

NVIDIA GPU 연산자를 사용하는 MPS(다중 프로세스 서비스)(사용자 관리)

NVIDIA MPS(다중 프로세스 서비스) 는 여러 CUDA 애플리케이션이 단일 GPU에서 동시에 실행할 수 있도록 하는 드라이버 수준 기능입니다. 워크로드 간 실행을 번갈아 사용하는 시간 조각화와 달리 MPS를 사용하면 여러 프로세스의 커널을 동시에 실행하여 전체 GPU 사용률을 개선하고 호환되는 워크로드의 대기 시간을 줄일 수 있습니다.

AKS에서 MPS는 NVIDIA GPU 운영자의 사용자 관리 형 배포를 통해 구성할 수 있습니다. 운영자는 MPS를 사용하도록 GPU 드라이버 환경을 구성하고 MPS 컨트롤 디먼의 수명 주기를 관리해야 합니다. 동일한 MPS 서버에 연결하는 워크로드는 GPU를 공유하고 동시 커널 실행을 활용할 수 있습니다.

MPS는 처리량이 높고 대기 시간이 짧은 시나리오(예: 일괄 처리 작업 또는 긴밀하게 결합된 병렬 워크로드)에 유용합니다. GPU 공유에 대한 세분화된 제어를 제공하며 워크로드가 동시 실행을 활용하도록 설계된 경우 사용률을 크게 향상시킬 수 있습니다.

그러나 MPS는 추가적인 운영 복잡성을 도입합니다. 구성은 수동이며 문제 해결은 다른 방법에 비해 더 많이 관련될 수 있습니다. 시간 조각화와 마찬가지로 모든 프로세스가 GPU 메모리 및 컴퓨팅 리소스를 공유하므로 MPS는 강력한 격리를 제공하지 않습니다. 따라서 일반적으로 MPS는 엄격한 SLA(서비스 수준 계약)가 필요한 프로덕션 워크로드에는 권장되지 않습니다.

GPU 분할 전략을 선택하는 방법

AKS에서 적절한 GPU 분할 전략을 선택하는 것은 워크로드 요구 사항, 운영 기본 설정 및 성능 기대치에 따라 달라집니다. MIG는 강력한 격리 및 예측 가능한 성능이 필요한 프로덕션 환경에 권장되는 방법입니다. AKS 노드 풀 기능으로 MIG는 작업을 간소화하고 관리 오버헤드를 줄입니다.

시간 조각화는 일관성보다 사용률 극대화가 더 중요한 GPU 수요가 변동하는 비프로덕션 환경 또는 워크로드에 유용합니다. 하드웨어에 구애받지 않는 솔루션을 제공하지만 신중한 관리가 필요하며 성능 격리를 보장하지는 않습니다.

MPS는 동시 GPU 실행 및 짧은 대기 시간의 이점을 활용하는 특수 워크로드에 적합합니다. 가장 높은 잠재적 사용률 효율성을 제공하지만 복잡성이 증가하고 격리가 최소화되어 CUDA 인식 애플리케이션을 사용하는 고급 사용자에게 가장 적합합니다.

실제로 조직은 환경별로 서로 다른 전략을 채택할 수 있으며, 운영 클러스터에는 MIG를 사용하고 개발 또는 실험 시나리오에서는 시간 분할 또는 MPS를 활용할 수 있습니다. 가장 효과적인 장기 분할 방법을 선택하려면 GPU 워크로드 특성 및 운영 제약 조건을 신중하게 평가해야 합니다.