Sparsity-Specific Code Optimization using Expression Trees
Philipp Herholz, Xuan Tang, Teseo Schneider, Shoaib Kamil, Daniele, Panozzo, Olga Sorkine-Hornung

TL;DR
This paper presents a code generator that transforms unoptimized sparse data operations into highly optimized vectorized and parallel kernels for CPUs and GPUs, significantly improving performance in scientific and graphics applications.
Contribution
It introduces a novel expression tree-based approach for architecture-specific sparse code optimization, scalable to large problems with substantial speedups.
Findings
Achieves up to 100x speedup on CPUs
Achieves up to 1000x speedup on GPUs
Effective in physical simulation and mesh deformation applications
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 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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Computer Graphics and Visualization Techniques · Generative Adversarial Networks and Image Synthesis
