Gpu engines shrink memory use with tile-based decompression
Tile-Based Decompression in Compiled GPU Engines
DatabasesDistributed, Parallel, and Cluster Computing
Summary
Modern GPUs have limited high-speed memory, which can restrict how much data they can analyze quickly. The authors introduce a new method that compresses data and decompresses it right when needed inside GPU programs, without fully expanding the data first. This approach reduces memory use and data movement while keeping analysis speeds competitive. By making decompression a modular part of the processing pipeline, it’s easier to add new compression methods in the future.
What this means in practice
- •For database engineers: Implement GPU query engines that handle larger datasets efficiently by compressing and decompressing data on-chip to reduce memory usage and bandwidth.
- •For gpu software developers: Create GPU programs with modular decompression operators that can adapt to different compression encodings without redesigning the entire query processing pipeline.
Authors
Antonio Boffa, Ananya Gupta, Hamish Nicholson, Anastasia Ailamaki
Abstract
Modern GPUs reach record analytical performance only when a query's working set fits within its GPU memory budget, and that budget is under growing pressure: GPUs are partitioned and shared, working sets are outgrowing high-bandwidth memory (HBM), and HBM is a fixed on-device resource whose per-dollar capacity has stagnated across generations. Lightweight compression can relieve this pressure by shrinking both footprint and bandwidth demand, but existing GPU compressed-execution techniques either bind decompression to a specific execution model or materialize decompressed columns in HBM before query execution. We present a compression subsystem for compiled GPU query engines that treats decompression as a first-class physical operator. Compression-specific logic is isolated behind a narrow backend interface, so new GPU-oriented encodings can be added without rewriting downstream operators. We implement the design in Proteus and study where decompressed values should be materialized in the GPU memory hierarchy. Our compiler-integrated shared-memory strategy fuses cooperative tile decompression with tuple-at-a-time query execution inside a single generated GPU kernel, avoiding decompressed-column materialization in HBM. Compared with HeavyDB and Sirius on GPU-resident data, fused on-chip decompression achieves competitive query times while reducing the resident memory footprint by up to 4x and memory-bandwidth consumption by up to 6x.