더 빠른 AI/ML 추론을 위해 GPU 워커 노드를 활용한 관리형 Kubernetes

더 빠른 AI/ML 추론을 위해 GPU 워커 노드를 활용한 관리형 Kubernetes

현재 조직의 48%가 AI/ML 워크로드에 Kubernetes를 사용하며, 이러한 워크로드에 대한 수요는 Kubernetes의 사용 패턴도 증가시킵니다. 이 트렌드의 주요 기술적인 이유, 관리형 K8s 클러스터의 GPU 워커 노드에서 실행되는 AI/ML 워크로드의 이점, GPU 공급업체 및 스케줄링과 관련된 몇 가지 고려 사항을 살펴보겠습니다.

Kubernetes가 AI/ML에 적합한 이유

여러 기능들로 인해서 Kubernetes가 AI/ML 분야에서 인기가 있고 효과적으로 사용됩니다.

  • 확장성 K8s는 AI/ML 워크로드의 원활하고 요구에 따른 확장성을 가능하게 합니다. 이것은 특히 추론 워크로드에서 중요한데, 이는 훈련 워크로드보다 자원 활용 측면에서 더 동적이며 자원이 많이 필요할 수 있습니다. 후자는 처리되는 데이터 양에 따라 자주 스케일 업 또는 다운이 필요하다는 것을 의미합니다.
  • 자동 스케줄링 AI/ML 워크로드를 자동으로 예약할 수 있는 능력은 MLOps 팀의 운영비를 절감합니다. 또한 필요한 자원을 갖춘 노드로 일정을 조정하여 AI/ML 어플리케이션의 성능을 향상시킵니다.
  • 자원 활용 K8s는 AI/ML 워크로드의 물리적 자원 활용을 최적화하는 데 도움을 줄 수 있습니다. K8s는 필요한 양의 CPU, GPU 및 RAM 자원을 동적으로 자동 할당할 수 있습니다. 이는 이러한 워크로드의 자원 집약적인 성격과 비용 절감의 가능성으로 인해 중요합니다.
  • 유연성 K8s를 사용하면 온프레미스, 공용 클라우드, 엣지 클라우드를 포함한 여러 인프라에서 AI/ML 워크로드를 배포할 수 있습니다. 이 기능으로 인해 하이브리드 또는 멀티클라우드 환경에서 AI/ML 워크로드를 배포해야 하는 조직에서는 Kubernetes를 유용하게 활용할 수 있습니다.
  • 휴대성 Kubernetes 기반의 AI/ML 어플리케이션을 간편하게 다양한 환경 및 설치 간에 이전할 수 있습니다. 이는 하이브리드 인프라에서 AI/ML 워크로드를 배포하고 관리하는 데 중요합니다.

사용 사례

다음은 기업이 AI/ML 프로젝트에 Kubernetes(K8s)를 도입한 몇 가지 예시입니다.

  • OpenAIK8s의 초기 도입 사례 중 하나입니다. 2017년에는 OpenAI가 K8s 클러스터에서 머신 러닝에 대한 실험을 진행하고 있었습니다. K8s 오토스케일러를 사용하여 OpenAI 클라우드는 몇 일 안에 이러한 프로젝트를 배포하고 1~2주 안에 수백 개의 GPU로 확장할 수 있었습니다. Kubernetes 오토스케일러가 없었다면 이와 같은 과정은 몇 달이 걸렸을 것입니다. 결과적으로 OpenAI는 AI 실험의 수를 열 배로 증가시켰습니다. 2021년에는 OpenAPI가 GPT-3, DALL-E 및 CLIP와 같은 대규모 ML 모델을 위해 K8s 인프라를 7,500 노드로 확장시켰습니다.
  • ShellK8s 기반 플랫폼 Kubeflow를 사용하여 노트북에서 ML 모델을 테스트하고 빠르게 실험합니다. 엔지니어는 이러한 워크로드를 테스트 환경에서 생산으로 이동시킬 수 있으며, 워크로드는 동일하게 작동할 것입니다. Kubernetes를 사용하면 Shell은 한 달이 아니라 두 시간 동안에 수천 개의 ML 모델을 구축합니다. 기본 코드를 작성하는 시간은 2주에서 4시간으로 감소했습니다.
  • IKEA는 온프레미스에서 ML 모델을 훈련하고 클라우드에서 추론을 얻기 위해 K8s를 기반으로 한 내부 MLOps 플랫폼을 개발했습니다. 이를 통해 MLOps 팀은 다양한 유형의 훈련된 모델을 조율하고 궁극적으로 고객 경험을 향상시킬 수 있습니다.

물론, 이러한 예시가 모든 상황을 대표하지는 않습니다. 대부분의 기업은 OpenAI처럼 완전히 AI에 중점을 둔 것이 아니며 IKEA처럼 크지 않습니다. 다른 회사들은 시간과 비용이 소요되는 대규모 AI/ML 모델을 처음부터 훈련시키기 어려우며, 대신 미리 훈련된 모델을 실행하고 다른 내부 서비스와 통합할 수 있습니다. 다시 말해, 이러한 기업들은 훈련이 아닌 AI/ML 추론을 사용합니다.

추론 워크로드는 훈련 워크로드보다 자원 활용 측면에서 더 동적인 경향이 있습니다. 왜냐하면 생산 클러스터에서는 사용자 및 트래픽 증가가 더 자주 발생하기 때문입니다. 이러한 경우에는 인프라가 빠르게 확장 및 축소되어야 하는 반면, AI/ML 훈련은 일반적으로 점진적인 스케일링이 필요합니다. 따라서, 이미 훈련되고 배포된 AI/ML 모델에 대해서는 K8s의 확장성과 동적 자원 활용이 특히 유용합니다.

워커 노드에서 GPU가 CPU보다 더 나은 이유

GPU 워커 노드는 컨테이너로 되지 않은 워크로드와 동일한 이유로 컨테이너로 된 AI/ML 워크로드에 더 적합합니다. GPU는 병렬 처리 기능과 AI/ML 워크로드에 대해서 CPU보다 높은 성능을 제공합니다.

GPU 워커 노드에서 실행되는 AI/ML 워크로드의 추론은 다음과 같은 요인으로 인해 CPU 워커 노드보다 더 빠를 수 있습니다.

  • GPU의 메모리 아키텍처는 특히 AI/ML 처리를 위해 최적화되어 있기 때문에 CPU보다 더 높은 메모리 대역폭을 제공합니다.
  • GPU는 데이터를 처리하기 위한 트랜지스터가 더 많기 때문에 AI/ML 훈련 및 추론에서 CPU보다 더 나은 계산 성능을 제공합니다.

Kubernetes는 GPU의 성능 이점 외에도 자체적인 성능 이점이 있습니다. 하드웨어 가속화뿐만 아니라 GPU 워커 노드에서 실행되는 AI/ML 워크로드는 확장성과 동적 자원 할당을 달성할 수 있습니다. Kubernetes에는 GPU 공급업체 지원을 위한 플러그인도 포함되어 있어 AI/ML 워크로드에서 GPU 자원을 구성하기가 쉽습니다.

GPU 워커 노드 및 컨테이너 간에 공유되는 GPU 자원을 포함한 간소화된 Kubernetes 클러스터 아키텍처
그림  1. GPU 워커 노드를 포함한 간소화된 K8s 클러스터 아키텍처

Kubernetes를 사용하면 여러 워커 노드에서 GPU 자원을 관리할 수 있습니다. 컨테이너는 CPU 자원을 소비하는 방식과 본질적으로 동일한 방식으로 GPU 자원을 소비합니다.

GPU 공급업체 비교

Kubernetes에서 사용 가능한 세 가지 GPU 공급업체는 NVIDIA, AMD, Intel입니다. 워커 노드용 GPU 공급업체를 선택하는 경우, Kubernetes와의 호환성, 도구 생태계, 성능 및 비용과의 호환성이 다를 수 있다는 점을 염두에 두는 것이 중요합니다.

 NVIDIA GPU 워커 노드AMD GPU 워커 노드Intel GPU 워커 노드
K8s와의 호환성우수좋음좋음
도구 생태계우수좋음보통
성능우수좋음보통
비용높음중간중간

세 개의 공급업체를 비교해 보겠습니다.

  • Kubernetes와의 호환성: NVIDIA가 K8s와 호환성이 가장 좋습니다. 이 회사는 CUDA 드라이버, 다양한 컨테이너 런타임, GPU 통합 및 관리를 간소화하는 다른 도구와 기능을 제공합니다. AMD와 Intel의 K8s 지원은 덜 성숙하며 종종 사용자 정의 구성이 필요합니다.
  • 도구 생태계: NVIDIA는 GPU Operator 및 Container Toolkit과 같은 소프트웨어, TensorFlow, PyTorch, MXNet과 같은 NVIDIA GPU에 적합한 ML 프레임워크와 함께 최고의 AI/ML 도구 생태계를 갖추고 있습니다. AMD와 Intel도 AI/ML을 위한 도구를 갖추고 있지만, NVIDIA만큼 포괄적이지 않습니다.
  • 성능: NVIDIA GPU는 대부분의 MLPerf 벤치마크에서 경쟁사를 뛰어넘는 고성능 AI 워크로드를 자랑합니다. NVIDIA GPU는 딥 러닝과 고성능 컴퓨팅과 같은 요구가 많은 작업에 이상적입니다.
  • 비용: NVIDIA GPU는 GPU 워커 노드 중 가장 비싼 유형입니다.
  • 유연성: NVIDIA는 경쟁사와 비교하여 GPU 기반 K8s 클러스터를 관리하고 자원을 활용하는 데 있어 매우 유연하게 만드는 여러 기능을 제공합니다.
    • NVIDIA A100 GPU의 다중 인스턴스 GPU(MIG) 메커니즘은 GPU를 최대 7개의 별도 인스턴스로 안전하게 분할하여 더 효율적인 GPU 활용이 가능하도록 합니다.
    • 다중 클라우드 GPU 클러스터는 마치 단일 클라우드에 배포된 것처럼 원활하게 관리되고 확장될 수 있습니다.
    • 이질적인 GPU 및 CPU 클러스터로 분산 딥 러닝 모델의 교육과 관리를 간소화합니다.
    • Prometheus를 사용한 GPU 메트릭 모니터링 및 Grafana를 통한 시각화
    • Docker, CRI-O 및 컨테이너를 포함한 다중 컨테이너 런타임 지원

요약하면, NVIDIA GPU 워커 노드는 Kubernetes에서 AI/ML 워크로드에 대한 최상의 선택입니다. K8s와 가장 뛰어난 호환성, 최고의 도구 생태계, 최고의 성능을 제공합니다. NVIDIA GPU가 Gcore 관리형 Kubernetes에 적합한 이유입니다. 고객들은 NVIDIA의 모든 혜택을 누릴 수 있으며, 여기에는 AI/ML 워크로드의 빠른 훈련과 추론을 위한 최고 성능 수준이 포함됩니다.

Kubernetes에서 GPU 스케줄링의 중요 사항

GPU 스케줄링을 활성화하고 팟이 해당 리소스에 액세스할 수 있게 하려면, 선택한 GPU 공급업체인 NVIDIA, AMD 또는 Intel 중에서 특정 공급업체용 장치 플러그인을 설치해야 합니다.

팟은 CPU 리소스를 요청하는 방식과 동일하게 GPU 리소스를 요청합니다. 그러나, Kubernetes는 `limits``requests`을(를) 구성할 때 CPU보다 GPU에 대해 유연성이 덜합니다. `requests`을(를) 사용하여 최소 수량과 같이 팟이 보장된 리소스의 양을 설정합니다. `limits`을(를) 사용하여 최대 수량과 같이 리소스가 초과되지 않는 양을 설정합니다. GPU 요청에 대한 팟 매니페스트를 구성할 경우, `limits``requests`은(는) 동일해야 하며, 이는 애플리케이션이 해당 리소스를 필요로 하는 경우에도 팟이 보장된 것보다 더 많은 리소스를 얻지 않는다는 것을 의미합니다.

또한, CPU 할당 방식 때문에 GPU의 일부 또는 여러 GPU를 컨테이너에 할당할 수 없습니다. 컨테이너 당 하나의 완전한 GPU만 할당할 수 있습니다. 이러한 제한은 리소스 절약에 도움이 되지 않습니다. 하지만 NVIDIA는 이러한 문제를 극복했습니다. GPU를 사용하면 다음 중 하나를 선택할 수 있습니다.

  • 시간 공유 GPU는 물리적 GPU에서 공유 컨테이너에 시간 간격을 순차적으로 할당함으로써 작동합니다. 이는 모든 NVIDIA GPU에서 작동합니다.
  • 다중 인스턴스 GPU는 GPU를 최대 7개의 인스턴스로 분할하여 더 나은 GPU 활용이 가능하도록 합니다. 이는 NVIDIA A100 GPU에서만 작동합니다.

이 두 가지 기능은 NVIDIA GPU 리소스를 더 효율적으로 활용하고 클라우드에서 GPU 인스턴스를 임대하는 비용을 절감하는 데 도움을 줍니다. 이것은 다른 GPU 공급업체들과 비교해서도 중요한 장점입니다.

관리형 Kubernetes와 GPU를 포함한 Vanilla Kubernetes 비교

관리형 Kubernetes 서비스는 GPU 워커 노드에서 실행되는 AI/ML 워크로드에 대해 일반(오픈 소스) Kubernetes에 비해 여러 이점을 제공할 수 있습니다.

  • 유연한 GPU 선택 관리형 K8s 서비스는 일반적으로 다양한 사양의 GPU 인스턴스를 지원합니다. 이로 인해 AI/ML 워크로드에 적절한 수준의 GPU 가속을 선택하기가 더 쉬워집니다.
  • 운영비 절감 관리형 Kubernetes는 Kubernetes 클러스터 감독의 일상적인 책임을 처리하며, 제어 평면을 관리하고 K8s 업데이트를 구현합니다. 이로써 AI/ML 애플리케이션을 생성, 배포 및 관리하는 데 집중할 수 있습니다.
  • 확장성과 신뢰성 관리형 K8s 서비스는 일반적으로 확장성과 신뢰성에 강한 중점을 두고 설계되어 있으며, AI/ML 워크로드가 변동하는 트래픽과 리소스 수요 증가에 능숙하게 대응할 수 있도록 보장합니다.

Gcore 관리형 Kubernetes 및 NVIDIA GPU 워커

Gcore 관리형 Kubernetes는 기본 인프라와 Kubernetes 백엔드를 유지 관리할 필요 없이 Kubernetes 클러스터를 신속하게 배포하는 데 도움을 줍니다. Gcore 팀은 마스터 노드를 관리하고, 사용자는 워커 노드만을 관리하여 운영 부담을 줄입니다. 워커 노드는 Gcore 가상 머신이나 다양한 구성의 Bare Metal 서버일 수 있으며, 이 중에는 NVIDIA GPU 모듈을 포함한 것도 있습니다.

결론

GPU 워커 노드를 갖춘 관리형 Kubernetes는 AI/ML 추론을 가속화하기 위한 강력하고 유연한 조합입니다. Kubernetes와 GPU를 모두 활용함으로써, GPU 워커 노드를 갖춘 관리형 Kubernetes는 AI/ML 워크로드의 성능과 효율성을 향상시킬 수 있습니다. 이 서비스는 기본 GPU 인프라와 대부분의 Kubernetes 구성 요소를 관리해야 할 필요를 없애줍니다.

Gcore 관리형 Kubernetes는 빠른 추론과 운영 효율성을 위해 Bare Metal에서 GPU 워커 노드를 활용하여 AI/ML 워크로드를 강화할 수 있습니다. 무료 생산 관리 및 무료 이그레스 트래픽과 함께 99.9% SLA를 제공하며, 이는 뛰어난 금전적인 가치를 제공합니다.

관리형 Kubernetes 살펴보기

Subscribe to our newsletter

Stay informed about the latest updates, news, and insights.