Compiler Support for Sparse Tensor Computations in MLIR
Aart J. C. Bik, Penporn Koanantakool, Tatiana Shpeisman, Nicolas Vasilache, Bixia Zheng, Fredrik Kjølstad
Abstract
Sparse tensors arise in problems in science, engineering, machine learning, and data analytics. Programs that operate on such tensors can exploit sparsity to reduce storage requirements and computational time. Developing and maintaining sparse software by hand, however, is a complex and error-prone task. Therefore, we propose treating sparsity as a property of tensors, not a tedious implementation task, and letting a sparse compiler generate sparse code automatically from a sparsity-agnostic definition of the computation. This article discusses integrating this idea into MLIR.
Topics & Concepts
Computer scienceCompilerExploitComputationTask (project management)Property (philosophy)Sparse matrixTensor (intrinsic definition)SoftwareAnalyticsOptimizing compilerCode (set theory)Theoretical computer scienceParallel computingComputational scienceComputer engineeringProgramming languageData miningSet (abstract data type)ManagementComputer securityEconomicsPhilosophyEpistemologyMathematicsPhysicsPure mathematicsGaussianQuantum mechanicsParallel Computing and Optimization TechniquesTensor decomposition and applicationsNumerical Methods and Algorithms