This paper shows how to build a sparse tensor algebra compiler that is agnostic to tensor formats (data layouts). We develop an interface that describes formats in terms of their capabilities and properties, and show how to build a modular code generator where new formats can be added as plugins. We then describe six implementations of the interface that compose to form the dense, CSR/CSF, COO, DIA, ELL, and HASH tensor formats and countless variants thereof. With these implementations at hand, our code generator can generate code to compute any tensor algebra expression on any combination of the aforementioned formats. To demonstrate our technique, we have implemented it in the taco tensor algebra compiler. Our modular code generator design makes it simple to add support for new tensor formats, and the performance of the generated code is competitive with hand-optimized implementations. Furthermore, by extending taco to support a wider range of formats specialized for different application and data characteristics, we can improve end-user application performance. For example, if input data is provided in the COO format, our technique allows computing a single matrix-vector multiplication directly with the data in COO, which is up to 3.6$\times$ faster than by first converting the data to CSR.


翻译:本文展示了如何构建一个稀薄的 Exor 代数编译器, 该编译器对 Exmoor 格式( 数据布局) 。 我们开发了一个界面, 描述格式的功能和属性, 并展示如何构建模块代码生成器, 可以将新格式添加为插件。 我们然后描述6个界面的安装过程, 构成密度、 CSR/ CSF、 COO、 DIA、 ELL 和 HASASH 代数格式及其无数变量。 有了这些实施, 我们的代码生成器可以生成代码, 以计算上述格式组合中的任何 Exor 代数表达式( 数据布局 ) 。 为了演示我们的技术, 我们已在 Taco Exor 代数编译器中应用了它。 我们的模块生成器设计简单易添加对新的 Exmoor 格式的支持, 而生成的代码的性能与手操作优化的实施过程是竞争性的。 此外, 通过扩展 taco 支持范围更广的用于不同应用和数据特性, 我们可以改进终端用户应用程序的性性性表现。 例如, 如果输入数据是以 CO$ $ 为 C, 我们的技术可以将数据直接转换为 Cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

0
下载
关闭预览

相关内容

TACO:ACM Transactions on Architecture and Code Optimization。 Explanation:架构和代码优化的ACM事务。 Publisher:ACM。 SIT:http://dblp.uni-trier.de/db/journals/taco/
【陈天奇】TVM:端到端自动深度学习编译器,244页ppt
专知会员服务
87+阅读 · 2020年5月11日
专知会员服务
162+阅读 · 2020年1月16日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
158+阅读 · 2019年10月12日
开源书:PyTorch深度学习起步
专知会员服务
51+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
195+阅读 · 2019年10月10日
学习自然语言处理路线图
专知会员服务
139+阅读 · 2019年9月24日
【Strata Data Conference】用于自然语言处理的深度学习方法
专知会员服务
49+阅读 · 2019年9月23日
TensorFlow 2.0新特性之Ragged Tensor
深度学习每日摘要
18+阅读 · 2019年4月5日
(Python)3D人脸处理工具Face3d
AI研习社
7+阅读 · 2019年2月10日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【跟踪Tracking】15篇论文+代码 | 中秋快乐~
专知
18+阅读 · 2018年9月24日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Arxiv
13+阅读 · 2019年4月9日
Arxiv
3+阅读 · 2019年3月1日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
VIP会员
相关VIP内容
相关资讯
TensorFlow 2.0新特性之Ragged Tensor
深度学习每日摘要
18+阅读 · 2019年4月5日
(Python)3D人脸处理工具Face3d
AI研习社
7+阅读 · 2019年2月10日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【跟踪Tracking】15篇论文+代码 | 中秋快乐~
专知
18+阅读 · 2018年9月24日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
Adversarial Variational Bayes: Unifying VAE and GAN 代码
CreateAMind
7+阅读 · 2017年10月4日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员