GPU verwenden

Data Flow unterstützt vollständig verwaltete GPU-basierte Spark, um die Daten- und KI-ML-Pipeline zu beschleunigen und zu vereinheitlichen.

Der Spark RAPIDS-Beschleuniger von NVIDIA beschleunigt ETL auf Data Flow transparent und optimiert das Preis-Leistungs-Verhältnis. Führen Sie vorhandene Data Flow Spark-Anwendungen auf GPU ohne Codeänderungen aus, um die Vorteile der NVIDIA RAPIDS-Beschleunigung zu nutzen.

Voraussetzung

Die Spark-Mindestversion zur Ausführung von GPU-Ausprägungen in Data Flow ist Spark 3.2.1. Wenn Sie GPU-Ausprägungen in Data Flow verwenden möchten, reichen Sie eine Serviceanfrage für Oracle Cloud Infrastructure Data Flow ein. Geben Sie die gewünschte GPU-Ausprägung und den Anwendungsfall an. Diese Informationen werden verwendet, um das erforderliche Limit und die erforderliche Quota-Erhöhung für Ihren Mandanten durchzuführen.

Unterstützte Formen

  • VM.GPU.A10: X9-basierte GPU-Compute-Auslastung.
    • GPU: NVIDIA A10 24 GB
    • CPU: Intel Xeon Platinum 8358. Basisfrequenz 2,6 GHz, max. Turbofrequenz 3,4 GHz.
Unterstützte GPU-Ausprägungen
Form Anzahl OCPUs GPU-Arbeitsspeicher (GB) CPU-Arbeitsspeicher (GB) Block Storage (GB) Maximale Netzwerkbandbreite (Gbit/s) Maximale Gesamtzahl von VNICs (Linux)
VM.GPU.A10.1 (GPU: 1xA10 15 24 240 1.575 24 15
VM.GPU.A10.2 (GPU: 2xA10) 30 48 480 3.075 48 24

Weitere Informationen finden Sie in der Compute-Dokumentation.

Erste Schritte mit GPU-Ausprägungen für Spark in Data Flow

Wählen Sie beim Erstellen oder Ausführen einer Anwendung die entsprechende GPU-Ausprägung für die Treiber und Executors aus. Data Flow konfiguriert GPUs für Treiber und Executors mit der ressourcenbezogenen Planung von Apache Spark im Voraus. Konfigurieren Sie die Anwendung mit den Spark-Submit-Optionen.
Hinweis

Wenn Sie CPU- und GPU-Ausprägungen verschiedener Architekturen für Treiber und Executors mischen und abgleichen, stellen Sie sicher, dass die Anwendung und alle Abhängigkeiten architekturunabhängig sind.
Im Folgenden finden Sie zwei Beispiele für spark-submit-kompatible Befehle zum Aktivieren von GPU:
Optionen --jars und --conf verwenden
Dieser Spark-Submit-kompatible Befehl verwendet den enthaltenen NVIDIA RAPIDS-Beschleuniger für Apache Spark:
oci --profile <cli-profile> --auth security_token data-flow run submit  \
--compartment-id <compartment-id> \
--execute "--jars oci://dataflow_sample_apps@bigdatadatasciencelarge/rapids-4-spark_2.12-23.06.0.jar \
--driver-shape "VM.GPU.A10.1" \
--executor-shape "VM.GPU.A10.1" \
--num-executors 1
--spark-version "3.2.1" \
--conf spark.rapids.sql.explain=ALL \
--conf spark.plugins=com.nvidia.spark.SQLPlugin \
--class com.oracle.oci.dataflow.samples.DataFlowJavaSample \

oci://dataflow_sample_apps@bigdatadatasciencelarge/dataflow-java-sample-1.0-SNAPSHOT.jar"
Optionen --packages und --conf verwenden
Dieser spark-submit-kompatible Befehl ruft den neuesten NVIDIA RAPIDS-Beschleuniger für Apache Spark aus dem Maven-Repository ab:
oci --profile <cli-profile> --auth security_token data-flow run submit \
--compartment-id <compartment-id> \
--driver-shape "VM.GPU.A10.1" \
--executor-shape "VM.GPU.A10.1" \
--num-executors 1 \
--spark-version "3.2.1" \
--execute "--packages com.nvidia:rapids-4-spark_2.12-23.06.0 \
--conf spark.rapids.sql.explain=ALL
--conf spark.plugins=com.nvidia.spark.SQLPlugin \
--class com.oracle.oci.dataflow.samples.DataFlowJavaSample

oci://dataflow_sample_apps@bigdatadatasciencelarge/dataflow-java-sample-1.0-SNAPSHOT.jar"

Die neueste Spark-RAPIDS-Version finden Sie unter NVIDIA Spark RAPIDS-Downloadversion. Weitere Optimierungsoptionen finden Sie unter RAPIDS-Plug-in für Apache Spark Developer - Überblick.

Der Spark RAPIDS-Beschleuniger von NVIDIA kann transparent ETL beschleunigen und das Preis-Leistungs-Verhältnis in OCI Data Flow optimieren. Sie können vorhandene Data Flow Spark-Anwendungen auf GPUs ohne Codeänderungen ausführen, um die Vorteile der NVIDIA RAPIDS-Beschleunigung zu nutzen.

Wenn Sie den Spark RAPIDS-Beschleuniger von NVIDIA für die GPU verwenden, die in Data Flow ausgeführt wird, zeigt die Spark-UI alle CPU-Vorgänge an, die durch GPU-Vorgänge mit einem "GPU"-Präfix ersetzt werden. Beispiele: Beispiel für eine Spark-UI mit dem GPU-Präfix anstelle des CPU-Präfixes.