2022
DOI: 10.1145/3520484
|View full text |Cite
|
Sign up to set email alerts
|

Sparsity-Specific Code Optimization using Expression Trees

Abstract: We introduce a code generator that converts unoptimized C++ code operating on sparse data into vectorized and parallel CPU or GPU kernels. Our approach unrolls the computation into a massive expression graph, performs redundant expression elimination, grouping, and then generates an architecture-specific kernel to solve the same problem, assuming that the sparsity pattern is fixed, which is a common scenario in many applications in computer graphics and scientific computing. We show that our approach scales to… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
6

Relationship

0
6

Authors

Journals

citations
Cited by 6 publications
(3 citation statements)
references
References 36 publications
0
3
0
Order By: Relevance
“…As the connectivity of the intrinsic Laplacian depends on the geometry and may change as the geometry changes, factorizations would have to be recalculated. THe iARAP Laplacian allows for a fixed symbolic factorization or sparse optimizations techniques that assume a fixed sparsity pattern [HTS*22] even after geometry changes.…”
Section: Discussionmentioning
confidence: 99%
“…As the connectivity of the intrinsic Laplacian depends on the geometry and may change as the geometry changes, factorizations would have to be recalculated. THe iARAP Laplacian allows for a fixed symbolic factorization or sparse optimizations techniques that assume a fixed sparsity pattern [HTS*22] even after geometry changes.…”
Section: Discussionmentioning
confidence: 99%
“…Graphs, particularly DAGs (Cosnard et al, 2004), are regularly used to represent codes at various levels, and as schedulers in heterogeneous architectures (Bosilca et al, 2011) The source code can be modeled as a graph representing each function as a vertex and dependencies between the functions as edges. Moreover, compiler optimization and automatic code generation regularly use expression graphs in their algorithms (Herholz et al, 2022); Kramer et al, 1992) Comparing the DAGS for the different refactored codes is an orthogonal method to identify whether the code is replicable after various optimizations.…”
Section: Replicability Of Codementioning
confidence: 99%
“…ADOL‐C [WG12] supports automatic inference of sparsity patterns by solving a graph coloring problem at run time. A recently‐described code generator [HTS∗22] supports automatic detection of per‐element computations and offers sparse second‐order differentiation in backward mode. The authors report striking run time performance, at the cost of limited branching capabilities and a more involved compilation procedure.…”
Section: Background and Related Workmentioning
confidence: 99%