GPU VM 일괄 생성

일괄 생성 프로세스를 사용하여 그래픽 처리 장치(GPU)를 연결한 가상 머신(VM) 그룹을 만들 수 있습니다. 일괄 생성 프로세스를 사용하면 요청이 불가능한 경우 요청이 빠르게 실패하는 사전 검증을 받을 수 있습니다. 또한 리전 플래그를 사용하면 일괄 생성 API에서 해당 요청을 처리할 수 있는 용량을 가진 영역을 자동으로 선택합니다.

일괄 생성에 대해 자세히 알아보려면 VM 일괄 생성 정보를 참조하세요. GPU가 연결된 VM을 만드는 방법에 관한 자세한 내용은 GPU가 연결된 인스턴스 만들기 개요를 참조하세요.

시작하기 전에

  • 연결된 GPU가 있는 인스턴스를 만들 때의 제한사항과 OS 이미지 선택, GPU 할당량 확인과 같은 추가 기본 요건 단계를 검토하려면 연결된 GPU가 있는 인스턴스 만들기 개요를 참조하세요.
  • 일괄 생성 제한사항을 검토하려면 VM 일괄 생성 정보를 참조하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

      gcloud init

      외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

    2. Set a default region and zone.

    REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치합니다. 설치 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

      gcloud init

      외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

    자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참조하세요.

필요한 역할

VM을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 인스턴스 관리자(v1)(roles/compute.instanceAdmin.v1) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 VM을 만드는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

VM을 만들려면 다음 권한이 필요합니다.

  • 프로젝트에 대한 compute.instances.create 권한
  • 커스텀 이미지를 사용하여 VM 만들기: 이미지에 대한 compute.images.useReadOnly 권한
  • 스냅샷을 사용하여 VM 만들기: 스냅샷에 대한 compute.snapshots.useReadOnly 권한
  • 인스턴스 템플릿을 사용하여 VM 만들기: 인스턴스 템플릿에 대한 compute.instanceTemplates.useReadOnly 권한
  • VM의 서브넷 지정: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.use 권한
  • VM의 고정 IP 주소 지정: 프로젝트에 대한 compute.addresses.use 권한
  • VPC 네트워크를 사용할 때 VM에 외부 IP 주소 할당: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.useExternalIp 권한
  • VM에 레거시 네트워크 할당: 프로젝트에 대한 compute.networks.use 권한
  • 레거시 네트워크 사용 시 VM에 외부 IP 주소 할당: 프로젝트에 대한 compute.networks.useExternalIp 권한
  • VM에 VM 인스턴스 메타데이터 설정: 프로젝트에 대한 compute.instances.setMetadata 권한
  • VM에 태그 설정: VM에 대한 compute.instances.setTags 권한
  • VM에 라벨 설정: VM에 대한 compute.instances.setLabels 권한
  • VM에 사용할 서비스 계정 설정: VM에 대한 compute.instances.setServiceAccount 권한
  • VM의 새 디스크 만들기: 프로젝트에 대한 compute.disks.create 권한
  • 기존 디스크를 읽기 전용 또는 읽기-쓰기 모드로 연결: 디스크에 대한 compute.disks.use 권한
  • 기존 디스크를 읽기 전용 모드로 연결: 디스크에 대한 compute.disks.useReadOnly 권한

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

개요

일괄 생성 메서드를 사용하여 GPU가 연결된 VM을 만들 때 리전(예: us-central1) 또는 특정 영역(예: us-central1-a)에 VM을 만들 수 있습니다.

리전을 지정하면 Compute Engine에서 GPU를 지원하는 리전 내의 영역에 VM을 배치합니다.

머신 유형

가속기 최적화 머신 계열에는 여러 가지 머신 유형이 포함되어 있습니다.

각 가속기 최적화 머신 유형에는 권장 워크로드 유형을 지원하기 위해 특정 NVIDIA GPU 모델이 연결되어 있습니다.

AI 및 ML 워크로드 그래픽 및 시각화
가속기 최적화 A 시리즈 머신 유형은 고성능 컴퓨팅(HPC), 인공지능(AI), 머신러닝(ML) 워크로드에 적합합니다.

이러한 머신 유형의 경우 GPU 모델이 인스턴스에 자동으로 연결됩니다.

가속기 최적화 G 시리즈 머신 유형은 NVIDIA Omniverse 시뮬레이션 워크로드, 그래픽 집약적 애플리케이션, 동영상 트랜스코딩, 가상 데스크톱과 같은 워크로드에 적합합니다. 이러한 머신 유형은 NVIDIA RTX 가상 워크스테이션(vWS)을 지원합니다.

이러한 머신 유형의 경우 GPU 모델이 인스턴스에 자동으로 연결됩니다.

  • A4X(NVIDIA GB200 Superchips)
    (nvidia-gb200)
  • A4(NVIDIA B200)
    (nvidia-b200)
  • A3 Ultra(NVIDIA H200)
    (nvidia-h200-141gb)
  • A3 Mega(NVIDIA H100)
    (nvidia-h100-mega-80gb)
  • A3 High(NVIDIA H100)
    (nvidia-h100-80gb)
  • A3 Edge(NVIDIA H100)
    (nvidia-h100-80gb)
  • A2 Ultra(NVIDIA A100 80GB)
    (nvidia-a100-80gb)
  • A2 Standard(NVIDIA A100)
    (nvidia-a100-40gb)
  • G4(NVIDIA RTX PRO 6000)
    (nvidia-rtx-pro-6000)
    (nvidia-rtx-pro-6000-vws)
  • G2(NVIDIA L4)
    (nvidia-l4)
    (nvidia-l4-vws)

A4X, A4, A3 Ultra의 그룹 만들기

A4X, A4, A3 Ultra 머신 시리즈의 인스턴스를 일괄로 만들려면 AI 하이퍼컴퓨터 문서의 배포 옵션 개요를 참조하세요.

A3, A2, G4, G2 VM 그룹 만들기

이 섹션에서는 Google Cloud CLI 또는 REST를 사용하여 A3 High, A3 Mega, A3 Edge, A2 Standard, A2 Ultra, G4, G2 머신 시리즈의 인스턴스를 일괄 생성하는 방법을 설명합니다.

gcloud

VM 그룹을 만들려면 gcloud compute instances bulk create 명령어를 사용합니다. 파라미터와 이 명령어를 사용하는 방법에 대한 자세한 내용은 VM 일괄 생성을 참조하세요.

예시

이 예시에서는 다음 사양을 사용하여 GPU가 연결된 2개의 VM을 만듭니다.

gcloud compute instances bulk create \
    --name-pattern="my-test-vm-#" \
    --region=REGION \
    --count=2 \
    --machine-type=MACHINE_TYPE \
    --boot-disk-size=200 \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT \
    --on-host-maintenance=TERMINATE

다음을 바꿉니다.

  • REGION: VM 리전. 이 리전은 선택한 가속기 최적화 머신 유형을 지원해야 합니다.
  • MACHINE_TYPE: 선택한 머신 유형입니다. 다음 중 하나를 선택하세요.

  • IMAGE: GPU를 지원하는 운영체제 이미지입니다.

    이미지 계열에서 최신 이미지를 사용하려면 --image 플래그를 --image-family 플래그로 바꾸고 GPU를 지원하는 이미지 계열로 값을 설정합니다. 예를 들면 다음과 같습니다. --image-family=rocky-linux-8-optimized-gcp.

    커스텀 이미지 또는 Deep Learning VM Image를 지정할 수도 있습니다.

  • IMAGE_PROJECT: OS 이미지가 속한 Compute Engine 이미지 프로젝트입니다. 커스텀 이미지 또는 Deep Learning VM Image를 사용하는 경우 해당 이미지가 속하는 프로젝트를 지정합니다.

  • VWS_ACCELERATOR_COUNT: 필요한 가상 GPU 수

성공하면 다음과 비슷한 출력이 표시됩니다.

NAME          ZONE
my-test-vm-1  us-central1-b
my-test-vm-2  us-central1-b
Bulk create request finished with status message: [VM instances created: 2, failed: 0.]

선택적 플래그

워크로드 또는 운영체제 니즈가 충족되도록 인스턴스를 추가로 구성하려면 gcloud compute instances bulk create 명령어를 실행할 때 다음 플래그를 하나 이상 포함합니다.

기능 설명
프로비저닝 모델 인스턴스의 프로비저닝 모델을 설정합니다. SPOT 또는 FLEX_START를 지정합니다. FLEX_START는 G4 인스턴스에서 지원되지 않습니다. 모델을 지정하지 않으면 표준 모델이 사용됩니다. 자세한 내용은 Compute Engine 인스턴스 프로비저닝 모델을 참조하세요.
--provisioning-model=PROVISIONING_MODEL
가상 워크스테이션 그래픽 워크로드용 NVIDIA RTX 가상 워크스테이션(vWS)을 지정합니다. 이 기능은 G4 및 G2 인스턴스에서만 지원됩니다.
--accelerator=type=VWS_ACCELERATOR_TYPE,count=VWS_ACCELERATOR_COUNT

다음을 바꿉니다.

  • VWS_ACCELERATOR_TYPE의 경우 다음 중 하나를 선택합니다.
    • G4 인스턴스의 경우 nvidia-rtx-pro-6000-vws를 지정합니다.
    • G2 인스턴스의 경우 nvidia-l4-vws를 지정합니다.
  • VWS_ACCELERATOR_COUNT의 경우 필요한 가상 GPU 수를 지정합니다.
로컬 SSD 인스턴스에 로컬 SSD를 하나 이상 연결합니다. 로컬 SSD를 고속 스크래치 디스크에 또는 I/O 병목 현상을 방지하면서 GPU에 데이터를 피드하는 데 사용할 수 있습니다.
    --local-ssd=interface=nvme \
    --local-ssd=interface=nvme \
    --local-ssd=interface=nvme ...
VM 인스턴스당 연결할 수 있는 최대 로컬 SSD 디스크 수는 로컬 SSD 제한을 참조하세요.
네트워크 인터페이스 인스턴스에 네트워크 인터페이스 여러 개를 연결합니다. g4-standard-384 인스턴스의 경우 네트워크 인터페이스를 최대 2개까지 연결할 수 있습니다. 이 플래그를 사용하여 이중 네트워크 인터페이스(2x 200Gbps)가 있는 인스턴스를 만들 수 있습니다. 각 네트워크 인터페이스는 고유한 VPC 네트워크에 있어야 합니다.

   --network-interface=network=VPC_NAME_1,subnet=SUBNET_NAME_1,nic-type=GVNIC \
   --network-interface=network=VPC_NAME_2,subnet=SUBNET_NAME_2,nic-type=GVNIC
   

이중 네트워크 인터페이스는 g4-standard-384 머신 유형에서만 지원됩니다.

다음을 바꿉니다.

  • VPC_NAME: VPC 네트워크 이름
  • SUBNET_NAME: 지정된 VPC 네트워크에 속한 서브넷의 이름

REST

한 영역에 여러 VM을 만들려면 필수 매개변수와 함께 instances.bulkInsert 메서드를 사용하세요. 파라미터와 이 명령어를 사용하는 방법에 대한 자세한 내용은 VM 일괄 생성을 참조하세요.

예시

이 예시에서는 다음 사양을 사용하여 GPU가 연결된 2개의 VM을 만듭니다.

  • VM 이름: my-test-vm-1, my-test-vm-2
  • 각 VM에는 적절한 가속기 최적화 머신 유형을 사용하여 지정된 GPU가 두 개 연결되어 있습니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
    {
    "namePattern":"my-test-vm-#",
    "count":"2",
    "instanceProperties": {
      "machineType":MACHINE_TYPE,
      "disks":[
        {
          "type":"PERSISTENT",
          "initializeParams":{
            "diskSizeGb":"200",
            "sourceImage":SOURCE_IMAGE_URI
          },
          "boot":true
        }
      ],
      "name": "default",
      "networkInterfaces":
      [
        {
          "network": "projects/PROJECT_ID/global/networks/default"
        }
      ],
      "scheduling":{
        "onHostMaintenance":"TERMINATE",
        ["automaticRestart":true]
      }
    }
    }
    

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: VM의 리전입니다. 이 리전은 선택한 GPU 모델을 지원해야 합니다.
  • MACHINE_TYPE: 선택한 머신 유형입니다. 다음 중 하나를 선택하세요.

  • SOURCE_IMAGE_URI: 사용할 특정 이미지나 이미지 계열의 URI입니다.

    예를 들면 다음과 같습니다.

    • 특정 이미지: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
    • 이미지 계열: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"

    이미지 계열을 지정하면 Compute Engine이 해당 계열의 지원 중단되지 않은 최신 OS 이미지에서 VM을 만듭니다. 이미지 계열을 사용할 시기에 대한 자세한 내용은 이미지 계열 권장사항을 참조하세요.

선택적 플래그

워크로드 또는 운영체제 니즈가 충족되도록 인스턴스를 추가로 구성하려면 instances.bulkInsert 메서드를 실행할 때 다음 플래그를 하나 이상 포함합니다.

기능 설명
프로비저닝 모델 비용을 절감하려면 요청의 scheduling 객체에 "provisioningModel": "PROVISIONING_MODEL" 필드를 추가하여 다른 프로비저닝 모델을 지정하면 됩니다. 스팟 VM을 만들도록 지정하면 onHostMaintenanceautomaticRestart 필드가 무시됩니다. 자세한 내용은 Compute Engine 인스턴스 프로비저닝 모델을 참조하세요.
    "scheduling":
     {
       "onHostMaintenance": "terminate",
       "provisioningModel": "PROVISIONING_MODEL"
     }
  

PROVISIONING_MODEL를 다음 중 하나로 바꿉니다.

  • STANDARD: (기본값) 표준 인스턴스
  • SPOT: 스팟 VM
  • FLEX_START: Flex-start VM. Flex-start VM은 최대 7일 동안 실행되며 GPU와 같은 수요가 높은 리소스를 할인된 가격으로 사용할 수 있도록 지원합니다. G4 인스턴스에서는 이 프로비저닝 모델이 지원되지 않습니다.
가상 워크스테이션 그래픽 워크로드용 NVIDIA RTX 가상 워크스테이션(vWS)을 지정합니다. 이 기능은 G4 및 G2 인스턴스에서만 지원됩니다.
   "guestAccelerators":
     [
       {
         "acceleratorCount": VWS_ACCELERATOR_COUNT,
         "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/VWS_ACCELERATOR_TYPE"
       }
     ]
    

다음을 바꿉니다.

  • VWS_ACCELERATOR_TYPE의 경우 다음 중 하나를 선택합니다.
    • G4 인스턴스의 경우 nvidia-rtx-pro-6000-vws를 지정합니다.
    • G2 인스턴스의 경우 nvidia-l4-vws를 지정합니다.
  • VWS_ACCELERATOR_COUNT의 경우 필요한 가상 GPU 수를 지정합니다.
로컬 SSD 인스턴스에 로컬 SSD를 하나 이상 연결합니다. 로컬 SSD를 고속 스크래치 디스크에 또는 I/O 병목 현상을 방지하면서 GPU에 데이터를 피드하는 데 사용할 수 있습니다.
   {
     "type": "SCRATCH",
     "autoDelete": true,
     "initializeParams": {
       "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/local-nvme-ssd"
     }
   }
  
VM 인스턴스당 연결할 수 있는 최대 로컬 SSD 디스크 수는 로컬 SSD 제한을 참조하세요.
네트워크 인터페이스 인스턴스에 네트워크 인터페이스 여러 개를 연결합니다. g4-standard-384 인스턴스의 경우 네트워크 인터페이스를 최대 2개까지 연결할 수 있습니다. 이렇게 하면 이중 네트워크 인터페이스(2x 200Gbps)가 있는 인스턴스가 생성됩니다. 각 네트워크 인터페이스는 고유한 VPC 네트워크에 있어야 합니다.

   "networkInterfaces":
   [
     {
       "network": "projects/PROJECT_ID/global/networks/VPC_NAME_1",
       "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_1",
       "nicType": "GVNIC"
     },
     {
       "network": "projects/PROJECT_ID/global/networks/VPC_NAME_2",
       "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_2",
       "nicType": "GVNIC"
     }
   ]
  

이중 네트워크 인터페이스는 g4-standard-384 머신 유형에서만 지원됩니다.

다음을 바꿉니다.

  • VPC_NAME: VPC 네트워크 이름
  • SUBNET_NAME: 지정된 VPC 네트워크에 속한 서브넷의 이름

N1 범용 VM 그룹 만들기

Google Cloud CLI 또는 REST를 사용하여 GPU가 연결된 VM 그룹을 만듭니다.

이 섹션에서는 다음 GPU 유형을 사용하여 여러 VM을 만드는 방법을 설명합니다.

NVIDIA GPU:

  • NVIDIA T4: nvidia-tesla-t4
  • NVIDIA P4: nvidia-tesla-p4
  • NVIDIA P100: nvidia-tesla-p100
  • NVIDIA V100: nvidia-tesla-v100

NVIDIA RTX 가상 워크스테이션(vWS)(이전의 NVIDIA GRID):

  • NVIDIA T4 가상 스테이션: nvidia-tesla-t4-vws
  • NVIDIA P4 가상 워크스테이션: nvidia-tesla-p4-vws
  • NVIDIA P100 가상 워크스테이션: nvidia-tesla-p100-vws

    이러한 가상 워크스테이션의 경우 NVIDIA RTX 가상 워크스테이션(vWS) 라이선스가 인스턴스에 자동으로 추가됩니다.

gcloud

VM 그룹을 만들려면 gcloud compute instances bulk create 명령어를 사용합니다. 매개변수와 이 명령어를 사용하는 방법에 대한 자세한 내용은 VM 일괄 생성을 참고하세요.

예시

다음 예시에서는 다음 사양을 사용하여 GPU가 연결된 2개의 VM을 만듭니다.

  • VM 이름: my-test-vm-1, my-test-vm-2
  • GPU를 지원하는 us-central1의 모든 영역에서 생성된 VM
  • 각 VM에는 가속기 유형 및 가속기 수 플래그를 사용하여 지정된 T4 GPU가 두 개 연결되어 있습니다.
  • 각 VM에 GPU 드라이버가 설치되어 있습니다.
  • 각 VM에는 Deep Learning VM Image pytorch-latest-gpu-v20211028-debian-10가 사용됩니다.
gcloud compute instances bulk create \
    --name-pattern="my-test-vm-#" \
    --count=2 \
    --region=us-central1 \
    --machine-type=n1-standard-2 \
    --accelerator type=nvidia-tesla-t4,count=2 \
    --boot-disk-size=200 \
    --metadata="install-nvidia-driver=True" \
    --scopes="https://www.googleapis.com/auth/cloud-platform" \
    --image=pytorch-latest-gpu-v20211028-debian-10 \
    --image-project=deeplearning-platform-release \
    --on-host-maintenance=TERMINATE --restart-on-failure

성공하면 다음과 비슷한 출력이 표시됩니다.

NAME          ZONE
my-test-vm-1  us-central1-b
my-test-vm-2  us-central1-b
Bulk create request finished with status message: [VM instances created: 2, failed: 0.]

REST

한 영역에 여러 VM을 만들려면 필수 매개변수와 함께 instances.bulkInsert 메서드를 사용하세요. 매개변수와 이 명령어를 사용하는 방법에 대한 자세한 내용은 VM 일괄 생성을 참고하세요.

예시

다음 예시에서는 다음 사양을 사용하여 GPU가 연결된 2개의 VM을 만듭니다.

  • VM 이름: my-test-vm-1, my-test-vm-2
  • GPU를 지원하는 us-central1의 모든 영역에서 생성된 VM
  • 각 VM에는 가속기 유형 및 가속기 수 플래그를 사용하여 지정된 T4 GPU가 두 개 연결되어 있습니다.
  • 각 VM에 GPU 드라이버가 설치되어 있습니다.
  • 각 VM에는 Deep Learning VM Image pytorch-latest-gpu-v20211028-debian-10가 사용됩니다.

PROJECT_ID를 프로젝트 ID로 바꿉니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/instances/bulkInsert

{
    "namePattern":"my-test-vm-#",
    "count":"2",
    "instanceProperties": {
      "machineType":"n1-standard-2",
      "disks":[
        {
          "type":"PERSISTENT",
          "initializeParams":{
            "diskSizeGb":"200",
            "sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10"
          },
          "boot":true
        }
      ],
      "name": "default",
      "networkInterfaces":
      [
        {
          "network": "projects/PROJECT_ID/global/networks/default"
        }
      ],
      "guestAccelerators":
      [
        {
          "acceleratorCount": 2,
          "acceleratorType": "nvidia-tesla-t4"
        }
      ],
      "scheduling":{
        "onHostMaintenance":"TERMINATE",
        "automaticRestart":true
      },
      "metadata":{
        "items":[
          {
            "key":"install-nvidia-driver",
            "value":"True"
          }
        ]
      }
  }
 }

다음 단계