正在加载图片...
·326· 智能系统学报 第15卷 为时间基本单位控制时序的,窗口滑动之间需要 是按照这3种并行展开方式的其中的一种或者多 等待所有并行化方向上的计算队列计算完成,所 种展开的。 以系统并行自由度越高,负载失衡造成的性能损 对突触进行并行展开通常使用脉动阵列的 失就越严重。对于完全规则设计的卷积计算模 方式。如图5(a)所示,图中K=K,=3,PE缓存权 型,所有并行计算队列的计算时间是相同的,这 重,按照内核行方向K从左到右级联,每次计算 样的系统的并行自由度为1,而增加对权重K 时PE将乘法运算结果与左边相邻PE输入的值 和对激活输入n的选择会使子队列长度不均 做加法运算送往右边相邻PE,每行最右边PE通 等,增加系统并行自由度。 过一个深度为R的IFO连接到次行,脉动阵列 的输入为0,通过全部9个PE之后计算完成全部 计算队列0 计算队列1 内核方向的计算。这种并行展开方式共享了激活 计算队列2 输入,复用了权重。它利用激活稀疏性的系统并 计算队列3 行自由度为1,利用参数稀疏性的系统并行自由 度为K×K,同时利用两种稀疏性的系统并行自由 ☐计算时间☐等待时间|滑窗操作 度为K×K, 图4并行计算性能损失示意 对神经元进行并行展开通常使用二维映射的 Fig.4 Schematic diagram of parallel computing perform- ance losses 方式,如图5(b)所示,特征图的行方向R和列方 卷积计算硬件化设计的关键在于如何兼顾数 向C被分块为T,与T,图中T,=T=3,计算开始 据共享、复用和计算的灵活性,对于稀疏的卷积 时,T×T的激活输入被初始化到T,×T。个PE上, 计算,需要最大化数据共享来降低并行计算时负 权重K广播到每个PE完成乘累加计算,每个 载失衡导致的性能损失。本文分别从并行展开方 PE分别缓存计算结果,每次计算时PE向左或者 式和利用稀疏性方式进行分析比较,确定并行效 向上将激活输入传递给相邻PE,依次按照内核行 率极高、额外资源开销较小的稀疏卷积神经网络 方向K和列方向K,输入权重并传递激活输入, 加速器设计。 经过K×K,个周期,计算完成,每个PE完成了对 2.1并行展开方式 应神经元的全部内核方向的乘累加计算。这种并 如图5所示,总体来说,卷积神经网络加速器 行展开方式共享了权重,复用了激活输入。它利 设计的卷积计算的并行展开方式可以分为3种: 用激活稀疏性的系统并行自由度为T,×T,利用参 展开突触(K、K,)、展开神经元(R、C)、展开特征 数稀疏性的系统并行自由度为1,同时利用两种 图(M、。大部分卷积神经网络加速器的设计都 稀疏性的系统并行自由度为T,×T。 激活输人0 激话输只 权重参数 第0行 PE EFIFOG第1行 凤同散输入 +回 PE 激活输人 输出结果0 第1行 个 EP激活输入 第0行 E 个PE-FIFO2>第2行 第2行 PE 激活输人 PE PE>输出结果 梦结果1 第0列 第1列 第2列 输出结果x PE 激活输入激活输入激活输入 (a)展开突触(脉动阵列) (b)展开神经元(二维映射) (c)展开特征图(平铺) 图5并行展开方式示意 Fig.5 Schematic diagram of parallel expansion mode 对特征图进行并行展开通常使用平铺的方 数稀疏性的系统并行自由度为Tm,同时利用两种 式。如图5(c)所示,输人特征图N和输出特征图 稀疏性的系统并行自由度为T×Tm。 M被分块为Tn与Tm,图5中T=1,Tm=2,对应相同 假设同时利用权重K您和激活输入n的 输入特征图的乘法器共享激活输入,对应相同输 稀疏性,由上文的分析可以看出,无论从什么方 出特征图的乘法器将计算结果经由一个加法树累 向对计算进行并行化,都会增加系统并行自由 加输出。这种并行展开方式共享了激活输入。它 度,系统并行自由度等于PE展开数量。可以预 利用激活稀疏性的系统并行自由度为T,利用参 见在一个没有经过特殊均衡化处理的网络上,由K (m,n) (i, j) I (n) (c+i,r+j) 为时间基本单位控制时序的,窗口滑动之间需要 等待所有并行化方向上的计算队列计算完成,所 以系统并行自由度越高,负载失衡造成的性能损 失就越严重。对于完全规则设计的卷积计算模 型,所有并行计算队列的计算时间是相同的,这 样的系统的并行自由度为 1,而增加对权重 和对激活输入 的选择会使子队列长度不均 等,增加系统并行自由度。 计算队列0 计算队列1 计算队列2 计算队列3 计算时间 等待时间 滑窗操作 图 4 并行计算性能损失示意 Fig. 4 Schematic diagram of parallel computing perform￾ance losses 卷积计算硬件化设计的关键在于如何兼顾数 据共享、复用和计算的灵活性,对于稀疏的卷积 计算,需要最大化数据共享来降低并行计算时负 载失衡导致的性能损失。本文分别从并行展开方 式和利用稀疏性方式进行分析比较,确定并行效 率极高、额外资源开销较小的稀疏卷积神经网络 加速器设计。 2.1 并行展开方式 如图 5 所示,总体来说,卷积神经网络加速器 设计的卷积计算的并行展开方式可以分为 3 种: 展开突触 (Kx、Ky )、展开神经元 (R、C)、展开特征 图 (M、N)。大部分卷积神经网络加速器的设计都 是按照这 3 种并行展开方式的其中的一种或者多 种展开的[4]。 对突触进行并行展开通常使用脉动阵列[20] 的 方式。如图 5(a) 所示,图中 Kx=Ky=3,PE 缓存权 重,按照内核行方向 Kx 从左到右级联,每次计算 时 PE 将乘法运算结果与左边相邻 PE 输入的值 做加法运算送往右边相邻 PE,每行最右边 PE 通 过一个深度为 R 的 FIFO 连接到次行,脉动阵列 的输入为 0,通过全部 9 个 PE 之后计算完成全部 内核方向的计算。这种并行展开方式共享了激活 输入,复用了权重。它利用激活稀疏性的系统并 行自由度为 1,利用参数稀疏性的系统并行自由 度为 Kx×Ky,同时利用两种稀疏性的系统并行自由 度为 Kx×Ky。 K (m,n) (i, j) 对神经元进行并行展开通常使用二维映射的 方式,如图 5(b) 所示,特征图的行方向 R 和列方 向 C 被分块为 Tr 与 Tc,图中 Tr=Tc=3,计算开始 时,Tr×Tc 的激活输入被初始化到 Tr×Tc 个 PE 上, 权重 广播到每个 PE 完成乘累加计算,每个 PE 分别缓存计算结果,每次计算时 PE 向左或者 向上将激活输入传递给相邻 PE,依次按照内核行 方向 Kx 和列方向 Ky 输入权重并传递激活输入, 经过 Kx×Ky 个周期,计算完成,每个 PE 完成了对 应神经元的全部内核方向的乘累加计算。这种并 行展开方式共享了权重,复用了激活输入。它利 用激活稀疏性的系统并行自由度为 Tr×Tc,利用参 数稀疏性的系统并行自由度为 1,同时利用两种 稀疏性的系统并行自由度为 Tr×Tc。 (a) 展开突触(脉动阵列) (b) 展开神经元(二维映射) (c) 展开特征图(平铺) 输出结果x9 第0行 激活输入 第1行 激活输入 第2行 激活输入 第0列 激活输入 第1列 激活输入 第2列 激活输入 激活输入0 激活输入1 FIFO FIFO PE PE PE PE PE PE PE PE PE 第1行 第0行 第2行 第1行 输出结果 激活输入 A W W W W W W W W W PE PE PE PE PE PE PE PE PE W 权重参数 A A A A A A A A A PE W PE W PE W PE W 输出结果0 输出结果1 A A 图 5 并行展开方式示意 Fig. 5 Schematic diagram of parallel expansion mode 对特征图进行并行展开通常使用平铺的方 式。如图 5(c) 所示,输入特征图 N 和输出特征图 M 被分块为 Tn 与 Tm,图 5 中 Tn=1,Tm=2,对应相同 输入特征图的乘法器共享激活输入,对应相同输 出特征图的乘法器将计算结果经由一个加法树累 加输出。这种并行展开方式共享了激活输入。它 利用激活稀疏性的系统并行自由度为 Tn,利用参 数稀疏性的系统并行自由度为 Tm,同时利用两种 稀疏性的系统并行自由度为 Tn×Tm。 K (m,n) (i, j) I (n) 假设同时利用权重 和激活输入 (c+i,r+j) 的 稀疏性,由上文的分析可以看出,无论从什么方 向对计算进行并行化,都会增加系统并行自由 度,系统并行自由度等于 PE 展开数量。可以预 见在一个没有经过特殊均衡化处理的网络上,由 ·326· 智 能 系 统 学 报 第 15 卷
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有