Sparsity-Specific Code Optimization using Expression Trees

10/15/2021
by   Philipp Herholz, et al.
0

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 large problems and can achieve speedups of two orders of magnitude on CPUs and three orders of magnitude on GPUs, compared to a set of manually optimized CPU baselines. To demonstrate the practical applicability of our approach, we employ it to optimize popular algorithms with applications to physical simulation and interactive mesh deformation.

READ FULL TEXT
research
08/18/2016

Hybrid CPU-GPU Framework for Network Motifs

Massively parallel architectures such as the GPU are becoming increasing...
research
08/09/2021

Preparing for Performance Analysis at Exascale

Performance tools for emerging heterogeneous exascale platforms must add...
research
11/26/2020

Copy-and-Patch Binary Code Generation

Runtime compilation of runtime-constructed code is becoming standard pra...
research
04/22/2016

Opt: A Domain Specific Language for Non-linear Least Squares Optimization in Graphics and Imaging

Many graphics and vision problems can be expressed as non-linear least s...
research
10/06/2021

Massively Parallel Probabilistic Computing with Sparse Ising Machines

Inspired by the developments in quantum computing, building quantum-insp...
research
04/18/2022

Massive Parallelization of Massive Sample-size Survival Analysis

Large-scale observational health databases are increasingly popular for ...
research
03/13/2023

Multilevel Skeletonization Using Local Separators

In this paper we give a new, efficient algorithm for computing curve ske...

Please sign up or login with your details

Forgot password? Click here to reset