Page 373 - 《软件学报》2025年第10期
P. 373
4770 软件学报 2025 年第 36 卷第 10 期
芯片的工具链开发门槛, 从而促进其应用. 近年来广泛流行的深度学习前端开发工具 (如 PyTorch、TensorFlow)
与编译后端 (如 TVM) 也是成功的佐证. 这类开放性编译框架的益处还在于, 利于汲取编译领域的技术积累, 利于
吸引开源社区的研发力量.
类脑领域这一类实现的理论可行性已经被文献 [10] 所证明. 其研发必要性与技术可行性还在于以下两点: 第
一, 类脑计算的主要计算范式——脉冲神经网络 (SNN) 展示出了与深度神经网络不同的计算、访存特征, 同时类
脑计算芯片体系结构的跨度很大, 这就提供了较大的编译优化空间, 也凸显其设计难度; 第二, 旨在尽力解决 DSA
(domain specific architecture, 特定领域架构) 引起的软硬件碎片化问题的编译基础设施 MLIR (multi-level inter-
mediate representation, 多层中间表示) 正在兴起, 提供了可重复利用的编译技术资源与框架. 我们将在第 3 节对此
进行详细分析.
总之, 研究界 [10−13] 已认识到, 类脑计算“通用”编译至关重要, 但缺乏将计算机系统领域编译基础设施的最新进
展与类脑领域一般需求结合起来的工作. 本文在这方面做出尝试, 提出基于 MLIR 的类脑计算编译框架 BIVM 及
其验证原型: 当前重点支持脉冲神经网络应用, 展示 BIVM 在不同芯片上支持各种典型 SNN 应用 (从 D-SNN 到
生物神经网络仿真) 的编译和优化能力, 芯片类型包括通用处理器、控制流/数据流混合架构的 SNN FPGA 芯片 [14]
以及基于 ReRAM (resistive random-access memory, 阻变存储器) 的数据流类脑芯片 [15] . 具体贡献如下.
(1) 设计提出类脑计算编译框架的多层 IR (在本文中,使用 MLIR 指代 MLIR 项目,多层 IR 表示本文提出
的多层 IR 设计). 包括脉冲神经网络方言 (高层 IR)、由 MLIR 内置方言为主组成的中间层 IR 和针对典型类脑芯
片架构的多种底层 IR; 所设计的 IR 能够混合不同的抽象层次和概念, 如混合细粒度指令与某些后端的以交叉开
关结构为运算主体的粗粒度运算, 以便复用软件模块、简化开发.
(2) 设计实现多层 IR 间的优化递降转换. 针对 SNN 计算/访存特征, 递降过程支持 SNN 计算稀疏性挖掘、神
经元组计算合并/向量化等高层优化技术, 以及适配目标硬件的底层优化技术, 实现不同后端上的高性能.
(3) 实现 BIVM 原型, 支持 3 类芯片后端并完成测试与比较. 测试表明上述优化技术能够有效提升编译性能,
实现比目前广泛采用的开发框架更快的性能 (针对处理器芯片), 或者在目标芯片上达到比其原有工具链更高 (或
者相近) 的性能.
未来将扩展该原型, 支持更多的典型类脑计算应用以及更多种类的类脑芯片.
本文第 1 节是研究背景介绍. 第 2 节给出类脑计算编译框架所面临的挑战, 以及基于 MLIR 的总体方案, 包括
各层 IR 的设计思路与编译优化技术的概览. 第 3 节则给出各层 IR 的具体设计思路与优化技术细节. 第 4 节是
BIVM 量化测试. 最后是下一步工作与总结全文.
1 类脑神经网络计算特征及其与深度神经网络的差异
1.1 SNN 数值计算形式介绍
类脑计算中应用最广泛的计算模型是脉冲神经网络 (SNN), 其主要计算过程可描述如下: 首先是神经元
计算, 求解一个关于神经元膜电位的动力学方程来获取当前膜电位值, 如果膜电位达到阈值, 神经元会发出脉
冲信号同时神经元自身进入不应期, 这期间内膜电位会停留在复位电压; 接着是脉冲传输, 即发出的脉冲将根
据网络连接传播到它们的目标突触; 最后, 接收到脉冲信号的突触将根据突触模型更新其目标神经元的内部
状态.
神经元模型定义了膜电位和其他内部状态的动态, 分为很多种类 [16] , 例如 LIF (leaky-integrate-and-fire) [17] 、
Izhikevich [18] 、Hodgkin-Huxley [19] 等. 不同的模型提供不同级别的生物真实性, 在计算复杂度上也差别很大.
以类脑计算领域最为常用的 LIF 模型为例, 典型的 LIF 模型可以用以下方程表示. 其中, V i (t) 是神经元 i 在时
间 t 的膜电位, S i (t) 是一个二值变量指示神经元 i 是否在时间 t 发放脉冲信号, w ji 是连接源神经元 j 和目标神经
元 i 的权重, V leak 是与漏电流相关的常数.
λ 和

