GPU에 대한 Dataflow 지원

Dataflow 작업에서 GPU를 사용하면 일부 데이터 처리 작업을 가속화할 수 있습니다. GPU는 CPU보다 특정 계산을 더 빠르게 수행할 수 있습니다. 이러한 계산은 일반적으로 이미지 처리 및 머신러닝 사용 사례와 같은 숫자 또는 선형 대수입니다. 성능 향상의 정도는 사용 사례, 계산 유형, 처리된 데이터 양에 따라 다릅니다.

Dataflow에서 GPU를 사용하기 위한 기본 요건

Dataflow는 Docker 컨테이너 내부의 작업자 VM에서 사용자 코드를 실행합니다. 이러한 작업자 VM은 컨테이너 최적화 OS를 실행합니다. Dataflow 작업에서 GPU를 사용하려면 다음 설치가 필요합니다.

커스텀 컨테이너 이미지를 제공하려면 Dataflow Runner v2를 사용하고 worker_harness_container_image 파이프라인 옵션을 사용하여 컨테이너 이미지를 제공해야 합니다.

GPU 드라이버 버전은 현재 Dataflow에서 사용되는 Container-Optimized OS 버전에 따라 다릅니다.

가격 책정

GPU를 사용하는 작업에는 Dataflow 가격 책정 페이지에 명시된 대로 요금이 청구됩니다. Dataflow의 GPU 리소스는 미리보기를 제공하는 동안 할인되지 않습니다.

고려사항

머신 유형 사양

GPU는 커스텀 N1 머신 유형을 포함한 N1 머신 유형에서 지원됩니다.

GPU의 유형과 개수는 작업자에서 사용할 수 있는 vCPU 및 메모리의 양에 대한 상한값 제한을 정의합니다. 해당 제한사항을 확인하려면 가용성 섹션을 참조하세요.

더 많은 수의 CPU 또는 메모리를 지정하려면 더 많은 수의 GPU를 지정해야 할 수 있습니다.

자세한 내용은 Compute Engine의 GPU를 참조하세요.

GPU 및 작업자 동시 로드

Runner v2 아키텍처를 사용하는 Python 파이프라인의 경우 Dataflow는 VM 코어당 하나의 Apache Beam SDK 프로세스를 시작합니다. 각 SDK 프로세스는 자체 Docker 컨테이너에서 실행되며 여러 스레드를 생성한 다음 각 스레드가 수신 데이터를 처리합니다.

이러한 다중 프로세스 아키텍처와 Dataflow 작업자의 GPU가 모든 프로세스 및 스레드에 표시되므로 GPU 초과 구독을 방지하려면 GPU 액세스에 대한 신중한 관리가 필요할 수 있습니다. 예를 들어 TensorFlow를 사용하는 경우 GPU 메모리의 일부만 사용하도록 각 TensorFlow 프로세스를 구성해야 합니다. 모든 프로세스가 GPU 메모리를 초과 구독하면 안 됩니다. 자세한 내용은 GPU 메모리 증가 제한을 참조하세요.

또는 하나의 vCPU가 있는 작업자를 사용하여 GPU에 액세스하는 동시 프로세스 수를 제한할 수 있습니다. 커스텀 머신 유형을 사용하여 vCPU가 1개인 머신의 메모리 용량을 늘릴 수 있습니다.

가용성

다음 표에는 사용 가능한 GPU 유형 및 사용자에게 제공되는 작업자 VM 구성이 있습니다.

GPU 모델 GPU GPU 메모리 사용 가능한 vCPU 사용 가능한 메모리 사용 가능한 영역
NVIDIA® Tesla® T4 GPU 1개 GDDR6 16GB vCPU 1 - 24개 1‑156GB
  • asia-east1-a
  • asia-east1-c
  • asia-northeast1-a
  • asia-northeast1-c
  • asia-northeast3-b
  • asia-northeast3-c
  • asia-south1-a
  • asia-south1-b
  • asia-southeast1-b
  • asia-southeast1-c
  • australia-southeast1-a
  • europe-west2-a
  • europe-west2-b
  • europe-west3-b
  • europe-west4-b
  • europe-west4-c
  • southamerica-east1-c
  • us-central1-a
  • us-central1-b
  • us-central1-f
  • us-east1-c
  • us-east1-d
  • us-east4-b
  • us-west1-a
  • us-west1-b
GPU 2개 GDDR6 32GB vCPU 1 - 48개 1‑312GB
GPU 4개 GDDR6 64GB vCPU 1 - 96개 1‑624GB
NVIDIA® Tesla® P4 GPU 1개 GDDR5 8GB vCPU 1 - 24개 1‑156GB
  • asia-southeast1-b
  • asia-southeast1-c
  • australia-southeast1-a
  • australia-southeast1-b
  • europe-west4-b
  • europe-west4-c
  • northamerica-northeast1-a
  • northamerica-northeast1-b
  • northamerica-northeast1-c
  • us-central1-a
  • us-central1-c
  • us-east4-a
  • us-east4-b
  • us-east4-c
  • us-west2-b
  • us-west2-c
GPU 2개 GDDR5 16GB vCPU 1 - 48개 1‑312GB
GPU 4개 GDDR5 32GB vCPU 1 - 96개 1‑624GB
NVIDIA® Tesla® V100 GPU 1개 HBM2 16GB vCPU 1 - 12개 1‑78GB
  • asia-east1-c
  • europe-west4-a
  • europe-west4-b
  • europe-west4-c
  • us-east1-c
  • us-central1-a
  • us-central1-b
  • us-central1-c
  • us-central1-f
  • us-west1-a
  • us-west1-b
GPU 2개 HBM2 32GB vCPU 1 - 24개 1‑156GB
GPU 4개 HBM2 64GB vCPU 1 - 48개 1‑312GB
GPU 8개 HBM2 128GB vCPU 1 - 96개 1‑624GB
NVIDIA® Tesla® P100 GPU 1개 HBM2 16GB vCPU 1 - 16개 1‑104GB
  • asia-east1-a
  • asia-east1-c
  • australia-southeast1-c
  • us-central1-c
  • us-central1-f
  • us-east1-b
  • us-east1-c
  • us-west1-a
  • us-west1-b
  • europe-west1-b
  • europe-west1-d
  • europe-west4-a
GPU 2개 HBM2 32GB vCPU 1 - 32개 1‑208GB
GPU 4개 HBM2 64GB

vCPU 1 - 64개
(us-east1-c, europe-west1-d, europe-west1-b)

vCPU 1 - 96개
(다른 모든 영역)

1‑208GB
(us-east1-c, europe-west1-d, europe-west1-b)

1‑624GB
(다른 모든 영역)

NVIDIA® Tesla® K80 GPU 1개 GDDR5 12GB vCPU 1 - 8개 1‑52GB
  • asia-east1-a
  • asia-east1-b
  • europe-west1-b
  • europe-west1-d
  • us-central1-a
  • us-central1-c
  • us-east1-c
  • us-east1-d
  • us-west1-b
GPU 2개 GDDR5 24GB vCPU 1 - 16개 1‑104GB
GPU 4개 GDDR5 48GB vCPU 1 - 32개 1‑208GB
GPU 8개 GDDR5 96GB vCPU 1 - 64개

1‑416GB
(asia-east1-a 및 us-east1-d)

1‑208GB
(다른 모든 영역)

참고:
  • 영역에 대한 자세한 내용은 리전 및 영역을 참조하세요.
  • NVIDIA® K80® 보드에는 각각 2개의 GPU가 들어 있습니다. K80 GPU의 가격은 보드가 아닌 GPU 기준으로 책정됩니다.

다음 단계