A Performance Portable Matrix Free Dense MTTKRP in GenTen
Gabriel Kosmacher, Eric T. Phipps, Sivasankaran Rajamanickam
TL;DR
This work extends GenTen with portable, matrix-free dense MTTKRP variants that avoid explicitly forming the Khatri–Rao product, achieving memory complexity of $O(R\sum_{n=1}^d I_n)$ versus $O(R\prod_{n\neq k} I_n)$ for matrix-based methods. Among the proposed algorithms, MTTKRP-ELEM, MTTKRP-SLICE, and MTTKRP-TILE offer progressively cache-aware, tile-based strategies, with MTTKRP-TILE achieving substantial single-GPU gains and enabling rank-$2000$ decompositions on a single NVIDIA H100 compared to requiring six GPUs for GEMM-based MTTKRP. Analytical performance models (including $T_0$, $T_{\infty}$, and $T_{0,LM}$) and a tile-size heuristic guide algorithm selection and parameter tuning, validated by CPU and GPU experiments on large tensors (e.g., tear2tear1 and island). The results demonstrate meaningful memory and speedups (up to 50x memory reduction and 11x speedups) and highlight the practical viability of matrix-free MTTKRP for high-rank CP decompositions, while also outlining limitations and opportunities for improved caching and tiling strategies.
Abstract
We extend the GenTen tensor decomposition package by introducing an accelerated dense matricized tensor times Khatri-Rao product (MTTKRP), the workhorse kernel for canonical polyadic (CP) tensor decompositions, that is portable and performant on modern CPU and GPU architectures. In contrast to the state-of-the-art matrix multiply based MTTKRP kernels used by Tensor Toolbox, TensorLy, etc., that explicitly form Khatri-Rao matrices, we develop a matrix-free element-wise parallelization approach whose memory cost grows with the rank R like the sum of the tensor shape O(R(n+m+k)), compared to matrix-based methods whose memory cost grows like the product of the tensor shape O(R(mnk)). For the largest problem we study, a rank 2000 MTTKRP, the smaller growth rate yields a matrix-free memory cost of just 2% of the matrix-based methods, a 50x improvement. In practice, the reduced memory impact means our matrix-free MTTKRP can compute a rank 2000 tensor decomposition on a single NVIDIA H100 instead of six H100s using a matrix-based MTTKRP. We also compare our optimized matrix-free MTTKRP to baseline matrix-free implementations on different devices, showing a 3x single-device speedup on an Intel 8480+ CPU and an 11x speedup on a H100 GPU. In addition to numerical results, we provide fine grained performance models for an ideal multi-level cache machine, compare analytical performance predictions to empirical results, and provide a motivated heuristic selection for selecting an algorithmic hyperparameter.
