TTC公司

TTC:一个用于多种体系结构的张量变换编译器。我们考虑了任意维张量的转换问题,并描述了一个开源领域专用并行编译器TTC。TTC生成优化的并行C++/cudac代码,实现了系统峰值内存带宽的很大一部分。TTC在多种体系结构中都表现出高性能,包括基于AVX的现代系统(如Intel Haswell、AMD Steamroller)、Intel的Knights Corner以及基于CUDA的不同GPU,如NVIDIA的Kepler和Maxwell架构。我们报告了在外部C++编译器生成的有意义的基线实现上TTC的加速;结果表明,特定领域编译器的性能明显优于通用编译器:例如,与英特尔最新的Haswell和Knights Corner体系结构的C++编译器相比,TTC的加速比分别高达8倍和32倍。我们还展示了TTC对多个主要维度的支持,使其成为生成性能关键的打包函数的合适候选,这些函数是无处不在的blas3例程的核心。