GraphX: Automatic Code Generation for High-Performance Graph Algorithms
- 1. Pacific Northwest National Laboratory
- 2. Horizon Robotics
Description
Graph problems are common across fields of scientific computing and social sciences. However, despite their importance, implementing graph algorithms effectively on modern computing systems is a challenging task that requires significant programming effort and generally results in customized implementations. Current computing and memory hierarchies are not architected for irregular computations resulting in challenges for graph algorithms to achieve high performance on those architectures. In this paper, we present GraphX, a novel compiler framework and DSL designed to simplify the development of efficient graph algorithms and achieve high performance on modern computing systems. GraphX consists of a DSL for efficient implementation of graph algorithms, various optimizations, such as support for sparse linear algebra and workspace transformations, optimized graph primitives, including semiring and masking, and a high-performance code generation engine. Using GraphX, users can implement graph algorithms using a semantically-rich language with graph-oriented operators. GraphX uses these semantics to automatically generate efficient code for target architectures, increasing performance and portability across architectures. The composable nature of GraphX makes it possible to extend the set of optimizations and architectures without modifying the source code. We demonstrate GraphX outperforms state-of-the-art graph libraries, such as LAGraph, up to 3.7× speedup in semiring operations, 2.19× speedup in an important sparse computational kernel, and 9.05× speedup in graph processing algorithms.
Files
COMET-pact23-ae.zip
Files
(1.2 MB)
Name | Size | Download all |
---|---|---|
md5:5efe3178291c5740b69086983189c101
|
1.2 MB | Preview Download |