GPUの使用

データ・フローは、完全管理型のGPUベースのSparkをサポートし、データおよびAI MLパイプラインを高速化および統合します。

NVIDIAのSpark RAPIDSアクセラレータにより、データ・フローのETLが透過的に高速化され、コストパフォーマンスが最適化されます。GPUでは、既存のData Flow Sparkアプリケーションをコードを変更せずに実行でき、NVIDIA RAPIDSアクセラレーションの利点を享受できます。

前提条件

データ・フローでGPUシェイプを実行するためのSparkの最小バージョンはSpark 3.2.1です。データ・フローでのGPUシェイプの使用に関心がある場合は、Oracle Cloud Infrastructure Data Flowのサービス・リクエストを提出してください。目的のGPUシェイプを指定し、ユースケースをお知らせください。この情報は、テナンシに必要な制限と割当てを引き上げるために使用されます。

サポートされるシェイプ

  • VM.GPU.A10: X9ベースのGPUコンピュート。
    • GPU: NVIDIA A10 24GB
    • CPU: Intel Xeon Platinum 8358。ベース周波数2.6GHz、最大ターボ周波数3.4GHz。
サポートされているGPUシェイプ
形状 OCPUの数 GPUメモリー(GB) CPUメモリー(GB) ブロック・ストレージ(GB) 最大ネットワーク帯域幅 VNICの最大数(Linux)
VM.GPU.A10.1 (GPU: 1xA10 15 24 240 1575 24 15
VM.GPU.A10.2 (GPU: 2xA10) 30 48 480 3075 48 24

詳細は、コンピュート・ドキュメントを参照してください。

データ・フロー上のSparkのGPUシェイプの開始

アプリケーションの作成時または実行時に、ドライバおよびエグゼキュータに適したGPUシェイプを選択します。データ・フローは、Apache Sparkのリソース対応スケジューリングを使用して、ドライバおよびエグゼキュータのGPUを事前構成します。Spark-submitオプションを使用してアプリケーションを構成します。
ノート

ドライバおよびエグゼキュータ用に異なるアーキテクチャのCPUおよびGPUシェイプを混在させて照合する場合は、アプリケーションおよびすべての依存関係がアーキテクチャに依存していないことを確認してください。
次に、GPUを有効にするspark-submitの互換コマンドの例を2つ示します。
Using --jars and --conf options
このSpark-submit-compatibleコマンドでは、含まれているApache Spark用のNVIDIA RAPIDSアクセラレータが使用されます:
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"
Using --packages and --conf options
このSpark-submitの互換コマンドでは、Mavenリポジトリから、最新のApache Spark用のNVIDIA RAPIDSアクセラレータが取得されます:
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"

最新のSpark RAPIDSバージョンについては、NVIDIA Spark RAPIDSダウンロード・バージョンを確認してください。チューニング・オプションの詳細は、RAPIDS Accelerator for Apache Sparkチューニング・ガイドを参照してください。

NVIDIAのSpark RAPIDSアクセラレータは、OCI Data Flowで透過的にスピードアップETLを実現し、価格性能を最適化できます。GPUでは、NVIDIA RAPIDSアクセラレーションの利点を享受するために、コードを変更せずに既存のData Flow Sparkアプリケーションを実行できます。

NVIDIAのSpark RAPIDSアクセラレータをデータ・フローで実行する場合、Spark UIには、GPU操作に置き換えられたCPU操作が「GPU」接頭辞で表示されます。次に例を示します: CPU接頭辞ではなくGPU接頭辞を示すSpark UIの例。