TRIOT: Faster tensor manipulation in C++11
Florian Heyl, Oliver Serang

TL;DR
TRIOT introduces a new C++11-based method leveraging template recursion for efficient, flexible manipulation of multidimensional arrays, outperforming traditional approaches in speed and adaptability.
Contribution
The paper presents a novel template recursion technique for faster tensor manipulation in C++11, enabling efficient iteration over arrays with unknown dimensions.
Findings
Significantly faster tensor operations compared to existing methods
Enhanced flexibility in handling arrays with unknown shapes
Demonstrated superior performance in high-dimensional array tasks
Abstract
[abridged] Context: Multidimensional arrays are used by many different algorithms. As such, indexing and broadcasting complex operations over multidimensional arrays are ubiquitous tasks and can be performance limiting. Inquiry: Simultaneously indexing two or more multidimensional arrays with different shapes (e.g., copying data from one tensor to another larger, zero padded tensor in anticipation of a convolution) is difficult to do efficiently: Hard-coded nested for loops in C, Fortran, and Go cannot be applied when the dimension of a tensor is unknown at compile time. Likewise, boost::multi_array cannot be used unless the dimensions of the array are known at compile time, and the style of implementation restricts the user from using the index tuple inside a vectorized operation (as would be required to compute an expected value of a multidimensional distribution). On the other hand,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
