In plain words: Compilers already track how simple numbers change across loop steps; this extends that trick to multi-dimensional arrays, handling moves like slicing, joining, stretching, and summing. It lets a compiler spot and speed up tensor math in loops that the older number-only analysis cannot see.
Abstract · Tensor Evolution: A Framework for Fast Evaluation of Tensor Computations using Recurrences
This paper introduces a new mathematical framework for analysis and optimization of tensor expressions within an enclosing loop. Tensors are multi-dimensional arrays of values. They are common in high performance computing (HPC) and machine learning domains. Our framework extends Scalar Evolution - an important optimization pass implemented in both LLVM and GCC - to tensors. Scalar Evolution (SCEV) relies on the theory of `Chain of Recurrences' for its mathematical underpinnings. We use the same theory for Tensor Evolution (TeV). While some concepts from SCEV map easily to TeV -- e.g. element-wise operations; tensors introduce new operations such as concatenation, slicing, broadcast, reduction, and reshape which have no equivalent in scalars and SCEV. Not all computations are amenable to TeV analysis but it can play a part in the optimization and analysis parts of ML and HPC compilers. Also, for many mathematical/compiler ideas, applications may go beyond what was initially envisioned, once others build on it and take it further. We hope for a similar trajectory for the tensor-evolution concept.
Javed Absar, Samarth Narang, Muthu Baskaran
arXiv:2502.03402 · cs.PL, cs.MS · submitted Feb 5, 2025 · updated Feb 7, 2025
abstract · pdf · html
Oh no, I'm never not going to read this as "tera-electron Volts". I wish they picked a different acronym!