AdaTM is Adaptive Tensor Memoization algorithm for CP decomposition and its matricized tensor times Khatri-Rao product (MTTKRP) operation. AdaTM is to speedup a higher-order sparse MTTKRP sequence by removing redundant computations within it, and includes a model-driven framework to predict the optimal performance.
- Sparse matricized tensor times Khatri-Rao product (MTTKRP)
- Sparse CANDECOMP/PARAFAC decomposition
-
CMake (>v2.6.0)
-
SPLATT v1.1.1: website or direct downloadable file
-
Download SPLATT library.
-
Copy all contents in AdaTM to SPLATT source code using `cp * [SPLATT DIR]'. Then the usage is the same with SPLATT.
-
Type
./configure --adatm
-
make
;make install
. -
Run MTTKRP: `splatt bench [TENSOR] -a adatm'
-
Run CPD: `splatt cpd [TENSOR]'
AdaTM is only implemented for CSF format, not including COO format yet. The code is closely built upon SPLATT library by using its CSF format and single MTTKRP implementation. It is released as a patch of SPLATT. We're working together to get more SPLATT functions exposed and will release more improved version in the future.
The algorithms and details are described in the following publications.
- Model-Driven Sparse CP Decomposition for Higher-Order Tensors. Jiajia Li, Jee Choi, Ioakeim Perros, Jimeng Sun, Richard Vuduc. 31st IEEE International Parallel & Distributed Processing Symposium (IPDPS). 2017. [pdf] [slides]
- Jiajia Li (Contact: [email protected])
AdaTM is released under the MIT License, you're free to redistribute it and/or modify it. Please see the 'LICENSE' file for details.