
共同设计,即同时设计软件和硬件,是尝试满足当今人工智能应用的计算能力需求的一种方式。编译器作为将指令从一种表达形式转换为另一种的关键组成部分。中国科学院的一组研究人员总结了现有的深度学习共同设计编译器技术,并提出了他们自己的框架,即Buddy编译器。
该团队的评论论文已发表在《智能计算》期刊上。
尽管其他人已经总结了优化方法、硬件架构、协同设计方法和编译技术,但没有人从编译技术与协同设计的角度讨论深度学习系统。研究人员从这个角度研究深度学习,因为他们相信"编译技术可以为协同设计带来更多机会,从而更好地实现深度学习系统的性能和功耗要求。"
本次评论涵盖五个主题:“
自1950年起,神经网络经历了多次风起云涌的历程,最终导致了如今深度学习应用和研究的爆炸性增长。共同设计始于1990年代,并已在各个领域得到应用,从手工作业逐渐发展为计算机辅助设计,最终演变成一个涉及建模、仿真、优化、综合和测试的复杂过程。
自从2020年以来,一个名为transformer的网络模型取得了巨大的成功:ChatGPT是一个使用“生成式预训练transformer”构建的聊天机器人。像ChatGPT这样的当前人工智能应用正面临着一种新的性能瓶颈,这将再次需要硬件和软件的协同设计。
深度学习与合作设计如今迎来了新的篇章。
深度学习的突破源自多层和大量参数的运用,这显著增加了训练和推理的计算需求。因此,仅依赖软件级别的优化变得具有挑战性,无法实现合理的执行时间。为解决这个问题,产业界和学术界纷纷转向针对特定领域的硬件解决方案,旨在通过硬件和软件之间的协同努力(即硬件软件协同设计),实现所需性能。
最近,一个综合性系统已经出现,包括深度学习框架、高性能库、专业领域编译器、编程模型、硬件工具流和共同设计技术。这些组件共同促进了深度学习系统的效率和有效性的提升。
深度学习协同设计的编译技术
有两个流行的生态系统被用于构建深度学习编译器:张量虚拟机(TVM)和多级中间表示(MLIR)。这些生态系统采用不同的策略,TVM作为一种端到端深度学习编译器,而MLIR则作为一种编译基础设施。与此同时,在为深度学习工作负载定制的硬件架构领域,存在两种主要类型:流式架构和计算引擎架构。
与这些架构相关的硬件设计工具流程也正在采用新的编译技术,推动先进和创新的发展。深度学习编译器与硬件编译技术的结合为深度学习协同设计带来了新的机遇。
课题的现状与未来动向
随着性能要求的快速增加,处理器的发展跟不上。因此,有效的协同设计变得至关重要。协同设计的问题在于没有一种单一的方法去解决,也没有统一的协同设计框架或抽象。如果需要多层次的抽象,效率就会降低。针对特定领域定制编译器是一项劳动密集型工作。尽管正在形成一体化生态系统,但碎片化的根本原因仍然存在。解决这些问题的方法是建立一个模块化、可扩展的统一框架。
伙伴编译器
巴迪编译器项目的贡献者们"致力于构建一个可扩展和灵活的硬件和软件协同设计生态系统。"该生态系统的模块将包括一个编译器框架、一个编译器即服务平台、一个基准测试框架、一个领域特定架构框架以及一个协同设计模块。后两个模块目前仍在进行中。
作者预测,在快速发展且有些分散的深度学习领域中,编译生态系统将持续发展,并有助于统一正在进行的工作。