Affiliation:
1. MINES ParisTech, France
2. TU Dresden, Germany
3. Inria, France / ENS, France
Abstract
Many numerical algorithms are naturally expressed as operations on tensors (i.e. multi-dimensional arrays). Hence, tensor expressions occur in a wide range of application domains, e.g. quantum chemistry and physics; big data analysis and machine learning; and computational fluid dynamics. Each domain, typically, has developed its own strategies for efficiently generating optimized code, supported by tools such as domain-specific languages, compilers, and libraries. However, strategies and tools are rarely portable between domains, and generic solutions typically act as ''black boxes'' that offer little control over code generation and optimization. As a consequence, there are application domains without adequate support for easily generating optimized code, e.g. computational fluid dynamics. In this paper we propose a generic and easily extensible intermediate language for expressing tensor computations and code transformations in a modular and generative fashion. Beyond being an intermediate language, our solution also offers meta-programming capabilities for experts in code optimization. While applications from the domain of computational fluid dynamics serve to illustrate our proposed solution, we believe that our general approach can help unify research in tensor optimizations and make solutions more portable between domains.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference23 articles.
1. 2017. NumPy package for scientific computing with Python. http: //www.numpy.org/ . (2017). 2017. NumPy package for scientific computing with Python. http: //www.numpy.org/ . (2017).
2. 2017. XLA: Accelerated Linear Algebra. https://www.tensorflow.org/ performance/xla/ . (2017). 2017. XLA: Accelerated Linear Algebra. https://www.tensorflow.org/ performance/xla/ . (2017).
3. 2017. Xtensor Multi-dimensional arrays with broadcasting and lazy computing. https://github.com/QuantStack/xtensor . (2017). 2017. Xtensor Multi-dimensional arrays with broadcasting and lazy computing. https://github.com/QuantStack/xtensor . (2017).
4. Martín Abadi and Ashish Agarwal et al. 2015. TensorFlow: LargeScale Machine Learning on Heterogeneous Distributed Systems. http://download.tensorflow.org/paper/whitepaper2015.pdf. (2015). Martín Abadi and Ashish Agarwal et al. 2015. TensorFlow: LargeScale Machine Learning on Heterogeneous Distributed Systems. http://download.tensorflow.org/paper/whitepaper2015.pdf. (2015).
5. Opening polyhedral compiler's black box
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Meta-programming for cross-domain tensor optimizations;Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences;2018-11-05