Litcius/Paper detail

A High Performance Sparse Tensor Algebra Compiler in MLIR

Ruiqin Tian, Luanzheng Guo, Jiajia Li, Bin Ren, Gökçen Kestor

202133 citationsDOI

Abstract

Sparse tensor algebra is widely used in many applications, including scientific computing, machine learning, and data analytics. The performance of sparse tensor algebra kernels strongly depends on the intrinsic characteristics of the input tensors, hence many storage formats are designed for tensors to achieve optimal performance for particular applications/architectures, which makes it challenging to implement and optimize every tensor operation of interest on a given architecture. We propose a tensor algebra domain-specific language (DSL) and compiler framework to automatically generate kernels for mixed sparse-dense tensor algebra operations. The proposed DSL provides high-level programming abstractions that resemble the familiar Einstein notation to represent tensor algebra operations. The compiler introduces a new Sparse Tensor Algebra dialect built on top of LLVM’s extensible MLIR compiler infrastructure for efficient code generation while covering a wide range of tensor storage formats. Our compiler also leverages input-dependent code optimization to enhance data locality for better performance. Our results show that the performance of automatically generated kernels outperforms the state-of-the-art sparse tensor algebra compiler, with up to 20.92x, 6.39x, and 13.9x performance improvement over state-of-the-art tensor algebra compilers, for parallel SpMV, SpMM, and TTM, respectively.

Topics & Concepts

Computer scienceCompilerTensor (intrinsic definition)Tensor algebraLinear algebraProgramming languageParallel computingAlgebra over a fieldTheoretical computer scienceMathematicsAlgebra representationCellular algebraPure mathematicsGeometryParallel Computing and Optimization TechniquesTensor decomposition and applicationsAlgorithms and Data Compression
A High Performance Sparse Tensor Algebra Compiler in MLIR | Litcius