硬件中的人工神经网络:虚拟更新技术提升能效
1. 定制指令集与虚拟更新技术
定制指令集可让加速器方便地编程以执行不同网络配置的各种任务。除“检查点”操作外,图中所有指令对应数据路径执行的一系列操作,“检查点”操作中控制器借助简单有限状态机进行条件跳转。
为利用虚拟更新技术,在基线指令集中添加了“VU”指令。该指令通过两组操作实现虚拟更新算法:
- 第一组操作:当首次呈现当前输入向量时,计算并存储 Λc。
- 第二组操作:执行乘加操作。
Ei(ic) 的累积操作被合并到正常的“BP”或“BP_WU”操作中,且不增加计算时间开销,因为在传统更新的误差反向传播操作期间加法器本来就是空闲的。
虚拟更新算法需要一些内存空间来保存新增的中间结果 oc i(0) 和 Ei(ic)。根据架构的内存访问模式,这两个向量可方便地存储在突触内存中,因为在虚拟更新操作期间权重内存未被使用。存储这两个临时项的内存开销可忽略不计,特别是在神经网络规模较大时。实际上,这两个项的大小与网络规模呈线性关系,而突触权重的内存需求呈二次关系。
2. 设计示例对比
为对比传统更新和虚拟更新,展示了两种加速器:
- 基线加速器:基于传统更新进行学习,采用图中所示的基本指令集。
- 升级加速器:采用虚拟更新技术,使用添加了“VU”指令的增强指令集。
两种设计均采用 65 - nm 技术实现。由于两种版本的加速器布局相似,仅展示了采用虚拟更新的加速器布局。如图所示,片上内存占据大部分面积,算术单元是第二大模块,控制器和调度器占据其余面积。采用虚拟更新算法的加速器的规格如下表所示:
| 规格 |
超级会员免费看
订阅专栏 解锁全文

82

被折叠的 条评论
为什么被折叠?



