Tensor algebra is an important computational abstraction that is increasingly used in data analytics, machine learning, engineering, and the physical sciences. However, the number of tensor expressions is unbounded, which makes it hard to develop and optimize libraries. Furthermore, the tensors are often sparse (most components are zero), which means the code has to traverse compressed formats. To support programmers we have developed taco, a code generation tool that generates dense, sparse, and mixed kernels from tensor algebra expressions. This paper describes the taco web and command-line tools and discusses the benefits of a code generator over a traditional library. See also the demo video at tensor-compiler.org/ase2017.





  title={taco: A Tool to Generate Tensor Algebra Kernels},
  author={Fredrik Kjolstad and Stephen Chou and David Lugato and Shoaib Kamil and Saman Amarasinghe},
  journal={32th IEEE/ACM International Conference on Automated Software Engineering},