斯坦福开源Weld:数据分析的端到端优化
极客时间编辑部
讲述:杜力大小:1.08M时长:02:22
近日,斯坦福大学 DAWN 实验室开源了 Weld,用于对结合了数据科学库和函数的现有工作负载进行优化,而不需要用户修改代码。
在 VLDB 2018 论文中,研究人员提出了 Weld 的自适应优化器,通过在 Weld IR 上自动应用转换,可以实现工作负载数量级的加速。
对于库开发人员来说,Weld 既可以实现库函数的自动并行化,也可以实现强大的跨函数优化,例如循环融合(loop fusion)。对于用户而言,Weld 可以在不修改现有管道代码的情况下,带来很大的速度提升,也就是说,数据分析师可以继续使用 Pandas 和 NumPy 等流行库的 API。
Weld 为开发人员提供了三个主要组件,用于与其他库集成:
库开发人员使用 Weld 的函数中间表示(Intermediate Representation,IR),来表达他们函数(例如映射操作或聚合)中的计算数据并行结构。
对于使用 Weld 的库,通过延迟评估运行时 API 将 Weld IR 片段提交给系统,Weld 将使用 IR 片段来自动跟踪和调度对其他函数的调用。
当用户想要计算结果(例如将它写入磁盘或显示它)时,Weld 将使用优化编译器对组合程序的 IR 进行优化和 JIT 编译,这样就可以生成更快的并行机器代码,然后基于应用程序内存中的数据执行这些代码。
在 CIDR 2017 论文中,研究人员描述了最初的 Weld 原型。通过在 IR 上应用手动优化,Weld 在合成工作负载上表现出了数量级的速度提升,这些工作负载包含了来自单个库和多个库的函数。
据介绍,Weld 的自动优化器首先会应用一组静态的基于规则的优化。从 Weld IR 输入中查找特定模式,并用更有效的模式进行替换。Weld 的优化器在其闭合的 IR 上运行,这意味着每个优化的输入和输出都是相同的 IR。这种设计可以允许组合不同的规则,并以不同的方式重新运行。
此外,Weld 的自适应优化器还提供了一些其他的转换,例如,在构建哈希表时,它可以选择是否使用线程本地或原子全局数据结构,具体取决于键的分布和预期的内存占用。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论