다음을 통해 공유


Azure Kubernetes 서비스를 사용하여 GPU 기반 워크로드를 관리하세요.

이 문서에서는 AKS(Azure Kubernetes Service) 클러스터에서 GPU(그래픽 처리 장치) 노드를 사용하는 워크로드를 효율적으로 실행하는 방법을 설명합니다. 올바른 SKU를 선택하고, GPU 노드를 사용하여 기계 학습 모델을 학습하고, GPU 노드를 사용하여 AKS에서 유추를 실행하는 방법을 알아봅니다.

시나리오

GPU 워크로드는 실행하는 데 비용이 많이 들 수 있습니다. 불필요한 비용을 방지하려면 AKS 클러스터에 GPU 기반 노드를 배포하는 시기를 파악합니다.

GPU는 그래픽, AI 및 기계 학습 및 특수 작업을 위해 특별히 제작되어 컴퓨팅 집약적 워크로드에 적합합니다. CPU(중앙 처리 단위)는 복잡한 논리 및 분기를 효과적으로 관리합니다. GPU는 처리량에 최적화되어 있으며 기본 산술 및 벡터 작업을 효율적으로 처리합니다.

AKS 워크로드에 GPU를 사용하는 시기를 결정하려면 GPU 최적화, 컴퓨팅 강도 및 성능에 영향을 주는 기타 요인을 이해해야 합니다. AKS 워크로드의 GPU 사용량에 대한 더 나은 인사이트를 얻으려면 AKS 클러스터의 GPU 노드를 활용하는 다음 워크로드 예제를 고려하세요.

데이터 과학 및 분석

GPU를 사용하여 데이터 과학 워크플로에서 데이터 전처리, 기능 엔지니어링 및 모델 학습을 가속화합니다. GPU를 효율적으로 사용하기 위해 RAPIDSDask 의 GPU 지원과 같은 프레임워크는 pandas 및 scikit-learn과 같은 인기 있는 데이터 처리 라이브러리를 확장합니다.

OSS(오픈 소스 소프트웨어) 가속 SQL 쿼리 엔진 및 HeavyDB 와 같은 열 형식 데이터베이스는 GPU를 사용하여 큰 데이터 세트에 대한 쿼리 및 분석을 수행합니다.

기계 학습 및 딥 러닝

TensorFlow, PyTorch, vLLMTriton Inference Server와 같은 인기 있는 기계 학습 및 딥 러닝 프레임워크는 모델을 학습시키고 유추를 실행하는 작업을 가속화하기 때문에 GPU의 이점을 누릴 수 있습니다. 예를 들어 Azure Machine Learning은 Triton 유추 서버를 사용하여 관리되는 온라인 엔드포인트에서 제공하는 고성능 모델을 지원합니다.

딥 러닝 모델은 복잡한 신경망을 사용합니다. GPU에서 병렬 처리는 계산을 가속화합니다. GPU는 딥 러닝의 기본 작업인 매우 효율적인 행렬 곱하기 및 컨볼루션 작업을 제공합니다.

GPU를 사용하여 이미지 분류, 개체 감지, 자연어 처리 및 음성 인식과 같은 작업을 가속화할 수도 있습니다.

컴퓨터 비전 및 이미지 처리

Computer Vision 작업은 시각적 데이터를 해석하여 의미 있는 정보를 추출합니다. 이러한 작업은 자율 주행 차량, 의료 이미징, 감시 시스템 및 증강 현실과 같은 AI 기반 애플리케이션에 표시됩니다. GPU는 병렬 처리를 사용하여 개체 감지, 이미지 분류 및 기능 추출과 같은 작업에 대한 대규모 이미지 데이터 및 복잡한 계산을 효율적으로 처리합니다.

비디오 처리 및 스트리밍

비디오를 트랜스코딩, 인코딩 및 스트리밍하는 워크로드는 특히 고해상도 콘텐츠가 있는 경우 계산 집약적입니다. GPU는 스포츠 이벤트 스트림 및 회사 비디오와 같은 애플리케이션에서 대기 시간이 짧고 처리량이 높은 비디오 처리를 위한 효율적인 플랫폼을 제공합니다.

GPU 사용 에이전트 노드는 그래픽 집약적 작업을 가상 데스크톱 환경의 GPU로 오프로드합니다. GPU를 사용하는 비디오 인코딩 및 디코딩 기능은 실시간 비디오 스트리밍, 코드 변환 및 분석을 지원합니다.

개체 감지, 개체 추적, 이미지 또는 비디오 처리와 같은 컴퓨터 비전 작업을 가속화하려면 OpenCV, OpenCL, NVIDIA CUDANVIDIA cuDNN과 같은 프레임워크를 사용합니다.

게임 플랫폼 및 클라우드 게임 서비스는 GPU를 사용하여 고해상도 그래픽을 렌더링하고 인터넷을 통해 부드러운 게임 플레이를 스트리밍합니다.

고성능 컴퓨팅

HPC(고성능 컴퓨팅) 애플리케이션에는 복잡한 시뮬레이션, 숫자 분석 및 과학적 계산이 필요한 경우가 많습니다. 이러한 작업을 효율적으로 실행하려면 GPU를 사용하여 여러 코어에서 워크로드를 병렬화할 수 있습니다. 대규모 병렬 처리 능력이 필요한 HPC 애플리케이션의 예로는 과학 시뮬레이션, 일기 예보, 계산 유체 역학 및 분자 모델링이 있습니다. GPU는 병렬 계산을 지원하고 HPC 워크로드를 가속화합니다. 또한 과학 및 연구 컴퓨팅 전반에서 성능을 향상시킵니다.

HPC 애플리케이션을 가속화하기 위해 NVIDIA CUDA, OpenCL 및 OpenACC 와 같은 프레임워크는 GPU 지원 API 및 라이브러리를 제공합니다.

유전체 분석 및 생물 정보학

게놈 분석 및 생물 정보학 응용과 같은 건강 및 생명 과학 워크로드는 DNA 서열 및 단백질 구조와 같은 유전 데이터를 처리합니다. 복잡한 알고리즘을 사용하여 시퀀스를 정렬하고, 변형을 호출하고, 게놈 데이터를 마이닝합니다. GPU는 게놈 분석 워크플로를 가속화하여 연구원이 데이터를 처리하고 인사이트를 신속하게 파악할 수 있도록 합니다.

생성형 AI 모델

OpenAI GPT, Meta Llama, FalconPhi 오픈 모델과 같은 언어 모델은 GPU 병렬 처리 기능을 활용할 수 있습니다. GPU를 사용하여 이러한 모델을 실행하고 성능을 향상시킵니다.

GPU는 복잡한 계산과 많은 양의 데이터를 포함하는 학습 및 유추 작업을 가속화합니다. GPU에는 지정된 모델의 큰 계산 작업을 동시에 실행되는 더 작은 하위 작업으로 나누는 병렬 처리 기능이 있습니다. 이 프로세스는 대기 시간을 줄이고 성능을 향상시킵니다.

언어 모델에는 여러 계층과 매개 변수가 있는 복잡한 신경망이 있어 계산 수요가 증가할 수 있습니다. GPU는 행렬 곱하기 및 컨볼루션과 같은 언어 처리에서 주요 작업을 가속화하여 학습 및 유추에 필요한 시간을 줄입니다.

GPU는 대화형 인터페이스가 있고 텍스트를 생성하는 언어 모델 기반 애플리케이션을 처리할 수 있는 충분한 메모리 용량, 대역폭 및 처리 능력을 제공합니다. 예를 들어 GPU의 향상된 기능은 챗봇 및 AI 도우미와 상호 작용하는 사용자에게 짧은 대기 시간 응답을 제공합니다.

모든 워크로드가 GPU 사용 에이전트 노드의 이점을 활용하는 것은 아닙니다. 경우에 따라 CPU가 충분할 수 있습니다. 예를 들어 주로 입력 및 출력 바인딩되거나 많은 계산이 필요하지 않은 워크로드는 GPU의 이점을 얻지 못할 수 있습니다.

고객 사례

많은 Microsoft 고객은 GPU 워크로드를 활용하여 고객을 위해 혁신합니다. 다음 예제를 고려하세요.

GPU 워크로드 배포 모범 사례

AKS는 GPU 지원 Linux 및 Windows 노드 풀 및 워크로드를 배포하는 다양한 옵션을 제공합니다.

Linux 워크로드 배포

  • NVIDIA GPU 또는 AMD GPU를 사용하는 지원되는 GPU 지원 VM(가상 머신)이 있는 노드 풀을 만듭니다. GPU 공급업체 지침에 따라 연결된 Kubernetes 디바이스 플러그 인을 설치합니다. 이 메서드를 사용하면 GPU를 추가하도록 기존 노드 풀을 업데이트할 수 없습니다.

  • Azure Linux GPU 사용 노드 풀을 사용하는 경우의 제한 사항을 이해합니다. AKS는 자동 보안 패치를 적용하지 않으며 클러스터의 기본 동작은 관리되지 않습니다.

  • GPU 사용 노드 풀에서 워크로드를 예약할 때 Kubernetes 노드 선택기, 노드 선호도, 및 taint와 toleration을 사용합니다.

Windows 워크로드 배포

  • 지원되는 GPU 지원 VM을 사용하여 노드 풀을 만듭니다. 이 방법은 GPU 사용 Windows 노드 풀을 만듭니다. AKS 는 드라이버 및 Kubernetes 디바이스 플러그 인을 자동으로 설치합니다. 이 메서드를 사용하면 GPU를 추가하도록 기존 노드 풀을 업데이트할 수 없습니다.

    지원되는 GPU 지원 VM을 선택하면 AKS에서 필요한 NVIDIA CUDA 또는 GRID 드라이버를 자동으로 설치합니다. 일부 워크로드는 배포에 영향을 줄 수 있는 특정 드라이버에 따라 달라집니다. NC 시리즈 및 ND 시리즈 VM 크기의 경우 AKS는 CUDA 드라이버를 설치합니다. NV 시리즈 VM 크기의 경우 AKS는 GRID 드라이버를 설치합니다.

  • Windows 노드 풀을 사용하는 경우의 제한 사항을 이해합니다.

  • GPU 사용 노드 풀에서 워크로드를 예약할 때 Kubernetes 노드 선택기, 노드 선호도, taints와 tolerations을 사용합니다.

비고

Windows GPU는 미리 보기 기능입니다. WindowsGPUPreview 기능 플래그를 등록해야 합니다.

NVIDIA GPU 연산자

NVIDIA GPU 연산자를 사용하여 Kubernetes 클러스터에서 GPU 리소스를 배포하고 관리합니다. 운영자는 필요한 소프트웨어 구성 요소의 설치, 구성 및 유지 관리를 자동화합니다. 이 방법을 사용하면 AI 및 기계 학습과 같은 리소스 집약적 워크로드에 NVIDIA GPU를 최적으로 사용할 수 있습니다.

NVIDIA GPU 운영자는 Kubernetes용 NVIDIA 디바이스 플러그 인 및 NVIDIA 컨테이너 런타임과 같이 GPU를 배포하는 데 필요한 NVIDIA 소프트웨어 구성 요소를 자동으로 관리합니다. 운영자는 자동으로 드라이버를 설치합니다. 자세한 내용은 NVIDIA GPU 연산자 개요를 참조하세요.

고급 GPU 워크로드에 대한 향상된 제어 및 유연성을 원하는 경우 AKS에서 GPU 사용 노드와 함께 NVIDIA GPU 연산자를 사용합니다. 운영자는 Windows GPU를 지원하지 않습니다.

다음 모범 사례를 고려합니다.

  • NVIDIA GPU 연산자를 사용하여 드라이버 버전 선택 및 GPU 시간 조각화와 같은 고급 GPU 구성을 수행합니다.

  • 운영 소프트웨어를 사용하기 전에 자동 드라이버 설치를 건너뛰기를 선택하세요.

  • 클러스터 자동 크기 조정기에서 연산자를 사용하는 경우 최소 개수를 1로 설정합니다.

비고

Microsoft는 NVIDIA GPU 연산자를 사용하는 경우 노드 이미지 배포의 일부로 NVIDIA 드라이버의 유지 관리 및 호환성을 지원하거나 관리하지 않습니다. 자세한 내용은 AKS에 대한 GPU 모범 사례를 참조하세요.

언어 모델에 대한 GPU 워크로드 배포

AI 도구 체인 연산자는 Kubernetes 클러스터에서 Falcon과 같은 오픈 소스 언어 모델을 실행하는 방법을 간소화합니다. AKS 클러스터에 AI 도구 체인 연산자를 AKS의 관리되는 기능으로 배포할 수 있습니다. AI 도구 체인 연산자는 Karpenter 를 사용하여 선택한 모델의 작업 영역 사용자 지정 리소스 정의에 있는 사양에 따라 GPU 노드를 자동으로 프로비전하고 배포합니다. AI 도구 체인 연산자는 유추 서버를 언어 모델의 엔드포인트로 만들고 온보딩 시간을 줄여 인프라 설정 및 유지 관리 대신 기계 학습 작업에 집중할 수 있도록 합니다.

AKS에서 AI 작업을 개선하기 위해 AI 도구 체인 연산자는 다음과 같은 기능을 제공합니다.

  • 컨테이너 이미지를 관리합니다. 컨테이너 이미지를 사용하여 언어 모델을 관리합니다. AI 도구 체인 연산자는 미리 설정된 모델 작업 영역을 사용하여 유추를 수행하고, 도구를 호출하고, MCP(모델 컨텍스트 프로토콜)를 사용할 수 있도록 HTTP 서버를 제공합니다.

  • BYO(Bring-Your-Own) 모델을 지원 합니다. AI 도구 체인 연산자를 사용하여 사용자 지정 배포 템플릿 및 유추를 위해 HuggingFace 변환기를 사용하여 사내 미리 학습된 언어 모델을 가져옵니다.

  • GPU 하드웨어를 구성합니다. AI 도구 체인 연산자는 모델 요구 사항에 따라 미리 설정된 구성을 자동으로 적용합니다. GPU 하드웨어에 맞게 배포 매개 변수를 수동으로 조정하거나 비용이 많이 드는 GPU OOM(메모리 부족) 오류를 해결할 필요가 없습니다.

  • 기본 제공 유추 모니터링을 제공합니다. 기본 vLLM 유추 엔진을 사용하여 모델을 배포하는 경우 AI 도구 체인 연산자는 Prometheus 및 Grafana를 통해 실시간 vLLM 메트릭을 표시 하고 AKS 클러스터의 유추 성능 및 상태에 대한 메트릭을 노출합니다.

AI 도구 체인 연산자에 대한 자세한 내용은 다음 리소스를 참조하세요.

워크로드 및 클러스터 크기 조정

AI 및 기계 학습 시나리오의 경우 학습 워크로드와 미리 학습된 모델을 사용한 추론을 구분해야 합니다. 기계 학습 모델을 빌드하고 학습하려면 딥 러닝용으로 설계된 GPU 컴퓨팅을 사용하고 AI 계산을 병렬화합니다. 학습을 위해서는 데이터 병렬 처리를 통해 높은 정확도를 달성하기 위해 GPU 리소스의 크기를 점진적으로 조정하고 GPU에 대량의 데이터를 분산해야 하는 경우가 많습니다.

모델 분할은 모델 학습 단계를 분할하기 위한 일반적인 고급 기술입니다. AKS의 NVIDIA GPU 노드 풀에서 MIG(다중 인스턴스 GPU) 를 사용하도록 설정하여 GPU를 고유 작업에 할당하고 사용을 최대화할 수 있습니다. GPU는 Azure의 NV 시리즈 또는 ND 시리즈 VM과 같은 HPC 워크로드를 확장하고 확장할 수 있습니다. 이 기능은 리소스 사용량이 많고 비용이 많이 드는 기계 학습 학습 프로세스에 대한 사용자 개입을 줄이는 데 도움이 됩니다.

또는 미리 학습된 오픈 소스 AI 및 기계 학습 모델을 유추에 사용할 수 있습니다. 완전히 사용자 지정 언어 모델을 빌드하고 학습하는 것보다 더 비용 효율적인 옵션으로 라마, 팔콘 또는 피와 같은 인기 있는 모델로 시작합니다. 자세한 내용은 AKS의 언어 모델을 참조 하세요.

유추에 미리 학습된 모델을 사용하는 경우 처리하는 데이터의 양에 따라 리소스 사용량이 변동될 수 있습니다. 선택한 모델을 통해 라이브 데이터를 실행하면 모델 크기 및 요구 사항에 따라 트래픽이 급증할 수 있습니다. 유추 프로세스 전체에서 짧은 대기 시간을 유지합니다. 고성능 및 짧은 대기 시간에 GPU를 효과적으로 사용하려면 AI 도구 체인 연산자가 지원하는 모델을 사용하여 분산 유추를 수행합니다. 이 방법은 각각 하나 또는 두 개의 GPU가 있는 더 낮은 GPU 수 SKU를 포함하도록 컴퓨팅 옵션을 확장하고, Azure 지역에 걸쳐 고가용성을 제공하고, 유지 관리 비용을 절감합니다.

GPU 상태 모니터링

GPU 문제는 완전히 실패하기보다는 감지하기 어려워 종종 조용한 오류를 일으키거나 성능을 저하시킬 수 있습니다. 이러한 문제는 문제를 해결하고, 리소스를 불필요하게 사용하고, 운영 비용을 늘리는 데 시간을 더합니다.

AKS의 GPU 상태 모니터링 은 노드 이벤트 및 조건에 대한 일관되고 빈번한 검사를 제공합니다. NPD(Node Problem Detector)는 특정 GPU VM 크기에 대해 이러한 이벤트를 보고합니다. NPD는 잘못된 GPU 수 또는 네트워크 연결 오류와 같은 키 신호를 Kubernetes 노드 조건에 직접 표시하여 팀이 문제를 식별하고 대응하는 데 도움이 됩니다. 이 방법은 자동화된 경고, 노드 코드 조정 및 워크로드 다시 예약을 지원합니다. 또한 컴퓨팅 집약적 환경에서 애플리케이션 안정성 및 성능을 유지하는 데 도움이 됩니다.

GPU 워크로드 비용 관리

GPU는 비용을 증가시킬 수 있습니다. 워크로드를 모니터링하여 GPU 비용을 유발하는 원인을 파악하고 최적화 기회를 식별합니다. 비용 가시성을 높이려면 AKS 비용 분석 도구를 사용합니다.

다음 시나리오는 비용 가시성의 이점을 누릴 수 있습니다.

GPU 사용 VM 크기 비용

적절한 GPU 사용 VM 크기를 선택하여 GPU 실행 비용을 최적화합니다. 일일 비용은 선택한 VM 크기에 따라 달라질 수 있습니다. A100 GPU는 비용이 많이 들기 때문에 워크로드에 필요한 경우가 아니면 사용하지 않도록 합니다. AKS 비용 분석은 각 VM의 일일 비용을 표시하고 GPU 지원 VM에서 실행되는 각 워크로드의 관련 비용을 보여 줍니다. 이 데이터를 사용하여 적절한 VM 크기가 있는지 또는 보다 비용 효율적인 옵션이 필요한지 평가합니다.

유휴 비용

GPU 사용 노드 풀을 만든 후에는 GPU 워크로드를 실행하지 않더라도 Azure 리소스에 비용이 발생합니다. 유휴 비용은 워크로드에서 사용하지 않는 사용 가능한 리소스 용량의 비용을 나타냅니다. 사용되지 않는 노드가 여러 개 있는 경우 이러한 비용이 빠르게 더해질 수 있습니다. 높은 유휴 비용을 방지하려면 워크로드를 실행할 때만 노드 풀을 만들고 워크로드를 실행하지 않을 때 클러스터 중지 기능 과 같은 메서드를 사용합니다. AKS 비용 분석에는 각 노드에 대한 유휴 비용이 표시됩니다.

과잉 프로비전 및 사용 미달

오버프로비전은 Pod에 필요한 것보다 더 많은 리소스를 할당하는 경우입니다. 과잉 프로비전은 리소스 낭비 및 과소 사용으로 이어집니다. 노드는 워크로드에서 리소스를 사용하지 않더라도 초과 리소스를 계속 예약합니다. 오버프로비전을 줄이려면 세로 Pod 자동 크기 조정기를 사용하여 이전 사용 패턴에 따라 정확한 요청 및 제한을 설정합니다.

워크로드가 GPU를 완전히 사용하지 않을 때 과소 사용이 발생할 수 있습니다. 고급 기술을 사용하여 GPU를 공유하고 분할하는 것이 좋습니다. 여러 노드를 배포하는 대신 파티션이 있는 단일 노드를 사용하여 GPU 사용량을 최대화할 수 있습니다. 이러한 기술은 각 워크로드에 적절한 양의 GPU 가속을 할당하는 데 도움이 되므로 사용량을 향상시키고 배포의 운영 비용을 낮출 수 있습니다.

AKS의 Linux GPU 워크로드 배포는 다중 인스턴스 GPU를 지원합니다. 이 기능을 사용하여 NVIDIA A100 및 H100 GPU를 최대 7개의 독립 인스턴스로 분할합니다. 각 인스턴스에는 고유한 메모리와 스트림 다중 프로세서가 있습니다.

NVIDIA는 시간 조각화 및 MPS(다중 프로세스 서비스)와 같은 다른 분할 기술을 지원합니다. 이러한 구성을 수동으로 적용하려면 NVIDIA GPU 연산자를 사용합니다.

고급 시나리오의 경우 AKS 노드에서 리소스 빈 압축을 개선하고 클러스터에서 GPU 리소스의 사용률을 최적화할 수 있습니다. 하나 이상의 기본 제공(또는 트리 내) Kubernetes 예약 플러그 인을 사용하여 스케줄러 구성을 설정하여 기본 AKS 스케줄러와 다른 워크로드 배치 전략을 도입할 수 있습니다. 자세한 내용은 AKS(미리 보기)에서 워크로드 배치에 대한 Scheduler 구성 개념을 참조하세요.

기여자

Microsoft는 이 문서를 유지 관리합니다. 다음 기여자는 이 문서를 작성했습니다.

대표 저자:

기타 기여자:

LinkedIn 비공개 프로필을 보려면, LinkedIn에 로그인하세요.

다음 단계