Saved in:
Bibliographic Details
Main Authors: Van der Cruysse, Jonathan, Dubach, Christophe
Format: Preprint
Published: 2023
Subjects:
Online Access:https://arxiv.org/abs/2312.17682
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866910283750965248
author Van der Cruysse, Jonathan
Dubach, Christophe
author_facet Van der Cruysse, Jonathan
Dubach, Christophe
contents Accelerating programs is typically done by recognizing code idioms matching high-performance libraries or hardware interfaces. However, recognizing such idioms automatically is challenging. The idiom recognition machinery is difficult to write and requires expert knowledge. In addition, slight variations in the input program might hide the idiom and defeat the recognizer. This paper advocates for the use of a minimalist functional array language supporting a small, but expressive, set of operators. The minimalist design leads to a tiny sets of rewrite rules, which encode the language semantics. Crucially, the same minimalist language is also used to encode idioms. This removes the need for hand-crafted analysis passes, or for having to learn a complex domain-specific language to define the idioms. Coupled with equality saturation, this approach is able to match the core functions from the BLAS and PyTorch libraries on a set of computational kernels. Compared to reference C kernel implementations, the approach produces a geometric mean speedup of 1.46x for C programs using BLAS, when generating such programs from the high-level minimalist language.
format Preprint
id arxiv_https___arxiv_org_abs_2312_17682
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Latent Idiom Recognition for a Minimalist Functional Array Language using Equality Saturation
Van der Cruysse, Jonathan
Dubach, Christophe
Programming Languages
Accelerating programs is typically done by recognizing code idioms matching high-performance libraries or hardware interfaces. However, recognizing such idioms automatically is challenging. The idiom recognition machinery is difficult to write and requires expert knowledge. In addition, slight variations in the input program might hide the idiom and defeat the recognizer. This paper advocates for the use of a minimalist functional array language supporting a small, but expressive, set of operators. The minimalist design leads to a tiny sets of rewrite rules, which encode the language semantics. Crucially, the same minimalist language is also used to encode idioms. This removes the need for hand-crafted analysis passes, or for having to learn a complex domain-specific language to define the idioms. Coupled with equality saturation, this approach is able to match the core functions from the BLAS and PyTorch libraries on a set of computational kernels. Compared to reference C kernel implementations, the approach produces a geometric mean speedup of 1.46x for C programs using BLAS, when generating such programs from the high-level minimalist language.
title Latent Idiom Recognition for a Minimalist Functional Array Language using Equality Saturation
topic Programming Languages
url https://arxiv.org/abs/2312.17682