Polars GPU 引擎#

cuDF 为 Polars Lazy API 的 Python 用户提供了一个内存中、GPU 加速的执行引擎。该引擎支持大部分核心表达式和数据类型,以及越来越多的更高级的 DataFrame 操作和数据文件格式。使用 GPU 引擎时,Polars 会将表达式转换为优化的查询计划,并确定该计划是否在 GPU 上受支持。如果不支持,执行将透明地回退到标准的 Polars 引擎并在 CPU 上运行。此功能目前处于公开测试阶段,正在快速开发中,并且当前是一个单 GPU 实现。

基准测试#

注意

以下基准测试是在 POLARS_GPU_ENABLE_CUDA_MANAGED_MEMORY 环境变量设置为 “0” 的情况下进行的。使用托管内存(默认设置)会带来性能开销,以避免内存不足错误。通过将环境变量设置为 1,仍可获得峰值性能。

我们复现了 Polars Decision Support (PDS) 基准测试,以比较 Polars GPU 引擎在不同数据集大小下与默认 CPU 设置的性能。结果如下:

../_images/pds_benchmark_polars.png

对于涉及复杂聚合和连接操作的计算密集型 PDS 查询,使用 GPU 引擎可实现高达 13 倍的加速。以下是性能最佳查询的加速比:

../_images/compute_heavy_queries_polars.png

PDS-H 基准测试 | GPU: NVIDIA H100 PCIe | CPU: Intel Xeon W9-3495X (Sapphire Rapids) | 存储: 本地 NVMe

您可以通过访问 Polars Decision Support (PDS) GitHub 仓库来复现结果。

了解更多#

Polars 的 GPU 引擎现已开放公开测试,并且正在快速开发中。要了解更多信息,请访问 Polars 网站上的 GPU 支持页面

在 Google Colab 上启动#

../_images/colab.png

在免费的 GPU notebook 环境中试用 Polars 的 GPU 引擎。使用您的 Google 帐户登录并在 Colab 上启动演示#

引擎配置选项