GPU原生Velox携手NVIDIA cuDF:颠覆大规模数据分析性能极限
随着数据规模持续扩大,对高效数据处理的需求日益增长,GPU加速的数据库与查询引擎在性能和成本效益方面已显著优于传统CPU系统。GPU凭借高内存带宽和海量线程,特别适合处理多表连接、复杂聚合、字符串运算等计算密集型任务。随着GPU计算节点的普及和GPU算法功能的不断完善,GPU数据处理正变得前所未有的可及。 为应对这一趋势,IBM与NVIDIA合作,将NVIDIA cuDF引入Velox执行引擎,使Presto和Apache Spark等主流平台能够实现原生GPU查询执行。该项目为开源项目,旨在推动大规模数据处理的性能跃升。 Velox作为中间层,负责将Presto或Spark的查询计划转换为由cuDF驱动的GPU可执行流水线。在Presto中,cuDF后端接收来自协调器的计划,使用GPU算子重写并执行。为实现端到端GPU执行,团队对TableScan、HashJoin、HashAggregation、FilterProject等关键算子进行了优化和扩展,充分发挥Presto的SQL解析、优化器和协调能力。 测试结果显示,在TPC-H基准测试中,使用Scale Factor 1,000的Parquet数据,单节点Presto在AMD 5965X CPU上耗时1,246秒,而在NVIDIA RTX PRO 6000工作站GPU上仅需133.8秒,使用NVIDIA GH200 Grace Hopper超级芯片更进一步降至99.9秒。借助CUDA托管内存,完整运行22个查询也仅需148.9秒。 在多GPU场景下,Presto采用基于UCX的交换算子,利用NVLink实现节点内高速互联,RoCE或InfiniBand支持节点间通信。在八卡NVIDIA DGX A100节点上,启用NVLink的GPU交换相比传统HTTP交换实现超过6倍的性能提升,所有22个查询均可在默认异步内存分配下完成。 在Apache Spark方面,通过与Apache Gluten集成,采用CPU-GPU混合执行策略,仅将计算最密集的阶段(如TPC-DS Query 95的第二阶段)卸载至GPU。即使第一阶段在CPU上执行,GPU加速仍显著缩短总运行时间。测试显示,在单节点、单GPU环境下,使用NVIDIA T4 GPU相比纯CPU配置效率大幅提升。 该开源项目通过Velox统一GPU算子,减少重复开发,提升维护性,并推动Presto、Spark等生态系统的性能进步。目前,IBM与NVIDIA团队正联合全球开发者持续推进,欢迎社区参与共建。