Minimum Cost Loop Nests for Contraction of a Sparse Tensor with a Tensor Network
Raghavendra Kanakagiri, Edgar Solomonik
TL;DR
This work tackles the bottleneck of contracting a sparse input tensor with a tensor network of dense factors by automatically discovering minimum-cost loop nests for SpTTN kernels. It introduces SpTTN-Cyclops, a runtime that (i) enumerates contraction paths and loop orders, (ii) uses dynamic programming with tree-separable cost functions to prune the search, and (iii) executes optimized loop nests in distributed environments while leveraging BLAS where possible. The key contributions are a formal framework for loop-nest trees/forests, tractable DP-based optimization with concrete cost metrics (max buffer size and cache misses), and a practical runtime that outperforms generalized libraries and matches specialized codes on real-world workloads. The framework enables scalable, automatic optimization of a broad class of sparse-tensor contraction kernels relevant to tensor decomposition and completion, with strong empirical performance and avenues for future extensions such as partial fusion and broader data-distribution strategies.
Abstract
Sparse tensor decomposition and completion are common in numerous applications, ranging from machine learning to computational quantum chemistry. Typically, the main bottleneck in optimization of these models are contractions of a single large sparse tensor with a network of several dense matrices or tensors (SpTTN). Prior works on high-performance tensor decomposition and completion have focused on performance and scalability optimizations for specific SpTTN kernels. We present algorithms and a runtime system for identifying and executing the most efficient loop nest for any SpTTN kernel. We consider both enumeration of such loop nests for autotuning and efficient algorithms for finding the lowest cost loop-nest for simpler metrics, such as buffer size or cache miss models. Our runtime system identifies the best choice of loop nest without user guidance, and also provides a distributed-memory parallelization of SpTTN kernels. We evaluate our framework using both real-world and synthetic tensors. Our results demonstrate that our approach outperforms available generalized state-of-the-art libraries and matches the performance of specialized codes.
