Optimizing Datalog for the GPU
Published in International Conference on Architectural Support for Programming Languages and Operating Systems(ASPLOS), 2025
Modern Datalog engines (e.g., LogicBlox, Soufflé, ddlog) enable their users to write declarative queries which compute recursive deductions over extensional facts, leaving high-performance operationalization (query planning, semi-naïve evaluation, and parallelization) to the engine. Such engines form the backbone of modern high-throughput applications in static analysis, network monitoring, and social-media mining. In this paper, we present a methodology for implementing a modern in-memory Datalog engine on data center GPUs, allowing us to achieve significant (up to 45x) gains compared to Soufflé (a modern CPU-based engine) on context-sensitive points-to analysis of httpd. We present GPUlog, a Datalog engine backend that implements iterated relational algebra kernels over a novel range-indexed data structure we call the hash-indexed sorted array (HISA). HISA combines the algorithmic benefits of incremental range-indexed relations with the raw computation throughput of operations over dense data structures. Our experiments show that GPUlog is significantly faster than CPU-based Datalog engines while achieving a favorable memory footprint compared to contemporary GPU-based joins.
Recommended citation: Y. Sun, S. Ahmedur, G. Thomas, M. Kristopher, and K. Sidharth, “Optimizing Datalog for the GPU,” in International Conference on Architectural Support for Programming Languages and Operating Systems(ASPLOS), Rotterdam, The Netherlands, 2025.
Download Paper