π€ AI Summary
This work addresses the CPU computational bottleneck encountered by Presto in large-scale analytical queries by introducing the first deep integration of GPU execution into the Presto framework. The authors propose an end-to-end query processing architecture that retains data in GPU memory throughout the execution pipeline. By redesigning the execution engine, they enable GPU-aware scheduling, efficient data transfer from storage to GPU, and intra-operator data exchange directly within GPU memory in distributed environments. The system is built upon NVIDIAβs cuDF C++ library and guided by TPC-H benchmarks for optimization. Experimental results demonstrate that, under standard analytical workloads, the proposed approach achieves up to a 6Γ improvement in cost-performance ratio compared to native CPU-based Presto. The implementation has been upstreamed into the open-source Presto/Velox engine and deployed in production.
π Abstract
We describe how we extended Presto to be GPU-aware. We focus on two critical challenges: efficiently moving data from storage to GPU operators, and enabling data exchange between operators without leaving GPU memory even when a query is distributed. To guide our design, we conducted a series of initial experiments in which we executed queries derived from the TPC-H benchmark on a multi-GPU cluster using NVIDIA's C++ cuDF data-frame library, and measured how different architectures and configurations influenced performance. We show how these insights inform our extensions to Presto, detailing the architectural changes required to integrate GPU execution into the existing Presto framework. Our initial evaluation demonstrates substantial cost/performance (up to 6x) improvements over CPU Presto on standard analytical benchmarks. Our code is available as part of open-source Presto/Velox, and we have started to use it to run customer production workloads.