하드웨어 가속기
하드웨어 가속기
초록
1장. 하드웨어 가속기에 대하여 링크 복사링크가 클립보드에 복사되었습니다!
특수 하드웨어 가속기는 새롭게 부상하는 생성적 인공지능 및 머신러닝(AI/ML) 산업에서 핵심적인 역할을 합니다. 특히, 하드웨어 가속기는 이 새로운 기술을 구동하는 대규모 언어 및 기타 기반 모델의 훈련과 제공에 필수적입니다. 데이터 과학자, 데이터 엔지니어, ML 엔지니어 및 개발자는 데이터 집약적 변환과 모델 개발 및 제공을 위해 특수 하드웨어 가속을 활용할 수 있습니다. 그 생태계의 대부분은 오픈 소스이며, 여러 기여 파트너와 오픈 소스 재단이 있습니다.
Red Hat OpenShift Container Platform은 하드웨어 가속기를 구성하는 처리 장치를 추가하는 카드 및 주변 하드웨어에 대한 지원을 제공합니다.
- 그래픽 처리 장치(GPU)
- 신경 처리 장치(NPU)
- ASIC(Application-Specific Integrated Circuits)
- 데이터 처리 장치(DPU)
특수 하드웨어 가속기는 AI/ML 개발에 다양한 이점을 제공합니다.
- 모두를 위한 하나의 플랫폼
- 개발자, 데이터 엔지니어, 데이터 과학자 및 DevOps를 위한 협업 환경
- Operator를 통한 확장 기능
- 운영자는 OpenShift Container Platform에 AI/ML 기능을 도입할 수 있습니다.
- 하이브리드 클라우드 지원
- 모델 개발, 전달 및 배포를 위한 온프레미스 지원
- AI/ML 워크로드 지원
- 모델 테스트, 반복, 통합, 홍보 및 서비스로 프로덕션에 제공
Red Hat은 Red Hat Enterprise Linux(RHEL) 및 OpenShift Container Platform 플랫폼의 Linux(커널 및 사용자 공간) 및 Kubernetes 계층에서 이러한 특수 하드웨어 가속기를 활성화하기 위한 최적화된 플랫폼을 제공합니다. 이를 위해 Red Hat은 Red Hat OpenShift AI와 Red Hat OpenShift Container Platform의 검증된 기능을 단일 엔터프라이즈급 AI 애플리케이션 플랫폼으로 결합했습니다.
하드웨어 운영자는 Kubernetes 클러스터의 운영 프레임워크를 사용하여 필요한 가속기 리소스를 활성화합니다. 제공된 장치 플러그인을 수동으로 또는 데몬 세트로 배포할 수도 있습니다. 이 플러그인은 클러스터에 GPU를 등록합니다.
특정 전문 하드웨어 가속기는 개발 및 테스트를 위해 보안 환경을 유지해야 하는 분리된 환경에서 작동하도록 설계되었습니다.
1.1. 하드웨어 가속기 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Container Platform은 다음과 같은 하드웨어 가속기를 지원합니다.
- NVIDIA GPU
- AMD Instinct® GPU
- 인텔® 가우디®
2장. 엔비디아 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 사용
MIG는 NVIDIA Ampere 세대부터 GPU에서 지원됩니다. MIG를 지원하는 GPU 목록은 NVIDIAMIG 사용자 가이드 를 참조하십시오.
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을 배포할 수 있습니다.
완전히 관리되는 배포와 자체 관리 배포의 두 가지 작업 모드를 사용할 수 있습니다.
- 완전 관리형 배포에서는 Red Hat이 CSP와 협력하여 모든 것을 자동화합니다. CSP 웹 콘솔을 통해 OpenShift 인스턴스를 요청할 수 있으며, 클러스터는 Red Hat에서 자동으로 생성되고 완벽하게 관리됩니다. 환경의 노드 실패 또는 오류에 대해 우려할 필요가 없습니다. Red Hat은 클러스터의 가동 시간을 유지하는 데 전적인 책임을 집니다. 완전 관리형 서비스는 AWS, Azure, GCP에서 제공됩니다. AWS의 경우 OpenShift 서비스는 ROSA(Red Hat OpenShift Service on AWS)라고 합니다. Azure의 경우 해당 서비스는 Azure Red Hat OpenShift라고 합니다. GCP의 경우 해당 서비스는 OpenShift Dedicated on GCP라고 합니다.
- 자체 관리 배포에서 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에 대한 기타 메트릭이 포함됩니다.
3장. AMD GPU 운영자 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 클러스터 내에서 AMD Instinct GPU 가속기를 AMD GPU Operator와 결합하면 머신 러닝, 생성적 AI 및 GPU 가속 애플리케이션을 위한 컴퓨팅 기능을 원활하게 활용할 수 있습니다.
이 문서에서는 AMD GPU Operator를 활성화, 구성 및 테스트하는 데 필요한 정보를 제공합니다. 자세한 내용은 AMD Instinct™ 가속기를 참조하세요.
3.1. AMD GPU 운영자에 대하여 링크 복사링크가 클립보드에 복사되었습니다!
AMD GPU Operator의 하드웨어 가속 기능은 Red Hat OpenShift AI를 사용하여 인공 지능 및 머신 러닝(AI/ML) 애플리케이션을 만드는 데이터 과학자와 개발자에게 향상된 성능과 비용 효율성을 제공합니다. GPU 기능의 특정 영역을 가속화하면 CPU 처리 및 메모리 사용량을 최소화하여 전반적인 애플리케이션 속도, 메모리 소비 및 대역폭 제한을 개선할 수 있습니다.
3.2. AMD GPU Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 OpenShift CLI와 웹 콘솔을 사용하여 AMD GPU Operator를 설치할 수 있습니다. 이는 Node Feature Discovery Operator, Kernel Module Management Operator, AMD GPU Operator를 설치해야 하는 다단계 절차입니다. 다음 단계에 따라 Operator의 AMD 커뮤니티 릴리스를 설치하세요.
다음 단계
- Node Feature Discovery Operator를 설치합니다.
- 커널 모듈 관리 연산자를 설치합니다.
- AMD GPU Operator를 설치하고 구성합니다.
3.3. AMD GPU 운영자 테스트 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 ROCmInfo 설치를 테스트하고 AMD MI210 GPU에 대한 로그를 확인하세요.
프로세스
ROCmInfo를 테스트하는 YAML 파일을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rocminfo
포드를 생성합니다.oc create -f rocminfo.yaml
$ oc create -f rocminfo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
apiVersion: v1 pod/rocminfo created
apiVersion: v1 pod/rocminfo created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MI210 GPU 1개로
rocmnfo
로그를 확인합니다.oc logs rocminfo | grep -A5 "Agent"
$ oc logs rocminfo | grep -A5 "Agent"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod를 삭제합니다.
oc delete -f rocminfo.yaml
$ oc delete -f rocminfo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
pod "rocminfo" deleted
pod "rocminfo" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. 인텔 가우디 AI 가속기 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 생성형 AI 및 머신 러닝(AI/ML) 애플리케이션에 Intel Gaudi AI 가속기를 사용할 수 있습니다. Intel Gaudi AI 가속기는 최적화된 딥 러닝 워크로드를 위한 비용 효율적이고 유연하며 확장 가능한 솔루션을 제공합니다.
Red Hat은 Intel Gaudi 2 및 Intel Gaudi 3 장치를 지원합니다. Intel Gaudi 3 장치는 훈련 속도와 에너지 효율성 면에서 상당한 개선을 제공합니다.
4.1. Intel Gaudi AI 가속기 필수 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
- 최소한 하나의 GPU 워커 노드가 있는 OpenShift Container Platform 클러스터가 작동 중입니다.
- 클러스터 관리자로서 OpenShift Container Platform 클러스터에 액세스하여 필요한 단계를 수행할 수 있습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
NFD(Node Feature Discovery) 연산자를 설치하고
NodeFeatureDiscovery
인스턴스를 생성했습니다.
5장. NVIDIA GPUDirect 원격 직접 메모리 액세스(RDMA) 링크 복사링크가 클립보드에 복사되었습니다!
NVIDIA GPUDirect 원격 직접 메모리 액세스(RDMA)를 사용하면 한 컴퓨터의 애플리케이션이 운영 체제를 통해 액세스하지 않고도 다른 컴퓨터의 메모리에 직접 액세스할 수 있습니다. 이를 통해 프로세스에서 커널의 개입을 우회하여 리소스를 확보하고 일반적으로 네트워크 통신을 처리하는 데 필요한 CPU 오버헤드를 크게 줄일 수 있습니다. 이는 GPU 가속 워크로드를 클러스터 전체에 분산하는 데 유용합니다. RDMA는 고대역폭과 저지연 애플리케이션에 매우 적합하므로 빅데이터와 머신 러닝 애플리케이션에 이상적입니다.
현재 NVIDIA GPUDirect RDMA에는 세 가지 구성 방법이 있습니다.
- 공유 장치
- 이 방법을 사용하면 장치가 노출된 OpenShift Container Platform 워커 노드의 여러 포드에서 NVIDIA GPUDirect RDMA 장치를 공유할 수 있습니다.
- 호스트 장치
- 이 방법은 포드에 추가 호스트 네트워크를 생성하여 작업자 노드에서 직접적인 물리적 이더넷 액세스를 제공합니다. 플러그인을 사용하면 네트워크 장치를 호스트 네트워크 네임스페이스에서 포드의 네트워크 네임스페이스로 이동할 수 있습니다.
- SR-IOV 레거시 장치
- SR-IOV(Single Root IO Virtualization) 방식은 이더넷 어댑터와 같은 단일 네트워크 장치를 여러 개의 포드와 공유할 수 있습니다. SR-IOV는 호스트 노드에서 물리적 기능(PF)으로 인식되는 장치를 여러 개의 가상 기능(VF)으로 분할합니다. VF는 다른 네트워크 장치와 같이 사용됩니다.
이러한 각 방법은 NVIDIA GPUDirect RDMA over Converged Ethernet (RoCE) 또는 Infiniband 인프라에서 사용할 수 있으며 총 6개의 구성 방법을 제공합니다.
5.1. NVIDIA GPUDirect RDMA 필수 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
모든 NVIDIA GPUDirect RDMA 구성 방법에는 특정 운영자 설치가 필요합니다. 다음 단계에 따라 Operator를 설치하세요.
- Node Feature Discovery Operator를 설치합니다.
- SR-IOV Operator를 설치합니다.
- NVIDIA Network Operator를 설치합니다(NVIDIA 문서).
- NVIDIA GPU Operator를 설치합니다(NVIDIA 설명서).
5.2. IRDMA 커널 모듈 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
DellR750xa를 포함한 일부 시스템에서는 IRDMA 커널 모듈이 DOCA 드라이버를 언로드하고 로드할 때 NVIDIA 네트워크 운영자에게 문제를 일으킵니다. 다음 절차에 따라 모듈을 비활성화하세요.
프로세스
다음 명령을 실행하여 다음의 머신 구성 파일을 생성합니다.
cat <<EOF > 99-machine-config-blacklist-irdma.yaml
$ cat <<EOF > 99-machine-config-blacklist-irdma.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터에서 머신 구성을 만들고 노드가 재부팅될 때까지 기다립니다.
oc create -f 99-machine-config-blacklist-irdma.yaml
$ oc create -f 99-machine-config-blacklist-irdma.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
machineconfig.machineconfiguration.openshift.io/99-worker-blacklist-irdma created
machineconfig.machineconfiguration.openshift.io/99-worker-blacklist-irdma created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 각 노드의 디버그 포드에서 모듈이 로드되지 않았는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. 영구 명명 규칙 만들기 링크 복사링크가 클립보드에 복사되었습니다!
어떤 경우에는 재부팅 후 장치 이름이 유지되지 않습니다. 예를 들어, R760xa 시스템에서 Mellanox 장치의 이름은 재부팅 후에 변경될 수 있습니다. MachineConfig를
사용하여 지속성을 설정하면 이 문제를 피할 수 있습니다.
프로세스
노드의 작업자 노드에서 MAC 주소 이름을 파일로 수집하고 지속되어야 하는 인터페이스의 이름을 제공합니다. 이 예제에서는
70-persistent-net.rules
파일을 사용하고 그 안에 세부 정보를 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 파일을 줄 바꿈 없는 base64 문자열로 변환하고 출력을
PERSIST
변수로 설정합니다.PERSIST=`cat 70-persistent-net.rules| base64 -w 0` echo $PERSIST U1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIK
$ PERSIST=`cat 70-persistent-net.rules| base64 -w 0` $ echo $PERSIST U1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjozYjo1MToyOSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMCIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImliczJmMCIKU1VCU1lTVEVNPT0ibmV0IixBQ1RJT049PSJhZGQiLEFUVFJ7YWRkcmVzc309PSJiODozZjpkMjpmMDozNjpkMSIsQVRUUnt0eXBlfT09IjEiLE5BTUU9ImVuczhmMG5wMCIK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 머신 구성을 만들고 사용자 정의 리소스 파일에 base64 인코딩을 설정합니다.
cat <<EOF > 99-machine-config-udev-network.yaml
$ cat <<EOF > 99-machine-config-udev-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터에서 머신 구성을 만듭니다.
oc create -f 99-machine-config-udev-network.yaml
$ oc create -f 99-machine-config-udev-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
machineconfig.machineconfiguration.openshift.io/99-machine-config-udev-network created
machineconfig.machineconfiguration.openshift.io/99-machine-config-udev-network created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow get mcp
명령을 사용하여 머신 구성 상태를 확인하세요.oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-9adfe851c2c14d9598eea5ec3df6c187 True False False 1 1 1 0 6h21m worker rendered-worker-4568f1b174066b4b1a4de794cf538fee False True False 2 0 0 0 6h21m
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-9adfe851c2c14d9598eea5ec3df6c187 True False False 1 1 1 0 6h21m worker rendered-worker-4568f1b174066b4b1a4de794cf538fee False True False 2 0 0 0 6h21m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
노드가 재부팅되고 업데이트 필드가 false
로 돌아가면 디버그 포드에서 장치를 살펴보아 노드에서 유효성을 검사할 수 있습니다.
5.4. NFD 운영자 구성 링크 복사링크가 클립보드에 복사되었습니다!
NFD(노드 기능 검색) 운영자는 하드웨어 관련 정보로 노드에 레이블을 지정하여 OpenShift Container Platform 클러스터에서 하드웨어 기능과 구성을 감지하는 작업을 관리합니다. NFD는 PCI 카드, 커널, 운영 체제 버전과 같은 노드별 속성을 사용하여 호스트에 레이블을 지정합니다.
사전 요구 사항
- NFD Operator를 설치했습니다.
프로세스
다음 명령을 실행하여
openshift-nfd
네임스페이스의 포드를 살펴보고 Operator가 설치되고 실행 중인지 확인하세요.oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8698c88cdd-t8gbc 2/2 Running 0 2m
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8698c88cdd-t8gbc 2/2 Running 0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NFD 컨트롤러가 실행 중이면
NodeFeatureDiscovery
인스턴스를 생성하여 클러스터에 추가합니다.NFD 연산자에 대한
ClusterServiceVersion
사양은 연산자 페이로드의 일부인 NFD 피연산자 이미지를 포함하여 기본값을 제공합니다. 다음 명령을 실행하여 값을 검색합니다.NFD_OPERAND_IMAGE=`echo $(oc get csv -n openshift-nfd -o json | jq -r '.items[0].metadata.annotations["alm-examples"]') | jq -r '.[] | select(.kind == "NodeFeatureDiscovery") | .spec.operand.image'`
$ NFD_OPERAND_IMAGE=`echo $(oc get csv -n openshift-nfd -o json | jq -r '.items[0].metadata.annotations["alm-examples"]') | jq -r '.[] | select(.kind == "NodeFeatureDiscovery") | .spec.operand.image'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: NVIDIA BlueField DPU와 같은 더 많은 네트워크 어댑터를 지원하려면 기본
deviceClassWhiteList
필드에 항목을 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 'NodeFeatureDiscovery' 인스턴스를 만듭니다.
oc create -f nfd-instance.yaml
$ oc create -f nfd-instance.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
nodefeaturediscovery.nfd.openshift.io/nfd-instance created
nodefeaturediscovery.nfd.openshift.io/nfd-instance created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
openshift-nfd
네임스페이스 아래의 포드를 살펴보고 인스턴스가 실행 중인지 확인합니다.oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 잠시 기다린 후 NFD가 노드에 레이블을 추가했는지 확인합니다. NFD 레이블은
feature.node.kubernetes.io
로 시작하므로 쉽게 필터링할 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 검색된 네트워크 장치가 있는지 확인하세요.
oc describe node | grep -E 'Roles|pci' | grep pci-15b3
$ oc describe node | grep -E 'Roles|pci' | grep pci-15b3 feature.node.kubernetes.io/pci-15b3.present=true feature.node.kubernetes.io/pci-15b3.sriov.capable=true feature.node.kubernetes.io/pci-15b3.present=true feature.node.kubernetes.io/pci-15b3.sriov.capable=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. SR-IOV 운영자 구성 링크 복사링크가 클립보드에 복사되었습니다!
단일 루트 I/O 가상화(SR-IOV)는 단일 장치에서 여러 포드 간의 공유를 제공하여 NVIDIA GPUDirect RDMA의 성능을 향상시킵니다.
사전 요구 사항
- SR-IOV Operator를 설치했습니다.
프로세스
다음 명령을 실행하여
openshift-sriov-network-operator
네임스페이스의 포드를 살펴보고 Operator가 설치되고 실행 중인지 확인하세요.oc get pods -n openshift-sriov-network-operator
$ oc get pods -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE sriov-network-operator-7cb6c49868-89486 1/1 Running 0 22s
NAME READY STATUS RESTARTS AGE sriov-network-operator-7cb6c49868-89486 1/1 Running 0 22s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본
SriovOperatorConfig
CR이 MLNX_OFED 컨테이너와 함께 작동하도록 하려면 다음 명령을 실행하여 다음 값을 업데이트하세요.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터에 리소스를 만듭니다.
oc create -f sriov-operator-config.yaml
$ oc create -f sriov-operator-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
sriovoperatorconfig.sriovnetwork.openshift.io/default created
sriovoperatorconfig.sriovnetwork.openshift.io/default created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 sriov-operator에 패치를 적용하여 MOFED 컨테이너가 작동할 수 있도록 합니다.
oc patch sriovoperatorconfig default --type=merge -n openshift-sriov-network-operator --patch '{ "spec": { "configDaemonNodeSelector": { "network.nvidia.com/operator.mofed.wait": "false", "node-role.kubernetes.io/worker": "", "feature.node.kubernetes.io/pci-15b3.sriov.capable": "true" } } }'
$ oc patch sriovoperatorconfig default --type=merge -n openshift-sriov-network-operator --patch '{ "spec": { "configDaemonNodeSelector": { "network.nvidia.com/operator.mofed.wait": "false", "node-role.kubernetes.io/worker": "", "feature.node.kubernetes.io/pci-15b3.sriov.capable": "true" } } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
sriovoperatorconfig.sriovnetwork.openshift.io/default patched
sriovoperatorconfig.sriovnetwork.openshift.io/default patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6. NVIDIA 네트워크 운영자 구성 링크 복사링크가 클립보드에 복사되었습니다!
NVIDIA 네트워크 운영자는 NVIDIA GPUDirect RDMA 워크로드를 지원하기 위해 NVIDIA 네트워킹 리소스와 드라이버, 장치 플러그인과 같은 네트워킹 관련 구성 요소를 관리합니다.
사전 요구 사항
- NVIDIA 네트워크 운영자를 설치했습니다.
프로세스
다음 명령을 실행하여 컨트롤러가
nvidia-network-operator
네임스페이스에서 실행 중인지 확인하여 네트워크 운영자가 설치되고 실행 중인지 확인합니다.oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE nvidia-network-operator-controller-manager-6f7d6956cd-fw5wg 1/1 Running 0 5m
NAME READY STATUS RESTARTS AGE nvidia-network-operator-controller-manager-6f7d6956cd-fw5wg 1/1 Running 0 5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator가 실행 중인 상태에서
NicClusterPolicy
사용자 지정 리소스 파일을 만듭니다. 선택하는 장치는 시스템 구성에 따라 달라집니다. 이 예에서 Infiniband 인터페이스ibs2f0은
하드 코딩되어 공유 NVIDIA GPUDirect RDMA 장치로 사용됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터에
NicClusterPolicy
사용자 지정 리소스를 만듭니다.oc create -f network-sharedrdma-nic-cluster-policy.yaml
$ oc create -f network-sharedrdma-nic-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
nicclusterpolicy.mellanox.com/nic-cluster-policy created
nicclusterpolicy.mellanox.com/nic-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DOCA/MOFED 컨테이너에서 다음 명령을 실행하여
NicClusterPolicy를
검증합니다.oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
mofed
컨테이너에rsh
로 접속하여 상태를 확인하세요.MOFED_POD=$(oc get pods -n nvidia-network-operator -o name | grep mofed) oc rsh -n nvidia-network-operator -c mofed-container ${MOFED_POD}
$ MOFED_POD=$(oc get pods -n nvidia-network-operator -o name | grep mofed) $ oc rsh -n nvidia-network-operator -c mofed-container ${MOFED_POD} sh-5.1# ofed_info -s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
OFED-internal-24.07-0.6.1:
OFED-internal-24.07-0.6.1:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ibdev2netdev -v
sh-5.1# ibdev2netdev -v
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
0000:0d:00.0 mlx5_0 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ibs2f0 (Up) 0000:a0:00.0 mlx5_1 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ens8f0np0 (Up)
0000:0d:00.0 mlx5_0 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ibs2f0 (Up) 0000:a0:00.0 mlx5_1 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ens8f0np0 (Up)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IPoIBNetwork
사용자 정의 리소스 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터에
IPoIBNetwork
리소스를 만듭니다.oc create -f ipoib-network.yaml
$ oc create -f ipoib-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
ipoibnetwork.mellanox.com/example-ipoibnetwork created
ipoibnetwork.mellanox.com/example-ipoibnetwork created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 인터페이스에 대한
MacvlanNetwork
사용자 정의 리소스 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터에 리소스를 만듭니다.
oc create -f macvlan-network.yaml
$ oc create -f macvlan-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
macvlannetwork.mellanox.com/rdmashared-net created
macvlannetwork.mellanox.com/rdmashared-net created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7. GPU 운영자 구성 링크 복사링크가 클립보드에 복사되었습니다!
GPU 운영자는 NVIDIA 드라이버, GPU용 장치 플러그인, NVIDIA 컨테이너 툴킷 및 GPU 프로비저닝에 필요한 기타 구성 요소의 관리를 자동화합니다.
사전 요구 사항
- GPU Operator를 설치했습니다.
프로세스
다음 명령을 실행하여 네임스페이스 아래의 포드를 살펴보려면 Operator 포드가 실행 중인지 확인하세요.
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE gpu-operator-b4cb7d74-zxpwq 1/1 Running 0 32s
NAME READY STATUS RESTARTS AGE gpu-operator-b4cb7d74-zxpwq 1/1 Running 0 32s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 유사한 GPU 클러스터 정책 사용자 정의 리소스 파일을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GPU
ClusterPolicy
사용자 지정 리소스가 생성되면 다음 명령을 실행하여 클러스터에 리소스를 만듭니다.oc create -f gpu-cluster-policy.yaml
$ oc create -f gpu-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
clusterpolicy.nvidia.com/gpu-cluster-policy created
clusterpolicy.nvidia.com/gpu-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Operator가 설치되고 실행 중인지 확인하세요.
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 포드가 실행 중인지 확인한 후 NVIDIA 드라이버 데몬셋 포드에 원격 셸을 실행하여 NVIDIA 모듈이 로드되었는지 확인합니다. 특히,
nvidia_peermem
이 로드되었는지 확인하세요.oc rsh -n nvidia-gpu-operator $(oc -n nvidia-gpu-operator get pod -o name -l app.kubernetes.io/component=nvidia-driver)
$ oc rsh -n nvidia-gpu-operator $(oc -n nvidia-gpu-operator get pod -o name -l app.kubernetes.io/component=nvidia-driver) sh-4.4# lsmod|grep nvidia
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택 사항:
nvidia-smi
유틸리티를 실행하여 드라이버 및 하드웨어에 대한 세부 정보를 표시합니다.
nvidia-smi
sh-4.4# nvidia-smi
+ .출력 예
드라이버 포드에 있는 동안
nvidia-smi
명령을 사용하여 GPU 클럭을 최대로 설정하세요.oc rsh -n nvidia-gpu-operator nvidia-driver-daemonset-416.94.202410172137-0-ndhzc
$ oc rsh -n nvidia-gpu-operator nvidia-driver-daemonset-416.94.202410172137-0-ndhzc sh-4.4# nvidia-smi -i 0 -lgc $(nvidia-smi -i 0 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:61:00.0 All done.
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:61:00.0 All done.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nvidia-smi -i 1 -lgc $(nvidia-smi -i 1 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)
sh-4.4# nvidia-smi -i 1 -lgc $(nvidia-smi -i 1 --query-supported-clocks=graphics --format=csv,noheader,nounits | sort -h | tail -n 1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:E1:00.0 All done.
GPU clocks set to "(gpuClkMin 1740, gpuClkMax 1740)" for GPU 00000000:E1:00.0 All done.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 노드 설명 관점에서 리소스를 사용할 수 있는지 확인하세요.
oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A9
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8. 머신 구성 생성 링크 복사링크가 클립보드에 복사되었습니다!
리소스 포드를 만들기 전에 사용자 권한이 필요 없이 GPU 및 네트워킹 리소스에 액세스할 수 있는 machineconfig.yaml
사용자 지정 리소스(CR)를 만들어야 합니다.
프로세스
Machineconfig
CR을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9. 워크로드 포드 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션의 절차를 사용하여 공유 및 호스트 장치에 대한 작업 부하 포드를 생성합니다.
5.9.2. RoCE에서 호스트 장치 RDMA 생성 링크 복사링크가 클립보드에 복사되었습니다!
NVIDIA 네트워크 운영자를 위한 호스트 장치 원격 직접 메모리 액세스(RDMA)에 대한 워크로드 포드를 만들고 포드 구성을 테스트합니다.
사전 요구 사항
- Operator가 실행 중인지 확인하세요.
-
NicClusterPolicy
사용자 정의 리소스(CR)가 있는 경우 삭제합니다.
프로세스
아래와 같이 새로운 호스트 장치
NicClusterPolicy
(CR)를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 클러스터에
NicClusterPolicy
CR을 만듭니다.oc create -f network-hostdev-nic-cluster-policy.yaml
$ oc create -f network-hostdev-nic-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
nicclusterpolicy.mellanox.com/nic-cluster-policy created
nicclusterpolicy.mellanox.com/nic-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 DOCA/MOFED 컨테이너에서 사용하여 호스트 장치
NicClusterPolicy
CR을 확인하세요.oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 리소스가 클러스터
oc describe node
섹션에 나타나는지 확인하세요.oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A7
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HostDeviceNetwork
CR 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 클러스터에
HostDeviceNetwork
리소스를 만듭니다.oc create -f hostdev-network.yaml
$ oc create -f hostdev-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
hostdevicenetwork.mellanox.com/hostdev-net created
hostdevicenetwork.mellanox.com/hostdev-net created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 리소스가 클러스터
oc describe node
섹션에 나타나는지 확인하세요.oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.3. RoCE에서 SR-IOV 레거시 모드 RDMA 생성 링크 복사링크가 클립보드에 복사되었습니다!
RoCE에서 단일 루트 I/O 가상화(SR-IOV) 레거시 모드 호스트 장치 RDMA를 구성합니다.
프로세스
새로운 호스트 장치
NicClusterPolicy
사용자 정의 리소스(CR)를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 클러스터에 대한 정책을 만듭니다.
oc create -f network-sriovleg-nic-cluster-policy.yaml
$ oc create -f network-sriovleg-nic-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
nicclusterpolicy.mellanox.com/nic-cluster-policy created
nicclusterpolicy.mellanox.com/nic-cluster-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DOCA/MOFED 컨테이너에서 다음 명령을 사용하여 포드를 확인하세요.
oc get pods -n nvidia-network-operator
$ oc get pods -n nvidia-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE mofed-rhcos4.16-696886fcb4-ds-4mb42 2/2 Running 0 40s mofed-rhcos4.16-696886fcb4-ds-8knwq 2/2 Running 0 40s nvidia-network-operator-controller-manager-68d547dbbd-qsdkf 1/1 Running 13 (4d ago) 4d21h
NAME READY STATUS RESTARTS AGE mofed-rhcos4.16-696886fcb4-ds-4mb42 2/2 Running 0 40s mofed-rhcos4.16-696886fcb4-ds-8knwq 2/2 Running 0 40s nvidia-network-operator-controller-manager-68d547dbbd-qsdkf 1/1 Running 13 (4d ago) 4d21h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV 레거시 모드에서 작동하려는 장치에 대한 가상 기능(VF)을 생성하는
SriovNetworkNodePolicy
CR을 만듭니다. 다음 예제를 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 클러스터에 CR을 만듭니다.
참고SR-IOV 글로벌 활성화가 활성화되어 있는지 확인하세요. 자세한 내용은 Red Hat Enterprise Linux에서 SR-IOV를 활성화할 수 없고 "SR-IOV에 대한 MMIO 리소스가 충분하지 않습니다"라는 메시지가 표시됨을 참조하세요.
oc create -f sriov-network-node-policy.yaml
$ oc create -f sriov-network-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
sriovnetworknodepolicy.sriovnetwork.openshift.io/sriov-legacy-policy created
sriovnetworknodepolicy.sriovnetwork.openshift.io/sriov-legacy-policy created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 노드의 스케줄링이 비활성화되었습니다. 구성을 적용하려면 노드를 재부팅합니다. 다음 명령을 사용하여 노드를 볼 수 있습니다.
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS ROLES AGE VERSION edge-19.edge.lab.eng.rdu2.redhat.com Ready control-plane,master,worker 5d v1.29.8+632b078 nvd-srv-32.nvidia.eng.rdu2.dc.redhat.com Ready worker 4d22h v1.29.8+632b078 nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com NotReady,SchedulingDisabled worker 4d22h v1.29.8+632b078
NAME STATUS ROLES AGE VERSION edge-19.edge.lab.eng.rdu2.redhat.com Ready control-plane,master,worker 5d v1.29.8+632b078 nvd-srv-32.nvidia.eng.rdu2.dc.redhat.com Ready worker 4d22h v1.29.8+632b078 nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com NotReady,SchedulingDisabled worker 4d22h v1.29.8+632b078
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드가 재부팅된 후 각 노드에서 디버그 포드를 열어 VF 인터페이스가 있는지 확인합니다. 다음 명령을 실행합니다.
a$ oc debug node/nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com
a$ oc debug node/nvd-srv-33.nvidia.eng.rdu2.dc.redhat.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 필요한 경우 두 번째 노드에서 이전 단계를 반복합니다.
선택 사항: 다음 명령을 사용하여 리소스가 클러스터
oc describe node
섹션에 나타나는지 확인하세요.oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
$ oc describe node -l node-role.kubernetes.io/worker=| grep -E 'Capacity:|Allocatable:' -A8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV 레거시 모드의 VF가 준비되면
SriovNetwork
CR 파일을 생성합니다. 다음 예제를 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 클러스터에 사용자 지정 리소스를 만듭니다.
oc create -f sriov-network.yaml
$ oc create -f sriov-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
sriovnetwork.sriovnetwork.openshift.io/sriov-network created
sriovnetwork.sriovnetwork.openshift.io/sriov-network created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.10. RDMA 연결 확인 링크 복사링크가 클립보드에 복사되었습니다!
특히 레거시 단일 루트 I/O 가상화(SR-IOV) 이더넷의 경우 시스템 간에 원격 직접 메모리 액세스(RDMA) 연결이 작동하는지 확인합니다.
프로세스
다음 명령을 사용하여 각
rdma-workload-client
포드에 연결합니다.oc rsh -n default rdma-sriov-32-workload
$ oc rsh -n default rdma-sriov-32-workload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
sh-5.1#
sh-5.1#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 첫 번째 워크로드 포드에 할당된 IP 주소를 확인하세요. 이 예에서 첫 번째 워크로드 포드는 RDMA 테스트 서버입니다.
ip a
sh-5.1# ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 포드에 할당된 RDMA 서버의 IP 주소는
net1
인터페이스입니다. 이 예에서 IP 주소는192.168.4.225
입니다.ibstatus
명령을 실행하여 각 RDMA 장치mlx5_x
와 연관된link_layer
유형(Ethernet 또는 Infiniband)을 가져옵니다. 출력에서는상태 필드를 확인하여 모든 RDMA 장치의 상태도 보여줍니다. 상태
필드에는ACTIVE
또는DOWN
이 표시됩니다.ibstatus
sh-5.1# ibstatus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 작업자 노드의 각 RDMA
mlx5
장치에 대한link_layer를
얻으려면ibstat
명령을 실행하세요.ibstat | egrep "Port|Base|Link"
sh-5.1# ibstat | egrep "Port|Base|Link"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RDMA 공유 장치 또는 호스트 장치 워크로드 포드의 경우
mlx5_x
라는 RDMA 장치는 이미 알려져 있으며 일반적으로mlx5_0
또는mlx5_1
입니다. RDMA 레거시 SR-IOV 워크로드 포드의 경우, 어떤 RDMA 장치가 어떤 가상 기능(VF) 하위 인터페이스와 연결되어 있는지 확인해야 합니다. 다음 명령을 사용하여 이 정보를 제공하세요.rdma link show
sh-5.1# rdma link show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 RDMA 장치 이름
mlx5_7
은net1
인터페이스와 연결됩니다. 이 출력은 다음 명령에서 RDMA 대역폭 테스트를 수행하는 데 사용되며, 이를 통해 작업자 노드 간의 RDMA 연결도 검증됩니다.다음
ib_write_bw
RDMA 대역폭 테스트 명령을 실행하세요./root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_7 -p 10000 --source_ip 192.168.4.225 --use_cuda=0 --use_cuda_dmabuf
sh-5.1# /root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_7 -p 10000 --source_ip 192.168.4.225 --use_cuda=0 --use_cuda_dmabuf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
mlx5_7
RDMA 장치는-d
스위치로 전달됩니다. -
RDMA 서버를 시작하기 위한 소스 IP 주소는
192.168.4.225
입니다. -
--use_cuda=0
,--use_cuda_dmabuf
스위치는 GPUDirect RDMA를 사용한다는 것을 나타냅니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
다른 터미널 창을 열고 RDMA 테스트 클라이언트 포드 역할을 하는 두 번째 워크로드 포드에서
oc rsh
명령을 실행합니다.oc rsh -n default rdma-sriov-33-workload
$ oc rsh -n default rdma-sriov-33-workload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
sh-5.1#
sh-5.1#
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여
net1
인터페이스에서 RDMA 테스트 클라이언트 Pod IP 주소를 얻습니다.ip a
sh-5.1# ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 각 RDMA 장치
mlx5_x
와 연관된link_layer
유형을 가져옵니다.ibstatus
sh-5.1# ibstatus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
ibstat
명령을 사용하여 Mellanox 카드의 펌웨어 버전을 가져옵니다.ibstat
sh-5.1# ibstat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트 워크로드 포드가 사용하는 가상 기능 하위 인터페이스와 연결된 RDMA 장치를 확인하려면 다음 명령을 실행하세요. 이 예에서
net1
인터페이스는 RDMA 장치mlx5_2를
사용하고 있습니다.rdma link show
sh-5.1# rdma link show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
ib_write_bw
RDMA 대역폭 테스트 명령을 실행하세요./root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_2 -p 10000 --source_ip 192.168.4.226 --use_cuda=0 --use_cuda_dmabuf 192.168.4.225
sh-5.1# /root/perftest/ib_write_bw -R -T 41 -s 65536 -F -x 3 -m 4096 --report_gbits -q 16 -D 60 -d mlx5_2 -p 10000 --source_ip 192.168.4.226 --use_cuda=0 --use_cuda_dmabuf 192.168.4.225
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
-
mlx5_2
RDMA 장치는-d
스위치로 전달됩니다. -
RDMA 서버의 소스 IP 주소는
192.168.4.226
이고 대상 IP 주소는192.168.4.225입니다
. --use_cuda=0
,--use_cuda_dmabuf
스위치는 GPUDirect RDMA를 사용한다는 것을 나타냅니다.출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 긍정적인 테스트는 예상되는 BW 평균과 MsgRate가 Mpps 단위로 나타나는 것을 의미합니다.
ib_write_bw
명령이 완료되면 서버 측 출력도 서버 포드에 나타납니다. 다음 예제를 참조하십시오.출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
6장. 동적 가속기 슬라이서(DAS) 연산자 링크 복사링크가 클립보드에 복사되었습니다!
Dynamic Accelerator Slicer Operator는 기술 미리 보기 기능일 뿐입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
DAS(Dynamic Accelerator Slicer) 연산자를 사용하면 노드가 부팅될 때 정의된 정적으로 슬라이스된 GPU에 의존하지 않고 OpenShift Container Platform에서 GPU 가속기를 동적으로 슬라이스할 수 있습니다. 이를 통해 특정 작업 부하 요구 사항에 따라 GPU를 동적으로 분할하여 효율적인 리소스 활용을 보장할 수 있습니다.
클러스터의 모든 노드에 필요한 가속기 파티션을 모두 미리 알지 못하는 경우 동적 슬라이싱이 유용합니다.
DAS Operator에는 현재 NVIDIA Multi-Instance GPU(MIG)에 대한 참조 구현이 포함되어 있으며, 향후 NVIDIA MPS나 다른 공급업체의 GPU와 같은 추가 기술을 지원하도록 설계되었습니다.
제한
Dynamic Accelerator Slicer Operator를 사용할 때 다음과 같은 제한 사항이 적용됩니다.
- 잠재적인 비호환성을 파악하고 시스템이 다양한 GPU 드라이버 및 운영 체제에서 원활하게 작동하는지 확인해야 합니다.
- 이 Operator는 H100 및 A100과 같은 특정 MIG 호환 NVIDIA GPU 및 드라이버에서만 작동합니다.
- 운영자는 노드의 GPU 중 일부만 사용할 수 없습니다.
- NVIDIA 장치 플러그인은 Dynamic Accelerator Slicer Operator와 함께 사용하여 클러스터의 GPU 리소스를 관리할 수 없습니다.
DAS Operator는 MIG 지원 GPU와 함께 작동하도록 설계되었습니다. GPU 전체 대신 MIG 슬라이스를 할당합니다. DAS Operator를 설치하면 nvidia.com/gpu: "1"
과 같은 NVIDIA 장치 플러그인을 통한 표준 리소스 요청을 사용하여 전체 GPU를 할당할 수 없습니다.
6.1. 동적 가속기 슬라이서 연산자 설치 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 OpenShift Container Platform 웹 콘솔이나 OpenShift CLI를 사용하여 Dynamic Accelerator Slicer(DAS) Operator를 설치할 수 있습니다.
6.1.1. 웹 콘솔을 사용하여 Dynamic Accelerator Slicer Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 OpenShift Container Platform 웹 콘솔을 사용하여 Dynamic Accelerator Slicer(DAS) Operator를 설치할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. 필수 전제 조건을 설치했습니다.
- cert-manager Operator for Red Hat OpenShift
- 노드 기능 검색(NFD) 연산자
- NVIDIA GPU 운영자
- NodeFeatureDiscovery CR
프로세스
MIG 지원을 위해 NVIDIA GPU Operator를 구성하세요.
- OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator로 이동합니다.
- 설치된 연산자 목록에서 NVIDIA GPU Operator를 선택합니다.
- ClusterPolicy 탭을 클릭한 다음 ClusterPolicy 만들기를 클릭합니다.
YAML 편집기에서 기본 콘텐츠를 다음 클러스터 정책 구성으로 바꿔 기본 NVIDIA 장치 플러그인을 비활성화하고 MIG 지원을 활성화합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 클러스터 정책을 적용하려면 만들기를 클릭합니다.
-
워크로드 → Pod 로 이동하여
nvidia-gpu-operator
네임스페이스를 선택하여 클러스터 정책 배포를 모니터링합니다. NVIDIA GPU Operator 클러스터 정책이
준비
상태에 도달할 때까지 기다리세요. 다음을 통해 모니터링할 수 있습니다.- Operators → Installed Operators → NVIDIA GPU Operator 로 이동합니다.
-
ClusterPolicy 탭을 클릭하고 상태가
준비로
표시되는지 확인합니다.
-
nvidia-gpu-operator
네임스페이스를 선택하고 워크로드 → 포드 로 이동하여 NVIDIA GPU Operator 네임스페이스의 모든 포드가 실행 중인지 확인합니다. MIG 모드를 활성화하려면 MIG 지원 GPU가 있는 노드에 레이블을 지정하세요.
- 컴퓨팅 → 노드로 이동합니다.
- MIG 지원 GPU가 있는 노드를 선택하세요.
- 작업 → 라벨 편집을 클릭합니다.
-
nvidia.com/mig.config=all-enabled
라벨을 추가합니다. - 저장을 클릭합니다.
MIG 지원 GPU가 있는 각 노드에 대해 반복합니다.
중요MIG 레이블을 적용하면 레이블이 지정된 노드가 재부팅되어 MIG 모드가 활성화됩니다. 계속하기 전에 노드가 다시 온라인 상태가 될 때까지 기다리세요.
-
nvidia.com/mig.config=all-enabled
레이블이 레이블 섹션에 나타나는지 확인하여 GPU 노드에서 MIG 모드가 성공적으로 활성화되었는지 확인합니다. 레이블을 찾으려면 컴퓨팅 → 노드 로 이동하여 GPU 노드를 선택하고 세부 정보 탭을 클릭합니다.
- OpenShift Container Platform 웹 콘솔에서 Operator → OperatorHub를 클릭합니다.
- 필터 상자에서 Dynamic Accelerator Slicer 또는 DAS 를 검색하여 DAS 운영자를 찾으세요.
- Dynamic Accelerator Slicer를 선택하고 설치를 클릭합니다.
Operator 설치 페이지에서 다음을 수행합니다.
- 설치 모드로 클러스터의 모든 네임스페이스(기본값)를 선택합니다.
- 설치된 네임스페이스 → 운영자 권장 네임스페이스: 프로젝트 das-operator를 선택합니다.
-
새로운 네임스페이스를 생성하는 경우 네임스페이스 이름으로
das-operator를
입력합니다. - 업데이트 채널을 선택하세요.
- 승인 전략에 대해 자동 또는 수동을 선택합니다.
- 설치를 클릭합니다.
- OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator를 클릭합니다.
- 목록에서 DAS 운영자를 선택하세요.
- 제공된 API 테이블 열에서 DASOperator를 클릭합니다. 이렇게 하면 운영자 세부 정보 페이지의 DASOperator 탭으로 이동합니다.
- DASOperator 만들기를 클릭합니다. 이렇게 하면 Create DASOperator YAML 뷰로 이동합니다.
YAML 편집기에서 다음 예를 붙여넣습니다.
예제
DASOperator
CRCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
DASOperator
CR의 이름은cluster
여야 합니다.
- 생성을 클릭합니다.
검증
DAS Operator가 성공적으로 설치되었는지 확인하려면:
- Operator → 설치된 Operator 페이지로 이동합니다.
-
Dynamic Accelerator Slicer가 Succeeded 상태 로
das-operator
네임스페이스에 나열되어 있는지 확인하세요.
DASOperator
CR이 성공적으로 설치되었는지 확인하려면:
-
DASOperator
CR을 생성하면 웹 콘솔에서 DASOperator 목록 보기 로 이동합니다. 모든 구성 요소가 실행되면 CR의 상태 필드가 사용 가능 으로 변경됩니다. 선택 사항입니다. OpenShift CLI에서 다음 명령을 실행하여
DASOperator
CR이 성공적으로 설치되었는지 확인할 수 있습니다.oc get dasoperator -n das-operator
$ oc get dasoperator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS AGE cluster Available 3m
NAME STATUS AGE cluster Available 3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
설치 중에 Operator는 실패 상태를 표시할 수 있습니다. 나중에 설치가 성공하여 '성공' 메시지가 표시되면 '실패' 메시지는 무시해도 됩니다.
또한 포드를 확인하여 설치를 확인할 수 있습니다.
-
워크로드 → Pod 페이지로 이동하여
das-operator
네임스페이스를 선택합니다. 모든 DAS Operator 구성 요소 포드가 실행 중인지 확인하세요.
-
das-operator
포드(주 운영자 컨트롤러) -
das-operator-webhook
포드(웹훅 서버) -
das-scheduler
pod(스케줄러 플러그인) -
das-daemonset
포드(MIG 호환 GPU가 있는 노드에서만)
-
das-daemonset
포드는 MIG 호환 GPU 하드웨어가 있는 노드에만 나타납니다. 데몬셋 포드가 보이지 않으면 클러스터에 지원되는 GPU 하드웨어가 있는 노드가 있는지, NVIDIA GPU Operator가 올바르게 구성되었는지 확인하세요.
문제 해결
Operator가 설치되어 있지 않은 경우 다음 절차를 따르세요.
- Operator → 설치된 Operator 페이지로 이동하고 Operator 서브스크립션 및 설치 계획 탭의 상태에 장애나 오류가 있는지 검사합니다.
-
워크로드 → 포드 페이지로 이동하여
das-operator
네임스페이스의 포드 로그를 확인합니다.
6.1.2. CLI를 사용하여 Dynamic Accelerator Slicer Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 OpenShift CLI를 사용하여 DAS(Dynamic Accelerator Slicer) Operator를 설치할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다. 필수 전제 조건을 설치했습니다.
- cert-manager Operator for Red Hat OpenShift
- 노드 기능 검색(NFD) 연산자
- NVIDIA GPU 운영자
- NodeFeatureDiscovery CR
프로세스
MIG 지원을 위해 NVIDIA GPU Operator를 구성하세요.
다음 클러스터 정책을 적용하여 기본 NVIDIA 장치 플러그인을 비활성화하고 MIG 지원을 활성화합니다. 다음 내용으로
gpu-cluster-policy.yaml
이라는 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터 정책을 적용합니다.
oc apply -f gpu-cluster-policy.yaml
$ oc apply -f gpu-cluster-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 NVIDIA GPU Operator 클러스터 정책이
준비
상태에 도달했는지 확인하세요.oc get clusterpolicies.nvidia.com gpu-cluster-policy -w
$ oc get clusterpolicies.nvidia.com gpu-cluster-policy -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow STATUS
열에'준비'가
표시될 때까지 기다리세요.출력 예
NAME STATUS AGE gpu-cluster-policy ready 2025-08-14T08:56:45Z
NAME STATUS AGE gpu-cluster-policy ready 2025-08-14T08:56:45Z
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 NVIDIA GPU Operator 네임스페이스의 모든 포드가 실행 중인지 확인하세요.
oc get pods -n nvidia-gpu-operator
$ oc get pods -n nvidia-gpu-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 포드는
실행 중
또는완료
상태를 표시해야 합니다.다음 명령을 실행하여 MIG 모드를 활성화하려면 MIG 지원 GPU가 있는 노드에 레이블을 지정합니다.
oc label node $NODE_NAME nvidia.com/mig.config=all-enabled --overwrite
$ oc label node $NODE_NAME nvidia.com/mig.config=all-enabled --overwrite
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $NODE_NAME을
MIG 지원 GPU가 있는 각 노드의 이름으로 바꾸세요.중요MIG 레이블을 적용한 후 레이블이 지정된 노드가 재부팅되어 MIG 모드가 활성화됩니다. 계속하기 전에 노드가 다시 온라인 상태가 될 때까지 기다리세요.
다음 명령을 실행하여 노드가 MIG 모드를 성공적으로 활성화했는지 확인하세요.
oc get nodes -l nvidia.com/mig.config=all-enabled
$ oc get nodes -l nvidia.com/mig.config=all-enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
DAS 운영자를 위한 네임스페이스를 만듭니다.
das-operator
네임스페이스를 정의하는 다음네임스페이스
사용자 정의 리소스(CR)를 만들고 YAML을das-namespace.yaml
파일에 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 네임스페이스를 생성합니다.
oc create -f das-namespace.yaml
$ oc create -f das-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이전 단계에서 만든 네임스페이스에 DAS Operator를 설치하려면 다음 객체를 만듭니다.
다음
OperatorGroup
CR을 만들고das-operatorgroup.yaml
파일에 YAML을 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
OperatorGroup
CR을 생성합니다.oc create -f das-operatorgroup.yaml
$ oc create -f das-operatorgroup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
구독
CR을 만들고das-sub.yaml
파일에 YAML을 저장합니다.서브스크립션의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 서브스크립션 오브젝트를 생성합니다.
oc create -f das-sub.yaml
$ oc create -f das-sub.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow das-operator
프로젝트 변경:oc project das-operator
$ oc project das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
DASOperator
CR을 만들고das-dasoperator.yaml
파일에 YAML을 저장합니다.예제
DASOperator
CRCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
DASOperator
CR의 이름은cluster
여야 합니다.
다음 명령을 실행하여
dasoperator
CR을 만듭니다.oc create -f das-dasoperator.yaml
oc create -f das-dasoperator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 Operator 배포가 성공적으로 완료되었는지 확인하세요.
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배포가 성공하면 모든 Pod가
실행 중
상태인 것으로 표시됩니다. 배포에는 다음이 포함됩니다.- das-operator
- 메인 오퍼레이터 컨트롤러 포드
- das-operator-webhook
- Pod 요청 변형을 위한 Webhook 서버 Pod
- das-scheduler
- MIG 슬라이스 할당을 위한 스케줄러 플러그인 포드
- das-daemonset
MIG 호환 GPU가 있는 노드에서만 실행되는 Daemonset 포드
참고das-daemonset
포드는 MIG 호환 GPU 하드웨어가 있는 노드에만 나타납니다. 데몬셋 포드가 보이지 않으면 클러스터에 지원되는 GPU 하드웨어가 있는 노드가 있는지, NVIDIA GPU Operator가 올바르게 구성되었는지 확인하세요.
6.2. Dynamic Accelerator Slicer Operator 제거 링크 복사링크가 클립보드에 복사되었습니다!
Operator가 설치된 방식에 따라 다음 절차 중 하나를 사용하여 Dynamic Accelerator Slicer(DAS) Operator를 제거합니다.
6.2.1. 웹 콘솔을 사용하여 Dynamic Accelerator Slicer Operator 제거 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 웹 콘솔을 사용하여 Dynamic Accelerator Slicer(DAS) Operator를 제거할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. - DAS Operator가 클러스터에 설치되었습니다.
프로세스
- OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator로 이동합니다.
- 설치된 연산자 목록에서 Dynamic Accelerator Slicer를 찾으세요.
-
옵션 메뉴를 클릭하세요
DAS Operator를 선택하고 Operator 제거를 선택합니다.
- 확인 대화 상자에서 제거를 클릭하여 제거를 확인합니다.
- 홈 → 프로젝트로 이동합니다.
- 검색창에서 das-operator를 검색하여 DAS Operator 프로젝트를 찾으세요.
-
옵션 메뉴를 클릭하세요
das-operator 프로젝트 옆에 있는 '프로젝트 삭제'를 선택합니다.
-
확인 대화 상자에서
das-operator를
입력하고 삭제를 클릭하여 삭제를 확인합니다.
검증
- Operator → 설치된 Operator 페이지로 이동합니다.
- DAS(Dynamic Accelerator Slicer) 연산자가 더 이상 나열되지 않는지 확인하세요.
선택 사항입니다. 다음 명령을 실행하여
das-operator
네임스페이스와 해당 리소스가 제거되었는지 확인하세요.oc get namespace das-operator
$ oc get namespace das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 명령은 네임스페이스를 찾을 수 없다는 오류를 반환해야 합니다.
DAS Operator를 제거하면 모든 GPU 슬라이스 할당이 제거되고 GPU 슬라이스에 의존하는 작업 부하가 실행되지 않을 수 있습니다. 제거를 진행하기 전에 중요한 작업 부하가 GPU 슬라이스를 사용하고 있지 않은지 확인하세요.
6.2.2. CLI를 사용하여 Dynamic Accelerator Slicer Operator 제거 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI를 사용하여 Dynamic Accelerator Slicer(DAS) Operator를 제거할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다. - DAS Operator가 클러스터에 설치되었습니다.
프로세스
다음 명령을 실행하여 설치된 운영자를 나열하고 DAS 운영자 구독을 찾으세요.
oc get subscriptions -n das-operator
$ oc get subscriptions -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME PACKAGE SOURCE CHANNEL das-operator das-operator redhat-operators stable
NAME PACKAGE SOURCE CHANNEL das-operator das-operator redhat-operators stable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 구독을 삭제합니다.
oc delete subscription das-operator -n das-operator
$ oc delete subscription das-operator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터 서비스 버전(CSV)을 나열하고 삭제합니다.
oc get csv -n das-operator
$ oc get csv -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete csv <csv-name> -n das-operator
$ oc delete csv <csv-name> -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 운영자 그룹을 제거합니다.
oc delete operatorgroup das-operator -n das-operator
$ oc delete operatorgroup das-operator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 남아 있는
AllocationClaim
리소스를 삭제합니다.oc delete allocationclaims --all -n das-operator
$ oc delete allocationclaims --all -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 DAS Operator 네임스페이스를 제거합니다.
oc delete namespace das-operator
$ oc delete namespace das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 DAS Operator 리소스가 제거되었는지 확인하세요.
oc get namespace das-operator
$ oc get namespace das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 명령은 네임스페이스를 찾을 수 없다는 오류를 반환해야 합니다.
다음 명령을 실행하여
AllocationClaim
사용자 정의 리소스 정의가 남아 있지 않은지 확인하세요.oc get crd | grep allocationclaim
$ oc get crd | grep allocationclaim
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 명령은 사용자 정의 리소스 정의를 찾을 수 없다는 오류를 반환해야 합니다.
DAS Operator를 제거하면 모든 GPU 슬라이스 할당이 제거되고 GPU 슬라이스에 의존하는 작업 부하가 실행되지 않을 수 있습니다. 제거를 진행하기 전에 중요한 작업 부하가 GPU 슬라이스를 사용하고 있지 않은지 확인하세요.
6.3. Dynamic Accelerator Slicer Operator를 사용하여 GPU 워크로드 배포 링크 복사링크가 클립보드에 복사되었습니다!
DAS(Dynamic Accelerator Slicer) 운영자가 관리하는 GPU 슬라이스를 요청하는 워크로드를 배포할 수 있습니다. 운영자는 GPU 가속기를 동적으로 분할하고 사용 가능한 GPU 슬라이스에 작업 부하를 예약합니다.
사전 요구 사항
- 클러스터에 MIG 지원 GPU 하드웨어가 있습니다.
-
NVIDIA GPU Operator가 설치되었고
ClusterPolicy가
준비 상태를 표시합니다. - DAS Operator를 설치했습니다.
프로세스
다음 명령을 실행하여 네임스페이스를 만듭니다.
oc new-project cuda-workloads
oc new-project cuda-workloads
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NVIDIA MIG 리소스를 사용하여 GPU 리소스를 요청하는 배포를 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 배포 구성을 적용합니다.
oc apply -f cuda-vectoradd-deployment.yaml
$ oc apply -f cuda-vectoradd-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 배포가 생성되었고 Pod가 예약되었는지 확인하세요.
oc get deployment cuda-vectoradd
$ oc get deployment cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY UP-TO-DATE AVAILABLE AGE cuda-vectoradd 2/2 2 2 2m
NAME READY UP-TO-DATE AVAILABLE AGE cuda-vectoradd 2/2 2 2 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 포드 상태를 확인하세요.
oc get pods -l app=cuda-vectoradd
$ oc get pods -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cuda-vectoradd-6b8c7d4f9b-abc12 1/1 Running 0 2m cuda-vectoradd-6b8c7d4f9b-def34 1/1 Running 0 2m
NAME READY STATUS RESTARTS AGE cuda-vectoradd-6b8c7d4f9b-abc12 1/1 Running 0 2m cuda-vectoradd-6b8c7d4f9b-def34 1/1 Running 0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 배포 포드에 대한
AllocationClaim
리소스가 생성되었는지 확인하세요.oc get allocationclaims -n das-operator
$ oc get allocationclaims -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 2m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 2m
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 2m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 포드의 리소스 할당 중 하나를 확인하여 GPU 슬라이스가 올바르게 할당되었는지 확인하세요.
oc describe pod -l app=cuda-vectoradd
$ oc describe pod -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 로그를 확인하여 CUDA 샘플 애플리케이션이 성공적으로 실행되는지 확인하세요.
oc logs -l app=cuda-vectoradd
$ oc logs -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 환경 변수를 확인하여 GPU 장치가 컨테이너에 제대로 노출되었는지 확인하세요.
oc exec deployment/cuda-vectoradd -- env | grep -E "(NVIDIA_VISIBLE_DEVICES|CUDA_VISIBLE_DEVICES)"
$ oc exec deployment/cuda-vectoradd -- env | grep -E "(NVIDIA_VISIBLE_DEVICES|CUDA_VISIBLE_DEVICES)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NVIDIA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652 CUDA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652
NVIDIA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652 CUDA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 환경 변수는 GPU MIG 슬라이스가 올바르게 할당되었으며 컨테이너 내의 CUDA 런타임에서 볼 수 있음을 나타냅니다.
6.4. 동적 가속기 슬라이서 연산자 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
DAS(Dynamic Accelerator Slicer) 연산자에 문제가 발생하는 경우 다음 문제 해결 단계를 사용하여 문제를 진단하고 해결하세요.
사전 요구 사항
- DAS Operator를 설치했습니다.
- cluster-admin 역할이 있는 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
6.4.1. DAS Operator 구성 요소 디버깅 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
다음 명령을 실행하여 모든 DAS Operator 구성 요소의 상태를 확인하세요.
oc get pods -n das-operator
$ oc get pods -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 DAS Operator 컨트롤러의 로그를 검사하세요.
oc logs -n das-operator deployment/das-operator
$ oc logs -n das-operator deployment/das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 웹훅 서버의 로그를 확인하세요.
oc logs -n das-operator deployment/das-operator-webhook
$ oc logs -n das-operator deployment/das-operator-webhook
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 스케줄러 플러그인의 로그를 확인하세요.
oc logs -n das-operator deployment/das-scheduler
$ oc logs -n das-operator deployment/das-scheduler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 장치 플러그인 데몬셋의 로그를 확인하세요.
oc logs -n das-operator daemonset/das-daemonset
$ oc logs -n das-operator daemonset/das-daemonset
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4.2. 할당 청구 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
다음 명령을 실행하여 활성
AllocationClaim
리소스를 검사합니다.oc get allocationclaims -n das-operator
$ oc get allocationclaims -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 5m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 5m
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 5m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 특정
AllocationClaim
에 대한 자세한 정보를 확인하세요.oc get allocationclaims -n das-operator -o yaml
$ oc get allocationclaims -n das-operator -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예(잘림)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 다양한 주의 클레임을 확인하세요.
oc get allocationclaims -n das-operator -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.state}{"\n"}{end}'
$ oc get allocationclaims -n das-operator -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.state}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 inUse ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 inUse
13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 inUse ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 inUse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
AllocationClaim
리소스와 관련된 이벤트를 확인하세요.oc get events -n das-operator --field-selector involvedObject.kind=AllocationClaim
$ oc get events -n das-operator --field-selector involvedObject.kind=AllocationClaim
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
NodeAccelerator
리소스를 확인하여 GPU 하드웨어 감지를 확인하세요.oc get nodeaccelerator -n das-operator
$ oc get nodeaccelerator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE harpatil000034jma-qh5fm-worker-f-57md9 96m harpatil000034jma-qh5fm-worker-f-fl4wg 96m
NAME AGE harpatil000034jma-qh5fm-worker-f-57md9 96m harpatil000034jma-qh5fm-worker-f-fl4wg 96m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NodeAccelerator
리소스는 DAS 운영자가 감지한 GPU 지원 노드를 나타냅니다.
추가 정보
AllocationClaim
사용자 정의 리소스는 다음 정보를 추적합니다.
- GPU UUID
- GPU 장치의 고유 식별자입니다.
- 슬라이스 위치
- GPU에서 MIG 슬라이스의 위치.
- 포드 참조
- GPU 슬라이스를 요청한 포드입니다.
- 상태
-
클레임의 현재 상태(
준비됨
,생성됨
또는해제됨
).
클레임은 단계적
상태에서 시작하여 모든 요청이 충족되면 생성됨 상태
로 전환됩니다. 포드가 삭제되면 연관된 클레임이 자동으로 정리됩니다.
6.4.3. GPU 장치 가용성 확인 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
GPU 하드웨어가 있는 노드에서 다음 명령을 실행하여 CDI 장치가 생성되었는지 확인합니다.
oc debug node/<node-name>
$ oc debug node/<node-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chroot /host ls -l /var/run/cdi/
sh-4.4# chroot /host sh-4.4# ls -l /var/run/cdi/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 NVIDIA GPU Operator 상태를 확인하세요.
oc get clusterpolicies.nvidia.com -o jsonpath='{.items[0].status.state}'
$ oc get clusterpolicies.nvidia.com -o jsonpath='{.items[0].status.state}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에는
'ready'가
표시되어야 합니다.
6.4.4. 로그의 자세한 정보 증가 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
더 자세한 디버깅 정보를 얻으려면:
다음 명령을 실행하여
DASOperator
리소스를 편집하여 로그의 자세한 내용을 표시합니다.oc edit dasoperator -n das-operator
$ oc edit dasoperator -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow operatorLogLevel
필드를Debug
또는Trace
로 설정합니다.spec: operatorLogLevel: Debug
spec: operatorLogLevel: Debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 변경 사항을 저장하고 운영자 포드가 더욱 자세한 정보로 다시 시작되는지 확인합니다.
6.4.5. 일반적인 문제 및 해결책 링크 복사링크가 클립보드에 복사되었습니다!
kubernetes/kubernetes#128043 으로 인해, 입장이 실패하면 포드가 UnexpectedAdmissionError
상태가 될 수 있습니다. 배포와 같은 상위 레벨 컨트롤러가 관리하는 Pod는 자동으로 다시 생성됩니다. 하지만, 맨 포드는 oc delete pod 를
사용하여 수동으로 정리해야 합니다. 업스트림 문제가 해결될 때까지 컨트롤러를 사용하는 것이 좋습니다.
전제 조건이 충족되지 않았습니다
DAS Operator가 제대로 시작되지 않거나 작동하지 않는 경우 모든 필수 구성 요소가 설치되었는지 확인하세요.
- 인증 관리자
- 노드 기능 검색(NFD) 연산자
- NVIDIA GPU 운영자
Legal Notice
링크 복사링크가 클립보드에 복사되었습니다!
Copyright © 2025 Red Hat
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.