  Tensor algebra is essential for data-intensive workloads in various
computational domains. Computational scientists face a trade-off between the
specialization degree provided by dense tensor algebra and the algorithmic
efficiency that leverages the structure provided by sparse tensors. This paper
presents StructTensor, a framework that symbolically computes structure at
compilation time. This is enabled by Structured Tensor Unified Representation
(STUR), an intermediate language that can capture tensor computations as well
as their sparsity and redundancy structures. Through a mathematical view of
lossless tensor computations, we show that our symbolic structure computation
and the related optimizations are sound. Finally, for different tensor
computation workloads and structures, we experimentally show how capturing the
symbolic structure can result in outperforming state-of-the-art frameworks for
both dense and sparse tensor algebra.
