公式
Tinf=(1−sparsity)×number of synapsesnumber of sub-processors×SIMD ways T_{\text{inf}} =\frac{(1-\text{sparsity})\times \text{number of synapses}} {\text{number of sub-processors}\times \text{SIMD ways}} Tinf=number of sub-processors×SIMD ways(1−sparsity)×number of synapses
- 含义:估算一次前向推理所需的时钟周期数(latency,以 cycle 计)。
各项代表什么
-
number of synapses:网络中需要参与计算的突触总数(密集层的连接数之和)。
-
sparsity:数据稀疏度,指在当前输入下不会触发计算的连接占比(例如很多输入通道本轮没有脉冲)。因此
- (1−sparsity)(1-\text{sparsity})(1−sparsity) 是有效连接占比(会产生加和的连接)。
-
number of sub-processors:片上并行的子处理器个数(文中当前实现为 2),层内神经元在它们之间平均分配。
-
SIMD ways:每个子处理器的向量并行宽度(每拍可并行累加的突触数;文中为 4)。
-
直观解释:
- 分子 = 需要执行的有效突触加和次数。
- 分母 = 每个时钟周期能同时完成的加和次数(总并行度)。
- 所以 Tinf=总工作量每拍吞吐T_{\text{inf}}=\frac{\text{总工作量}}{\text{每拍吞吐}}Tinf=每拍吞吐总工作量。
公式为什么成立
论文指出系统中其它阶段(SPI 接收、编码、解码、UART 发送)与突触电流计算(∑ws\sum w s∑ws)并行/重叠执行,因而总延迟主要由突触累加主导。只要权重存储带宽能供上(当前设计:8-bit 权重,峰值每拍可取 8 个权重,即 2 个子处理器 × 4 路 SIMD),上式就给出推理时间的一阶估计。
小例子
若网络有 100,000 条突触,输入稀疏度 0.9(10% 有效),2 个子处理器、每个 4 路 SIMD:
- 有效突触数 =(1−0.9)×100,000=10,000= (1-0.9)\times 100{,}000 = 10{,}000=(1−0.9)×100,000=10,000
- 并行度 =2×4=8= 2\times 4 = 8=2×4=8
- 周期数 =10,000/8=1,250= 10{,}000/8 = 1{,}250=10,000/8=1,250 cycles
若时钟 22 MHz,则时间 ≈1,250/22M≈56.8 μs\approx 1{,}250/22\text{M} \approx 56.8\,\mu s≈1,250/22M≈56.8μs。
注意点
- 上式是理想化/带宽匹配下的估计;若出现访存冲突、排队或控制开销,实际 TinfT_{\text{inf}}Tinf 会更大。
- 系统可存储的权重数(文中为 131,072 个 8-bit 权重)限制了可部署的突触总数,从而也限制了可达到的吞吐/延迟范围。
Reference:
G. Leone, M. Antonio Scrugli, L. Badas, L. Martis, L. Raffo and P. Meloni, “SYNtzulu: A Tiny RISC-V-Controlled SNN Processor for Real-Time Sensor Data Analysis on Low-Power FPGAs,” in IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 72, no. 2, pp. 790-801, Feb. 2025, doi: 10.1109/TCSI.2024.3450966.