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:
- GPU-Treiber werden auf Worker-VMs installiert und sind für den Docker-Container zugänglich. Weitere Informationen finden Sie unter GPU-Treiber installieren.
- Die von Ihrer Pipeline erforderlichen GPU-Bibliotheken wie NVIDIA CUDA-X-Bibliotheken oder NVIDIA CUDA-Toolkit sind im benutzerdefinierten Container-Image installiert.
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 |
|
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 |
|
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 |
|
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 |
|
2 GPUs | 32 GB HBM2 | 1–32 vCPUs | 1–208 GB | ||
4 GPUs | 64 GB HBM2 | 1–64 vCPUs 1–96 vCPUs |
1–208 GB 1–208 GB |
||
NVIDIA® Tesla® K80 | 1 GPU | 12 GB GDDR5 | 1–8 vCPUs | 1 52 GB |
|
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 1–208 GB |
- 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
- Weitere Informationen zur Verwendung von GPUs
- Landsat-Satellitenbilder mit GPUs verarbeiten