Table of Contents
Fetching ...

Optimizing Datalog for the GPU

Yihao Sun, Ahmedur Rahman Shovon, Thomas Gilray, Kristopher Micinski, Sidharth Kumar

TL;DR

GPUlog is presented, a Datalog engine backend that implements iterated relational algebra kernels over a novel range-indexed data structure the authors call the hash-indexed sorted array (HISA), which combines the algorithmic benefits of incremental range-indexed relations with the raw computation throughput of operations over dense data structures.

Abstract

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.

Optimizing Datalog for the GPU

TL;DR

GPUlog is presented, a Datalog engine backend that implements iterated relational algebra kernels over a novel range-indexed data structure the authors call the hash-indexed sorted array (HISA), which combines the algorithmic benefits of incremental range-indexed relations with the raw computation throughput of operations over dense data structures.

Abstract

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.
Paper Structure (20 sections, 8 equations, 6 figures, 5 tables, 3 algorithms)

This paper contains 20 sections, 8 equations, 6 figures, 5 tables, 3 algorithms.

Figures (6)

  • Figure 1: The execution results of each iteration in Same Generation (SG) query.
  • Figure 2: Example of a 3-arity relation with 2 join-columns (shown in color red) stored in HISA.
  • Figure 3: Workflow of semi-naïve evaluation.
  • Figure 4: Example of a join between two 3-arity relations Bar (inner) and Foo (outer).
  • Figure 4:
  • ...and 1 more figures