针对 Apache Spark 优化 NVIDIA GPU 集群
您可以通过使用 GPU 提供程序的建议和安装可选库来优化 NVIDIA GPU 集群,以优化其性能。
当任务在 Oracle AI Data Platform 工作台中调用时,优化 GPU 集群有助于优化这些集群的性能。
对于基于 NVIDIA GPU 的集群,您可以按照 NVIDIA 的调优指南来获取优化性能的建议和步骤。
您还可以选择为 Apache Spark 库安装 NVIDIA cuDF 和 cuML 插件,以协助优化:
- cuDF Plugin for Apache Spark 库是 Apache Spark 的加速器,提供了一组利用 GPU 加速处理的插件。
- 适用于 Apache Spark 的 cuML 插件库支持基于 Apache Spark 的 GPU 加速分布式机器学习,并提供由 cuML 库提供支持的多种 PySpark ML 兼容算法。
cuDF 插件库通常首先用于功能工程和数据清理,然后使用 cuML 插件库大规模执行交叉验证。您可以将这些库用于欺诈检测(时间序列)、Web 点击流和 A/B 实验等用例。
表 9-2 建议的 Spark 配置
| 设置 | 值 | 附注 |
|---|---|---|
| spark.task.resource.gpu.amount | 0.0625 | 1 个 / spark.executor.cores |
| spark.rapids.sql.concurrentGpu 任务 | 3 | GPU 内存 / 8GB,最多 4 个 |
| spark.rapids.shuffle.multiThreaded.writer.threads | 32 | 每个工作进程的 CPU 核心数/GPU 计数 |
| spark.rapids.shuffle.multiThreaded.reader.threads | 32 | 每个工作进程的 CPU 核心数/GPU 计数 |
| spark.shuffle.manager | com.nvidia.spark.rapids.spark350.RapidsShuffleManager | - |
| spark.rapids.shuffle.mode | 多路径 | - |
| 火花插件 | com.nvidia.spark.SQLPlugin | - |
| spark.executor.resource.gpu.amount | 1 | - |
| spark.sql.files.maxPartitionBytes | 2 GB | 可选,建议用于大型数据集 |
| spark.rapids.sql.batchSizeBytes | 2 GB | 可选,建议用于大型数据集 |
| spark.rapids.memory.host.spillStorageSize | 32 G | 可选,建议用于大型数据集 |
| spark.rapids.memory.pinnedPool.size | 8 G | 可选,建议用于大型数据集 |
| spark.sql.adaptive.coalescePartitions.minPartitionSize | 32 MB | 可选,建议用于大型数据集 |
| spark.sql.adaptive.advisoryPartitionSizeInBytes | 160 MB | 可选,建议用于大型数据集 |
| spark.rapids.filecache.enabled | True | 可选,建议在工作负载将重用数据集时使用 |