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 |