Looplets: A Language For Structured Coiteration

09/08/2022
by   Willow Ahrens, et al.
0

Real world arrays often contain underlying structure, such as sparsity, runs of repeated values, or symmetry. Specializing for structure yields significant speedups. But automatically generating efficient code for structured data is challenging, especially when arrays with different structure interact. We show how to abstract over array structures so that the compiler can generate code to coiterate over any combination of them. Our technique enables new array formats (such as 1DVBL for irregular clustered sparsity), new iteration strategies (such as galloping intersections), and new operations over structured data (such as concatenation or convolution).

READ FULL TEXT
research
05/01/2017

Thinned Coprime Arrays for DOA Estimation

Sparse arrays can generate a larger aperture than traditional uniform li...
research
05/31/2019

Reference Capabilities for Safe Parallel Array Programming

The array is a fundamental data structure that provides an efficient way...
research
07/20/2021

PandaPy: A Wrapper Around Structured Arrays to Mimic ‘Structs’ in the C Language

Similar to the original Pandas project, PandaPy is developed to improve ...
research
10/06/2020

The Improved GP 2 Compiler

GP 2 is a rule-based programming language based on graph transformation ...
research
01/30/2018

Information Measures for Microphone Arrays

We propose a novel information-theoretic approach for evaluating microph...
research
02/20/2023

Control Flow Duplication for Columnar Arrays in a Dynamic Compiler

Columnar databases are an established way to speed up online analytical ...
research
11/22/2022

Array-Aware Matching: Taming the Complexity of Large-Scale Simulation Models

Equation-based modelling is a powerful approach to tame the complexity o...

Please sign up or login with your details

Forgot password? Click here to reset