NVIDIA Tensor 코어 GPU 기반의 HPC 베어메탈 서버 클러스터 배포

AI(인공 지능), ML(머신 러닝) 또는 딥 러닝(DL) 모델(예: 언어 모델링을 위한 BERT-Large)을 배포하는 경우 AI 워크로드를 위한 GPU 가속을 활용할 수 있습니다.

OCI(Oracle Cloud Infrastructure)를 사용하면 베어메탈 서버 클러스터에 직접 액세스할 수 있습니다. 베어메탈 GPU 클러스터는 AI, ML 또는 DL 배포를 위한 업계 최고의 가격 대비 성능을 제공합니다. 500개 이상의 GPU 클러스터를 호스팅하고 필요에 따라 쉽게 확장할 수 있습니다.

구조

이 아키텍처는 일반 시스템의 다양한 구성요소와 코어의 HPC 베어메탈 GPU 클러스터 간의 관계를 보여줍니다. BERT-Large, GPT2/3, Jasper, MaskRCNN 및 GNMT와 같은 많은 AI, ML 또는 DL 응용 프로그램에 적용할 수 있습니다.

BERT는 자연어 처리(NLP) 작업에서 널리 사용되는 사전 학습 모델입니다. 특정 응용 프로그램이나 도메인에 맞게 미세 조정할 수 있습니다. 큰 변형인 BERT-large는 340M 매개변수를 포함합니다. 교육 및 추론 시간은 수백 개의 동일한 GPU를 통해 대규모 분산 클러스터가 없으면 엄청납니다. GPU 클러스터는 높은 I/O 처리량과 짧은 대기 시간의 클러스터 파일 시스템이 필요합니다. 데이터 처리 속도, 속도, 비용 등은 실시간 AI 추론 애플리케이션에 특히 중요합니다.

Oracle Cloud Infrastructure(OCI)는 2μs 미만의 대기시간으로 컨버지드 이더넷(RoCE)을 통해 실행되는 RDMA(Remote Direct Memory Access)를 기반으로 하는 Oracle의 짧은 대기시간 클러스터 네트워킹을 활용합니다. RDMA는 CPU를 사용하지 않고도 노드 간 짧은 대기 시간 연결 및 GPU 메모리에 액세스할 수 있습니다. OCI HPC를 통해 고객은 각각 8개의 NVIDIA A100 GPU를 사용하여 512개의 GPU로 64개의 베어메탈 노드를 클러스터화할 수 있습니다.

OCI는 로컬 NVMe SSD, 네트워크 및 병렬 파일 시스템과 같은 HPC 워크로드에 대해 대기 시간이 짧은 고성능 스토리지 솔루션을 제공합니다. OCI 베어메탈 서버는 NVMe SSD 로컬 스토리지와 함께 제공됩니다. 임시 파일에 대한 스크래치 NFS 또는 스크래치 병렬 파일 시스템(BeeOND, Weka)을 만드는 데 사용할 수 있습니다. 블록 볼륨 다중 연결 기능을 사용하면 단일 볼륨을 사용하여 전체 교육 데이터 세트를 저장하고 다중 GPU 인스턴스에 연결할 수 있습니다. 또는 Intel Ice Lake BM 또는 VM과 균형 잡힌 성능 계층 블록 스토리지를 사용하여 NFS 기반(NFS-HA, FSS) 또는 병렬 파일 시스템(Weka.io, Spectrum Scale, BeeGFS, BeeOND)을 통해 최고 처리량과 최저 비용의 파일 서버를 구축할 수 있습니다. 장기 저장을 위해 교육 결과가 Oracle Cloud Infrastructure Object Storage에 저장됩니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.

다음은 architecture-hpc-bm-gpu.png에 대한 설명입니다.
그림 아키텍처-hpc-bm-gpu.png에 대한 설명

아키텍처-hpc-bm-gpu-oracle.zip

아키텍처의 구성 요소는 다음과 같습니다.

  • 지역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과는 독립적이며, 거리는 국가 또는 대륙에 걸쳐 분리될 수 있습니다.

  • Cloud Guard

    Oracle Cloud Guard를 사용하여 Oracle Cloud Infrastructure에서 리소스의 보안을 모니터링하고 유지 관리할 수 있습니다. Cloud Guard는 감지자 레시피를 사용하여 리소스의 보안 취약점을 검사하고 운영자 및 사용자에게 특정 위험한 작업을 모니터하도록 정의할 수 있습니다. 잘못 구성되거나 안전하지 않은 작업이 감지되면 Cloud Guard는 정의할 수 있는 응답자 레시피를 기반으로 해결 조치를 권장하고 해당 작업을 수행할 수 있도록 지원합니다.

  • 가용성 도메인

    가용성 도메인은 한 지역 내의 독립형 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원이나 냉각과 같은 인프라나 내부 가용성 도메인 네트워크를 공유하지 않습니다. 따라서 한 가용성 도메인에서 장애가 발생해도 해당 지역의 다른 가용성 도메인에 영향을 미치지 않습니다.

  • 결함 도메인

    장애 도메인은 가용성 도메인 내 하드웨어와 인프라의 그룹입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어가 있는 3개의 장애 도메인이 있습니다. 여러 장애 도메인에 리소스를 배포할 때 애플리케이션은 장애 도메인 내의 물리적 서버 장애, 시스템 유지 관리 및 전원 장애를 견딜 수 있습니다.

  • 구획

    구획은 Oracle Cloud Infrastructure 테넌시 내의 영역 간 논리적 분할 영역입니다. 구획을 사용하여 Oracle Cloud에서 리소스를 구성하고, 리소스에 대한 액세스를 제어하고, 사용 할당량을 설정합니다. 지정된 구획의 리소스에 대한 액세스를 제어하려면 리소스에 액세스할 수 있는 사용자 및 수행할 수 있는 작업을 지정하는 정책을 정의합니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN은 Oracle Cloud Infrastructure 지역에서 설정한 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN을 통해 네트워크 환경을 제어할 수 있습니다. VCN은 VCN 생성 후 변경할 수 있는 겹치지 않는 여러 CIDR 블록을 가질 수 있습니다. VCN을 서브넷으로 분할할 수 있으며, 영역 또는 가용성 도메인으로 범위를 지정할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷을 생성한 후 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • 사이트 간 VPN

    사이트 간 VPN은 온프레미스 네트워크와 Oracle Cloud Infrastructure의 VCN 간 IPSec VPN 연결을 제공합니다. IPSec 프로토콜 제품군은 패킷이 소스에서 대상으로 전송되기 전에 IP 트래픽을 암호화하고 트래픽이 도착하면 해독합니다.

  • FastConnect

    Oracle Cloud Infrastructure FastConnect provides an easy way to create a dedicated, private connection between your data center and Oracle Cloud Infrastructure. FastConnect는 인터넷 기반 연결에 비해 더 높은 대역폭 옵션과 더 안정적인 네트워킹 환경을 제공합니다.

  • DRG(동적 경로 지정 게이트웨이)

    DRG는 VCN과 지역 외부 네트워크(예: 다른 Oracle Cloud Infrastructure 지역의 VCN, 온프레미스 네트워크 또는 다른 클라우드 제공자의 네트워크) 간에 동일한 지역의 VCN 간 전용 네트워크 트래픽에 대한 경로를 제공하는 가상 라우터입니다.

  • 네트워크 주소 변환(NAT) 게이트웨이

    NAT 게이트웨이를 사용하면 VCN의 개인 자원이 수신 인터넷 연결에 이러한 자원을 노출시키지 않고도 인터넷의 호스트에 접근할 수 있습니다.

  • 인터넷 게이트웨이

    인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.

  • 서비스 게이트웨이

    서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.

  • 보안 목록

    각 서브넷에 대해 서브넷에 들어오고 나가야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

  • 경로 테이블

    가상 라우트 테이블에는 서브넷에서 일반적으로 게이트웨이를 통과하는 VCN 외부 대상으로 트래픽을 라우팅하는 규칙이 포함되어 있습니다.

  • Bastion 호스트

    배스천 호스트는 클라우드 외부의 토폴로지에 대한 안전하고 제어된 시작점 역할을 하는 컴퓨팅 인스턴스입니다. Bastion 호스트는 일반적으로 DMZ(Demilitarized Zone)에 프로비저닝됩니다. 이 툴을 사용하면 클라우드 외부에서 직접 액세스할 수 없는 전용(Private) 네트워크에 중요한 리소스를 배치하여 보호할 수 있습니다. 위상에는 알려진 단일 시작점이 있으며, 주기적으로 모니터링하고 감사(audit)할 수 있습니다. 따라서 액세스를 방해하지 않으면서 토픽의 더 중요한 구성요소가 노출되지 않도록 할 수 있습니다.

  • 배스천 노드(헤드 노드)

    배스천 노드(헤드 노드)는 웹 기반 포털을 사용하여 헤드 노드에 연결하고 HPC 작업 일정을 잡습니다. 작업 요청은 Oracle Cloud Infrastructure FastConnect 또는 IPSec VPN을 통해 헤드 노드로 전송됩니다. 헤드 노드는 또한 고객 데이터 세트를 파일 스토리지로 전송하고 데이터에 대한 일부 선행 처리를 수행할 수 있습니다. 헤드 노드는 HPC 노드 클러스터를 프로비전하고 작업 완료 시 HPC 클러스터를 삭제할 수 있습니다.

    헤드 노드는 BERT 모델을 포함하고, 스케줄러를 실행하며, 클러스터에 액세스하기 위한 배스천 호스트 역할을 할 수 있습니다. MPI(메시지 전달 인터페이스)가 있으며 REST API를 통해 베어메탈 노드를 자동 확장합니다. HPC 클러스터는 요청 시 베어메탈 노드를 프로비저닝합니다. 모델 학습 및 추론에는 베어 메탈 노드에 연결된 4 x 6.4TB NVMe SSD 로컬 스토리지가 사용됩니다. 솔루션을 사용하여 인프라를 시작하는 경우 아키텍처는 헤드 노드를 배포하고 nfs-share는 기본적으로 /mnt의 NVMe SSD 스토리지에 설치됩니다.

  • HPC 클러스터 노드

    헤드 노드는 RDMA가 사용으로 설정된 클러스터인 이러한 컴퓨트 노드를 프로비전하고 종료합니다. 파일 스토리지에 저장된 데이터를 처리하고 결과를 파일 스토리지로 반환합니다.

  • NFS 서버

    헤드 노드는 HPC 노드 중 하나를 NFS 서버로 승격시킵니다.

  • 인스턴스 풀

    인스턴스 풀은 동일한 인스턴스 구성에서 생성되고 그룹으로 관리되는 영역 내의 인스턴스 그룹입니다.

    인스턴스 풀을 사용하면 그룹과 동일한 지역 내에서 여러 컴퓨트 인스턴스를 생성하고 관리할 수 있습니다. 또한 Oracle Cloud Infrastructure Load Balancing 서비스 및 Oracle Cloud Infrastructure Identity and Access Management 서비스와 같은 다른 서비스와의 통합을 지원합니다.

  • 베어메탈 DB 시스템

    BM(베어 메탈) DB 시스템은 로컬에 연결된 NVMe 스토리지가 있는 Oracle Linux 7을 실행하는 단일 베어 메탈 서버입니다. 하드웨어 가속 분석 및 기타 계산에 베어메탈 GPU 구성을 사용합니다.

    베어메탈 DB 시스템을 시작할 때 해당 DB 시스템의 모든 데이터베이스에 적용되는 구성 및 단일 Oracle Database 에디션을 선택합니다. 각 DB 시스템에는 서로 다른 버전일 수 있는 여러 데이터베이스 홈이 있을 수 있습니다. 각 데이터베이스 홈에는 데이터베이스 홈과 동일한 버전의 데이터베이스가 하나만 있을 수 있습니다.

    구성에 따라 DB 시스템에 할당된 리소스가 결정됩니다. 2방향 또는 3방향 미러링과 같은 옵션과 데이터 파일에 할당된 공간은 시스템에서 사용 가능한 스토리지 양에 영향을 줍니다.

  • 객체 스토리지

    오브젝트 스토리지를 사용하면 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠 등 모든 콘텐츠 유형의 대량의 정형 및 비정형 데이터에 빠르게 액세스할 수 있습니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하게 데이터를 저장하고 검색할 수 있습니다. 성능 또는 서비스 안정성의 저하 없이 스토리지를 확장할 수 있습니다. 빠르고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보관하고 거의 액세스하지 않는 "콜드" 스토리지에는 아카이브 스토리지를 사용합니다.

권장사항

다음 권장 사항을 시작점으로 사용합니다. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.
  • VCN

    VCN을 생성할 때 VCN의 서브넷에 연결할 리소스 수를 기준으로 필요한 CIDR 블록 수와 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    전용 접속을 설정할 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.

    VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.

    서브넷을 설계할 때 트래픽 흐름 및 보안 요구 사항을 고려합니다. 특정 계층 또는 역할 내의 모든 리소스를 보안 경계로 사용할 수 있는 동일한 서브넷에 연결합니다.

    지역별 서브넷을 사용합니다.

  • 보안

    Oracle Cloud Guard를 사용하여 Oracle Cloud Infrastructure에서 리소스의 보안을 사전에 모니터링하고 유지 관리할 수 있습니다. Cloud Guard는 정의 가능한 감지기 레시피를 사용하여 리소스의 보안 취약점을 검사하고 작업자와 사용자의 위험한 작업을 모니터합니다. 잘못 구성되거나 안전하지 않은 작업이 감지되면 Cloud Guard는 정의할 수 있는 응답기 레시피를 기반으로 수정 조치를 권장하고 해당 작업을 수행할 수 있도록 지원합니다.

    최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle에서 정의한 보안 정책 레시피와 연관된 구획입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 만들고 업데이트할 때 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 모든 정책을 위반하는 작업을 거부합니다.

  • Cloud Guard

    Oracle에서 제공하는 기본 레시피를 복제하고 사용자정의하여 사용자정의 감지기 및 응답기 레시피를 생성합니다. 이러한 레시피를 사용하면 경고를 생성하는 보안 위반 유형과 경고에 대해 수행할 수 있는 작업을 지정할 수 있습니다. 예를 들어 가시성이 공용으로 설정된 오브젝트 스토리지 버킷을 감지할 수 있습니다.

    테넌시 레벨에서 Cloud Guard를 적용하여 가장 광범위한 범위를 다루고 여러 구성을 유지 관리하는 관리 부담을 줄입니다.

    관리되는 목록 기능을 사용하여 감지기에 특정 구성을 적용할 수도 있습니다.

  • Security Zones

    최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle에서 정의한 보안 정책 레시피와 연관된 구획입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 생성 및 업데이트할 때 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 모든 정책을 위반하는 작업을 거부합니다.

  • NSG(네트워크 보안 그룹)

    NSG를 사용하여 특정 VNIC에 적용되는 수신 및 송신 규칙 세트를 정의할 수 있습니다. NSG를 사용하면 VCN의 서브넷 아키텍처와 애플리케이션의 보안 요구사항을 분리할 수 있으므로 보안 목록 대신 NSG를 사용하는 것이 좋습니다.

  • HPC 노드

    HPC 베어메탈 구성을 배포하여 성능을 극대화합니다.

    40GB 메모리가 있는 8개의 A100 텐서 코어 GPU, 2.9 GHz에서 2개의 32코어 AMD, 2048GB DDR4, 8개의 200Gbps 네트워킹, 4개의 6.4TB 로컬 NVMe SSD 스토리지(노드당 최대 1PB 블록)가 있는 BM.HPC4.8 구성을 사용합니다.

    최대 64개의 베어메탈 노드를 클러스터링하여 512개의 GPU와 4096개의 CPU를 제공합니다.

고려사항

이 참조 구조를 배치할 때는 다음 사항을 고려하십시오.

  • 성능

    작업 로드 크기에 따라 BERT를 실행할 코어 수를 결정합니다. 이렇게 하면 시뮬레이션이 적시에 완료됩니다.

    최상의 성능을 얻으려면 적절한 대역폭의 올바른 컴퓨트 구성을 선택하십시오.

  • 가용성

    배포 요구사항 및 지역에 따라 고가용성 옵션을 사용하는 것이 좋습니다. 옵션에는 지역 및 장애 도메인에서 여러 가용성 도메인 사용이 포함됩니다.

    • 모니터링 및 경보

      필요에 따라 구성을 확장하거나 축소할 수 있도록 노드에 대한 CPU 및 메모리 사용량에 대한 모니터링 및 경보를 설정합니다.

    • 비용

      베어메탈 GPU 인스턴스는 더 높은 비용으로 필요한 CPU 전력을 제공합니다. 요구사항을 평가하여 적절한 컴퓨트 구성을 선택합니다.

      실행 중인 작업이 없을 때 클러스터를 삭제할 수 있습니다.

  • 클러스터 파일 시스템

    다음과 같은 여러 시나리오가 있습니다.

    1. HPC 구성과 함께 제공되는 로컬 NVMe SSD 스토리지입니다.
    2. 다중 연결 블록 볼륨은 최대 2,680MB/s IO 처리량 또는 700k IOPS를 제공합니다.
    3. 성능 요구 사항에 따라 NVMe SSD 스토리지 또는 블록 스토리지 위에 고유한 병렬 파일 시스템을 설치할 수도 있습니다. OCI는 스크래치 및 영구 NFS 기반(NFS-HA, FSS) 또는 병렬 파일 시스템(weka.io, Spectrum Scale, BeeGFS, BeeOND, Lustre, Gluster, Quobyte) 솔루션을 제공합니다. 자세히 살펴보기를 참조하십시오. HPC 스토리지 팀에 문의하여 필요에 가장 적합한 솔루션을 설계하십시오.

확인

  • 작성자: Wei Han