23、快速性能估计与低延迟 FPGA 神经元模型实现

快速性能估计与低延迟 FPGA 神经元模型实现

1. 快速性能估计在 DSE 中的应用

在早期的设计空间探索(DSE)中,快速且具有足够保真度的估计至关重要。可重定向源级分析是一种很有前景的方法,它通过对规格进行一次分析来确定其计算需求,然后通过规格计算需求与捕获处理元素(PE)计算供应的权重表进行矩阵乘法,就能简单地估计应用程序的执行时间。

不过,这种方法严重依赖权重表的质量和可用性。为了解决这个问题,提出了一种基于校准的框架,用于自动确定处理器的权重表。该框架避免了手动捕获处理器特性(执行时间)这一容易出错的过程,还缓解了源级分析可见性有限以及将不可见特性归因于已考虑操作的挑战。

在一个 3.1 GHz i5 - 3450 Intel 主机的单核上,无论应用程序大小和 PE 复杂度如何,使用权重表方法每秒可以进行 2500 万次估计。平均估计误差为 24%,在早期 DSE 中,这种误差是可以接受的,因为在这个阶段,估计的保真度和高速度是更突出的因素。特别是在性能差距较大的情况下,该方法能提供更高的保真度,例如在比较 ARM0 在 O0 优化与其他优化时,保真度可超过 94%。这种高估计速度和良好的保真度使该方法成为自动化 DSE 的理想基石。

2. Izhikevich 神经元模型简介

人类大脑约有 $10^{11}$ 个神经元,每个神经元可以与其他神经元有超过 $10^{4}$ 个突触连接。大脑的计算能力源于三个层面的复杂性:
- 可适应细胞(神经元)的数量;
- 可配置连接(突触)的能力;
- 既对噪声具有鲁棒性又能编码信息的波形(尖峰或动作电位)。

在众多的尖峰模型中,Izhikevich 的简单模型(ISM)在波形质量和计算成本之间取得了很好的平衡。它由一个一阶常微分方程组组成:
[
\begin{cases}
\frac{dv}{dt} = 0.04v^{2} + 5v + 140 - u + I \
\frac{du}{dt} = a(bv - u)
\end{cases}
]
当 $v \geq 30mV$ 时,进行如下重置:
[
\begin{cases}
v \leftarrow c \
u \leftarrow u + d
\end{cases}
]
其中,$v$ 是神经元的膜电位,$u$ 是膜恢复变量,单位均为毫伏(mV);$t$ 是时间,单位为毫秒(ms);$I$ 是总注入电流,单位为纳安(nA);$a$、$b$、$c$ 和 $d$ 是用于设置所需波形或神经元活动的参数。

为了便于在数字电路中实现,对上述方程进行变量替换,得到:
[
\begin{cases}
h\frac{dv}{dt} = \frac{1}{32}v^{2} + 3.90625v + 109.375 - u^{ } + I^{ } \
h\frac{du^{ }}{dt} = a^{ }(b^{ }v - u^{ })
\end{cases}
]
当 $v \geq 30mV$ 时:
[
\begin{cases}
v \leftarrow c \
u^{ } \leftarrow u^{ } + d
\end{cases}
]
其中,$h = 0.78125$,$u^{ } = hu$,$I^{ } = hI$;参数 $a$、$b$ 和 $d$ 分别被 $a^{ }$、$b^{ }$ 和 $d^{*}$ 替换,且每个参数都乘以了 $h$。

使用欧拉方法求解上述微分方程组,得到:
[
\begin{cases}
v_{n + 1} = v_{n} + \Delta t(\frac{1}{32}v_{n}^{2} + 3.90625v_{n} + 109.375 - u_{n}^{ } + I_{n}^{ }) = v_{n} + \Delta t \cdot k_{v} \
u_{n + 1}^{ } = u_{n}^{ } + \Delta t[a^{ }(b^{ }v_{n} - u_{n}^{ })] = u_{n}^{ } + \Delta t \cdot k_{u}
\end{cases}
]

不同的神经行为对应的参数如下表所示:
| 神经行为 | 强直放电 | 相位放电 | 强直爆发 | 相位爆发 | 混合模式 | 尖峰频率适应 |
| — | — | — | — | — | — | — |
| 参数 $a^{ }$ | 0.015625 | 0.015625 | 0.015625 | 0.015625 | 0.015625 | 0.0078125 |
| 参数 $b^{
}$ | 0.15625 | 0.1953125 | 0.15625 | 0.1953125 | 0.1953125 | 0.1953125 |
| 参数 $c$ | - 65 | - 65 | - 50 | - 55 | - 55 | - 65 |
| 参数 $d^{ }$ | 4.6875 | 4.6875 | 1.56125 | 0.0390625 | 3.125 | 6.25 |
| 输入 $I^{
}$ | 10.9375 | 5 | 11.71875 | 4.6875 | 9.375 | 23.4375 |

3. 神经元的硬件实现
3.1 单个神经元的实现

在单个神经元的实现中,大部分电路使用组合逻辑,电路尽可能并行化,优化的重点是降低延迟而非面积,不进行硬件复用。

每个神经元从顶层模块接收参数 $(a^{ }, b^{ }, c, d^{ })$,并在本地存储 $v$ 和 $u^{ }$ 的初始值。使用 18 位定点二进制补码表示:1 位符号位,9 位整数部分和 8 位小数部分。这种表示方式比浮点表示更适合数字实现,并且 18 位能更有效地利用可用硬件,同时不影响准确性。

$v$ 和 $u^{*}$ 的初始值分别为 - 70 mV 和 - 15.63 mV,时间增量 $\Delta t = h = 0.78125$ ms。

以下是神经元实现的流程 mermaid 图:

graph TD;
    A[接收参数 a*, b*, c, d*] --> B[存储 v 和 u* 初始值];
    B --> C[计算 kv 和 ku];
    C --> D{是否有尖峰};
    D -- 是 --> E[更新 v 和 u* 值(尖峰情况)];
    D -- 否 --> F[更新 v 和 u* 值(无尖峰情况)];
    E --> G[输出结果];
    F --> G;
3.2 用于测试和度量的网络

为了评估硬件性能,选择了一种晶格网络,即一个神经元直接连接到下一个神经元。虽然这种网络的生物学意义较低,但可以用来估计单个 FPGA 芯片上能够实现的最大神经元数量。

使用 Altera 的 DE4 开发板(EP4SGX230KF40C2)进行估计和 latency 测量。通过 SignalTap II 工具获取数据,该工具在 FPGA 上实现一个电路,直接从逻辑电路获取数据,然后通过 JTAG 连接发送到计算机。

4. 实现结果与比较
Ref 数字神经元数量 HW 使用情况 时间性能 表示(位) FPGA 供应商 系列
FF LUT 时钟(MHz) 流水线阶段 延迟(ns)
[5] 32 28% 44% 50 0 320 -
[4] - 64% 78% 40 5 150 18
[1] 1 1% 1.5% 84.81 7 94.33
[10] 25 79% - 198 23 121.21 44
[6] 32 32% 36% 110.47 6 63.37 18
[11] 256 3.39% - 307 96 315.96 32
本文 364 93% - 250 0 8 18

从表中可以看出,使用晶格网络时,在 FPGA 上可以容纳 364 个数字神经元(DN),是文献 [11] 中所呈现数量(256 个 DN)的 1.5 倍。并且,实现的延迟为 8 ns,比文献中的结果小 56 倍以上,与文献 [11](453.27 ns)相比优势明显。

文献中呈现的流水线没有显示并行加载,导致延迟更大,并且会导致尖峰时间戳的近似误差,这种误差在某些应用中可能会产生影响,但在其他应用中可能并不重要。

综上所述,这种高度组合、低延迟的 Izhikevich 神经元模型在 FPGA 上的实现更适合混合网络应用,而其他一些实现可能更适合对尖峰时间戳精度要求较低的纯人工网络仿真。

5. 优势总结与未来展望
5.1 优势总结

这种高度组合、低延迟的 Izhikevich 神经元模型在 FPGA 上的实现具有显著优势,具体体现在以下几个方面:
- 数字神经元数量多 :通过晶格网络测试,能够在单个 FPGA 上容纳 364 个数字神经元,相较于以往文献中的实现数量有明显提升,如比文献 [11] 的 256 个数字神经元多出 1.5 倍,这表明该实现能更有效地利用 FPGA 的硬件资源。
- 低延迟特性 :实现的延迟仅为 8 ns,相比文献中的结果小 56 倍以上,与文献 [11] 的 453.27 ns 相比优势突出。低延迟使得该实现能更精准地捕捉尖峰时间戳,对于依赖时间间隔编码信息的应用场景至关重要,尤其适用于混合网络系统。
- 适合混合网络应用 :由于低延迟和可靠的系统特性,该实现非常适合混合神经网络应用。在混合网络中,人工部分和生物部分需要实时通信,低延迟能确保网络间实时通信的完整性,同时可通过虚拟化技术复用硬件,实现更多神经元的模拟。

以下是优势对比的表格总结:
| 优势指标 | 本文实现 | 文献 [11] |
| — | — | — |
| 数字神经元数量 | 364 | 256 |
| 延迟(ns) | 8 | 453.27 |

5.2 未来展望

为了进一步提升该实现的性能和适用性,未来可以从以下几个方面开展工作:
- 实现更具生物学意义的网络 :目前使用的晶格网络生物学意义较低,未来可构建更符合生物实际情况的网络,以更好地模拟大脑的神经活动,为神经科学研究提供更有价值的模型。
- 优化计算架构 :通过复用逻辑块和为某些计算实现流水线,在不影响延迟的前提下提高速度。例如,可以对神经元计算中的部分步骤进行流水线处理,使计算过程更加高效。
- 利用辅助共享内存 :使用预计算值存储在辅助共享内存中,减少计算时间和延迟。在神经元计算中,一些参数和中间结果可以提前计算并存储,在需要时直接读取,避免重复计算,从而提高计算效率。
- 探索并行技术 :利用并行技术实现多个虚拟神经元,增加单个 FPGA 芯片上网络的最大规模。可以通过并行计算多个神经元的状态,充分发挥 FPGA 的并行处理能力,进一步提升系统的性能。

以下是未来工作的流程图:

graph LR;
    A[实现更具生物学意义的网络] --> B[优化计算架构];
    B --> C[利用辅助共享内存];
    C --> D[探索并行技术];
6. 总结

在早期设计空间探索(DSE)中,可重定向源级分析结合基于校准的框架为快速性能估计提供了有效方法,能在保证一定保真度的前提下实现高速估计,为自动化 DSE 奠定了基础。而在神经元模型实现方面,高度组合、低延迟的 Izhikevich 神经元模型在 FPGA 上的实现展现出了出色的性能,尤其在数字神经元数量和延迟方面具有显著优势,适合混合网络应用。未来,通过不断优化和探索新的技术,有望进一步提升该实现的性能和适用性,为神经科学研究和相关应用提供更强大的支持。

总之,快速性能估计和低延迟 FPGA 神经元模型实现是两个具有重要意义的研究方向,它们的发展将有助于推动相关领域的技术进步,为解决复杂的科学和工程问题提供新的思路和方法。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值