Page 376 - 《软件学报》2025年第10期
P. 376

杨乐 等: BIVM: 类脑计算编译框架及其原型研究                                                      4773


                 (通信顺序过程) 的计算模型, 希望不同类型的类脑芯片能够执行                    CSP  模型; 目前  Lava 提供了支持   CPU/GPU  的
                 Magma 库, 以及支持   Loihi 芯片的  Magma and Process 库. 但是, 没有针对不同硬件进行优化编译的统一编译框架
                 与层次结构, 而后者是本研究的重点, 因此两者在很大程度上是互补的.
                    此外, 有的工作注重于针对神经形态芯片的硬件约束条件                   (如资源规模等), 研究如何将        SNN  高效地映射到硬
                 件资源上, 比如文献      [29] 采用同步数据流图表示       SNN, 在考虑可用的计算和存储容量、缓冲区大小和通信带宽等
                 的前提下, 优化地将      SNN  分区并部署到以交叉开关结构为主体的类脑计算硬件上. 此外, OCC                   [30] 是一个面向存算
                 一体的端到端编译框架, 通过在          MLIR  中定义存算一体的读写方言来支持可读写存算一体的编译并面向存算一体
                 的特定优化步骤; 但这一工作不涉及脉冲神经网络的支持.
                    再者, 还有一些基础性软件工具的用途是探索针对                 SNN  的芯片体系结构优化, 如       NeuroXplorer  [31] , 或者是自
                 动生成神经网络加速器的可综合代码的研究, 如               SODA [32] .
                    最近  SODA  的扩展工作    [33] 设计了一种新的   MLIR  方言以表达    SNN, 并通过该方言支持脉冲神经元到加速芯
                 片设计的映射, 而后者是通过         SODA  自动综合生成的. 除了应用目标不同, 本工作与之区别有                 3  点: 第一, 所提出
                 的  SNN  方言支持更多的类脑应用类型, 而后者主要支持             D-SNN; 第二, 本工作支持     SNN  编译优化, 而后者不涉及;
                 第三, 本工作支持“广谱”的类脑芯片架构, 而后者针对的是基于新型非易失性器件的数据流架构芯片.
                  2   挑战与解决思路

                  2.1   类脑计算编译框架面临的挑战
                    编译器是连接类脑计算应用程序和算力提供芯片的基础软件, 能够将跨学科领域的应用程序优化转换为可以
                 高效驱动目标芯片的可执行形式. 目前, SNN (脉冲神经网络) 是该领域的主要计算范式, 其也显示出与                           DNN 融合
                 的发展趋势.
                    软硬件解耦的编译框架不仅可以降低特定编译器的开发成本, 复用编译技术资源, 还可以帮助消除软件碎片
                 化现象、提高软件质量. 更重要的是, 它还可以促进跨域资源交流——这是类脑计算发展的一大推动力量. 现在,
                 出现了不少前端工具来支持广泛的类脑计算应用程序的开发, 但是对作为后端的编译框架的研究非常有限. 通过
                 第  1.2  节的分析, 可以看到具体挑战包括两大方面.
                    第一, 应用计算特征跨度大. 从计算与数据访问特征来看, 其跨度大且复杂——从计算密集和数据访问                                  (相
                 对) 规则的深度脉冲神经网络         (DSNN), 到以稀疏事件触发计算为特征的应用             (如, 源自神经科学的生物神经网络
                 的仿真), 且后者丰富的时空神经动力学特性使得这一计算模型有更大的优化空间                          [34] .
                    第二, 芯片体系结构跨度大. 由于类脑计算芯片目前还没有被广泛接受的技术路线, 因此微架构的跨度也很
                 大, 从技术成熟的传统冯诺依曼架构到基于新兴神经形态器件的数据流架构, 并且两端之间有各种混合架构, 如天
                 机芯片   [26] 、Loihi [27] 、GaBAN [14] 等. 而且, 芯片对外提供的硬件原语的粒度迥异, 如基于传统冯诺依曼架构的
                 SpiNNaker [24] 芯片以  ARM  软核为计算核心, 提供传统的通用指令集作为细粒度的软硬件接口, 而很多类脑芯片
                 (TrueNorth [25] 、BrainScaleS [35] 等) 将神经元模型粒度的硬件功能暴露出来作为粗粒度接口, 还有基于新兴非易失
                 性器件的存算一体芯片以交叉开关结构              (crossbar) 为运算主体, 即直接将一定规模的点积计算作为硬件原语. 因
                 此, 我们定义“细粒度”原语以传统的通用指令集中的指令                 (或者类似粒度) 为功能原语, 比如         CPU  或者  ReRAM  类
                 脑芯片中的控制核提供的指令; “粗粒度”则是某些类脑芯片提供的以神经基元模型为基本功能单元的硬件原语,
                 或者某些存算一体芯片的以交叉开关结构为突触运算主体的硬件原语. 这样就需要在这些不同架构的芯片上实现
                 具有较高资源复用度的统一编译框架以提高开发效率                   (productivity), 同时需要能够灵活组合不同级别的编译优化
                 方法以针对不同应用实现不同后端上的高性能                (performance portability).

                  2.2   基于  MLIR  的设计思路
                    幸运的是, 新兴的面向       DSA  的  MLIR  编译基础设施有助于解决上述挑战和实现具有              P3  特性的编译, 即可移
   371   372   373   374   375   376   377   378   379   380   381