芯片具备两类计算核:离线推理核(简称离线核)、在线学习核(在线核)。其中离线核支持的神经元配置项如下表所列:
| 支持功能 | 可写 | 取值 | 功能描述 |
|---|---|---|---|
| 复位模式 | ✅ | 硬复位/软复位/不复位 | 硬复位,膜电平重置为正/负阈值 软复位,膜电平将减正阈值/加负阈值(若负阈值模式为复位模式) 不复位,膜电平保持不变 |
| 复位电平 | ✅ | 30比特有符号数 | 可配置复位电平 |
| 比较前后泄露 | ✅ | 前/后 | 阈值比较发生在泄露前/后 |
| 正阈值 | ✅ | 29比特无符号数 | 可配置正阈值 |
| 负阈值 | ✅ | 29比特无符号数 | 可配置负阈值 |
| 泄露电平 | ✅ | 30比特有符号数 | 可配置泄露幅值 |
| 反向泄露 | ✅ | 开启/关闭 | 若开启,泄露与当前膜电平符号相关: 当泄露值为正,膜电平向0收敛 当泄露值为负,膜电平偏离0发散 |
| 负阈值模式 | ✅ | 复位/饱和 | 当膜电平低于负阈值时: 为复位模式,根据复位模式复位 为饱和模式,膜电平重置为负阈值 |
| 膜电平截取位(仅ANN模式) | ✅ | [0,29] | 输出膜电平的截取位置T,30比特有符号膜电平需截取8比特作为输出: T<8,截取[T-1:0],低位补0 T=8,截取[7:0] T≤29,截取[T-1:T-8] 膜电平大于窗口最高位则截断处理 |
| 随机轴突整合 | ✅ | 开启/关闭 | 若开启,神经元根据硬件生成的随机数*过滤一些轴突上的输入,进行选择性累加 |
| 随机泄露 | ✅ | 开启/关闭 | 若开启,如果泄露幅值小于硬件生成的随机数*,则此次泄露为0 |
| 阈值掩码 | ✅ | [0,29] | 若开启,硬件生成的随机数*将和它求与后得到一个0~29比特随机阈值,并加至神经元的正、负阈值上 |
| 膜电平 | ❌ | 0 | 只读寄存器,初始值为0 |
*硬件生成的随机数均为无符号数。
在线核支持的 LIF 神经元配置如下表所列:
| 支持功能 | 可写 | 取值 | 功能描述 |
|---|---|---|---|
| 复位电平 | ✅ | 6/32比特有符号数* | 可配置复位电平 |
| 比较前后泄露 | ✅ | 前/后 | 阈值比较发生在泄露前/后 |
| 正阈值 | ✅ | 15/32比特有符号数* | 可配置正阈值 |
| 地板阈值 | ✅ | 7/32比特有符号数* | 地板阈值,膜电平不会低于此值 |
| 泄露电平 | ✅ | 15/32比特有符号数* | 可配置泄露幅值 |
| 初始膜电平 | ✅ | 6/32比特有符号数* | 每次开始帧到来时膜电平复位值 |
| 膜电平 | ❌ | 15/32比特有符号数* | 当前时刻膜电平 |
*参数取值范围根据在线核设置的权重位宽有所不同,当其为1-bit、2-/4-/8-bit 权重位宽时,取值分别为前、后所示值。
芯片不支持Alpha、AMBA、GABA等类型突触,仅支持 STDP 突触。
包括突触与突触+神经元组合形式的算子。
| 算子类型 | ANN | SNN | 备注 |
|---|---|---|---|
| 全连接 | ✅ | ✅ | |
| STDP全连接 | ❌ | ✅ | 具备在线学习功能 |
| 2D矩阵乘法 | ✅ | ✅ | |
| 1D卷积 | ✅ | ✅ | 全展开形式 |
| 2D卷积 | ✅ | ✅ | 全展开形式 |
| 1D转置卷积 | ✅ | ✅ | 全展开形式 |
| 2D转置卷积 | ✅ | ✅ | 全展开形式 |
| 位与 | ❌ | ✅ | |
| 位或 | ❌ | ✅ | |
| 位非 | ❌ | ✅ | |
| 位异或 | ❌ | ✅ | |
| 1D平均池化 | ❌ | ✅ | 脉冲化 |
| 1D平均池化(膜电位相关) | ❌ | ✅ | 脉冲化 |
| 1D最大池化 | ❌ | ✅ | 脉冲化 |
| 2D平均池化 | ❌ | ✅ | 脉冲化 |
| 2D平均池化(膜电位相关) | ❌ | ✅ | 脉冲化 |
| 2D最大池化 | ❌ | ✅ | 脉冲化 |
| 脉冲加 | ❌ | ✅ | 针对脉冲序列 |
| 脉冲减 | ❌ | ✅ | 针对脉冲序列 |
| 线性层 | ✅ | ❌ | |
| 1D最大池化 | ✅ | ❌ | |
| 1D平均池化 | ✅ | ❌ | |
| 2D最大池化 | ✅ | ❌ | |
| 2D平均池化 | ✅ | ❌ | |
| 2D卷积 | ✅ | ❌ | 半折叠形式 |
| 2D最大池化 | ✅ | ❌ | 半折叠形式 |
| 2D平均池化 | ✅ | ❌ | 半折叠形式 |
| 线性层 | ✅ | ❌ | 半折叠形式 |