DF-LNPU:基于流水线直接反馈对齐的深度神经网络处理器解析
立即解锁
发布时间: 2025-09-01 01:51:09 阅读量: 23 订阅数: 25 AIGC 


片上训练NPU设计与实现
# DF-LNPU:基于流水线直接反馈对齐的深度神经网络处理器解析
## 1. DF-LNPU 整体架构
DF-LNPU 从宏观上可分为两个核心:两个零跳过卷积核(ZCCs)和一个基于 PDFA 的学习核(LC)。ZCCs 负责卷积层(CLs)的推理和训练,LC 则使用 PDFA 方法计算全连接层(FCLs)。
### 1.1 PDFA 学习流程
当进行基于 PDFA 的学习时:
1. **误差计算**:EP 核计算前馈(FF)结果的损失并确定误差 δ(3,t)。
2. **误差传播**:中间层的误差由 DFA 算法生成,并传输到 GG 核。
3. **梯度计算**:GG 核计算相应神经元连接的权重梯度。
4. **数据收集**:GG 核以转置方式收集所有批量数据,如激活值和误差。
5. **权重更新**:GG 核的最终乘法结果被移动到权重更新单元(WUU)。WUU 从外部 DRAM 接收权重,并计算动量优化器以生成新的权重。
6. **推理执行**:新权重被传输到 FF 核,FF 核执行下一次迭代的推理。
### 1.2 存储与数据处理
所有中间激活值和误差存储在输出内存(OMEM)中,OMEM 由 32 组 SRAM 组成,总大小为 160 KB。游程编码(RLC)解码器位于 OMEM 附近,FF 和 GG 核都接收解码后的激活值。在基于 PDFA 的学习之前,FCLs 的输入应被提取到 OMEM 中,输入数据可以直接从聚合核传输或从外部 DRAM 加载。在在线学习场景中,DF-LNPU 偶尔会将输入数据存储到 DRAM 中,并用于后续的 DNN 训练。
### 1.3 功耗优化
LC 支持丢弃正则化,并利用时钟门控来最小化功耗。时钟门控方法与[123]相同。丢弃控制器从丢弃内存(DRMEM)接收丢弃指标,当 ReLU 激活函数的导数被反映时,丢弃指标可以被修改,这使得 ReLU 激活函数的 EP 成为可能。丢弃控制器在输出值被预测为零时防止功耗。在仅推理场景中,整体功耗降低了 23.1%;在在线学习中,可节省 16.4%的功耗。
### 1.4 流水线设计
DF-LNPU 采用了核间和核内流水线设计:
- **核间流水线控制器(Inter - core PC)**:负责管理 CL 计算和基于 PDFA 的 FC 计算的调度,以及 ZCC 和 LC 之间的数据事务。
- **核内流水线控制器(Intra - core PC)**:位于 LC 内部,管理三个不同学习核的调度。
## 2. 异构学习核架构
### 2.1 零跳过卷积层优化核
早期的 CNN 加速器专注于卷积操作的特性,最大化数据重用性。对于仅推理的情况,CNN 加速器的精度要求不严格,因此使用量化和基于查找表的计算以提高能源效率。但 DNN 训练的精度要求更严格,DF-LNPU 的卷积核最终采用 FP 8 位精度进行 MAC 操作。
由于大多数 CNN 使用 ReLU 激活函数,会导致输入激活值中出现许多零。DF-LNPU 采用了零跳过核设计,跳过与零值的乘法,提高了吞吐量和能源效率。零跳过卷积加速可使吞吐量提高达 3.34 倍,实现了 CLs 的高速计算。
### 2.2 PDFA 全连接层学习核
LC 的核心架构专注于内存带宽优化。之前的 FC 优化推理加速器通过低比特量化解决 EMA 问题,但 DF-LNPU 由于片上学习功能不能使用低比特精度,而是采用输入稀疏感知激活编码方法。
FCLs 的训练仍然受到权重数据事务导致的大量内存访问的影响。传统的 FC 核由于权重重用性低,能源效率较低。而 DF-LNPU 的 LC 采用 PDFA 方法,实现了三个学习阶段的并行处理,优化了核心和数据路径,提高了面积和能源效率。
| 核心类型 | 特点 | 优势 |
| ---- | ---- | ---- |
| ZCC | 专注于通过有限数量的 MAC 提高吞吐量,最大化效率 | 提高 CLs 计算速度 |
| LC | 采用 PDFA 学习方法,提高数据重用性和每带宽吞吐量 | 优化内存带宽,提高能源效率 |
### 2.3 双模式 GG 核
DF-LNPU 在基于 PDFA 的并行训练中实现了更高的能源效率,但在仅推理场景中效率较低。为解决这个问题,GG 核被设计为支持 GG 和 FF 阶段。在 PDFA 场景中,GG 核可用于权重梯度(WG)计算;在仅推理场景中,它可以计算 FF 阶段。双模式 GG 核使推理时的批量大小增加了 2 倍,DF-LNPU 在仅推理场景中也能实现 2 倍的权重重用性。
## 3. 核间和核内流水线设计
### 3.1 核间流水线设计
CL 的计算由两个 ZCCs 处理,FCL 的计算由 LC 负责。ZCC 和 LC 的工作量可能因网络配置、批量大小和迭代次数以及输入稀疏性等因素
0
0
复制全文
相关推荐









