하드웨어 가속기


OpenShift Container Platform 4.17

하드웨어 가속기

Red Hat OpenShift Documentation Team

초록

이 문서에서는 인공 지능 및 머신 러닝(AI/ML) 애플리케이션을 생성하기 위해 제공된 하드웨어 가속 기능을 위해 Red Hat OpenShift AI에서 지원하는 GPU Operator를 설치 및 구성하는 방법을 설명합니다.

1장. 하드웨어 가속기 정보

특수 하드웨어 가속기는 새롭게 등장하는 인공 지능 및 머신 러닝(AI/ML) 업계에서 중요한 역할을 합니다. 특히 하드웨어 가속기는 이 새로운 기술을 지원하는 대규모 언어 및 기타 기본 모델을 교육하고 제공하는 데 필수적입니다. 데이터 과학자, 데이터 엔지니어, ML 엔지니어 및 개발자는 데이터 집약적인 변환 및 모델 개발 및 서비스를 위한 특수 하드웨어 가속을 활용할 수 있습니다. 이러한 에코시스템의 대부분은 오픈 소스이며, 여러 파트너 및 오픈 소스 기반이 포함됩니다.

Red Hat OpenShift Container Platform은 하드웨어 가속기를 구성하는 처리 장치를 추가하는 카드 및 주변 하드웨어를 지원합니다.

  • 그래픽 처리 단위(GPU)
  • 통신 처리 단위(NPU)
  • Application-specific integrated circuit (ASIC)
  • 데이터 처리 단위(DPU)
지원되는 하드웨어 가속기 카드 및 주변 장치

특수 하드웨어 가속기는 AI/ML 개발을 위한 다양한 이점을 제공합니다.

모두를 위한 하나의 플랫폼
개발자, 데이터 엔지니어, 데이터 과학자 및 DevOps를 위한 협업 환경
Operator를 통한 확장 기능
Operator를 사용하면 OpenShift Container Platform에 AI/ML 기능을 가져올 수 있습니다.
하이브리드 클라우드 지원
모델 개발, 제공 및 배포를 위한 온프레미스 지원
AI/ML 워크로드 지원
모델 테스트, 반복, 통합, 승격 및 프로덕션을 서비스로 제공

Red Hat은 Linux(커널 및 사용자 공간) 및 Kubernetes 계층에서 RHEL(Red Hat Enterprise Linux) 및 OpenShift Container Platform 플랫폼에서 이러한 특수 하드웨어 가속기를 활성화하는 최적화된 플랫폼을 제공합니다. 이를 위해 Red Hat은 Red Hat OpenShift AI와 Red Hat OpenShift Container Platform의 검증된 기능을 엔터프라이즈급 AI 애플리케이션 플랫폼에 결합합니다.

하드웨어 Operator는 Kubernetes 클러스터의 운영 프레임워크를 사용하여 필요한 가속기 리소스를 활성화합니다. 제공된 장치 플러그인을 수동으로 또는 데몬 세트로 배포할 수도 있습니다. 이 플러그인은 클러스터에 GPU를 등록합니다.

특정 특수 하드웨어 가속기는 개발 및 테스트를 위해 보안 환경을 유지해야 하는 연결이 끊긴 환경에서 작동하도록 설계되었습니다.

1.1. 하드웨어 가속기

Red Hat OpenShift Container Platform은 다음과 같은 하드웨어 가속기를 활성화합니다.

  • NVIDIA GPU
  • AMD Instinct® GPU
  • Intel® Gaudi®

2장. NVIDIA GPU 아키텍처

NVIDIA는 OpenShift Container Platform에서 GPU(그래픽 처리 장치) 리소스 사용을 지원합니다. OpenShift Container Platform은 대규모 Kubernetes 클러스터를 배포 및 관리하기 위해 Red Hat에서 개발하고 지원하는 보안 중심 및 강화된 Kubernetes 플랫폼입니다. OpenShift Container Platform에는 Kubernetes에 대한 개선 사항이 포함되어 있으므로 사용자가 NVIDIA GPU 리소스를 쉽게 구성하고 사용하여 워크로드를 가속화할 수 있습니다.

NVIDIA GPU Operator는 OpenShift Container Platform 내에서 Operator 프레임워크를 사용하여 GPU 가속 워크로드를 실행하는 데 필요한 NVIDIA 소프트웨어 구성 요소의 전체 라이프사이클을 관리합니다.

이러한 구성 요소에는 NVIDIA 드라이버( CUDA 활성화), GPU용 Kubernetes 장치 플러그인, NVIDIA 컨테이너 툴킷, GPU 기능 검색을 사용한 자동 노드 태그 지정, DCGM 기반 모니터링 등이 포함됩니다.

참고

NVIDIA GPU Operator는 NVIDIA에서만 지원됩니다. NVIDIA에서 지원을 얻는 방법에 대한 자세한 내용은 NVIDIA에서 지원 받기를 참조하십시오.

2.1. NVIDIA GPU 사전 요구 사항

  • GPU 작업자 노드가 하나 이상 있는 작동 중인 OpenShift 클러스터입니다.
  • 필요한 단계를 수행하려면 cluster-admin 으로 OpenShift 클러스터에 액세스할 수 있습니다.
  • OpenShift CLI(oc)가 설치되어 있어야 합니다.
  • NFD(노드 기능 검색) Operator가 설치되고 nodefeaturediscovery 인스턴스가 생성됩니다.

2.2. NVIDIA GPU 사용

다음 다이어그램은 OpenShift에 GPU 아키텍처를 활성화하는 방법을 보여줍니다.

그림 2.1. NVIDIA GPU 사용

NVIDIA GPU 사용
참고

Cheg는 A30, A100, A100X, A800, AX800, H100 및 H800에서만 지원됩니다.

2.2.1. GPU 및 베어 메탈

NVIDIA 인증 베어 메탈 서버에 OpenShift Container Platform을 배포할 수 있지만 몇 가지 제한 사항이 있습니다.

  • 컨트롤 플레인 노드는 CPU 노드일 수 있습니다.
  • 이러한 작업자 노드에서 AI/ML 워크로드가 실행되도록 작업자 노드는 GPU 노드여야 합니다.

    또한 작업자 노드는 하나 이상의 GPU를 호스팅할 수 있지만 동일한 유형이어야 합니다. 예를 들어 노드에는 두 개의 NVIDIA A100 GPU가 있을 수 있지만 A100 GPU 1개와 T4 GPU가 1개인 노드는 지원되지 않습니다. Kubernetes용 NVIDIA 장치 플러그인은 동일한 노드에서 다른 GPU 모델 혼합을 지원하지 않습니다.

  • OpenShift를 사용하는 경우 하나 이상의 서버가 필요합니다. 두 개의 서버가 있는 클러스터는 지원되지 않습니다. 단일 서버 배포는 단일 노드 openShift(SNO)라고 하며 이 구성을 사용하면 고가용성 OpenShift 환경이 생성됩니다.

컨테이너화된 GPU에 액세스하기 위해 다음 방법 중 하나를 선택할 수 있습니다.

  • GPU 패스스루
  • MIG (Multi-Instance GPU)

2.2.2. GPU 및 가상화

많은 개발자와 기업이 컨테이너화된 애플리케이션 및 서버리스 인프라로 이동하고 있지만 VM(가상 머신)에서 실행되는 애플리케이션을 개발하고 유지 관리하는 데 많은 관심이 있습니다. Red Hat OpenShift Virtualization은 이러한 기능을 통해 기업은 클러스터 내의 컨테이너화된 워크플로우에 VM을 통합할 수 있습니다.

다음 방법 중 하나를 선택하여 작업자 노드를 GPU에 연결할 수 있습니다.

  • VM(가상 머신) 내에서 GPU 하드웨어에 액세스하고 사용하기 위한 GPU 패스스루입니다.
  • GPU 컴퓨팅 용량이 워크로드에 의해 포화되지 않은 경우 GPU(vGPU) 시간 분할입니다.

2.2.3. GPU 및 vSphere

다양한 GPU 유형을 호스팅할 수 있는 NVIDIA 인증 VMware vSphere 서버에 OpenShift Container Platform을 배포할 수 있습니다.

VM에서 vGPU 인스턴스를 사용하는 경우 NVIDIA GPU 드라이버를 하이퍼바이저에 설치해야 합니다. VMware vSphere의 경우 이 호스트 드라이버는 VIB 파일 형식으로 제공됩니다.

작업자 노드 VM에 할당할 수 있는 최대 vGPUS 수는 vSphere 버전에 따라 다릅니다.

  • vSphere 7.0: VM당 최대 4개의 vGPU
  • vSphere 8.0: VM당 최대 8개의 vGPU

    참고

    vSphere 8.0에서는 VM과 관련된 전체 또는 소수의 이기종 프로필을 여러 개 지원합니다.

작업자 노드를 GPU에 연결할 다음 방법 중 하나를 선택할 수 있습니다.

  • VM(가상 머신) 내에서 GPU 하드웨어에 액세스하고 사용하기 위한 GPU 패스스루
  • GPU (vGPU) 시간 분할, 일부 GPU가 필요하지 않은 경우

베어 메탈 배포와 유사하게 하나 이상의 서버가 필요합니다. 두 개의 서버가 있는 클러스터는 지원되지 않습니다.

2.2.4. GPU 및 Red Hat KVM

NVIDIA 인증 KVM(커널 기반 가상 머신) 서버에서 OpenShift Container Platform을 사용할 수 있습니다.

베어 메탈 배포와 유사하게 하나 이상의 서버가 필요합니다. 두 개의 서버가 있는 클러스터는 지원되지 않습니다.

그러나 베어 메탈 배포와 달리 서버에서 다양한 유형의 GPU를 사용할 수 있습니다. 이는 Kubernetes 노드 역할을 하는 다른 VM에 이러한 GPU를 할당할 수 있기 때문입니다. 유일한 제한 사항은 Kubernetes 노드에 자체 수준에서 동일한 GPU 유형 세트가 있어야 한다는 것입니다.

컨테이너화된 GPU에 액세스하기 위해 다음 방법 중 하나를 선택할 수 있습니다.

  • VM(가상 머신) 내에서 GPU 하드웨어에 액세스하고 사용하기 위한 GPU 패스스루
  • GPU(vGPU)의 일부 GPU가 필요한 것은 아닙니다.

vGPU 기능을 활성화하려면 호스트 수준에 특수 드라이버를 설치해야 합니다. 이 드라이버는 RPM 패키지로 제공됩니다. 이 호스트 드라이버는 GPU 패스스루 할당에는 전혀 필요하지 않습니다.

2.2.5. GPU 및 CSP

주요 클라우드 서비스 공급자(CSP), AWS(Amazon Web Services), GCP(Google Cloud Platform) 또는 Microsoft Azure 중 하나에 OpenShift Container Platform을 배포할 수 있습니다.

완전히 관리되는 배포와 자체 관리 배포의 두 가지 작업 모드를 사용할 수 있습니다.

  • 완전 관리형 배포에서 CSP와 협력하여 모든 것이 Red Hat에 의해 자동화됩니다. CSP 웹 콘솔을 통해 OpenShift 인스턴스를 요청할 수 있으며, Red Hat에서 클러스터가 자동으로 생성되고 완전히 관리됩니다. 환경의 노드 실패 또는 오류에 대해 우려할 필요가 없습니다. Red Hat은 클러스터 가동 시간을 완전히 유지합니다. 완전 관리형 서비스는 AWS 및 Azure에서 사용할 수 있습니다. AWS의 경우 OpenShift 서비스를 ROSA(AWS의 Red Hat OpenShift Service)라고 합니다. Azure의 경우 이 서비스를 Azure Red Hat OpenShift라고 합니다.
  • 자체 관리 배포에서 OpenShift 클러스터를 인스턴스화하고 유지보수해야 합니다. Red Hat은 이 경우 OpenShift 클러스터 배포를 지원하는 OpenShift-install 유틸리티를 제공합니다. 자체 관리 서비스는 모든 CSP에서 전역적으로 사용할 수 있습니다.

이 컴퓨팅 인스턴스는 GPU 가속 컴퓨팅 인스턴스이고 GPU 유형이 NVIDIA AI Enterprise의 지원되는 GPU 목록과 일치해야 합니다. 예를 들어 T4, V100 및 A100은 이 목록의 일부입니다.

컨테이너화된 GPU에 액세스하기 위해 다음 방법 중 하나를 선택할 수 있습니다.

  • VM(가상 머신) 내에서 GPU 하드웨어에 액세스하고 사용하기 위한 GPU 패스스루입니다.
  • 전체 GPU가 필요하지 않은 경우 GPU(vGPU) 시간 분할입니다.

2.2.6. GPU 및 Red Hat Device Edge

Red Hat Device Edge는 MicroShift에 대한 액세스를 제공합니다. MicroShift는 리소스가 제한적인 (지대) 컴퓨팅에 필요한 기능 및 서비스를 통해 단일 노드 배포의 단순성을 제공합니다. Red Hat Device Edge는 리소스가 제한적인 환경에 배포된 베어 메탈, 가상, 컨테이너화된 Kubernetes 워크로드의 요구 사항을 충족합니다.

Red Hat Device Edge 환경에서 컨테이너에서 NVIDIA GPU를 활성화할 수 있습니다.

GPU 패스스루를 사용하여 컨테이너화된 GPU에 액세스합니다.

2.3. GPU 공유 방법

Red Hat과 NVIDIA는 엔터프라이즈급 OpenShift Container Platform 클러스터에서 GPU 가속 컴퓨팅을 단순화하기 위해 GPU 동시성 및 공유 메커니즘을 개발했습니다.

일반적으로 애플리케이션에는 GPU를 사용하지 않는 다른 컴퓨팅 요구 사항이 있습니다. 각 워크로드에 적합한 양의 컴퓨팅 리소스를 제공하는 것은 배포 비용을 줄이고 GPU 사용률을 극대화하는 데 중요합니다.

가상화를 포함한 프로그래밍 모델 API에서 시스템 소프트웨어 및 하드웨어 파티셔닝에 이르기까지 다양한 GPU 사용률을 개선하기 위한 동시성 메커니즘이 존재합니다. 다음 목록은 GPU 동시성 메커니즘을 보여줍니다.

  • Compute Unified Device Architecture (CUDA) 스트림
  • 시간 분할
  • CUDA Multi-Process Service (MPS)
  • 다중 인스턴스 GPU(MIG)
  • vGPU를 사용한 가상화

다른 OpenShift Container Platform 시나리오에 GPU 동시성 메커니즘을 사용할 때 다음 GPU 공유 제안을 고려하십시오.

베어 메탈
vGPU를 사용할 수 없습니다. CheG 지원 카드를 사용하는 것이 좋습니다.
VMs
vGPU가 최선의 선택입니다.
베어 메탈에서MIG가 없는 이전 NVIDIA 카드
시간 분할을 사용하는 것이 좋습니다.
여러 GPU가 있고 패스스루 및 vGPU를 원하는 VM
별도의 VM을 사용하는 것이 좋습니다.
OpenShift Virtualization 및 여러 GPU를 사용한 베어 메탈
호스트된 VM에 패스스루를 사용하고 컨테이너에 시간 분할을 사용하는 것이 좋습니다.

추가 리소스

2.3.1. CUDA 스트림

CUDA(Compute Unified Device Architecture)는 GPU의 일반 컴퓨팅을 위해 NVIDIA에서 개발한 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델입니다.

스트림은 GPU에서 문제순으로 실행되는 일련의 작업입니다. CUDA 명령은 일반적으로 기본 스트림에서 순차적으로 실행되며 이전 작업이 완료될 때까지 작업이 시작되지 않습니다.

다양한 스트림의 작업을 비동기적으로 처리하면 병렬 작업을 실행할 수 있습니다. 한 스트림에서 발행된 작업은 다른 작업이 다른 스트림으로 발행되기 전, 중 또는 후에 실행됩니다. 이를 통해 GPU는 정해진 순서로 여러 작업을 동시에 실행하여 성능이 향상됩니다.

추가 리소스

2.3.2. 시간 분할

GPU 시간 분할은 여러 CUDA 애플리케이션을 실행할 때 과부하된 GPU에서 예약된 워크로드를 상호 저장합니다.

GPU의 복제본 세트를 정의하여 Kubernetes에서 GPU를 시간 분할할 수 있으며 각각 워크로드를 실행하기 위해 개별적으로 Pod에 배포할 수 있습니다. MIG(Multi-instance GPU)와 달리 복제본 간 메모리 또는 내결함성이 없지만 일부 워크로드의 경우 공유하지 않는 것보다 좋습니다. 내부적으로 GPU 시간 분할은 동일한 기본 GPU의 복제본에서 멀티플렉션에 사용됩니다.

시간 분할에 대한 클러스터 전체 기본 구성을 적용할 수 있습니다. 노드별 구성을 적용할 수도 있습니다. 예를 들어 Cryostat T4 GPU가 있는 노드에만 시간 분할 구성을 적용하고 다른 GPU 모델의 노드를 수정할 수 없습니다.

클러스터 전체 기본 구성을 적용한 다음 노드에 레이블을 지정하여 해당 노드에 노드별 구성을 지정하여 이러한 두 가지 접근 방식을 결합할 수 있습니다.

2.3.3. CUDA 다중 프로세스 서비스

CUDA Multi-Process Service(MPS)를 사용하면 단일 GPU가 여러 CUDA 프로세스를 사용할 수 있습니다. 프로세스는 GPU에서 병렬로 실행되며 GPU 컴퓨팅 리소스의 포화 상태를 제거합니다. 또한 MPS는 다양한 프로세스에서 커널 작업 및 메모리를 복사하여 사용률을 향상시킬 수 있습니다.

추가 리소스

2.3.4. 다중 인스턴스 GPU

MG(Multi-instance GPU)를 사용하여 GPU 컴퓨팅 단위와 메모리를 여러MIG 인스턴스로 분할할 수 있습니다. 이러한 각 인스턴스는 시스템 관점에서 독립 실행형 GPU 장치를 나타내며 노드에서 실행되는 모든 애플리케이션, 컨테이너 또는 가상 머신에 연결할 수 있습니다. GPU를 사용하는 소프트웨어는 이러한 기타 각 인스턴스를 개별 GPU로 처리합니다.

MIG는 전체 GPU의 전체 성능이 필요하지 않은 애플리케이션이 있는 경우에 유용합니다. 새로운 NVIDIA Ampere 아키텍처의 MIG 기능을 사용하면 하드웨어 리소스를 여러 GPU 인스턴스로 분할할 수 있으며 각 GPU 인스턴스는 운영 체제에서 독립적인 CUDA 지원 GPU로 사용할 수 있습니다.

NVIDIA GPU Operator 버전 1.7.0 이상은 A100 및 A30 Ampere 카드에 대해MIG 지원을 제공합니다. 이러한 GPU 인스턴스는 전용 하드웨어 리소스와 완전히 격리된 최대 7개의 독립 CUDA 애플리케이션을 지원하도록 설계되었습니다.

2.3.5. vGPU를 사용한 가상화

가상 머신(VM)은 NVIDIA vGPU를 사용하여 단일 물리적 GPU에 직접 액세스할 수 있습니다. 엔터프라이즈 전체의 VM에서 공유하여 다른 장치에서 액세스할 수 있는 가상 GPU를 생성할 수 있습니다.

이 기능은 GPU 성능의 기능과 vGPU가 제공하는 관리 및 보안 이점을 결합합니다. vGPU가 제공하는 추가 이점으로 VM 환경에 대한 사전 관리 및 모니터링, 혼합 VDI 및 컴퓨팅 워크로드를 위한 워크로드 분산, 여러 VM의 리소스 공유 등이 포함됩니다.

추가 리소스

2.4. OpenShift Container Platform 용 NVIDIA GPU 기능

NVIDIA 컨테이너 툴킷
NVIDIA 컨테이너 툴킷을 사용하면 GPU 가속 컨테이너를 생성하고 실행할 수 있습니다. 툴킷에는 NVIDIA GPU를 사용하도록 컨테이너를 자동으로 구성하는 컨테이너 런타임 라이브러리 및 유틸리티가 포함되어 있습니다.
NVIDIA AI Enterprise

NVIDIA AI Enterprise는 NVIDIA 인증 시스템에서 지원, 인증 및 지원되는 포괄적인 AI 및 데이터 분석 소프트웨어 제품군입니다.

NVIDIA AI Enterprise는 Red Hat OpenShift Container Platform을 지원합니다. 지원되는 설치 방법은 다음과 같습니다.

  • GPU Passthrough가 있는 베어 메탈 또는 VMware vSphere의 OpenShift Container Platform.
  • NVIDIA vGPU를 사용하는 VMware vSphere의 OpenShift Container Platform.
GPU 기능 검색

Kubernetes용 NVIDIA GPU 기능 검색은 노드에서 사용 가능한 GPU에 대한 레이블을 자동으로 생성할 수 있는 소프트웨어 구성 요소입니다. GPU 기능 검색에서는 NFD(노드 기능 검색)를 사용하여 이 레이블을 수행합니다.

NFD(Node Feature Discovery Operator)는 하드웨어 관련 정보로 노드에 레이블을 지정하여 OpenShift Container Platform 클러스터에서 하드웨어 기능 및 구성 검색을 관리합니다. NFD는 PCI 카드, 커널, OS 버전과 같은 노드별 속성을 사용하여 호스트에 레이블을 지정합니다.

"Node Feature Discovery"를 검색하여 Operator Hub에서 NFD Operator를 찾을 수 있습니다.

OpenShift Virtualization을 사용하는 NVIDIA GPU Operator

이 시점까지 GPU Operator는 GPU 가속 컨테이너를 실행하기 위해 작업자 노드만 프로비저닝했습니다. 이제 GPU Operator를 사용하여 GPU 가속 VM(가상 머신)을 실행하기 위해 작업자 노드를 프로비저닝할 수도 있습니다.

해당 노드에서 실행되도록 구성된 GPU 워크로드에 따라 작업자 노드에 다른 소프트웨어 구성 요소를 배포하도록 GPU Operator를 구성할 수 있습니다.

GPU 모니터링 대시보드
모니터링 대시보드를 설치하여 OpenShift Container Platform 웹 콘솔의 클러스터 모니터링 페이지에 대한 GPU 사용 정보를 표시할 수 있습니다. GPU 사용률 정보에는 사용 가능한 GPU 수, 전력 소비(단위: 와트), 온도(단위: 섭씨), 사용률(%) 및 각 GPU에 대한 기타 메트릭이 포함됩니다.

Legal Notice

Copyright © 2024 Red Hat, Inc.

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.