GPU가 연결된 N1 VM 만들기


이 문서에서는 GPU가 연결되어 있고 N1 머신 계열을 사용하는 VM을 만드는 방법을 설명합니다. N1 shared-core를 제외한 대부분의 N1 머신 유형을 사용할 수 있습니다.

시작하기 전에

  • OS 이미지 선택 및 GPU 할당량 확인과 같은 추가적인 기본 요건 단계를 검토하려면 개요 문서를 검토하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      자세한 내용은 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.networks.use 권한
  • VM의 고정 IP 주소 지정: 프로젝트에 대한 compute.addresses.use 권한
  • 레거시 네트워크 사용 시 VM에 외부 IP 주소 할당: 프로젝트에 대한 compute.networks.useExternalIp 권한
  • VM의 서브넷 지정: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.use 권한
  • VPC 네트워크를 사용할 때 VM에 외부 IP 주소 할당: 프로젝트 또는 선택한 서브넷에 대한 compute.subnetworks.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 권한

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

개요

N1 머신 계열을 사용하는 VM에 다음 GPU 모델을 연결할 수 있습니다.

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) 라이선스가 VM에 자동으로 추가됩니다.

GPU가 연결된 VM 만들기

Google Cloud 콘솔, Google Cloud CLI, REST를 사용하여 GPU가 연결된 N1 VM을 만들 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. VM의 이름을 지정합니다. 리소스 이름 지정 규칙을 참조합니다.

  3. GPU를 사용할 수 있는 리전 및 영역을 선택합니다. 사용 가능한 GPU 영역 목록을 참조하세요.

  4. 머신 구성 섹션에서 GPU 머신 계열을 선택한 후 다음을 수행합니다.

    1. GPU 유형 목록에서 N1 머신에서 지원되는 GPU 모델 중 하나를 선택합니다.
    2. GPU 수 목록에서 GPU 수를 선택합니다.
    3. GPU 모델이 그래픽 워크로드에 대한 NVIDIA RTX 가상 워크스테이션 (vWS)을 지원하고 이 VM에서 그래픽 집중 워크로드를 실행하려는 경우 가상 워크스테이션(NVIDIA GRID) 사용 설정을 선택하세요.

    4. 머신 유형 목록에서 사전 설정된 N1 머신 유형 중 하나를 선택합니다. 또는 커스텀 머신 유형 설정을 지정할 수도 있습니다.

  5. 부팅 디스크 섹션에서 변경을 클릭합니다. 그러면 부팅 디스크 구성 페이지가 열립니다.

  6. 부팅 디스크 구성 페이지에서 다음을 수행합니다.

    1. 공개 이미지 탭에서 지원되는 Compute Engine 이미지 또는 Deep Learning VM Image를 선택합니다.
    2. 부팅 디스크 크기를 최소 40GB 이상으로 지정합니다.
    3. 부팅 디스크 옵션을 확인하려면 선택을 클릭합니다.
  7. 선택사항: 프로비저닝 모델을 구성합니다. 예를 들어 워크로드가 내결함성이 있고 잠재적인 VM 선점을 견딜 수 있는 경우 스팟 VM을 사용하여 VM 및 연결된 GPU의 비용을 줄이는 것이 좋습니다. 자세한 내용은 스팟 VM의 GPU를 참조하세요. 이렇게 하려면 다음 단계를 완료해야 합니다.

    1. 가용성 정책 섹션의 VM 프로비저닝 모델 목록에서 Spot을 선택합니다. 이 설정은 VM의 자동 재시작 및 호스트 유지보수 옵션을 중지합니다.
    2. 선택사항: VM 종료 시 목록에서 Compute Engine이 VM을 선점할 때 수행되는 작업을 선택합니다.
      • 선점 중에 VM을 중지하려면 중지(기본값)를 선택합니다.
      • 선점 중에 VM을 삭제하려면 삭제를 선택합니다.
  8. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

VM을 만들고 시작하려면 다음 플래그와 함께 gcloud compute instances create 명령어를 사용합니다.

워크로드가 내결함성이고 잠재적인 VM 선점을 견딜 수 있는 경우 스팟 VM을 사용하여 VM 및 연결된 GPU의 비용을 줄이는 것이 좋습니다. 자세한 내용은 스팟 VM의 GPU를 참조하세요. --provisioning-model=SPOT은 VM을 스팟 VM으로 구성하는 선택적 플래그입니다. 스팟 VM의 경우 자동 재시작 및 호스트 유지보수 옵션 플래그가 중지됩니다.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE \
    [--provisioning-model=SPOT]

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • MACHINE_TYPE: VM에 대해 선택한 머신 유형입니다.
  • ZONE: VM의 영역입니다. 이 영역은 GPU 유형을 지원해야 합니다.
  • DISK_SIZE: 부팅 디스크의 크기(GB 단위)입니다. 부팅 디스크 크기를 최소 40GB 이상으로 지정합니다.
  • GPU를 지원하는 IMAGE 또는 IMAGE_FAMILY입니다. 다음 중 하나를 지정합니다.

    • IMAGE: 공개 이미지의 필수 버전입니다. 예를 들면 --image debian-10-buster-v20200309입니다.
    • IMAGE_FAMILY: 이미지 계열입니다. 이렇게 하면 지원 중단되지 않은 최신 OS 이미지를 사용하여 VM이 생성됩니다. 예를 들어 --image-family debian-10을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

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

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

  • ACCELERATOR_COUNT: VM에 추가하려는 GPU 수입니다. VM의 머신 유형을 기준으로 한 GPU 한도 목록은 Compute Engine의 GPU를 참조하세요.

  • ACCELERATOR_TYPE: 사용하려는 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) 라이선스가 VM에 자동으로 추가됩니다.

예시

예를 들어 다음 gcloud 명령어를 사용하여 us-east1-d 영역에서 NVIDIA T4 GPU 1개 및 vCPU 2개가 포함된 Ubuntu 22.04 VM을 시작할 수 있습니다.

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 \
    --zone us-east1-d \
    --boot-disk-size 40GB \
    --accelerator type=nvidia-tesla-t4,count=1 \
    --image-family ubuntu-2204-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE

REST

VM에 추가하려는 GPU 유형을 식별합니다. GET 요청을 제출하여 특정 영역에서 프로젝트에 사용할 수 있는 GPU 유형을 나열합니다.

워크로드가 내결함성이고 잠재적인 VM 선점을 견딜 수 있는 경우 스팟 VM을 사용하여 VM 및 연결된 GPU의 비용을 줄이는 것이 좋습니다. 자세한 내용은 스팟 VM의 GPU를 참조하세요. "provisioningModel": "SPOT"은 VM을 스팟 VM으로 구성하는 선택적 파라미터입니다. 스팟 VM의 경우 자동 재시작 및 호스트 유지보수 옵션 플래그가 중지됩니다.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: 사용 가능한 GPU 유형 목록을 확인하고 싶은 영역입니다.

POST 요청을 instances.insert 메서드로 보냅니다. 사용할 GPU 유형을 지정하는 acceleratorType 매개변수와 추가할 GPU 수를 지정하는 acceleratorCount 매개변수를 포함합니다. 또한 onHostMaintenance 매개변수를 TERMINATE로 설정합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "DISK_SIZE",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": ACCELERATOR_COUNT,
      "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
    }
  ],
  "scheduling":
  {
    ["automaticRestart": true],
    "onHostMaintenance": "TERMINATE",
    ["provisioningModel": "SPOT"]
  },
}

다음을 바꿉니다.

  • VM_NAME: VM의 이름입니다.
  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: VM의 영역입니다. 이 영역은 GPU 유형을 지원해야 합니다.
  • MACHINE_TYPE: VM에 선택한 머신 유형입니다. 원하는 GPU 수를 기준으로 사용 가능한 머신 유형을 확인하려면 Compute Engine의 GPU을 참조하세요.
  • IMAGE 또는 IMAGE_FAMILY: 다음 중 하나를 지정합니다.

    • IMAGE: 공개 이미지의 필수 버전입니다. 예를 들면 "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"입니다.
    • IMAGE_FAMILY: 이미지 계열입니다. 이렇게 하면 지원 중단되지 않은 최신 OS 이미지를 사용하여 VM이 생성됩니다. 예를 들어 "sourceImage": "projects/debian-cloud/global/images/family/debian-10"을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

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

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

  • DISK_SIZE: 부팅 디스크의 크기(GB 단위)입니다. 부팅 디스크 크기를 최소 40GB 이상으로 지정합니다.

  • NETWORK: VM에 사용하려는 VPC 네트워크입니다. 기본 네트워크를 사용하려면 default를 지정합니다.

  • ACCELERATOR_COUNT: VM에 추가하려는 GPU 수입니다. VM의 머신 유형을 기준으로 한 GPU 한도 목록은 Compute Engine의 GPU를 참조하세요.

  • ACCELERATOR_TYPE: 사용하려는 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) 라이선스가 VM에 자동으로 추가됩니다.

드라이버 설치

드라이버를 설치하려면 다음 옵션 중 하나를 선택합니다.

다음 단계