面向权重可变的存算一体加速器的卷积算子调度
2021-05-28师紧想
师紧想
(上海交通大学电子信息与电气工程学院,上海200240)
0 引言
深度卷积神经网络迎来了巨大的发展,传统CPU、GPU越来越难以满足大规模神经网络对功耗和能效的需要。随着Dennard定律缩放的失效[1],存算一体加速器以低功耗、高能效的计算特点受到了广泛关注。以忆阻存储器(Resistive Random Access Memory,ReRAM)为基础的存算一体加速器是存算一体一个重要研究方向[11-12]。
存算一体加速器具有存储单元与计算单元一体的特点,因此给面向存算一体的编程和资源调度带来了困难,一些存算一体加速器[2-3]仍采用手工映射的方式部署神经网络模型。本文面向忆阻器存算一体设计了指令生成工具,并设计了算子调度策略,解决面向存算一体神经网络加速器的编程、编译问题。
1 忆阻器存算一体架构
忆阻器存算一体加速器的基本单元是忆阻器交叉阵列(crossbar),当前的存算一体加速器普遍采用多个忆阻器交叉阵列组成计算点阵,并将训练后的卷积神经网络的参数(权重)一次性映射在阵列上。例如ISAAC[2]采用了12k个crossbar组成一个从chip到tile到crossbar的层次化计算架构,每个crossbar包含128行×128列个忆阻器单元,可以映射48Mb模型参数,足以映射如ResNet-18网络的所有参数,而不需要考虑crossbar再次映射的情况(后文称再次映射为权重更新)。
而实际上受限于工艺条件,crossbar很难做到128行×128列的规模[4,5,6],并且从面积和利用率等实际情况考虑:①采用上万个crossbar占用了很大的面积,增加了功耗;②在映射部分参数规模不大的网络时,硬件资源利用率不高;③存在神经网络参数规模可达到亿级,对于这些极大规模的网络,该架构仍然无法一次性映射全部权重。……
