Automatically Harnessing Sparse Acceleration

01/22/2020
by   Philip Ginsbach, et al.
0

Sparse linear algebra is central to many scientific programs, yet compilers fail to optimize it well. High-performance libraries are available, but adoption costs are significant. Moreover, libraries tie programs into vendor-specific software and hardware ecosystems, creating non-portable code. In this paper, we develop a new approach based on our specification Language for implementers of Linear Algebra Computations (LiLAC). Rather than requiring the application developer to (re)write every program for a given library, the burden is shifted to a one-off description by the library implementer. The LiLAC-enabled compiler uses this to insert appropriate library routines without source code changes. LiLAC provides automatic data marshaling, maintaining state between calls and minimizing data transfers. Appropriate places for library insertion are detected in compiler intermediate representation, independent of source languages. We evaluated on large-scale scientific applications written in FORTRAN; standard C/C++ and FORTRAN benchmarks; and C++ graph analytics kernels. Across heterogeneous platforms, applications and data sets we show speedups of 1.1× to over 10× without user intervention.

READ FULL TEXT

page 3

page 5

page 8

research
12/30/2019

Linnea: Automatic Generation of Efficient Linear Algebra Programs

The translation of linear algebra computations into efficient sequences ...
research
08/13/2019

Type-Directed Program Synthesis and Constraint Generation for Library Portability

Fast numerical libraries have been a cornerstone of scientific computing...
research
02/05/2022

Source Matching and Rewriting

A typical compiler flow relies on a uni-directional sequence of translat...
research
08/05/2021

Accelerating XOR-based Erasure Coding using Program Optimization Techniques

Erasure coding (EC) affords data redundancy for large-scale systems. XOR...
research
08/13/2019

Type-Directed Program Synthesis and Constraint Generation for Accelerator Library Portability

Fast numerical libraries have been a cornerstone of scientific computing...
research
05/05/2023

StarPlat: A Versatile DSL for Graph Analytics

Graphs model several real-world phenomena. With the growth of unstructur...
research
06/03/2021

Optimistic Concurrency Control for Real-world Go Programs (Extended Version with Appendix)

We present a source-to-source transformation framework, GOCC, that consu...

Please sign up or login with your details

Forgot password? Click here to reset