博客

技术分享

高效扩展 Polars 的 GPU Parquet 读取器

2025.04.11 29分钟阅读

高效扩展 Polars 的 GPU Parquet 读取器

在处理大型数据集时,数据处理工具的性能变得至关重要。Polars 是一个以速度和效率闻名的开源数据操作库,提供由 cuDF 驱动的 GPU 加速后端,可以显著提高性能。
“但是,为了充分利用 Polars GPU 后端 的强大功能,必须优化数据加载过程并有效管理工作流程所需的内存。随着 GPU 后端开发的不断推进,在使用 GPU Parquet 阅读器时,随着数据集大小的增加,我们还可以使用一些其他技术来保持高性能。现有的 Polars GPU Parquet 读取器 (到版本 24.10) 无法针对更高的数据集大小进行扩展。”
本文将探讨分块 Parquet Reader 与 Unified Virtual Memory (UVM) 相结合后,如何在性能上优于非分块阅读器和基于 CPU 的方法。

 

规模因素和非分块读取器带来的挑战

随着规模系数 (SF) 的增加,非分块 GPU Polars Reader (24.10) 往往难以实现。超过 SF200 后,性能会显著下降。在某些情况下,例如 Query 9,非分块 GPU 读取器会出现故障,甚至在达到 SF50 之前。这种限制是由于在 GPU 的内存中加载大型 Parquet 文件时存在内存限制而产生的。非分块 Parquet Reader 图中的缺失数据突出显示了在更高比例因子下遇到的 out-of-memory (OOM) 错误。

图片

图 1.Query 13 执行可靠性,24.10 至 24.12 Parquet Reader 对比

 

通过分块 Parquet 读取改善 IO 和峰值内存

为了克服这些内存限制,分块的 Parquet Reader 变得至关重要。通过以较小的数据块读取 Parquet 文件,显存占用减少,使 Polars GPU 能够处理更大的数据集。与非分块阅读器相比,使用具有 16 GB 通过读取限制的分块 Parquet Reader 可为任何给定查询执行更多的比例系数。对于 Query 9,必须使用 16 GB 或 32 GB 的分块 Parquet 读取数据,才能执行并获得更好的吞吐量。

图片

图 2.针对 Query 9 的不同规模因素按块大小 (pass_read_limit) 进行吞吐量比较

 

使用 UVM 读取更大的数据集

分块读取可改善内存管理,而 UVM 的集成可将性能提升至更高水平。UVM 使 GPU 能够直接访问系统内存,从而进一步缓解内存限制并提高数据传输效率。

为了进行比较,非 UVM 分块在达到 SF100 之前会遇到 OOM 错误。分块加 UVM 支持在更大规模的因素上成功执行查询,但吞吐量会受到影响。

图 3 显示了明显的优势。与非分块 Parquet Reader 相比,在启用 UVM 的分块 Parquet Reader 中成功执行的比例系数更多。

图片

图 3.对于 Query 13,分块加 UVM 与 CPU 与非 UVM 的吞吐量比较 (越高越好)

 

稳定性与吞吐量

选择最佳 pass_read_limit 时,务必要考虑稳定性和吞吐量之间的平衡。图 1-3 表明,16 GB 或 32 GB pass_read_limit 是稳定性和吞吐量的最佳组合。
  • 32 GB pass_read_limit:除 Query 9 和 Query 19 外,所有查询均已成功,但因 OOM 异常而失败

  • 16 GB pass_read_limit:所有查询均已成功

     

GPU 分块与 CPU 对比

当观察到的每个查询的吞吐量通常仍高于 CPU Polars 时,这允许许多查询在不进行分块的情况下无法完成。16 GB 或可能 32 GB 的 pass_read_limit 似乎是合理的。与非分块 Parquet 相比,16 GB 或 32 GB pass_read_limit 可在更大规模的因子下成功执行。

 

总结

对于 Polars GPU 而言,采用 UVM 的分块 Parquet Reader 通常优于 Polars CPU 和非分块 Parquet Reader,尤其是在处理大型数据集和大规模因子时。通过优化数据加载过程,您可以充分发挥 Polars GPU 的潜力,并实现显著的性能提升。作为最新 cudf-polars (24.12 及更高版本) 的一部分,分块的 Parquet Reader 和 UVM 是读取 Parquet 文件的默认方法。这使得上述所有查询和规模因素都得到了改进。
要开始使用,请安装 cuDF Polars(https://rapids.ai/)。

相关贴子

敬请登记。

登记
本网站受 reCAPTCHA 保护,适用 Google隐私政策和服务条款。