Apache Spark用のNVIDIA GPUクラスタのチューニング
GPUプロバイダの推奨事項を使用し、オプションのライブラリをインストールすることで、NVIDIA GPUクラスタをチューニングしてパフォーマンスを最適化できます。
GPUクラスタをチューニングすると、Oracle AI Data Platform Workbenchのジョブによってコールされたときに、これらのクラスタのパフォーマンスを最適化できます。
NVIDIA GPUベースのクラスタの場合は、NVIDIAのチューニング・ガイドに従って、パフォーマンスを最適化するために実行できる推奨事項とステップを確認できます。
最適化を支援するために、Apache Sparkライブラリ用のNVIDIA cuDFおよびcuMLプラグインをインストールするオプションもあります。
- cuDF plugin for Apache Sparkライブラリは、Apache Sparkのアクセラレータであり、GPUを利用して処理を高速化する一連のプラグインを提供しています。
- cuML plug-in for Apache Sparkライブラリは、Apache Spark上でGPUアクセラレーションされた分散機械学習を可能にし、cuMLライブラリを搭載した複数のPySpark ML互換アルゴリズムを提供します。
cuDFプラグイン・ライブラリは、最初に機能エンジニアリングおよびデータ・クリーニングに使用され、その後、cuMLプラグイン・ライブラリを使用して大規模に相互検証が実行されます。これらのライブラリは、不正検出(時系列)、Webクリックストリーム、A/B実験などのユース・ケースに使用できます。
表9-2推奨されるSpark構成
| 設定 | Value | ノート |
|---|---|---|
| spark.task.resource.gpuマウント | 0.0625 | 1 / spark.executor.cores |
| spark.rapids.sql.concurrentGpuタスク | 3 | GPUメモリ/8GB、最大4 |
| spark.rapids.shuffle.multiThreaded.write.threads | 32 | ワーカー当たりのCPUコア/GPU数 |
| スパーク・ラピッド・シャッフル・マルチスレッド・リーダー・スレッド | 32 | ワーカー当たりのCPUコア/GPU数 |
| spark.shuffle. マネージャ | com.nvidia.spark.rapids.spark350.RapidsShuffleManager | - |
| spark.rapids.shuffle.mode | マルチスレッド | - |
| スパークプラグイン | com.nvidia.spark.SQLプラグイン | - |
| スパーク.executor.resource.gpu.amount | 1 | - |
| spark.sql.files.maxPartitionバイト数 | 2GB | オプションであり、大規模なデータセットに推奨されます |
| spark.rapids.sql.batchSizeバイト | 2GB | オプションであり、大規模なデータセットに推奨されます |
| spark.rapids.memory.host.spillStorageSize | 32G | オプションであり、大規模なデータセットに推奨されます |
| spark.rapids.memory.pinnedPool.size | 8G | オプションであり、大規模なデータセットに推奨されます |
| spark.sql.adaptive.coalescePartitions.minPartitionSize | 32Mバイト | オプションであり、大規模なデータセットに推奨されます |
| spark.sql.adaptive.advisoryPartitionSizeInバイト | 160MB | オプションであり、大規模なデータセットに推奨されます |
| spark.rapids.filecache.enabled | 真 | オプション。ワークロードがデータセットを再利用する場合にお薦めします |