Polars GPU引擎#
cuDF 为 Polars Lazy API 的 Python 用户提供了一个内存中的 GPU 加速执行引擎。 该引擎支持大多数核心表达式和数据类型,以及越来越多的更高级的数据框操作 和数据文件格式。当使用 GPU 引擎时,Polars 会将表达式转换为优化的查询计划,并确定 该计划是否在 GPU 上受支持。如果不支持,执行将透明地回退到标准的 Polars 引擎 并在 CPU 上运行。
基准测试#
注意
以下基准测试是在将POLARS_GPU_ENABLE_CUDA_MANAGED_MEMORY环境变量设置为“0”的情况下进行的。 使用托管内存(默认设置)会带来性能成本,以避免内存不足错误。 通过将环境变量设置为1,仍然可以达到峰值性能。
我们重现了Polars 决策支持 (PDS)基准测试,以比较 Polars GPU 引擎与默认 CPU 设置在多个数据集大小下的表现。以下是结果:
在使用GPU引擎处理涉及复杂聚合和连接操作的计算密集型PDS查询时,您可以看到高达13倍的加速。以下是表现最佳的查询的加速情况:
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上启动#
在免费的GPU笔记本环境中试用Polars的GPU引擎。使用您的Google账户登录并在Colab上启动演示。#
引擎配置选项: