Optimizing Datalog for the GPU
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 45×) 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 favorable memory footprint compared to contemporary GPU-based joins.
Authors
- Ahmedur Rahman Shovon (ORCID: https://orcid.org/0000-0002-5718-4977)
- Yihao Sun (ORCID: https://orcid.org/0000-0003-0946-2511)
- Kristopher Micinski (ORCID: https://orcid.org/0000-0002-8650-0991)
- Thomas Gilray (ORCID: https://orcid.org/0000-0002-0393-8542)
- Sidharth Kumar (ORCID: https://orcid.org/0009-0007-0418-9962)
Institutions
- University of Illinois Chicago (US)
- Syracuse University (US)
- Washington State University (US)
Publication Details
- Published
- 2025-02-06
- DOI
- https://doi.org/10.1145/3669940.3707274
- Citations
- 1
- Primary Topic
- Graph Theory and Algorithms
- Type
- article
- Field-Weighted Citation Impact
- 1.28