|
发表于 2023-5-9 09:49:36
|
显示全部楼层
挺多朋友给我发这个项目,我粗略研究了一下,简单单理解是:
1,这个项目基本上是和xla, tvm, plaidml这样的编译器是更对等的,和pytorch, tensorflow 这样的框架反而距离远点,当然其实深度学习编译器和框架其实都在融合过程中。
2,在前端提供element, broadcast,reduce等基础操作来拼装任何其它高层次操作(和xla, tvm,plaidml都不同),内部全部转化成for loop优化,和tvm一样没去像polyhedral 处理一个更复杂的问题。前端基本上分几个类型吧,tvm, plaidml 那种类似DSL的描述方式;或者像XLA就是用一些固定集合的基本op来拼接。jittor 在做法上像xla,定义了一些基本op,但这些基本op(broadcast, reduce, element-wise等) 更底层,可以实现像tvm, plaidml那样的灵活性。当然要使用这些基本的op时,需要想清楚reindex怎么写,这不是很直接,需要费点脑细胞。
3,内部转化成for-loop之后,就可以做各种各样的优化操作了(各种pass)。
项目的技术含量还是蛮高的,思路很新颖,很高兴看到国内高校研究组能做出这样的成果,清华厉害。
2020/03/21 补充一些关于前端的思考
袁进辉:关于深度学习编译器前端的思考 |
|