NVIDIA-GPU-Cluster für Apache Spark optimieren

Sie können Ihre NVIDIA-GPU-Cluster optimieren, um ihre Performance zu optimieren, indem Sie Empfehlungen des GPU-Providers verwenden und optionale Bibliotheken installieren.

Das Tuning von GPU-Clustern kann dazu beitragen, die Performance dieser Cluster zu optimieren, wenn sie von Jobs in der Oracle AI Data Platform Workbench aufgerufen werden.

Für NVIDIA-GPU-basierte Cluster können Sie den Tuning Guide von NVIDIA befolgen, um Empfehlungen und Schritte zur Performanceoptimierung zu erhalten.

Sie haben auch die Möglichkeit, NVIDIA cuDF- und cuML-Plug-ins für Apache Spark-Bibliotheken zu installieren, um die Optimierung zu unterstützen:

  • Die CuDF-Plug-in-Bibliothek für Apache Spark ist ein Accelerator für Apache Spark und stellt eine Reihe von Plug-ins bereit, die GPUs nutzen, um die Verarbeitung zu beschleunigen.
  • Das cuML-Plug-in für die Apache Spark-Bibliothek ermöglicht GPU-beschleunigtes, verteiltes maschinelles Lernen auf Apache Spark und stellt mehrere mit PySpark ML kompatible Algorithmen bereit, die von der cuML-Bibliothek unterstützt werden.

Die cuDF-Plug-in-Bibliothek wird häufig zuerst für Feature Engineering und Datenreinigung verwendet. Anschließend wird die Kreuzvalidierung in großem Maßstab mit der cuML-Plug-in-Bibliothek durchgeführt. Sie können diese Bibliotheken für Anwendungsfälle wie Betrugserkennung (Zeitreihen), Web-Clickstream und A/B-Experimente verwenden.

Tabelle 9-2: Empfohlene Spark-Konfigurationen

Einstellung Datum Hinweis
spark.task.resource.gpu.amount 0,062 1 / funken.executor.cores
spark.rapids.sql.concurrentGpuTasks 3 GPU-Speicher / 8 GB, maximal 4
funken.rapids.shuffle.multiThreaded.writer.threads 32 CPU-Cores/GPU-Anzahl pro Worker
funken.rapids.shuffle.multiThreaded.reader.threads 32 CPU-Cores/GPU-Anzahl pro Worker
funken.shuffle.manager com.nvidia.spark.rapids.spark350. RapidsShuffleManager -
funken.rapids.shuffle.mode MULTITHREADING -
funken.plugins com.nvidia.spark.SQLPlugin -
spark.executor.resource.gpu.amount 1 -
spark.sql.files.maxPartitionBytes 2 GB Optional, empfohlen für große Datasets
spark.rapids.sql.batchSizeBytes 2 GB Optional, empfohlen für große Datasets
spark.rapids.memory.host.spillStorageGröße 32 G Optional, empfohlen für große Datasets
funken.rapids.memory.pinnedPool.size 8 G Optional, empfohlen für große Datasets
spark.sql.adaptive.coalescePartitionen.minPartitionGröße 32 MB Optional, empfohlen für große Datasets
spark.sql.adaptive.advisoryPartitionSizeInBytes 160 MB Optional, empfohlen für große Datasets
spark.rapids.filecache.enabled Wahr Optional, empfohlen, wenn Workloads Datasets wiederverwenden