脉动阵列实现卷积计算

脉动阵列实现卷积计算

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
在这里插入图片描述

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

### 卷积神经网络中的脉动阵列 #### 脉动阵列概述 脉动阵列是一种特殊的并行计算架构,特别适用于矩阵乘法和卷积运算。这种架构能够高效地执行大规模的数据流处理任务,在深度学习尤其是卷积神经网络(CNN)的应用中表现出色[^1]。 #### 数据流动机制 在脉动阵列中,数据按照预定路径有序移动,形成一种波浪式的传播效果。对于CNN而言,输入特征图与滤波器之间的逐元素相乘累加操作可以在这样的结构内被高度优化。具体来说,输入数据和权重会沿着不同的方向流入各个处理单元,并在那里完成必要的算术逻辑运算[^3]。 #### FPGA实现细节 当利用现场可编程门阵列(FPGA)构建脉动阵列时,可以显著提升卷积层的吞吐量和能源效率。相比于传统CPU或GPU平台,FPGA提供了更高的灵活性和更低能耗的选择。借助高层次综合工具(HLS),开发者可以用更高级别的语言编写算法,从而简化设计流程并缩短开发时间[^2]。 #### 实际案例分析 Google Tensor Processing Unit (TPU) 是一个典型的例子,它内部集成了专门用于加速卷积计算脉动阵列。除了基本的卷积外,TPU还配备了额外的功能模块如矢量计算单元、激活单元等,共同协作以支持完整的DNN推理过程。这些组件之间通过精心设计的数据通路相连,确保了高效的流水线作业[^5]。 ```cpp // C++ HLS Code Example for Convolution Operation on Pulse Array void conv_layer( hls::stream<float> &in_stream, hls::stream<float> &out_stream, const float weights[INPUT_SIZE][KERNEL_SIZE], int input_size, int kernel_size, int stride) { #pragma HLS INTERFACE axis port=in_stream out_stream #pragma HLS ARRAY_PARTITION variable=weights complete dim=0 static float buffer[BUFFER_SIZE]; // Load data into local buffer and perform convolution... } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxy_hao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值