加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

用Rust让numpy、scikit和pandas加速100倍!开源Weld技术揭秘

发布时间:2019-11-01 20:20:11 所属栏目:移动互联 来源:AI前线小组 译
导读:在利用 Python 与 R 的数据科学堆栈工作了几个礼拜之后,我开始问自己:有没有可能存在一种通用的中间表示形式(类似于 CUDA),能够在多种语言之间同时起效?现在我必须得在不同语言中重新实现并优化已经存在的方法,难道就不能更高效一点?除此之外,我

Weld 的 IR 最令人兴奋的优势之一,在于其自身就支持数据并行性。这意味着在 Weld IR 当中表达的循环将始终可以安全实现并行化。这使 Weld 成为一种对新型硬件极具吸引力的 IR 解决方案。举例来说,NEC 公司的合作者们演示了如何利用 Weld 在自定义高内存带宽矢量加速器上运行 Python 工作负载——过程非常简单,只需要向现有 Weld IR 添加新的后端即可。此外,IR 还可用于在数据库内实现物理执行层,我们也在计划添加一系列新的功能,使开发人员能够将 Python 的部分子集编译为 Weld 代码。

这些库是否已经准备好应用于实际项目?如果还没有,你认为大概什么时候能够做好准备?

我们测试过的大部分库示例与基准都提取自真实工作负载。因此,如果用户愿意在自己的应用程序当中试用我们发布的当前版本,提供反馈甚至编写开源补丁,我们将不胜感激。换句话说,我们并不指望所有功能都能在现实应用程序当中立即使用。在接下来的几个月内,我们将发布一系列发行版,专门关注 Python 库的可用性与健壮性。我们的目标是努力提升这些库的质量,将其逐步引入现实项目当中,并在无法支持的情况下允许用户顺利回退至非 Weld 库版本。

正如我在回答第一个问题时所提到,简化整个流程的途径之一,在于拆分注释这个重要的相关项目。拆分注释是一套系统,允许用户对现有代码进行注释以定义其具体拆分、传递与并行化方法。根据我们的观察,该系统能够发现 Weld 有望带来最佳效果的优化方向(例如在函数调用之间将大量数据保留在 CPU 缓存中,而非扫描完整数据集);更重要的是,由于其重用现有库代码,而非依赖于编译器 IR,因此其集成难度要比 Weld 低得多。正因为如此,拆分注释能够使作为优化目标的库更易于维护与调试,从而提高健壮性水平。当无法支持 Weld 时,这些库也可退回至拆分注释,让我们根据用户提出的反馈以增量方式添加 Weld 支持,同时继续采取可行的优化操作。

【编辑推荐】

  1. 初创公司技术困境:弹性部署与详尽测试
  2. Github近4K星,高质量区块链技术中文资源
  3. 2020年后IT变革的优秀技术展望
  4. 碾压99.8%人类对手,星际AI登上Nature,技术首次完整披露
  5. IT 人眼里最吃香的技术:软件开发 JavaScript;数据专业 R等
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读