We observe a disconnect between the developers and the end users of linear algebra libraries. On the one hand, the numerical linear algebra and the high-performance communities invest significant effort in the development and optimization of highly sophisticated numerical kernels and libraries, aiming at the maximum exploitation of both the properties of the input matrices, and the architectural features of the target computing platform. On the other hand, end users are progressively less likely to go through the error-prone and time consuming process of directly using said libraries by writing their code in C or Fortran; instead, languages and libraries such as Matlab, Julia, Eigen and Armadillo, which offer a higher level of abstraction, are becoming more and more popular. Users are given the opportunity to code matrix computations with a syntax that closely resembles the mathematical description; it is then a compiler or an interpreter that internally maps the input program to lower level kernels, as provided by libraries such as BLAS and LAPACK. Unfortunately, our experience suggests that in terms of performance, this translation is typically vastly suboptimal. In this paper, we first introduce the Linear Algebra Mapping Problem, and then investigate how effectively a benchmark of test problems is solved by popular high-level programming languages. Specifically, we consider Matlab, Octave, Julia, R, Armadillo (C++), Eigen (C++), and NumPy (Python); the benchmark is meant to test both standard compiler optimizations such as common subexpression elimination and loop-invariant code motion, as well as linear algebra specific optimizations such as optimal parenthesization of a matrix product and kernel selection for matrices with properties. The aim of this study is to give concrete guidelines for the development of languages and libraries that support linear algebra computations.


翻译:我们观察到线性代数图书馆的开发者和终端用户之间的脱节。一方面,数字线性代数和高性能社区在开发和优化高精密的数字内核库和图书馆方面投入了大量努力,目的是最大限度地利用输入矩阵的属性和目标计算平台的建筑特征。另一方面,终端用户通过在C或Fortran中写出代码直接使用所述图书馆的错误易变和耗时过程越来越少;另一方面,数字线性代数和高性能社区在开发和优化高精度数字内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核,如BLAS和LAPACK等图书馆提供的内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内 内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内 内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内核内

0
下载
关闭预览

相关内容

专知会员服务
76+阅读 · 2021年3月16日
【经典书】线性代数,Linear Algebra,525页pdf
专知会员服务
74+阅读 · 2021年1月29日
专知会员服务
38+阅读 · 2020年9月6日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
91+阅读 · 2019年10月10日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
已删除
将门创投
7+阅读 · 2018年4月18日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
0+阅读 · 2021年10月26日
Arxiv
0+阅读 · 2021年10月25日
Arxiv
9+阅读 · 2021年6月21日
Arxiv
12+阅读 · 2019年3月14日
Arxiv
3+阅读 · 2019年3月1日
LARNN: Linear Attention Recurrent Neural Network
Arxiv
5+阅读 · 2018年8月16日
The Matrix Calculus You Need For Deep Learning
Arxiv
12+阅读 · 2018年7月2日
Arxiv
3+阅读 · 2018年2月24日
Arxiv
25+阅读 · 2018年1月24日
VIP会员
相关VIP内容
专知会员服务
76+阅读 · 2021年3月16日
【经典书】线性代数,Linear Algebra,525页pdf
专知会员服务
74+阅读 · 2021年1月29日
专知会员服务
38+阅读 · 2020年9月6日
强化学习最新教程,17页pdf
专知会员服务
171+阅读 · 2019年10月11日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
91+阅读 · 2019年10月10日
相关资讯
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
已删除
将门创投
7+阅读 · 2018年4月18日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
相关论文
Arxiv
0+阅读 · 2021年10月26日
Arxiv
0+阅读 · 2021年10月25日
Arxiv
9+阅读 · 2021年6月21日
Arxiv
12+阅读 · 2019年3月14日
Arxiv
3+阅读 · 2019年3月1日
LARNN: Linear Attention Recurrent Neural Network
Arxiv
5+阅读 · 2018年8月16日
The Matrix Calculus You Need For Deep Learning
Arxiv
12+阅读 · 2018年7月2日
Arxiv
3+阅读 · 2018年2月24日
Arxiv
25+阅读 · 2018年1月24日
Top
微信扫码咨询专知VIP会员