1、更新一下我对深度学习编译器和框架的认识
深度学习基础软件里最hard core的问题有两个,一个是微观层次的auto codegen,即用领域特定语言 DSL 描述一个算法的逻辑,自动生成在各种后端上最高效的代码;另一个是宏观层次的自动分布式并行,也就是用户面向单卡写一个神经网络模型,框架自动生成在特定拓扑结构连接的多机多卡上运行的分布式代码。OneFlow团队和世界上其它同行最近做的一些工作,给我越来越强的信号,这些问题,无论是微观层次,还是宏观层次,都快要被解决了。
2、机器学习访存密集计算编译优化框架AStitch,大幅提升任务执行效率
AStitch通过编译优化的手段来自动化地提高机器学习任务的执行效率, 提出了一种大粒度计算融合的编译优化手段,通过计算图的依赖关系特性、GPU多层次存储架构上的数据局部性、以及不同数据尺寸之下的线程并发性等三个方面的联合考虑,自动化地为大粒度的复杂访存密集算子子图生成高效的GPU代码,从而大幅减少GPU kernel调用及框架层算子调度的额外开销,避免了不必要的重复计算。大幅减少片外访存的同时,可适配各种数据尺寸以得到最佳并行效率。对比XLA[1],AStitch最高可以取得2.73倍的性能加速。
链接:阿里灵杰:【ASPLOS 2022】机器学习访存密集计算编译优化框架AStitch,大幅提升任务执行效率
3、一文轻松掌握深度学习框架中的einsum
本文主要介绍了如何理解 PyTorch 中的爱因斯坦求和 (einsum) ,并结合实际例子讲解和 PyTorch C++实现代码解读,希望读者看完本文后掌握 einsum 的基本用法。
链接: