CN117369769A - 一种多功能向量算法加速器的动态重构方法 - Google Patents
一种多功能向量算法加速器的动态重构方法 Download PDFInfo
- Publication number
- CN117369769A CN117369769A CN202311399106.9A CN202311399106A CN117369769A CN 117369769 A CN117369769 A CN 117369769A CN 202311399106 A CN202311399106 A CN 202311399106A CN 117369769 A CN117369769 A CN 117369769A
- Authority
- CN
- China
- Prior art keywords
- vector
- algorithm
- source data
- layer
- parallelism
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 title claims abstract description 263
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 238000005192 partition Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 21
- 238000009825 accumulation Methods 0.000 claims description 19
- 230000021615 conjugation Effects 0.000 claims description 19
- 238000001514 detection method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种多功能向量算法加速器的动态重构方法,包括提取算法并行度及运算特征,根据算法并行度和操作数数量确定向量存储模块的分区方式;根据算法并行度和操作数数量确定向量源数据通道的启用数量,通过源数据通道将源数据从向量存储模块搬至向量计算模块;根据算法并行度、第一层运算层的运算类型、运算结构和除法器启用需求确定向量计算模块内部的运算单元的启用数量和连线方式;根据算法并行度和运算结构确定向量结果数据通道的启用数量。本发明通过提取算法并行度及运算特征,对向量算法加速器的硬件电路进行动态重构,能灵活地进行存储资源、数据通路和计算资源的组合调度,在保证系统性能的同时显著降低面积开销。
Description
技术领域
本发明涉及向量算法加速器领域,尤其是一种多功能向量算法加速器的动态重构方法。
背景技术
数字信号处理是指利用数字运算方法对信号进行变换、滤波、检测、估值、调制解调和快速算法等处理的一种技术。数字信号处理芯片具有专门的硬件乘法器,广泛采用流水线操作,可以快速地实现各种数字信号处理算法,具有运算速度快、功耗低、实时性强等优点,在当今的数字化时代背景下,数字信号处理芯片已成为通信、计算机、消费电子等领域的一项基础性产品。向量类算法包括向量加/减法、向量点乘、向量共轭、向量点积、向量累加求和以及向量均值,是实现均值滤波、方差等复杂算法的前提,是数字信号处理技术中不可或缺的一类基础算法。
在将多种向量算法加速器组合形成多功能向量算法加速器时,若只是进行多种向量算法加速器的简单集成,将会产生大量的冗余逻辑,导致集成系统的复杂度提高和电路面积的浪费。此外,当需要新增一个向量算法或算法并行度发生变化时,就需要对算法加速器进行重新设计,设计效率不高。
发明内容
发明目的:提供一种多功能向量算法加速器的动态重构方法,以解决现有技术存在的上述问题。
技术方案:一种多功能向量算法加速器的动态重构方法,包括以下步骤:
S1、提取算法并行度及运算特征,所述运算特征包括操作数数量、第一层运算层的运算类型、运算结构和除法器启用需求;
S2、根据提取的算法并行度和操作数数量确定向量存储模块的分区方式,将源数据有序存储在向量存储模块中;
S3、根据提取的算法并行度和操作数数量确定向量源数据通道的启用数量,通过源数据通道将源数据从向量存储模块搬至向量计算模块;
S4、根据提取的算法并行度、第一层运算层的运算类型、运算结构和除法器启用需求确定向量计算模块内部的运算单元的启用数量和连线方式,执行相应的向量运算;
S5、运算结束后,根据提取的算法并行度和运算结构确定向量结果数据通道的启用数量,通过结果数据通道将结果数据从向量计算模块搬至向量存储模块。
根据本申请的一个方面,所述向量算法包括向量加/减法、向量点乘、向量共轭、向量点积、向量累加求和以及向量均值;
所述运算特征具体包括:
操作数数量,操作数数量为1的算法包括向量共轭、向量累加求和以及向量均值,操作数数量为2的算法包括向量加/减法、向量点乘和向量点积;
第一层运算层的运算类型,包括加/减法、乘法和共轭,第一层运算层的运算类型为加/减法的算法包括向量加/减法、向量累加求和以及向量均值,第一层运算层的运算类型为乘法的算法包括向量点乘和向量点积,第一层运算层的运算类型为共轭的算法包括向量共轭;
运算结构,包括点对点结构和树形结构,点对点结构的算法包括向量加/减法、向量点乘和向量共轭,树形结构的算法包括向量点积、向量累加求和以及向量均值;
除法器启用需求,包括需要启用除法器和不需要启用除法器,需要启用除法器的算法包括向量均值,不需要启用除法器的算法包括向量加/减法、向量点乘、向量共轭、向量点积以及向量累加求和。
根据本申请的一个方面,所述步骤S2具体为:
根据提取的算法并行度和操作数数量划分源数据区,若操作数数量为2,则将源数据区分成2个各包括m个存储器的分区,分别用于存储1个操作数对应的源数据,其中m为算法并行度且为正整数;若操作数数量为1,则不进行源数据区的分区,将源数据区用于存储单个操作数对应的源数据。
根据本申请的一个方面,所述步骤S3具体为:
根据提取的算法并行度和操作数数量划分源数据通道,若操作数数量为2,则将源数据通道分成2组源数据通道,分别用于传输1个操作数对应的源数据,每个分组包括m个源数据通道,其中m为算法并行度且为正整数;若操作数数量为1,则不进行源数据通道的划分,将源数据通道均用于单个操作数对应的源数据的传输。
根据本申请的一个方面,所述步骤S4具体为:
S41、根据提取的算法并行度、第一层运算层的运算类型和运算结构启用第一层运算层的运算单元,若第一层运算层的运算类型为加/减法且运算结构为点对点结构,则启用m个加法器来构成第一层运算层,其中m为算法并行度且为正整数;若第一层运算层的运算类型为加/减法且运算结构为树形结构,则启用2n-1个加法器来构成第一层运算层,其中n为使m≤2n-1成立的最小正整数;若第一层运算层的运算类型为乘法且运算结构为点对点结构,则启用m个乘法器来构成第一层运算层;若第一层运算层的运算类型为乘法且运算结构为树形结构,则启用2n-1个乘法器来构成第一层运算层;若第一层运算层的运算类型为共轭,则不启用运算单元,在第一层运算层对输入源数据执行虚部取反操作;
S42、根据提取的算法并行度、运算结构和除法器启用需求启用除第一层运算层以外的其余运算层的运算单元,并进行运算单元之间的连线,若运算结构为点对点结构,则不进行向量计算模块之间的连线,将第一层运算层产生的m个运算结果直接作为最终结果输出;若运算结构为树形结构且不需要启用除法器,则启用2n-x个加法器构成第x层运算层,各层运算层的运算单元以树形结构相连接,累加树结构最后一层的加法器的运算结果作为最终结果输出,其中x为正整数且满足x≤n;若运算结构为树形结构且需要启用除法器,则启用2n-x个加法器构成第x层运算层,各层运算层的运算单元以树形结构相连接,将累加树结构最后一层的加法器的运算结果作为被除数输入除法器,除法器的运算结果作为最终结果输出。
根据本申请的一个方面,所述步骤S5具体为:根据提取的算法并行度和运算结构启用结果数据通道,并对结果数据进行存储,若运算结构为点对点结构,则每接收到向量计算模块一个时钟周期的运算结束信号,就会同时启用m个结果数据通道,通过所述m个结果数据通道将m个结果数据并行存入向量存储模块中,其中m为算法并行度且为正整数;若运算结构为树形结构,则每接收到向量计算模块一个时钟周期的运算结束信号,就会启用1个结果数据通道,通过所述1个结果数据通道将1个结果数据存入向量存储模块中。
根据本申请的一个方面,还包括在每个结果数据通道对应使用同步寄存器,在传输不同到达时间的结果数据时,实现结果数据通道之间的同步。
根据本申请的一个方面,所述运算特征还包括向量长度和数据类型,根据所述向量长度和数据类型选择合适的存储空间和运算时间,提高存储效率和运算速度。
根据本申请的一个方面,还包括根据所述向量计算模块内部各个运算层产生的结果数据、消耗的时间和占用的资源等信息,按照负载均衡策略,分配和调整向量计算模块之间的运算任务。
根据本申请的一个方面,还包括在所述源数据通道同时访问同一个向量存储模块分区中的数据时,通过冲突检测和解决策略,保证源数据通道的正确访问。
有益效果:本发明提出了一种多功能向量算法加速器的动态重构方法,能根据实际的算法运算需求对硬件电路进行动态重构,灵活地进行存储资源、数据通路和计算资源的组合调度,从而解决多功能向量算法加速器存在的冗余控制逻辑及数据流通路问题;本方法适用于不同并行度下向量算法加速器的硬件电路实现,可提高设计效率。
附图说明
图1是本发明中多功能向量算法加速器的动态重构方法的实施流程图。
图2是本发明中向量存储模块的存储逻辑示意图。
图3是本发明中向量计算模块的运算层排布示意图。
图4是本发明中向量计算模块的动态重构过程的具体实施流程图。
具体实施方式
以下结合附图对本发明方案进行详细说明。
本发明所述的多功能向量算法加速器的动态重构方法,如图1所示,包括以下步骤:
S1、提取算法并行度及运算特征,所述运算特征包括操作数数量、第一层运算层的运算类型、运算结构和除法器启用需求;
S2、根据提取的算法并行度和操作数数量确定向量存储模块的分区方式,将源数据有序存储在向量存储模块中;
S3、根据提取的算法并行度和操作数数量确定向量源数据通道的启用数量,通过源数据通道将源数据从向量存储模块搬至向量计算模块;
S4、根据提取的算法并行度、第一层运算层的运算类型、运算结构和除法器启用需求确定向量计算模块内部的运算单元的启用数量和连线方式,执行相应的向量运算;
S5、运算结束后,根据提取的算法并行度和运算结构确定向量结果数据通道的启用数量,通过结果数据通道将结果数据从向量计算模块搬至向量存储模块。
在进一步的实施例中,输入的向量算法为a=b+c,其中a、b、c均为长度为12的整型向量,提取出该向量算法的并行度为12,操作数数量为2,第一层运算层的运算类型为加/减法,运算结构为点对点结构,除法器启用需求为不需要;根据提取的并行度和操作数数量,将源数据区分成2个各包括12个存储器的分区,分别用于存储b和c两个向量对应的源数据;根据提取的并行度和操作数数量,将源数据通道分成2组源数据通道,分别用于传输b和c两个向量对应的源数据,每个分组包括12个源数据通道;根据提取的并行度、第一层运算层的运算类型和运算结构,启用12个加法器来构成第一层运算层,并将每个加法器的两个输入端分别连接到两组源数据通道中对应位置的输出端,执行b和c两个向量对应位置元素相加的操作;根据提取的并行度和运算结构,每接收到向量计算模块一个时钟周期的运算结束信号,就会同时启用12个结果数据通道,并通过这12个结果数据通道将第一层运算层产生的12个结果数据并行存入向量存储模块中。
本申请根据不同类型和结构的向量算法动态地重构向量存储模块、向量源数据通道、向量计算模块和向量结果数据通道等模块,实现多功能向量算法加速器的高效率、高灵活性和高可扩展性。
进一步的,所述向量算法包括向量加/减法、向量点乘、向量共轭、向量点积、向量累加求和以及向量均值。
需要提取的运算特征具体包括:
操作数数量,操作数数量为1的算法包括向量共轭、向量累加求和以及向量均值,操作数数量为2的算法包括向量加/减法、向量点乘和向量点积;
第一层运算层的运算类型,包括加/减法、乘法和共轭,第一层运算层的运算类型为加/减法的算法包括向量加/减法、向量累加求和以及向量均值,第一层运算层的运算类型为乘法的算法包括向量点乘和向量点积,第一层运算层的运算类型为共轭的算法包括向量共轭;
运算结构,包括点对点结构和树形结构,点对点结构的算法包括向量加/减法、向量点乘和向量共轭,树形结构的算法包括向量点积、向量累加求和以及向量均值;
除法器启用需求,包括需要启用除法器和不需要启用除法器,需要启用除法器的算法包括向量均值,不需要启用除法器的算法包括向量加/减法、向量点乘、向量共轭、向量点积以及向量累加求和。
相比于进行多种向量算法加速器的简单集成,本发明通过一个多功能向量算法加速器的动态重构方法实现了对向量算法加速器硬件电路的动态重构,多种向量算法共用一个加速器电路,在保证系统性能的同时减少了电路的面积开销。
在进一步的实施例中,所述的向量存储模块硬件的动态重构方法,具体包括:
根据提取的算法并行度和操作数数量组织源数据区的划分。若操作数数量为2,则将源数据区分成2个各包括m个存储器的分区,分别用于存储1个操作数对应的源数据;若操作数数量为1,则不进行源数据区的分区,将源数据区用于存储单个操作数对应的源数据;
若操作数数量为1,则不进行源数据区的分区,将源数据区用于存储单个操作数对应的源数据。存储源数据时,源向量中的第x个元素存储在向量存储模块的第(x mod 24)个存储器中,共有24个存储通道,轮流存储源数据。
进一步的,当m=12,使用36个存储器(SRAM)构成向量存储模块。划定编号为0~23的SRAM为源数据区,编号为24~35的SRAM为结果数据区,若操作数数量为2,则将源数据区分成2个各包括12个存储器的分区,分别用于存储1个操作数对应的源数据;若操作数数量为1,则不进行源数据区的分区,如图2所示,为对向量存储模块的存储逻辑进行的说明,存储源数据时,源向量的第x个元素存储在向量存储模块的第(x mod 12)个存储器中,每个操作数对应有12个存储通道,轮流存储源数据,其中x为大于零的整数。
本实施例根据不同操作数数量的向量算法动态地划分向量存储模块的分区方式,实现多功能向量算法加速器的高存储效率和高存储灵活性,有效地避免不同操作数数量的向量算法在向量存储模块和源数据通道中产生的数据混乱或者溢出问题,提高多功能向量算法加速器的高数据正确性和高数据安全性。
在进一步的实施例中,所述的数据通路的动态重构方法,具体包括:
根据提取的算法并行度和操作数数量组织源数据通道的划分。若操作数数量为2,则将源数据通道分成2组源数据通道,分别用于传输1个操作数对应的源数据,每个分组包括12个源数据通道;若操作数数量为1,则不进行源数据通道的划分,将源数据通道均用于单个操作数对应的源数据的传输;
根据提取的算法并行度和运算结构组织结果数据通道的启用和结果数据的存储,若运算结构为点对点结构,则每接收到向量计算模块一个时钟周期的运算结束信号,就会同时启用12个结果数据通道,将12个结果数据并行存入向量存储模块中;若运算结构为树形结构,则每接收到向量计算模块一个时钟周期的运算结束信号,就会启用1个结果数据通道,将1个结果数据存入向量存储模块中;存储结果数据时,结果向量的第x个元素存储在向量存储模块的第(x mod 12)个存储器中,共有12个存储通道,轮流存储结果数据,其中x为大于零的整数。
在进一步的实施例中,所述的向量计算模块的运算层排布方式如图3所示,只有第1层运算层、第n层运算层和第(n+1)层运算层的输出结果可以连接到向量计算模块的结果数据输出端口。
本实例中所述的向量计算模块的动态重构方法,如图4所示,具体包括:
S41、根据提取的算法并行度、第一层运算层的运算类型和运算结构组织第一层运算层的运算单元的启用。若第一层运算层的运算类型为加/减法且运算结构为点对点结构,则启用12个加法器来构成第一层运算层;若第一层运算层的运算类型为加/减法且运算结构为树形结构,则启用24个加法器来构成第一层运算层;若第一层运算层的运算类型为乘法且运算结构为点对点结构,则启用12个乘法器来构成第一层运算层;若第一层运算层的运算类型为乘法且运算结构为树形结构,则启用24个乘法器来构成第一层运算层;若第一层运算层的运算类型为共轭,则不启用运算单元,在第一层运算层对输入源数据执行虚部取反操作;
S42、根据提取的算法并行度、运算结构和除法器启用需求组织除第一层运算层以外的其余运算层的运算单元的启用以及运算单元之间的连线,若运算结构为点对点结构,则不进行向量计算模块之间的连线,将第一层运算层产生的12个运算结果直接作为最终结果输出;若运算结构为树形结构且不需要启用除法器,则启用25-x个加法器构成第x层运算层,各层运算层的运算单元以树形结构相连接,累加树结构最后一层的加法器的运算结果作为最终结果输出,其中x为正整数且满足x≤5;若运算结构为树形结构且需要启用除法器,则启用25-x个加法器构成第x层运算层,各层运算层的运算单元以树形结构相连接,将累加树结构最后一层的加法器的运算结果作为被除数输入除法器,除法器的运算结果作为最终结果输出。
在进一步的实施例中,在结果数据通道之间增加同步单元,用于在传输不同到达时间的结果数据时,实现结果数据通道之间的同步。具体为使用同步寄存器阵列,每个结果数据通道对应一个同步寄存器,当结果数据到达时,将其存入相应的同步寄存器,并发送一个有效信号给控制器,控制器根据所有结果数据通道的有效信号判断是否所有结果数据都已到达,如果是,则同时启用所有同步寄存器的输出使能信号,将结果数据并行输出给向量存储模块。
这样可以避免因为结果数据通道之间的延迟差异而导致的数据错乱或丢失的问题,提高了结果数据的传输可靠性和准确性。
进一步的,所述运算特征还包括向量长度和数据类型,根据向量长度和数据类型选择合适的存储空间和运算时间,提高存储效率和运算速度。具体为使用可变位宽的存储器和运算单元,根据向量长度和数据类型动态调整存储器和运算单元的位宽,以适应不同精度和规模的向量运算。如果向量长度为16且数据类型为8位整数,则可以将存储器和运算单元的位宽设置为8位,如果向量长度为32且数据类型为32位浮点数,则可以将存储器和运算单元的位宽设置为32位。
通过这样的设置,可以节省存储空间和运算时间,提高存储效率和运算速度。
还可以根据向量的长度和数据类型划分源数据区。如果两个操作数对应的向量长度或者数据类型不同,那么将它们分别存储在不同的向量存储模块分区中,以避免数据混乱或者溢出。如果两个操作数对应的向量长度或者数据类型相同,那么可以将它们存储在同一个向量存储模块分区中,以节省存储空间。同时,在向量存储模块之间增加一个交换单元,用于在执行需要两个操作数相互作用的算法时,在向量存储模块之间进行数据交换。交换单元可以根据算法的运算结构和运算顺序,按照一定的交换规则和交换时间,将源数据从一个向量存储模块分区转移到另一个向量存储模块分区。
还可以根据向量的长度和数据类型划分源数据通道。如果两个操作数对应的向量长度或者数据类型不同,那么应该将它们分别通过不同组别的源数据通道传输,以避免数据混乱或者溢出。如果两个操作数对应的向量长度或者数据类型相同,那么可以将它们通过同一组别的源数据通道传输,以节省传输带宽。同时,在源数据通道之间增加一个冲突检测和解决单元,用于在多个源数据通道同时访问同一个向量存储模块分区中的数据时,检测并解决冲突。冲突检测和解决单元可以根据访问优先级、访问时间和访问地址等信息,按照一定的冲突检测和解决策略,如排队、跳过、重试等,来保证源数据通道的正确访问。
进一步的,根据向量计算模块内部各个运算层产生的结果数据、消耗的时间和占用的资源等信息,按照负载均衡策略,分配和调整向量计算模块之间的运算任务。具体为使用负载均衡控制器,根据向量计算模块内部各个运算层产生的结果数据、消耗的时间和占用的资源等信息,动态地调整向量计算模块之间的运算任务分配方式,使得每个向量计算模块都能尽可能地充分利用其内部资源,并尽可能地减少其空闲或等待时间。如果某个向量计算模块内部有多余的加法器或乘法器,则可以将其分配给其他需要执行加法或乘法运算的向量计算模块;如果某个向量计算模块内部有多余的除法器,则可以将其分配给其他需要执行除法运算或向量均值运算的向量计算模块。这样可以提高向量计算模块之间的协作性能和整体运算效率。
在进一步的实施例中,通过设计编译器(Design Compiler,DC)综合对比采用简单集成方式的向量算法加速器与采用多功能向量算法加速器动态重构方法的向量算法加速器所需的面积,结果如下所示,DC综合采用65nm工艺库。
当采用简单集成方式时,所需面积为178834μm2;当采用多功能向量算法加速器动态重构方法时,所需面积为53763μm2。与采用简单集成方式的向量算法加速器相比,采用多功能向量算法加速器动态重构方法的向量算法加速器的面积开销节省了69.94%。
其公开了多功能向量算法加速器的动态重构方法在面积开销上的优势,由于实现了基于实际的算法运算需求的硬件电路的动态重构,能进行存储资源、数据通路和计算资源的灵活组合调度,本发明解决了多功能向量算法加速器存在的冗余控制逻辑及数据流通路问题,在保证系统性能的同时显著降低了面积开销;本方法还适用于不同并行度下向量算法加速器的硬件电路实现,可提高设计效率。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。
Claims (10)
1.一种多功能向量算法加速器的动态重构方法,其特征在于,包括以下步骤:
S1、提取算法并行度及运算特征,所述运算特征包括操作数数量、第一层运算层的运算类型、运算结构和除法器启用需求;
S2、根据提取的算法并行度和操作数数量确定向量存储模块的分区方式,将源数据有序存储在向量存储模块中;
S3、根据提取的算法并行度和操作数数量确定向量源数据通道的启用数量,通过源数据通道将源数据从向量存储模块搬至向量计算模块;
S4、根据提取的算法并行度、第一层运算层的运算类型、运算结构和除法器启用需求确定向量计算模块内部的运算单元的启用数量和连线方式,执行相应的向量运算;
S5、运算结束后,根据提取的算法并行度和运算结构确定向量结果数据通道的启用数量,通过结果数据通道将结果数据从向量计算模块搬至向量存储模块。
2.根据权利要求1所述的多功能向量算法加速器的动态重构方法,其特征在于,
所述向量算法包括向量加/减法、向量点乘、向量共轭、向量点积、向量累加求和以及向量均值;
所述运算特征具体包括:
操作数数量,操作数数量为1的算法包括向量共轭、向量累加求和以及向量均值,操作数数量为2的算法包括向量加/减法、向量点乘和向量点积;
第一层运算层的运算类型,包括加/减法、乘法和共轭,第一层运算层的运算类型为加/减法的算法包括向量加/减法、向量累加求和以及向量均值,第一层运算层的运算类型为乘法的算法包括向量点乘和向量点积,第一层运算层的运算类型为共轭的算法包括向量共轭;
运算结构,包括点对点结构和树形结构,点对点结构的算法包括向量加/减法、向量点乘和向量共轭,树形结构的算法包括向量点积、向量累加求和以及向量均值;
除法器启用需求,包括需要启用除法器和不需要启用除法器,需要启用除法器的算法包括向量均值,不需要启用除法器的算法包括向量加/减法、向量点乘、向量共轭、向量点积以及向量累加求和。
3.根据权利要求1所述的多功能向量算法加速器的动态重构方法,其特征在于,所述步骤S2具体为:
根据提取的算法并行度和操作数数量划分源数据区,若操作数数量为2,则将源数据区分成2个各包括m个存储器的分区,分别用于存储1个操作数对应的源数据,其中m为算法并行度且为正整数;若操作数数量为1,则不进行源数据区的分区,将源数据区用于存储单个操作数对应的源数据。
4.根据权利要求1所述的多功能向量算法加速器的动态重构方法,其特征在于,所述步骤S3具体为:
根据提取的算法并行度和操作数数量划分源数据通道,若操作数数量为2,则将源数据通道分成2组源数据通道,分别用于传输1个操作数对应的源数据,每个分组包括m个源数据通道,其中m为算法并行度且为正整数;若操作数数量为1,则不进行源数据通道的划分,将源数据通道均用于单个操作数对应的源数据的传输。
5.根据权利要求1所述的多功能向量算法加速器的动态重构方法,其特征在于,所述步骤S4具体为:
S41、根据提取的算法并行度、第一层运算层的运算类型和运算结构启用第一层运算层的运算单元,若第一层运算层的运算类型为加/减法且运算结构为点对点结构,则启用m个加法器来构成第一层运算层,其中m为算法并行度且为正整数;若第一层运算层的运算类型为加/减法且运算结构为树形结构,则启用2n-1个加法器来构成第一层运算层,其中n为使m≤2n-1成立的最小正整数;若第一层运算层的运算类型为乘法且运算结构为点对点结构,则启用m个乘法器来构成第一层运算层;若第一层运算层的运算类型为乘法且运算结构为树形结构,则启用2n-1个乘法器来构成第一层运算层;若第一层运算层的运算类型为共轭,则不启用运算单元,在第一层运算层对输入源数据执行虚部取反操作;
S42、根据提取的算法并行度、运算结构和除法器启用需求启用除第一层运算层以外的其余运算层的运算单元,并进行运算单元之间的连线,若运算结构为点对点结构,则不进行向量计算模块之间的连线,将第一层运算层产生的m个运算结果直接作为最终结果输出;若运算结构为树形结构且不需要启用除法器,则启用2n-x个加法器构成第x层运算层,各层运算层的运算单元以树形结构相连接,累加树结构最后一层的加法器的运算结果作为最终结果输出,其中x为正整数且满足x≤n;若运算结构为树形结构且需要启用除法器,则启用2n-x个加法器构成第x层运算层,各层运算层的运算单元以树形结构相连接,将累加树结构最后一层的加法器的运算结果作为被除数输入除法器,除法器的运算结果作为最终结果输出。
6.根据权利要求1所述的多功能向量算法加速器的动态重构方法,其特征在于,所述步骤S5具体为:根据提取的算法并行度和运算结构启用结果数据通道,并对结果数据进行存储,若运算结构为点对点结构,则每接收到向量计算模块一个时钟周期的运算结束信号,就会同时启用m个结果数据通道,通过所述m个结果数据通道将m个结果数据并行存入向量存储模块中,其中m为算法并行度且为正整数;若运算结构为树形结构,则每接收到向量计算模块一个时钟周期的运算结束信号,就会启用1个结果数据通道,通过所述1个结果数据通道将1个结果数据存入向量存储模块中。
7.根据权利要求1或6所述的多功能向量算法加速器的动态重构方法,其特征在于,还包括在每个结果数据通道对应使用同步寄存器,在传输不同到达时间的结果数据时,实现结果数据通道之间的同步。
8.根据权利要求1所述的多功能向量算法加速器的动态重构方法,其特征在于,所述运算特征还包括向量长度和数据类型,根据所述向量长度和数据类型选择合适的存储空间和运算时间,提高存储效率和运算速度。
9.根据权利要求1所述的多功能向量算法加速器的动态重构方法,其特征在于,还包括根据所述向量计算模块内部各个运算层产生的结果数据、消耗的时间和占用的资源等信息,按照负载均衡策略,分配和调整向量计算模块之间的运算任务。
10.根据权利要求1或4所述的多功能向量算法加速器的动态重构方法,其特征在于,还包括在所述源数据通道同时访问同一个向量存储模块分区中的数据时,通过冲突检测和解决策略,保证源数据通道的正确访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311399106.9A CN117369769A (zh) | 2023-10-26 | 2023-10-26 | 一种多功能向量算法加速器的动态重构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311399106.9A CN117369769A (zh) | 2023-10-26 | 2023-10-26 | 一种多功能向量算法加速器的动态重构方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117369769A true CN117369769A (zh) | 2024-01-09 |
Family
ID=89400088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311399106.9A Pending CN117369769A (zh) | 2023-10-26 | 2023-10-26 | 一种多功能向量算法加速器的动态重构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369769A (zh) |
-
2023
- 2023-10-26 CN CN202311399106.9A patent/CN117369769A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107679620B (zh) | 人工神经网络处理装置 | |
CN107679621B (zh) | 人工神经网络处理装置 | |
CN107704922B (zh) | 人工神经网络处理装置 | |
EP0282825B1 (en) | Digital signal processor | |
US5081575A (en) | Highly parallel computer architecture employing crossbar switch with selectable pipeline delay | |
EP0601029B1 (en) | Massively parallel computer system including input/output arrangement | |
CN102122275A (zh) | 一种可配置处理器 | |
CN1051995A (zh) | 数据驱动阵列处理器 | |
US7734896B2 (en) | Enhanced processor element structure in a reconfigurable integrated circuit device | |
EP2132645B1 (en) | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled | |
CN113407483B (zh) | 一种面向数据密集型应用的动态可重构处理器 | |
CN111079908B (zh) | 片上网络数据处理方法、存储介质、计算机设备和装置 | |
US8792786B2 (en) | Photonically-enabled in-flight data reorganization | |
CN116171431A (zh) | 用于加速器中多个并行数据路径通道的存储体式存储器架构 | |
CN117369769A (zh) | 一种多功能向量算法加速器的动态重构方法 | |
US6704834B1 (en) | Memory with vectorial access | |
US8307021B1 (en) | Hardware architecture and scheduling for high performance solution to cholesky decomposition | |
CN112074810A (zh) | 并行处理设备 | |
CN111078623B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078624B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078625B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN108255521B (zh) | 一种用于实现线路速度互连结构的方法 | |
US11003459B2 (en) | Method for implementing a line speed interconnect structure | |
CN115248794B (zh) | 一种基于通用计算ai芯片的可复用的中继模块及芯片 | |
RU2179333C1 (ru) | Синергическая вычислительная система |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |