脉动阵列实现卷积计算

脉动阵列实现卷积计算

1、将卷积计算转化为矩阵与矩阵乘
2、通过脉动阵列实现矩阵乘法

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

将卷积计算转化为矩阵乘法运算

此处可参考文章:链接: link
例一:
在这里插入图片描述
例二:如下图,特征图像 F 大小为 3 x 3,通道数为 2;卷积核 W 和 G 大小为 2 x 2,卷积核个数为 2。
在这里插入图片描述

通过脉动阵列实现矩阵乘法

每一个PE就是一个乘加器MAC。

值得注意的是,在使用脉动矩阵进行矩阵计算的时候需要对数据调整好形式,按照一定顺序,分时进入脉动阵列。

模式一:在脉动阵列中流动的是输入和权重乘的中间结果,权重存储在脉动计算单元中。
(参考文章:链接: link

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

模式二:在脉动阵列流动的是输入和权重,而每一步的结果保存在脉动计算单元中。
(参考文章:链接: link
在这里插入图片描述

本文是我对我看的文章的一个简要概括。(引用的文章在文中都有链接,内容更加详细,介绍更清楚)

在设计基于脉动阵列的FPGA卷积计算模块时,实现高效的并行度和优化资源占用是关键。你可以参考这篇资料:《基于脉动阵列的FPGA卷积计算模块:低延迟与高效设计》。文章中详细介绍了如何通过创新的硬件设计策略来平衡数据通路的并行度和资源占用。首先,脉动阵列的设计允许我们动态调整阵列大小以匹配输入输出特征图的维度,这种方式减少了对长广播和多扇入/扇出的需求,从而降低了硬件资源消耗。 参考资源链接:[基于脉动阵列的FPGA卷积计算模块:低延迟与高效设计](https://wenku.csdn.net/doc/6401ad28cce7214c316ee7f3?spm=1055.2569.3001.10343) 在使用Vivado HLS进行高层次综合时,可以通过合理安排数据通路,优化存储和计算的布局,以减少不必要的数据传输和处理。例如,利用im2col方法优化数据预处理,以减少数据重叠和提高数据存取效率。同时,利用HLS工具的流水线优化能力,可以进一步提升计算单元的吞吐量和整体计算效率。 在实现过程中,可以通过实验和仿真不断调整参数,观察不同的数据通路设计和资源分配对性能的影响。这样能够找到在当前FPGA资源限制下的最优设计。对于细节处理,如数据通路的构建、流水线级数的设定,以及循环展开的策略,都是需要细致考虑和调整的关键因素。 建议在实际设计中结合实际应用场景和硬件平台的特性,进行定制化的设计和优化。如此,你将能够设计出既满足并行度需求又优化资源占用的高效FPGA脉动阵列卷积计算模块。 参考资源链接:[基于脉动阵列的FPGA卷积计算模块:低延迟与高效设计](https://wenku.csdn.net/doc/6401ad28cce7214c316ee7f3?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值