SuperAPI AI 工具集

udf-benchmark

测试与质量

查看项目

更新于 10-15 23:46

技能介绍

用途:对 Apache Spark UDF 在 GPU 上的性能进行基准测试与性能分析,属于 UDF 转换工作流的第 3 步(udf-gen-test -> udf-convert-to-* -> udf-benchmark)。

主要能力:实现 BenchUtils 中的 TODO 方法;用小数据集验证 CPU 与 GPU 实现;生成大规模基准数据并运行 CPU/GPU 基准测试;对 cuDF RapidsUDF 转换执行内存微基准测试(SQL 目标跳过此步)。结果以 JSON 文件保存到 results/ 目录。

使用方式:前置条件为 Steps 1-2 生成的项目目录(udf-gen-test、udf-convert-to-*)且测试通过。从 UDF 类名推导 <CamelName> 与 <snake_name>。先读取 src/main/scala/com/udf/bench/BenchUtils.scala 并替换占位符、按 docstring 填写 TODO 方法。执行 chmod +x *.sh 后运行 ./run_gen_data.sh --rows 1000 --validate 验证;再运行 ./run_gen_data.sh --rows 10000000 生成数据,随后分别运行 ./run_spark_benchmark.sh --mode cpu --data-path data/bench_data_10000000_rows.parquet 与 --mode gpu 进行基准测试。脚本默认堆大小在 .mvn/jvm.config 中设为 16g,可按数据规模调整。cuDF 微基准测试需遵循 CUDF_MICROBENCHMARKS.md。

适用场景:需要评估 Spark UDF 在 GPU 上性能表现的转换项目。

限制:命令需要访问 /tmp(Spark 临时存储)与 /dev(GPU 设备),若因沙箱限制失败需在非沙箱环境重跑;SQL 目标跳过 cuDF 微基准测试步骤;编辑前需创建并维护可见的 TODO 清单,全部完成前不得给出最终答案。其他细节暂未提供。