脉动阵列

article/2025/9/17 2:32:56

脉动阵列是一个比较古老的概念,早在1982年就有了,可是,最近google的TPU采用了这个结构,脉动阵列又火了起来。我也是从今年新入职了一家公司后才接触到的,对比之前自己设计的AI架构,脉动阵列确实有很多优势。所以本文从传统AI计算架构和脉动阵列的对比来说明脉动阵列的设计方法和优势。

 

卷积运算

在正式介绍AI硬件架构前,简单讲一下卷积运算。因为卷积运算在CNN中发挥着重要作用,也是CNN中计算量最大的步骤。比如对于一个8x5大小的图像,用3x3卷积核进行卷积,首先将图像补充到10x7大小,然后移动3x3卷积核,得到卷积后的图像。

用公式表示这种运算为:

QQ截图20190127205326.png

在神经网络中有大量的卷积运算,在每一层网络中,有M个输入图片(称之为feature map,对应着一个输入通道),N个输出feature map(N个输出通道),M个输入会分别进行卷积运算然后求和,获得一幅输出map。那么需要的卷积核数量就是M*N。经过仔细观察和思考,可以看出每个卷积核会被M个图片共享,脉动阵列正是利用了共享数据。

算法E.png

非脉动计算架构

这是我最开始考虑的一种方案,主要思想是在输入和输出通道上实现并行运算。就针对上述例子(3x4卷积层),使用12个运算通道,每个通道完成卷积运算和累加,然后每3个通道完成求和,得到一个输出map。如下图:

QQ截图20190127205030.png

假设feature map为x(I,j),卷积核为W(3x3),那么PE中乘积和累加可以表示为:

q1.png

输出通道结果可以表示为:

q2.png

非脉动结构feature map的fanout比较大,上述中同一个feature map被三个PE共用,fanout为3,如果输入通道更大那么fanout会更大,大的fanout会影响FPGA时序。同时完成卷积运算后需要在输入通道之间增加额外的加法树。同时对于不同层输入输出通道数不一样,加法树就会变得很复杂。而接下来我们看到脉动阵列具有灵活的配置以及较好的时序性。

脉动阵列

针对上述的方案是否能够进行改进呢?可以首先想到能不能去除加法树,将输入通道的求和也使用累加来实现。那就变成只有一个PE完成卷积运算以及不同通道的求和。但是一个PE却降低了并行度,那么可以想到增加串行的PE数量来增加输入并行度,即演变为一列PE来实现输入通道求和。由于PE排序上的空间限制,导致后边一个PE的计算相比于前一个PE要有1个周期延时,如果将数据从从PE间的移动打一拍,那正好可以在第二个PE计算出来的同时完成和前一个PE的求和,这就是脉动的关键所在。

QQ截图20190127205541.png

增加多列脉动结构,就构成了脉动矩阵,比如针对上述网络层,就增加4列,那么就是一个3X4矩阵阵列。因为每一列使用相同的feature map,那么可以将feature map数据灌入的方向从沿着列改到沿着行。其中Wij是卷积核,i对应输入通道序号,j对应输出通道序号。脉动阵列每一个相邻PE之间有一个时钟周期延时,x1,x2,x3进入PE的时间也延时一个周期,输出数据也相差一个周期,但是整个计算实现了流水同步。并行度也在3x4=12。

QQ截图20190127205244.png

脉动阵列的fanout只有1,同时没有了加法树的复杂结构,而且不同层结构对脉动矩阵结构没有强依赖,可以通过数据输入顺序来调整对脉动结构的适配。

THE END

本文对比了脉动阵列和非脉动阵列的特点,脉动阵列具有较小的fanout,占用较少的资源。同时还能适配不同形式的计算。

在看点一下 大家都知道

 

 


http://chatgpt.dhexx.cn/article/xPg7TydF.shtml

相关文章

创建软RAID5阵列

centos7部署raid5阵列 前言 ①实验环境 系统:Linxu centos7 内存: 硬盘:20GB系统盘一块,3块5GB拓展硬盘 ②目的: 用4块硬盘在 centos 7系统中模拟软Radi 5磁盘阵列,当其中一块盘坏掉,保证生产正常运行。…

相控阵天线(七):常规平面阵列天线分布(矩形阵列、三角栅格、六边形阵列和圆形阵列)

目录 简介矩形栅格平面阵列三角栅格平面阵列六边形阵列圆形平面阵列空心平面阵列 简介 常见的平面阵有一些基本类型,按照栅格形式可以进行以下划分:矩形栅格、三角形栅格、同心圆环和椭圆环栅格等;按照边界形式可以进行以下划分:…

常见的磁盘阵列

常见的磁盘阵列 文章目录 常见的磁盘阵列概念RAID的分类RAID0RAID1RAID5RAID6RAID10 概念 RAID是Redundent Array Inexpensive Disks的缩写,简称为“磁盘阵列”。后来把RAID中的字母I被改做了Independent,RAID就成了“独立冗余磁盘阵列”,但…

RAID磁盘阵列与阵列卡 2022.6.5

文章目录 RAID磁盘阵列与阵列卡一、RAID磁盘阵列详解1、RAID 02、RAID 13、RAID 54、RAID 65、RAID 10 二、磁盘阵列卡1、阵列卡介绍2、RAID卡的接口类型1)IDE接口2)SCSI接口3)SATA接口4)SAS接口 3、阵列卡的缓存 三、小结 RAID磁盘阵列与阵列…

服务器磁盘阵列

目录 简述 配置RAID磁盘 检查是否安装mdadm软件 创建磁盘分区(根据实际需求配置) 查看RAID详细信息​编辑 配置自动加载RAID软件 维护RAID 模拟故障磁盘 磁盘重建完成 移除故障磁盘 添加新磁盘 简述 RAID( Redundant Array of Inexpensive…

磁盘阵列(RAID)

在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,导致I/O性能非常低,且存储容量还会受到限制。另外,单块磁盘极其容易出现物理故障,经常导致数据的丢失。因此大家就在想&#x…

阵列处理机

阵列处理机: 通过重复设置大量相同的处理单元PE(Processing Element),将它们按一定方式互连成阵列,在单一控制部件CU(Control Unit)控制下,对各自所分配的不同数据并行执行同一组指…

磁盘阵列

磁盘阵列 转载整合自以下链接: https://blog.csdn.net/baiboy4493/article/details/2454370 https://blog.csdn.net/buxiaoxindasuile/article/details/82960437 个人总结: 独立冗余磁盘阵列(RAID) 一种把多块独立硬盘&#xff0…

CAD-阵列命令

CAD-阵列命令学习 在CAD中,阵列命令是用来快速,准确地复制一个对象的命令工具,可以根据对行数,列数,中心点的设定来将这个物体根据你自己的意愿进行摆放和排布。快捷键是ar。 可以点击阵列命令,或者点击修改…

存储器阵列

存储器阵列 高效地保存大量数据3种常见类型: 动态随机访问存储器(Dynamic random access memory, DRAM)静态随机访问存储器(Static random access memory, SRAM)只读存储器(Read only memory, ROM&#xff…

RAID 磁盘阵列

磁盘阵列 (Redundant Arrays of Independent Disks,RAID) 作者: 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"数块独立磁盘构成具有冗余能力的阵列”之意。 …

详解磁盘阵列

什么是磁盘阵列? 相互独立磁盘 构成的具有冗余能力的阵列 所谓冗余,原意指重复,在计算机科学中称为备份 也就是说:磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,这些磁盘可以共同使用&#…

RAID磁盘阵列

目录 一、RAID磁盘阵列 1. RAID0 2.RAID1 3.RAID5 ​4.RAID 6 5.RAID 10 6.RAID 01 二、RAID实验配置 1.RAID 0 实验 2.RAID 1实验 3.RAID 5 实验 4.RAID 10实验 一、RAID磁盘阵列 RAID磁盘阵列是Redundant Array of Independent Disks的缩写,中文简称为独…

RAID磁盘阵列与配置(详细)

文章目录 一、RAID磁盘阵列1、RAID级别 ①、RAID 0(条带化存储)②、RAID 1(镜像存储)③、RAID 5④、RAID 6⑤、RAID 10(先做镜象,再做条带)⑥、RAID 01(先做条带,再做镜象) 二、创建软 RAID 磁盘阵列实验三…

超详细的八种RAID磁盘阵列原理及优缺点

RAID磁盘阵列 1. 磁盘(Disk)单个磁盘的局限性RAID的产生 2. RAID的物理分类3. RAID的逻辑分类RAID 0RAID 1RAID 2RAID 3RAID 4RAID 5RAID 6 4. 混合RAID:RAID 105. RAID小结 1. 磁盘(Disk) 指利用磁记录技术存储数据的…

Win11蓝屏代码0x0000001A的解决方法

Win11蓝屏代码0x0000001A的解决方法是什么?最近有很多用户反映遇到了Win11蓝屏代码0x0000001A的问题,但是蓝屏的原因可能有各种问题导致的,例如,它可能有多种不一样的停止代码,下面我们就来看看小编为大家带来的Wi11蓝…

【学习笔记】win10报0xc0000221错误无法开机

背景 公司电脑不知道装了什么东西之后,重启的时候蓝屏,无法正常开机。报的是 文件:\\Windows\system32\drivers\bootsafe64_ev.sys 错误代码:0xc0000221上网查了下,说是插个U盘启动盘,从U盘启动系统,把这文…

windows server蓝屏报错解决方案

联想服务器蓝屏解决方案 错误代码: c000021a 错误提示: The unhandled exception in Session Manager system process terminated with a status of 0x0000005 如出现以下报错,或出现无法开机的问题,请尝试后续方法 1、重启机…

解决windows蓝屏 STOP c000021a {Fatal System Error} (by 星空武哥)

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 昨天晚上睡觉前正常关闭笔记本电脑,正常断开电源,所有的一切操作都是正常的,但…