Dataflow-Unterstützung für GPUs

Mit GPUs in Dataflow-Jobs können Sie einige Datenverarbeitungsaufgaben beschleunigen. GPUs können bestimmte Berechnungen schneller ausführen als CPUs. Diese Berechnungen sind in der Regel numerisch oder lineare Algebra, wie die Anwendungsfälle im Bereich Bildverarbeitung und maschinelles Lernen. Der Umfang der Leistungsverbesserungen hängt vom Anwendungsfall, der Art der Berechnung und der verarbeiteten Datenmenge ab.

Voraussetzungen für die Verwendung von GPUs in Dataflow

Dataflow führt Nutzercode in Worker-VMs in einem Docker-Container aus. Auf diesen Worker-VMs wird Container-Optimized OS ausgeführt. Damit Dataflow-Jobs GPUs verwenden können, müssen folgende Installationen erfolgen:

Wenn Sie ein benutzerdefiniertes Container-Image bereitstellen möchten, müssen Sie Dataflow Runner v2 verwenden und das Container-Image mit der Pipeline-Option worker_harness_container_image bereitstellen.

Die GPU-Treiberversion hängt von der Container-Version des Container-Optimized OS ab, die derzeit von Dataflow verwendet wird.

Preise

Für Jobs, die GPUs verwenden, fallen Gebühren an, wie unter Preise für Dataflow beschrieben. Für GPU-Ressourcen in Dataflow werden während des Vorschauangebots keine Rabatte gewährt.

Hinweise

Spezifikationen für Maschinentypen

GPUs werden mit N1-Maschinentypen unterstützt, einschließlich benutzerdefinierter N1-Maschinentypen.

Typ und Anzahl der GPUs definieren die Obergrenzen für die verfügbare Anzahl von vCPUs und Arbeitsspeicher, die Worker haben können. Die entsprechenden Einschränkungen finden Sie im Abschnitt Verfügbarkeit.

Wenn Sie eine höhere Anzahl von CPUs oder Arbeitsspeicher angeben, müssen Sie möglicherweise eine höhere Anzahl von GPUs angeben.

Weitere Informationen finden Sie unter GPUs in Compute Engine.

GPUs und Parallelität der Worker

Bei Python-Pipelines mit der Runner v2-Architektur startet Dataflow einen Apache Beam SDK-Prozess pro VM-Kern. Jeder SDK-Prozess wird in einem eigenen Docker-Container ausgeführt und erzeugt somit viele Threads, die jeweils eingehende Daten verarbeiten.

Aufgrund dieser mehrfachen Prozessarchitektur und der Tatsache, dass GPUs in Dataflow-Workern für alle Prozesse und Threads sichtbar sind, ist möglicherweise eine spezielle Verwaltung des GPU-Zugriffs erforderlich, um eine GPU-Überbelegung zu vermeiden. Wenn Sie beispielsweise TensorFlow verwenden, müssen Sie jeden TensorFlow-Prozess so konfigurieren, dass nur ein Teil des GPU-Speichers belegt wird. Alle Prozesse zusammen sollten den GPU-Speicher nicht überbelegen. Weitere Informationen finden Sie unter GPU-Speicherwachstum beschränken.

Alternativ können Sie Worker mit einer vCPU verwenden, um die Anzahl der gleichzeitigen Prozesse zu beschränken, die auf die GPU zugreifen. Sie können die Speicherkapazität für Maschinen mit einer vCPU erhöhen, wenn Sie einen benutzerdefinierten Maschinentyp verwenden.

Verfügbarkeit

In der folgenden Tabelle sind die verfügbaren GPU-Typen und die verfügbare Worker-VM-Konfiguration aufgeführt.

GPU-Modell GPUs GPU-Speicher Verfügbare vCPUs Verfügbarer Speicher Verfügbare Zonen
NVIDIA® Tesla® T4 1 GPU 16 GB GDDR6 1–24 vCPUs 1–156 GB
  • 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
2 GPUs 32 GB GDDR6 1–48 vCPUs 1–312 GB
4 GPUs 64 GB GDDR6 1–96 vCPUs 1–624 GB
NVIDIA® Tesla® P4 1 GPU 8 GB GDDR5 1–24 vCPUs 1–156 GB
  • 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
2 GPUs 16 GB GDDR5 1–48 vCPUs 1–312 GB
4 GPUs 32 GB GDDR5 1–96 vCPUs 1–624 GB
NVIDIA® Tesla® V100 1 GPU 16 GB HBM2 1–12 vCPUs 1–78 GB
  • 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
2 GPUs 32 GB HBM2 1–24 vCPUs 1–156 GB
4 GPUs 64 GB HBM2 1–48 vCPUs 1–312 GB
8 GPUs 128 GB HBM2 1–96 vCPUs 1–624 GB
NVIDIA® Tesla® P100 1 GPU 16 GB HBM2 1–16 vCPUs 1–104 GB
  • 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
2 GPUs 32 GB HBM2 1–32 vCPUs 1–208 GB
4 GPUs 64 GB HBM2

1–64 vCPUs
(us-east1-c, europe-west1-d, europe-west1-b)

1–96 vCPUs
(alle anderen Zonen)

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

1–208 GB
(alle anderen Zonen)

NVIDIA® Tesla® K80 1 GPU 12 GB GDDR5 1–8 vCPUs 1 52 GB
  • 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
2 GPUs 24 GB GDDR5 1–16 vCPUs 1–104 GB
4 GPUs 48 GB GDDR5 1–32 vCPUs 1–208 GB
8 GPUs 96 GB GDDR5 1–64 vCPUs

1–416 GB
(asia-east1-a und us-east1-d)

1–208 GB
(alle anderen Zonen)

Hinweis:
  • Eine ausführlichere Beschreibung der Zonen finden Sie unter Regionen und Zonen.
  • NVIDIA® K80®-Karten beinhalten jeweils zwei GPUs. Die Preise für K80-GPUs richten sich nach der einzelnen GPU, nicht nach der Karte.

Nächste Schritte