AI学习者 · 2022年01月20日

动态图还是静态图,效率还是性能?

最近看到一个有趣的统计,新的AI芯片中,Dataflow架构占了绝大多数,典型的如:Tesla Dojo、Tenstorren Grayskull等
image.png
其实这些芯片实现架构都不完全相同,不过总体看上去有些共同的特征:

  • 数据流图执行调度,即芯片内部进行图级别的调度执行,而不像GPU那样的kernel by kernel的执行模式
  • SIMD架构堆叠
  • 高速互联/大带宽

当然,我不是芯片专家,这样的选择肯定有他们的原因,比如能效比、可扩展性等等。

我们也同时看到,Dataflow的芯片架构对软件带来了极大的挑战:

  1. 可编程性挑战大:SIMD加大编程的难度,Schedule、Tilling、Vectorization/Tensorization。
  2. 性能优化难:图层和算子层独立优化无法充分发挥芯片性能,需要图算融合优化,子图切分、子图内垂直融合优化和水平并行优化。
  3. 调试定位困难:整图下沉/子图下沉等执行模式导致开发者调试定位困难。
  4. 动态性支持难:无论是控制流还是动态shape对于Dataflow的芯片架构而言都是很大的挑战。

需要指出的是,Dataflow芯片架构可能默认就采用静态图的模式,我们要解决上面的问题,是在静态图架构上去强化动态shape、控制流等能力;如果采用动态图,我们可能连发挥这类芯片的性能的机会都没有。但是另一方面,从开发者的角度看,他们已经开始习惯动态图带来的便利。

我理解这本质上是AI领域,研究和产业不同诉求牵引的结果,静态图有利于发挥芯片的算力、大规模并行以及生产部署,动态图有利于提升开发者的开发效率,我们的问题是,鱼与熊掌如何兼得?

我想这个也是AI框架未来很大的一个挑战和机会,静态图——>动态图——>动静结合——>动静统一,但是动静统一中,是静态图为主还是动态图为主,未来还存在很大的不确定性,不管怎样,存在不确定性对新的框架来说总是好事。

原文:知乎
作者:金雪锋

推荐阅读

更多嵌入式AI技术相关内容请关注嵌入式AI专栏。
推荐阅读
关注数
18838
内容数
1371
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息