公式
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.