머신 러닝/AI 워크로드는 의료 이미징 및 연구에서부터 고객 행동 예측, 금융 사기 예방에 이르기까지 애플리케이션 전 세계에서 빠르게 증가하고 있으며, 그 외에도 많은 사례가 있다. VMware가 NVIDIA와 협업한 결과로 vSphere 7 업데이트 2에 나타난 세 가지 성능 및 생산성 향상 기능을 살펴보겠다.
- vSphere에서 인증된 NVIDIA AI Enterprise 소프트웨어 제품군
- Ampeer 아키텍처를 기반으로 하는 NVIDIA의 최신 GPU 지원
- PCIe 버스를 통한 디바이스 간 피어 통신을 위한 vSphere의 새로운 최적화로 NVIDIA의 GPUDirect RDMA를 통해 성능을 향상시킬 수 있다.
NVIDIA AI Enterprise Suite – vSphere에서 인증됨
NVIDIA AI Enterprise 제품군은 두 회사가 데이터 센터에 AI를 도입하기 위해 협업한 결과물이다. NVIDIA AI Enterprise는 엔드 투 엔드 클라우드 네이티브 AI 및 데이터 분석 소프트웨어 제품군으로 NVIDIA 인증 시스템을 갖춘 VMware vSphere 7 업데이트 2에서 실행할 수 있도록 최적화, 인증 및 지원한다. 현대 하이브리드 클라우드에서 AI 워크로드의 신속한 배치, 관리 및 확장을 위한 NVIDIA의 핵심 지원 기술과 소프트웨어를 포함하고 있다. NVIDIA AI Enterprise에 대한 자세한 내용은 이 문서를 참조하기 바란다.
최신 세대의 NVIDIA GPU 지원
이러한 ML 워크로드를 위한 최신 하드웨어 가속기인 NVIDIA의 MIG(Multi-Instance GPU)를 지원하는 Ampeer Series A100 GPU는 머신 러닝 사용자와 vSphere 7 업데이트 2 릴리스의 시스템 관리자에게 매우 중요한 단계다.
NVIDIA가 제공하는 가장 강력한 ML용 GPU인 이 강력한 NVIDIA A100 GPU는 vSphere 7 업데이트 2에서 처음으로 완벽하게 지원된다. 이전 블로그에서 이 새로운 아키텍처의 주요 기능에 대한 기술 미리 보기를 제공했다.
이제 vSphere 7 업데이트 2의 가상 시스템에서 MIG가 포함된 A100을 완벽하게 지원한다. 이 지원은 보다 전통적인 시간 분할 vGPU 모드와 새로운 MIG 지원 vGPU 모드뿐만 아니라 DirectPath I/O 메서드를 모두 지원한다. 두 vGPU 모드 모두 vMotion과 DRS가 VM을 호스트에 초기 배치할 수 있도록 지원한다.
MIG 이전 버전의 기존 시간 슬라이스 NVIDIA vGPU 모드는 GPU를 공유하는 VM 간에 엄격한 하드웨어 레벨 격리를 제공하지 않는다. 이 모드는 공정한 공유, 동일한 공유 또는 최선의 노력과 같은 사용자가 액세스할 수 있는 알고리즘에 따라 스트리밍 다중 프로세서(SM)라는 코어 모음에 작업을 스케줄링한다. GPU의 모든 코어는 시간 슬라이스 NVIDIA vGPU와 캐시와 크로스바를 통해 GPU의 프레임 버퍼 메모리로 가는 모든 하드웨어 경로에 사용될 수 있다. 이 새로운 형태의 vGPU 지원에 대한 자세한 기술 정보는 여기에서 확인할 수 있다.
VM에 허용할 vGPU 지원 유형을 선택할 때는 vSphere Client에서 NVIDIA GRID vGPU 프로파일 옵션을 사용한다. 다음은 시간 슬라이스된 vGPU 드라이버에 대해 A100이 장착된 호스트에서 사용할 수 있는 vGPU 프로파일 세트의 보기다. NVIDIA vGPU 프로파일 이름의 최종 “c” 이전의 숫자는 이 프로파일이 VM에 할당할 프레임 버퍼 메모리(즉, GPU 자체의 메모리)의 GB 수입니다. 여기서는 VM에 5GB를 할당하도록 선택했다.
vSphere 7 업데이트 2의 새로운 vGPU용 MIG 모드는 한 가지 중요한 측면에서 위의 시간 슬라이스 접근 방식과 다르다. MIG 지원 vGPU를 사용하는 VM은 이제 스트리밍 다중 프로세서(SM), 프레임 버퍼(on-GPU) 메모리 및 다양한 하드웨어 경로를 전용으로 할당받는다.
할당된 하드웨어 항목(GPU 메모리, SM, 크로스 바, 캐시 등)과 해당 구성 요소에 대한 하드웨어 경로가 해당 VM으로 분리된다. 이 엄격한 분리는 두 가지 vGPU 사용 모드 간의 주요 차이입니다. 호스트 서버 수준에서 MIG를 사용하도록 설정한 후에는 관리자가 해당 할당을 결정하기 위해 MIG 백업된 vGPU 프로파일 집합 중에서 선택할 수 있다. 다음은 vSphere Client의 MIG 지원 vGPU 프로파일 설정 단계입니다. 이러한 vGPU 프로파일 선택은 VM의 게스트 운영 체제가 부팅되기 전에 수행된다.
위의 MIG 지원 vGPU 프로파일 이름에서 “a100” 바로 뒤의 숫자는 해당 프로파일을 VM에 할당하여 할당된 GPU의 총 SM 조각 수를 나타냅니다. A100에는 최대 7개의 SM 또는 “Compute” 슬라이스가 있으며, 각각 슬라이스당 14개의 SM이 있습니다.
프로파일 이름의 최종 “c” 바로 앞에 있는 숫자(“컴퓨팅”의 경우)는 해당 프로파일에 의해 VM에 할당될 프레임 버퍼 메모리(GB)를 나타냅니다. 원하는 경우 VM에 대해 위 목록의 “grid-a100-7-40c” 프로파일을 사용하여 물리적 A100에 있는 7개의 SM/컴퓨팅 슬라이스 및 40GB(또는 80GB)의 모든 메모리를 하나의 VM에 할당할 수 있다. 그러면 해당 VM은 GPU에 대한 완전한 소유권을 가지며 GPU를 공유하지 않는다.
이러한 하드웨어 수준의 격리 덕분에 A100은 GPU에서 병렬 워크로드 세트를 동시에 호스팅하는 동시에 각 워크로드의 서비스 품질(QoS) 보증 수준을 시간별 vGPU 형식 이상으로 높일 수 있다. 시간 분할된 vGPU에서는 작업이 직렬로 실행되었다. MIG를 사용하면 진정한 병렬 작업이 실행된다.
이 작업은 하드웨어의 물리적 슬라이스를 “GPU 인스턴스”로 한 VM에만 할당함으로써 수행됩니다. 총 7개의 SM(컴퓨팅) 슬라이스를 사용할 수 있습니다. 각 SM 슬라이스는 14개의 스트리밍 멀티프로세서 세트로 구성되어 있습니다. 각 GPU 메모리 조각에는 초기 40GB 프레임 버퍼 메모리의 5GB가 있습니다.
참고: 또한 카드에 80GB의 프레임 버퍼 메모리를 탑재한 최신 A100 모델이 있다.
서로 다른 VM 및 워크로드에 서로 다른 GPU 공유 할당
적절한 vGPU 프로파일을 사용하여 7개의 컴퓨팅 슬라이스를 모두 하나의 VM에 제공할 수 있습니다. 또는 다른 vGPU 프로파일을 사용하여 컴퓨팅 슬라이스를 하나만 VM에 할당할 수도 있습니다. 다른 여러 조합을 사용하여 워크로드에 대한 할당을 혼합하고 일치시킬 수 있습니다. 여기에 녹색으로 표시된 것은 유효한 할당 집합의 한 가지 예로서, 하나의 물리적 GPU에 모두 포함되어 있습니다.
앞서 살펴본 것처럼 vSphere Client 사용자 인터페이스는 사용자에게 다양한 NVIDIA GRID vGPU 프로파일을 제공한다. 이렇게 하면 파란색과 녹색으로 표시된 이러한 GPU 인스턴스 장치에 대한 프런트 엔드가 제공된다. vSphere는 사용자에게 적합한 GPU 인스턴스를 만든다. 위에서와 같이 vSphere Client에서 선택한 vGPU 프로파일은 GPU 인스턴스에 직접 매핑된다. GPU 인스턴스는 사용 가능한 계산 슬라이스와 메모리 슬라이스의 조합을 캡슐화한다.
과거에는 시간 슬라이스된 vGPU를 사용하여 호스트에서 단일 GPU를 공유하는 모든 VM이 해당 디바이스의 동일한 공유를 얻었다. 이는 MIG에 따라 변경됩니다. 위의 차트는 MIG 지원 vGPU 설정에서 여러 VM에 한 번에 할당할 수 있는 슬라이스 크기의 유형을 보여 준다. 이는 vGPU 프로파일 자체에서 GPU 인스턴스를 래핑하는 것으로 식별된다. 따라서 GPU 인스턴스는 위에서 살펴본 것처럼 메모리 및 컴퓨팅 슬라이스의 집합으로 구성된다. GPU 인스턴스에는 여기서 조사하지 않을 컴퓨팅 엔진도 포함되어 있다.
이 다이어그램을 가로질러 왼쪽에서 오른쪽으로 이동하여 열이 겹치지 않는 동시 VM에 NVIDIA vGPU 프로파일을 할당할 수 있다. 예를 들어 동일한 호스트에 있는 두 VM을 결합할 수 있다.
- 총 7개의 SM 슬라이스 중 4개와 총 40GB 메모리 중 20을 포함하는 프로파일을 가진 VM 1개(즉, 각 5GB의 메모리 슬라이스 4개)
- 7개의 SM/컴퓨팅 슬라이스 중 1개와 1개의 메모리 슬라이스(프레임 버퍼 메모리 5GB)만 있는 또 다른 VM.
모델 훈련과 같은 GPU 컴퓨팅 및 메모리 전력의 더 큰 소비자에게는 4-20C 프로필을 제공하는 동시에 여러 개의 작은 추론 작업에 대해 1개의 컴퓨팅과 5개의 메모리 조합(1-5c)을 선택할 수 있다. 1-5c vGPU 프로파일은 VM 1에 총 SM의 7분수(각 분수는 14 SM)와 프레임 버퍼 메모리의 5GB를 제공합니다. 이것은 MIG에서 가장 작은 할당이다. 4-20c vGPU 프로파일은 VM 56 SM을 40GB A100의 프레임 버퍼 메모리(4×14) 및 20GB와 함께 사용할 수 있도록 한다.
따라서 VM이 MIG를 통해 컴퓨팅 레벨과 메모리 레벨 모두에서 얼마나 많은 GPU를 사용할 수 있는지 세부적으로 제어할 수 있다. GPU를 서로 다른 부분에서 공유할 수도 있다.
vSphere에서 GPUDirect RDMA 향상
사용자가 머신 러닝/AI 애플리케이션을 여러 호스트 서버 및 네트워크 VM에 분산하기로 선택하면 GPU 메모리 콘텐츠를 교환하기 위해 네트워크를 통한 빠른 GPU 간 통신이 애플리케이션 성능의 필수적인 구성요소가 된다. 이것의 중요한 예 중 하나는 하나의 GPU에 너무 큰 데이터 세트 또는 하나의 GPU에 잘 맞지 않는 ML 모델에 대한 분산 훈련을 하는 것이다. 분산 훈련에서 노드는 모델 내에서 변화하는 가중치와 계수에 대한 많은 간격으로 데이터를 교환한다.
네트워크를 통한 이 GPU 대 GPU 통신은 수백 개의 노드를 포함할 수 있는 정교한 분산 ML 시스템에서 규모에 따라 발생한다.
각 GPU와 모든 호스트 서버 내의 로컬 네트워크 장치 간의 최적의 통신은 이러한 분산 작업에 필수적이다. VMware vSphere 7 업데이트 2는 Address Translation Service(ATS)라는 PCIe 메커니즘을 통해 이 통신을 향상시킨다. ATS는 각 PCIe 디바이스의 가상-물리적 주소 매핑에 대한 로컬 캐싱을 허용한다. 이렇게 하면 호스트 내의 로컬 피어 투 피어 디바이스 통신 속도가 빨라진다. 따라서 CPU와 메인 메모리를 통과하여 데이터가 로컬 GPU에서 네트워크 카드로 이동하는 속도를 향상시킨다. 이 네트워크 트래픽은 다른 호스트의 다른 GPU로 계속되며, 원격 측에서 동일한 ATS 속도를 높인다. 따라서 GPUDirect RDMA를 사용하는 여러 서버가 존재할 때 성능이 크게 향상된다.
PCIe 표준의 일부인 ATS는 장치가 피어 투 피어 모드에서 동일한 PCIe 브리지에서 통신하는 경우 IOMMU를 우회하여 보다 효율적인 방식으로 주소 지정을 가능하게 한다. 이렇게 하면 분산 응용프로그램 성능이 크게 향상될 수 있다. 이 성능 이득에 대한 몇 가지 측정치가 여기에 제시되어 있니다. ATS는 시스템 관리자가 호스트 서버 수준에서 사용하도록 설정한다. GPU 및 네트워크 카드를 동일한 VM에 할당해야 한다. GPU가 vGPU 모드에서 패스스루 또는 (vSphere 7 업데이트 2의 새로운 기능)일 수 있으며 네트워크 카드에서 해당 VM에 SR-IOV 가상 기능 중 하나를 전달할 수 있다. 이 ATS 성능 향상을 통한 vGPU 기반 VM 지원은 vSphere 7 업데이트 2에서 사용자에게 제공하는 중요한 새로운 기능 중 하나다.