このページは機械翻訳したものです。

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データ・フローのサービス・リクエストを申請してください。目的の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) 最大Network Bandwidth (Gbps) 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互換コマンドでは、含まれている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では、既存のData Flow Sparkアプリケーションをコードを変更せずに実行でき、NVIDIA RAPIDSアクセラレーションの利点を享受できます。

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

この記事は役に立ちましたか。