TTC: A Tensor Transposition Compiler for Multiple Architectures

07/05/2016
by   Paul Springer, et al.
0

We consider the problem of transposing tensors of arbitrary dimension and describe TTC, an open source domain-specific parallel compiler. TTC generates optimized parallel C++/CUDA C code that achieves a significant fraction of the system's peak memory bandwidth. TTC exhibits high performance across multiple architectures, including modern AVX-based systems (e.g., Intel Haswell, AMD Steamroller), Intel's Knights Corner as well as different CUDA-based GPUs such as NVIDIA's Kepler and Maxwell architectures. We report speedups of TTC over a meaningful baseline implementation generated by external C++ compilers; the results suggest that a domain-specific compiler can outperform its general purpose counterpart significantly: For instance, comparing with Intel's latest C++ compiler on the Haswell and Knights Corner architecture, TTC yields speedups of up to 8× and 32×, respectively. We also showcase TTC's support for multiple leading dimensions, making it a suitable candidate for the generation of performance-critical packing functions that are at the core of the ubiquitous BLAS 3 routines.

READ FULL TEXT
research
03/07/2016

TTC: A high-performance Compiler for Tensor Transpositions

We present TTC, an open-source parallel compiler for multidimensional te...
research
05/06/2019

An optimizing multi-platform source-to-source compiler framework for the NEURON MODeling Language

Domain-specific languages (DSLs) play an increasingly important role in ...
research
04/14/2017

HPTT: A High-Performance Tensor Transposition C++ Library

Recently we presented TTC, a domain-specific compiler for tensor transpo...
research
12/01/2022

BaCO: A Fast and Portable Bayesian Compiler Optimization Framework

We introduce the Bayesian Compiler Optimization framework (BaCO), a gene...
research
01/07/2022

A SIMD algorithm for the detection of epistatic interactions of any order

Epistasis is a phenomenon in which a phenotype outcome is determined by ...
research
09/13/2017

OpenMP GNU and Intel Fortran programs for solving the time-dependent Gross-Pitaevskii equation

We present Open Multi-Processing (OpenMP) version of Fortran 90 programs...
research
02/09/2021

NOELLE Offers Empowering LLVM Extensions

Modern and emerging architectures demand increasingly complex compiler a...

Please sign up or login with your details

Forgot password? Click here to reset