Utilisation du processeur graphique

Le service de flux de données prend en charge Spark entièrement géré, basé sur un processeur graphique, pour accélérer et unifier le pipeline de données et d'intelligence artificielle pour l'apprentissage automatique.

L'accélérateur RAPIDS Spark de NVIDIA accélère l'ETC dans le service de flux de données et optimise le rendement-prix. Exécutez des applications Spark de flux de données existantes sur un processeur graphique sans modification du code pour tirer parti de l'accélération RAPIDS de NVIDIA.

Préalable

La version minimale de Spark pour exécuter des formes GPU sur le service de flux de données est Spark 3.2.1. Si vous souhaitez utiliser des formes GPU dans le service de flux de données, soumettez une demande de service pour Oracle Cloud Infrastructure Data Flow. Indiquez la forme de processeur graphique qui vous intéresse et décrivez votre cas d'utilisation. Ces informations sont utilisées pour atteindre la limite et l'augmentation de quota nécessaires pour votre location.

Formes prises en charge

  • VM.GPU.A10 : Calcul GPU basé sur X9.
    • GPU : NVIDIA A10 24 Go
    • UC : Intel Xeon Platinum 8358. Fréquence de base de 2,6 GHz, fréquence turbo maximale de 3,4 GHz.
Formes GPU prises en charge
forme Nombre d'OCPU Mémoire de GPU (Go) Mémoire d'UC (Go) Stockage par blocs (Go) bande passante de réseau maximale (Gbit/s) Nombre total maximal de cartes vNIC (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

Pour plus d'informations, consultez la Documentation de Compute.

Démarrage avec les formes GPU pour Spark dans le service de flux de données

Lors de la création d'une application ou d'une exécution, sélectionnez la forme de processeur graphique appropriée pour les pilotes et les exécuteurs. Le service de flux de données préconfigure les GPU pour les pilotes et les exécuteurs à l'aide de la programmation en fonction des ressources d'Apache Spark. Configurez l'application à l'aide des options Spark-submit.
Note

Lorsque vous mélangez et mettez en correspondance des formes d'UC et de GPU de différentes architectures pour votre pilote et vos exécuteurs, assurez-vous que l'application et toutes les dépendances sont indépendantes de l'architecture.
Les exemples de commandes compatibles avec spark-submit ci-dessous permettent d'activer un processeur graphique :
Utilisation des options --jars et --conf
Cette commande compatible Spark-submit utilise l'accélérateur NVIDIA RAPIDS inclus pour 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"
Utilisation des options --packages et --conf
Cette commande compatible avec spark-submit extrait le dernier accélérateur RAPIDS de NVIDIA pour Apache Spark du référentiel Maven :
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"

Pour la dernière version de Spark RAPIDS, sélectionnez Version de téléchargement de NVIDIA Spark RAPIDS. Pour plus d'options de réglage, voir le guide de réglage RAPIDS Accelerator for Apache Spark.

L'accélérateur Spark RAPIDS de NVIDIA peut, de façon transparente, accélérer l'extraction, la transformation et le chargement dans le service de flux de données pour OCI et optimiser le rapport prix-performance. Vous pouvez exécuter des applications Spark de flux de données existantes sur des processeurs graphiques avec aucune modification de code pour tirer parti de l'accélération RAPIDS de NVIDIA.

Lors de l'utilisation de l'accélérateur RAPIDS Spark de NVIDIA pour les GPU exécutés sur le service de flux de données, l'interface utilisateur Spark affiche toutes les opérations d'UC remplacées par des opérations GPU avec un préfixe 'GPU'. Par exemple : Exemple d'interface utilisateur Spark montrant le préfixe de GPU au lieu du préfixe d'UC.