一种基于三维堆叠芯片分块结构的矩阵乘计算方法
本发明涉及三维堆叠计算芯片、三维堆叠存储器、三维封装和人工智能计算加速芯片,具体涉及一种基于三维堆叠计算分块、三维堆叠高带宽存储分块以及中介层广播互连的矩阵乘计算方法。本文所述的计算芯片,有些文献也叫逻辑芯片。
背景技术:
1、矩阵乘(matrix multiplication)和批量矩阵乘(batched matrixmultiplication,bmm)是人工智能推理和训练中的核心运算,其计算量在深度神经网络总计算量中占比高。随着模型规模不断增大,计算芯片对带宽、算力和功耗的需求同步增长,现有架构面临以下主要瓶颈:
2、第一,计算与存储分离导致带宽瓶颈。现有人工智能加速芯片大多采用二维平面结构,计算单元与存储单元在物理上分离,数据需要在片上缓冲与片外存储之间进行长距离搬运。即使引入高带宽存储器(high bandwidth memory,hbm),数据仍需经过底层、中介层和芯片边界多个层次的传输,形成带宽瓶颈。
3、第二,hbm三维结构未被充分利用。 高带宽存储器采用多层动态随机存取存储器(dynamic random access memory,dram)垂直堆叠结构,具有天然的三维空间特性,但在现有系统级架构中仍被抽象为若干二维通道(channel),未在架构层面进行三维分块存储和三维数据调度,导致hbm内部带宽和空间结构利用率偏低。
4、第三,三维堆叠计算芯片未形成架构层面的三维体系。 现有部分计算芯片虽然在物理层实现了计算层的垂直堆叠,例如采用tsv互连多层硅片,但在架构层面仍采用二维分块、二维数据路径和二维调度模型,未能将垂直堆叠的物理优势转化为架构层面的三维计算能力。
5、第四,计算调度与存储调度未协同设计。 现有系统中,计算分块模型和存储分块模型往往独立设计,导致计算单元与存储单元之间的数据路径不对称、数据共享效率低,计算单元频繁等待存储数据,处理单元(processing element,pe)利用率偏低。
6、第五,现有技术中高带宽存储器通常以通道为单位进行计算组织,未将高带宽存储器的多层存储结构与计算芯片的多层计算结构进行同构的三维分块和空间映射,导致计算块与存储块之间的数据路径不对称;现有广播机制通常发生在片上网络或总线层面,缺乏以三维存储块为源、以相邻三维计算块为目标的单份存储多块复用机制。
7、申请公布号cn119342842a,申请公布日2025年06月17日的发明专利申请公开了一种三维堆叠集成电路架构。该方案依托中介层实现存储器芯粒、计算芯粒、cpu芯粒等多种芯粒的三维堆叠布局,通过计算芯粒与存储芯粒的垂直堆叠短距互连,降低芯片通信时延、提升芯片算力与存储容量,可实现ai、机器学习相关运算功能。该方案和本方案实现方法不相同,该方案仅公开了通用的三维芯粒堆叠硬件架构,未针对矩阵乘计算场景设计专属的三维计算分块、三维存储分块空间映射机制,也未实现矩阵张量三维分块调度、存储分组隔离、双缓冲数据重叠执行等核心矩阵乘优化策略。
8、申请公布号cn111291859a,申请公布日2020年06月16日的发明专利申请公开了一种基于三维堆叠dram架构的通用矩阵-矩阵乘法数据流加速器半导体电路。该方案依托三维堆叠dram结构,通过存储器内置查找表替代传统乘法运算,结合脉动数据流架构、分级查找机制实现矩阵乘法加速,缓解深度学习张量计算的存储墙问题。该方案和本方案实现方法不相同,该方案核心基于查找表运算与脉动传播实现矩阵乘加速,未构建三维计算、三维存储、三维矩阵乘分块协同的立体计算架构,不存在三维计算块与三维存储块的空间映射关系,也未实现batch、m、n、k多维度矩阵分块调度、片上部分和累加、共享数据单份存储多块复用的专属优化机制。
9、综上,现有技术未能构建融合三维计算分块、三维高带宽存储分块、三维矩阵乘分块、三维数据路径、三维广播调度与三维双缓冲流水的全立体协同计算架构,难以充分发挥三维堆叠硬件的矩阵运算加速性能。因此,业内亟需一种实现三维计算、存储、矩阵计算三重分块空间协同映射的方法实现矩阵乘计算,可缩短数据传输路径、提升矩阵并行运算能力,并依托数据复用与三维双缓冲机制实现最大化算力利用率。
技术实现思路
1、本发明的目的在于提供一种基于三维堆叠计算分块、三维堆叠高带宽存储分块、中介层立体广播和三维矩阵乘并行调度的方法,使计算与存储在三维空间内建立对应映射关系,数据以较短路径流动,并实现三维矩阵乘分块计算、共享输入数据、减少重复存储、广播复用和双缓冲流水。
2、为实现上述目的,本发明提出了一种基于三维堆叠芯片分块结构的矩阵乘计算方法。系统包括三维堆叠计算芯片、三维堆叠高带宽存储器以及位于二者之间的中介层互连结构。三维堆叠计算芯片在垂直方向和平面方向划分为多个三维计算块,三维堆叠高带宽存储器在垂直方向和平面方向划分为多个三维存储块,多个三维计算块与多个三维存储块在三维空间中建立一一对应或邻近映射关系,从而缩短数据搬运路径、提高数据供给效率。
3、在矩阵乘或批量矩阵乘计算过程中,将输出张量沿batch、m、n三个维度进行三维分块,并将各输出子块映射到对应的三维计算块执行;将k维作为归约维划分为多个归约子块并按轮次处理,各三维计算块对部分积进行片上累加。对于满足共享关系的输入子块,通过中介层中的一对多广播结构实现单份存储和多块复用,以减少重复存储与重复搬运。进一步地,在各三维计算块内设置双缓冲结构,使当前归约子块的加载与上一归约子块的乘加计算重叠执行,从而形成流水化处理机制。
4、所述三维堆叠计算芯片可由多层计算切片构成,每层局部区域内设置二维pe阵列,多层切片在垂直方向协同并行计算;所述三维堆叠高带宽存储器可由多层dram堆叠构成,并在块内配置多个存储组或bank group,以支持输入数据、输出数据及预取数据的分组存放与并行访问。
5、下面结合系统结构和方法步骤对本发明作进一步说明:
6、一种基于三维堆叠芯片分块结构的矩阵乘计算方法,其特征在于:
7、所述三维堆叠计算芯片包含沿垂直方向堆叠、经由tsv实现互连的多层计算切片,整体在垂直维度与平面维度划分出若干三维计算块;每个三维计算块内部配置二维pe脉动阵列,以及由两个片上缓冲区搭建的双缓冲存储结构,同时配备计算块级控制单元,用于统筹各层计算切片同步运算、缓冲区切换与数据加载调度;所述pe脉动阵列内的每个pe单元均集成乘法器、加法器与寄存器,可兼容权重驻留ws、输出驻留os两类数据流运行模式;
8、所述三维堆叠高带宽存储器由多层dram存储层垂直堆叠构成,层间依靠tsv互连,整体在垂直、平面两个方向划分为多个三维hbm块;每个三维hbm块内部设有三个bankgroup,分别用于存放输入子块a、输入子块b、输出子块c的数据;
9、所述中介层布置于三维堆叠计算芯片与三维堆叠高带宽存储器之间,其内部集成高密度金属互连线以及一对多广播缓冲节点;多个三维计算块与多个三维hbm块在三维空间中构建一一映射或者邻近映射关系,每一个三维计算块和其对应的三维hbm块,在中介层的平面投影位置相互正对或者彼此相邻;
10、所述矩阵乘计算方法,包括如下步骤:
11、步骤1:在hbm中将输入张量a(batch,m,k)、输入张量b(batch,k,n)和输出张量c(batch,m,n)沿batch、m、n三个方向进行三维分块,形成多个三维子块,并将各三维子块分别对应至三维计算块;
12、步骤2:将k方向划分为多个归约子块,每个三维计算块针对其负责的三维输出子块分轮读取输入张量a的子块和输入张量b的子块,执行乘加计算并在片上缓冲区内累加部分和;
13、步骤3:在每个三维计算块内,通过多层计算切片垂直并行处理不同batch子范围;每层计算切片内的pe脉动阵列中,输入数据沿行方向传输,权重数据沿列方向传输,各pe在同一计算节拍执行乘加操作并将结果累加至部分和寄存器,直至完成k方向的多个计算节拍;
14、步骤4:对于具有相同batch分块索引和相同m分块索引但n分块索引不同的多个三维计算块,共享输入张量a的子块;对于具有相同batch分块索引和相同n分块索引但m分块索引不同的多个三维计算块,共享输入张量b的子块;共享输入子块在源三维hbm块中存储单份,并通过中介层一对多广播缓冲节点分发至多个目标三维计算块;
15、步骤5:在每个三维计算块内的两个片上缓冲区之间实施双缓冲流水;当其中一个缓冲区向pe脉动阵列供给当前归约子块数据时,另一个缓冲区从本地或相邻三维hbm块加载下一归约子块数据,两个缓冲区交替工作,并将累加完成的三维输出子块写回对应三维hbm块。
16、本发明的有益效果包括:构建三维分块计算结构;实现三维存储与三维计算空间对应映射;实现三维矩阵乘立体并行;减少输入数据的重复存储,通过广播复用降低存储开销;实现读写分离的三维存储组结构;实现中介层广播和双缓冲流水;提高高带宽存储利用率、计算块利用率和处理单元并行度,并降低数据搬运距离。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com