The Tensor Algebra Compiler

The Tensor Algebra Compiler
复制标题

DOI:
10.1145/3133901
复制
发表时间:
2017-10-01
影响因子:
1.8
通讯作者:
Amarasinghe, Saman
Amarasinghe, Saman
中科院分区:
其他
文献类型:
--
作者:
Kjolstad, Fredrik;Kamil, Shoaib;Amarasinghe, Saman

文献摘要

被引文献

相似文献

Tensor代数是一种功能强大的工具,具有机器学习,数据分析,工程和物理科学的应用程序。张量通常是稀疏的,并且必须经常在单个内核中计算复合操作以进行性能并节省内存。程序员可以为每个感兴趣的操作编写内核,并以不同格式的密集和稀疏张量混合在一起。这些组合是无限的,这使得不可能手动实施和优化所有这些。本文介绍了第一种编译器技术,该技术会自动生成用于密集和稀疏张量的任何复合张量代数操作的内核。该技术是在称为Taco的C ++库中实现的。它的性能具有竞争性的,在流行库中的一流的手工精制内核,同时支持更多的张量操作。
Tensor algebra is a powerful tool with applications in machine learning, data analytics, engineering and the physical sciences. Tensors are often sparse and compound operations must frequently be computed in a single kernel for performance and to save memory. Programmers are left to write kernels for every operation of interest, with different mixes of dense and sparse tensors in different formats. The combinations are infinite, which makes it impossible to manually implement and optimize them all. This paper introduces the first compiler technique to automatically generate kernels for any compound tensor algebra operation on dense and sparse tensors. The technique is implemented in a C++ library called taco. Its performance is competitive with best-in-class hand-optimized kernels in popular libraries, while supporting far more tensor operations.