脉动阵列基本原理

1.概念

脉动阵列(systolic array),一种阵列结构。脉动意即其工作方式和过程犹如人体血液循环系统的工作方式和过程。

在这种阵列结构中,数据按预先确定的“流水”方式在阵列的处理单元间有节奏地“流动”。在数据流动的过程中,所有的处理单元同时并行地对流经它的数据进行处理,因而它可以达到很高的并行处理速度。

同时,预先确定的数据流动模式使数据从流进处理单元阵列到流出处理单元阵列的过程中完成所有对它应做的处理,无需再重新输入这些数据 ,且只有阵列的“边界”处理单元与外界进行通信 ,由此实现在不增加阵列机输入、输出速率的条件下,提高阵列机的处理速度。由于阵列和处理单元的结构简单、规则一致 ,可达到很高的模块化程度,非常适合超大规模集成电路的设计和制造。

2.发展

脉动阵列的概念最早在1982年提出,在2017年6月26日的第44届International Symposium on Computer Architecture (ISCA)上,谷歌公司提出了用于数据中心服务器端进行神经网络推理加速的张量处理器Tensor Processing Unit (TPU) ​,其相比于服务器端的CPU与GPU速度快了近15-30倍。

3.原理

神经网络运算中最频繁的运算是卷积运算,本质上即矩阵相乘,第一代TPU的核心运算单元便是采用了脉动阵列来解决矩阵相乘的问题。

下图展示了用7个时钟周期完成两个3×3矩阵相乘的运算:

在这里插入图片描述
如图所示,数据的输入与输出在不同列方向是错拍的,但是有多个矩阵相乘时,可以实现连续流水错拍输出。当脉动阵列的规模很大时,大尺度的矩阵相乘也会在较少的时钟周期下按节拍输出,十分高效。

有关脉动阵列的详细分析请参考:
VLSI数字信号处理系统——第七章脉动结构设计

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值