ACM Transactions on Mathematical Software · 2017 · 16 citations · 32 references
Arbitrary TranspositionsMassively-parallel ComputingArray ComputingEngineeringHardware AccelerationProgram AnalysisHigh-performance ArchitectureComputer ArchitectureComputer EngineeringSystems EngineeringParallel ProgrammingComputer ScienceHigh-dimensional TensorsCompilersParallel ComputingTensor Transpose CompilerVectorization
We present Tensor Transpose Compiler (TTC), an open-source parallel compiler for multidimensional tensor transpositions. To generate high-performance C++ code, TTC explores a number of optimizations, including software prefetching, blocking, loop-reordering, and explicit vectorization. To evaluate the performance of multidimensional transpositions across a range of possible use-cases, we also release a benchmark covering arbitrary transpositions of up to six dimensions. Performance results show that the routines generated by TTC achieve close to peak memory bandwidth on both the Intel Haswell and the AMD Steamroller architectures and yield significant performance gains over modern compilers. By implementing a set of pruning heuristics, TTC allows users to limit the number of potential solutions; this option is especially useful when dealing with high-dimensional tensors, as the search space might become prohibitively large. Experiments indicate that when only 100 potential solutions are considered, the resulting performance is about 99% of that achieved with exhaustive search.
32
Tensor Decompositions and Applications
Tamara G. Kolda, Brett W. Bader · SIAM Review · 2009 · 10.2K citations
The Design and Implementation of FFTW3
Matteo Frigo, Steven G. Johnson · Proceedings of the IEEE · 2005 · 5K citations
Coupled-cluster theory in quantum chemistry
Rodney J. Bartlett, Monika Musiał · Reviews of Modern Physics · 2007 · 3.2K citations