CN114443559A - 可重构算子单元、处理器、计算方法、装置、设备及介质 - Google Patents
可重构算子单元、处理器、计算方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114443559A CN114443559A CN202011192258.8A CN202011192258A CN114443559A CN 114443559 A CN114443559 A CN 114443559A CN 202011192258 A CN202011192258 A CN 202011192258A CN 114443559 A CN114443559 A CN 114443559A
- Authority
- CN
- China
- Prior art keywords
- operator
- reconfigurable
- target
- unit
- operators
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种可重构算子单元、处理器、计算方法、装置、设备及介质。该可重构算子单元包括:多个基本计算单元以及互联控制单元;每个基本计算单元中包括多个输入端口和输出端口,各基本计算单元的输入端口分别与互联控制单元相连;互联控制单元,用于根据与算子匹配的互联控制逻辑,调整可重构算子单元内各基本计算单元各输入端口的连接关系,以按照算子重构可重构算子单元。该可重构算子单元重构时需要的配置信息量小,可以减少内存需求,重构时间短,重构颗粒度小,且资源利用率高。
Description
技术领域
本发明实施例涉及电子元器件技术领域,尤其涉及一种可重构算子单元、处理器、计算方法、装置、设备及介质。
背景技术
数字信号处理器的实现分为两类:一类是算法硬化实现,开发专门硬件模块完成算法处理的流程;另一类是基于通用处理器,由软件编码完成信号处理任务。其中,算法硬化的计算效率高。
可重构架构是一种算法硬化实现方法,图1是现有技术中的一种可重构处理器的系统架构。如图1所示,可重构处理器包括控制器、数据通路、存储器和输入输出接口。其中,数据通路由运算单元阵列(Processing Element Array,PEA)组成,PEA内部集成众多基本算术运算单元和逻辑运算单元。控制器通过配置信息选择和组织运算单元,实现特定功能。存储器用于暂存数据和配置。输入输出接口用于读写数据。数据通路从控制器获得配置字,在控制信号的控制下完成计算。数据通路获取配置字的顺序由控制器根据数据通路的状态确定。数据通路实现计算的数据流,控制器实现计算的控制流。
图2是现有技术中的一种可重构处理器编译器处理流程图。如图2所示,现有技术中可重构处理器的编译器先对高级编程语言(C或者C++)做语言检查,按照预设的规则分析代码将高级编程语言转换为特定的中间语言。再根据中间语言描述的逻辑关系生成数据流图。最后根据数据流图生成配置流。
现有技术中的可重构技术是基于数据流图对运算单元进行重构,其算法映射过程复杂,硬件利用率低,重构时需要的配置信息量大,重构时间长。
发明内容
本发明实施例提供了一种可重构算子单元、处理器、计算方法、装置、设备及介质,可以减少内存需求,降低重构时间,并提高资源利用率。
第一方面,本发明实施例提供了一种可重构算子单元,该可重构算子单元包括:多个基本计算单元以及互联控制单元;
每个基本计算单元中包括多个输入端口和输出端口,各所述基本计算单元的输入端口分别与所述互联控制单元相连;
所述互联控制单元,用于根据与算子匹配的互联控制逻辑,调整所述可重构算子单元内各基本计算单元各输入端口的连接关系,以按照所述算子重构所述可重构算子单元。
第二方面,本发明实施例还提供了一种可重构处理器,该可重构处理器包括:至少一个如本发明任一实施例所述的可重构算子单元。
第三方面,本发明实施例还提供了一种可重构计算方法,该方法应用于如本发明任一实施例所述的可重构处理器中,包括:
将待运算算法映射为至少一个目标算子;
根据算子与互联控制逻辑之间的映射关系,获取与各所述目标算子分别对应的目标互联控制逻辑;
在可重构处理器中获取与各所述目标算子分别匹配的目标可重构算子单元;
将各所述目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各所述目标算子重构各所述目标可重构算子单元。
第四方面,本发明实施例还提供了一种可重构计算装置,配置于如本发明实施例任一所述的可重构处理器中,该装置包括:
算子映射模块,用于将待运算算法映射为至少一个目标算子;
目标互联控制逻辑获取模块,用于根据算子与互联控制逻辑之间的映射关系,获取与各所述目标算子分别对应的目标互联控制逻辑;
目标可重构算子单元获取模块,用于在可重构处理器中获取与各所述目标算子分别匹配的目标可重构算子单元;
目标可重构算子单元重构模块,用于将各所述目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各所述目标算子重构各所述目标可重构算子单元。
第五方面,本发明实施例还提供了一种电子设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的一种可重构计算方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的一种可重构计算方法。
本发明实施例的技术方案,通过重构包括多个基本计算单元及互联控制单元的可重构算子单元,根据与算子匹配的互联控制逻辑,调整可重构算子单元内各基本计算单元各输入端口的连接关系,以按照算子重构可重构算子单元,解决了可重构处理器的算子重构问题,实现了所需配置信息量小,减少内存需求,重构时间短,重构颗粒度小,且资源利用率高的效果。
附图说明
图1是现有技术中的一种可重构处理器的系统架构;
图2是现有技术中的一种可重构处理器编译器处理流程图;
图3是本发明实施例一提供的一种可重构算子单元的结构示意图;
图4是本发明实施例二提供的一种可重构处理器的结构示意图;
图5是本发明实施例二提供的一种2048点快速傅里叶变换算法的实现过程示意图;
图6是本发明实施例三提供的一种可重构计算方法的流程图;
图7是本发明实施例四提供的一种可重构计算装置的结构示意图;
图8是本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图3是本发明实施例一提供的一种可重构算子单元的结构示意图,本实施例可适用于设计可重构处理器的情况,如图3所示,该可重构算子单元100,包括:多个基本计算单元110以及互联控制单元120;
其中,每个基本计算单元110中包括多个输入端口111和输出端口112,各基本计算单元110的输入端口111分别与互联控制单元120相连。
基本计算单元110可以是基本算术运算单元或者基本逻辑运算单元。其中,基本算术运算单元可以是乘法器或者加法器等;基本逻辑运算单元可以是与、或、非、异或等逻辑门。输入端口111用于接收输入数据,例如可以从可重构处理器的存储器中,或者基本计算单元110中接收输入数据。输出端口112用于输出数据,例如可以向可重构处理器的存储器,或者基本计算单元110中输出计算结果。
互联控制单元120,用于根据与算子匹配的互联控制逻辑,调整可重构算子单元100内各基本计算单元110各输入端口111的连接关系,以按照算子重构可重构算子单元100。
其中,对于不同的算子其互联控制逻辑是确定的。对于简单运算,例如加法算子,其互联控制逻辑是采用加法器的基本计算单元,将各输入端口与存储器或者其他基本计算单元的输出接口进行连接,得到输入数据的加法结果。对于复杂运算,例如快速傅里叶变换算法中的基4算子,其互联控制逻辑涉及加法器、乘法器以及指数运算等基本计算单元,各基本计算单元的输入端口的连接关系与基4算子的具体运算确定。互联控制单元可以通过对输入端口进行使能控制以及连接控制等,对可重构算子单元进行重构。本实施中的可重构颗粒度比现有的可重构架构的颗粒度小,本实施例的技术方案可以直接对加法器、乘法器等基本计算单元进行重构,所需的配置信息量小。而现有的可重构技术方案需要对整个PEA进行重构。本实施例对算子的重构可以是对多个算子进行并行的重构,可以减少重构时间。
在本实施例的一个具体实施方式中,互联控制单元可以接收可重构处理器中的控制器输出的控制信息,根据控制信息确定算子匹配的互联控制逻辑,对可重构算子单元内各基本计算单元的输入端口进行连接,实现算子对应的互联控制逻辑,以对算法进行运算。
本实施例的技术方案,通过重构包括多个基本计算单元及互联控制单元的可重构算子单元,根据与算子匹配的互联控制逻辑,调整可重构算子单元内各基本计算单元各输入端口的连接关系,以按照算子重构可重构算子单元,解决了可重构处理器的算子重构问题,实现了所需配置信息量小,减少内存需求,重构时间短,重构颗粒度小,且资源利用率高的效果。
实施例二
图4是本发明实施例二提供的一种可重构处理器的结构示意图。如图4所示,该可重构处理器200包括至少一个可重构算子单元100。
其中,可重构算子单元多个基本计算单元以及互联控制单元;每个基本计算单元中包括多个输入端口和输出端口,各基本计算单元的输入端口分别与互联控制单元相连;互联控制单元,用于根据与算子匹配的互联控制逻辑,调整可重构算子单元内各基本计算单元各输入端口的连接关系,以按照算子重构可重构算子单元。
在上述实施方式的基础上,可选的,可重构处理器200还包括:存储器、控制器、串行计算单元、寄存器组、直接存储器访问单元以及读写单元。
其中,存储器,用于对待运算算法的输入数据以及输出数据进行存储,也用于对配置信息进行存储。控制器与存储器相连,也与串行计算单元、寄存器组、可重构算子单元、直接存储器访问单元以及读写单元相连。控制器,用于从存储器中获取配置信息,确定待运算算法对应的至少一个目标算子以及各目标算子之间的连接关系,对串行计算单元、可重构算子单元以及寄存器组进行控制。例如,以2048点的快速傅里叶变换算法为例,控制器可以从存储器中获取配置信息等指令,进行译码确定将2048点的快速傅里叶变换算法映射为5级基4算子和1级基2算子。多级算子采用迭代方式完成整个算法的处理。
图5是本发明实施例二提供的一种2048点快速傅里叶变换算法的实现过程示意图。如图5所示,每一级算子之间采用串行执行,当前一级算子处理完成后下一级的算子处理启动。因此,基4算子和基2算子之间可以复用相同的硬件计算资源,资源利用率高。
串行计算单元,用于根据控制器的控制对待运算算法进行运算。例如,待运算算法为串行运算,不存在多节点的并行运算时,可以采用串行计算单元进行计算,避免全部采用可重构算子单元进行运算,造成硬件资源的浪费。示例性的,对于一个节点的加法运算,不存在多节点的运算,可以采用串行计算单元完成运算。
在本实施例中,控制器确定的目标算子可以对应一个或者多个可重构算子单元。例如,可重构算子单元可以并行完成1000节点的运算时,而待运算算法需要2000节点相同的运算时,可以设置两个可重构算子单元,一次性并行完成待运算算法所需的运算,可以节省运算的时间,提高运算效率。
本实施例中的可重构算子单元与前述实施例中的可重构算子单元具有相同的结构。在实际中,考虑到有些待运算算法的处理计算量很大,涉及多个算子,各算子之间可以按照数据流驱动方式进行并行工作。本实施例中的可重构处理器中可以设置多个可重构单元,并行针对不同的算子进行运算。
换言之,本实施例的可重构算子单元可以是多个。例如,一种场景是基于待运算算法可以映射为多个并行执行的目标算子。对于各并行的目标算子,可以分别设置至少一个可重构算子单元。通过各并行目标算子对应的可重构算子单元可以并行完成待运算算法对应的运算。另一种场景是基于待运算算法的运算量很大,对于一个目标算子的实际运算量远超该目标算子对应的可重构算子单元的并行运算量。可以对于该目标算子对应的可重构算子单元设置为多个,可以减轻可重构运算单元的运行负担,提高运算速度。
具体的,可重构算子单元的设置可以是根据控制器对配置信息的译码确定的,控制器可以通过寄存器组指定不同可重构算子单元的驱动方式以及可重构算子单元的算子模式,可以高效的设置可重构处理器,实现对待运算算法的运算。其中,寄存器组可以包括段寄存器、基址寄存器、堆栈寄存器、指令寄存器、标志寄存器以及状态寄存器等。对于各种寄存器的使用以及作用,在本发明实施例中不做具体介绍。本实施例中的可重构处理器可以将各种寄存器进行汇总整合设计,生成寄存器组。
直接存储器访问单元(Direct Memory Access,DMA)以及读写单元(LD/ST),用于从存储器、串行计算单元和可重构算子单元中读取或写入数据。例如,读写单元可以从存储器中一个个地读取输入数据写入至串行计算单元。或者,读写单元可以将串行计算单元的输出数据写入至存储器。在本实施例中,DMA与LD/ST的区别可以是DMA可以实现多组数据的并行读取与写入;LD/ST可以实现多组数据的串行读取与写入。因此,在可重构处理器中可重构算子单元的数据读取与写入,可以主要是通过DMA实现;而串行计算单元的数据读取与写入,可以主要是通过LD/ST实现。
本实施例的技术方案,通过在可重构处理器中配置至少一个可重构算子单元,可以将待运算算法通过算子重构实现运算。本实施例中的可重构处理器可以用于加速器设计、协处理器设计、通用数字信号处理器设计等数字信号处理硬件设计领域。解决了可重构处理器的重构问题,实现了可重构处理器重构所需配置信息量小,内存需求少,重构时间短,重构颗粒度小一级资源利用率高的效果。
实施例三
图6是本发明实施例三提供的一种可重构计算方法的流程图,本实施例可适用于设计可重构处理器的情况,该方法可以由可重构计算装置来执行,该装置可以通过软件,和/或硬件的方式实现,装置可以集成在可重构处理器中,如图6所示,该方法具体包括:
步骤310、将待运算算法映射为至少一个目标算子。
其中,待运算算法是指需要在可重构处理器中进行运算的算法,例如,通信、语音、图像或者雷达等领域中进行数字信号任务处理时的算法。示例性的,如快速傅里叶变换算法等。目标算子是指待运算算法中涉及的算子,例如,快速傅里叶变换算法中的基4算子和基2算子等。
将待运算算法映射为算子的过程可以是算法开发人员编写m语言或支持矩阵矢量计算的类m语言等高级编程语言,再通过编译器将待运算算法映射为有限的算子集合。或者,也可以用过算法分解到算子的过程实现待运算算法到算子的映射。
在本实施例的一个可选实施方式中,将待运算算法映射为至少一个目标算子,包括:将待运算算法与预设算子库进行比对;如果待运算算法中的运算逻辑与预设算子库中预设算子的运算逻辑匹配,则将预设算子作为与待运算算法对应的目标算子。
其中,预设算子库可以包含可重构处理器能够运算的所有算子。例如基4算子、基2算子、拉普拉斯算子、哈密尔顿算子以及向量微分算子等。不同的算子的运算逻辑是不同的,可以将待运算算法的运算算法的运算逻辑与预设算子库中的预设算子的运算逻辑进行匹配,如果待运算算法的运算逻辑与预设算子一致,可以将预设算子作为与待运算算法对应的目标算子。示例性的,对于简单算子,例如加法运算算法中包含加法算子的加法运算逻辑,可以将加法算子作为加法运算算法的目标算子。
又一示例性的,对于一些常见算法,例如通信、语音、图像或者雷达等领域中的信号处理算法,采用的算法往往是常见的,其对应的算子往往也是可以固定的。例如2048点的快速傅里叶变换算法,通常其包含的算子固定为基4算子和基2算子。因此,预设算子库中可以记录一些常见算法与算子的映射关系。当待运算算法为预设算子库中的常见算法时,可以直接映射为已匹配好的目标算子。
在本实施例的一个可选实施方式中,在将待运算算法映射为至少一个目标算子之前,还包括:在可重构处理器支持的算子集合中,依次获取一个当前处理算子;根据当前处理算子中包括的多个基本运算符,以及各基本运算符间的连接关系,确定与可重构算子单元对应的输入端口连接关系;根据输入端口连接关系,确定与当前处理算子对应的互联控制逻辑;返回执行在可重构处理器支持的算子集合中,依次获取一个当前处理算子的操作,直至计算得到算子集合中各算子与互联控制逻辑之间的映射关系。
其中,可重构处理器支持的算子集合可以是根据当前的待运算算法确定的算子集合,可以根据具体的待运算算法确定算子集合以及算子集合中各算子的互联控制逻辑,可以减少可重构处理器的内存占用。或者,可重构处理器支持的算子集合可以是预设算子库中的算子集合,可以确定所有算子的互联控制逻辑,而无需针对待运算算法确定对应的目标算子的互联控制逻辑,可以减少运算所需时长。
当前处理算子可以包括多个基本运算符,其中,基本运算符包括加法、乘法、微分、与、或、非、以及异或等运算符。各运算符通过连接构成当前处理算子,例如,拉普拉斯算子是由二阶微分运算符与加法运算符连接构成的,可以确定拉普拉斯算子对应的可重构算子单元的输入端口可以是第一个二阶微分运算器的输入端口与存储器相连,加法器的输入端口与至少一个二阶微分运算器的输入端口相连。可以确定当前处理算子对应的互联控制逻辑是存储器中的数据输入到至少一个二阶微分运算器进行多项的并行计算得到的各输出数据,输入至加法器。
按照本实施例上述的逻辑,可以确定可重构处理器支持的算子集合中全部算子包括的基本运算符的输入端口连接关系以及互联控制逻辑。
在本实施例的一个可选实施方式中,根据当前处理算子中包括的多个基本运算符,以及各基本运算符间的连接关系,确定与可重构算子单元对应的输入端口连接关系,包括:根据当前处理算子中包括的多个基本运算符、各基本运算符间的连接关系、数据通道的位宽以及可重构算子单元内各基本计算单元的位宽,确定与可重构算子单元对应的输入端口连接关系。
其中,根据当前处理算子中的基本运算符以及基本运算符间的连接关系可以确定可重构算子单元对应的输入端口的连接关系。但是,在一些具体运算中,待运算算法的运算量很大,设置一个可重构算子单元,或者可重构算子单元中的输入端口设置数量少时,无法满足计算需求。因此,在可重构处理器中对于同一算子可能存在多个可重构算子单元,或者,对于一个可重构算子单元中的基本计算单元可能存在多个输入端口。
在本实施例中,需要根据数据通道的位宽以及可重构算子单元中各基本计算单元的位宽,进一步确定可重构算子单元对应的输入端口连接关系。例如,数据通道可以是DMA,DMA的位宽为4比特,基本计算单元的输入端口的位宽为16比特,可以确定基本计算单元存在4个输入端口,可以分别与DMA的0,1,2,3输入节点相连。
示例性的,在确定可重构算子单元对应的输入端口连接关系时,可以预先将可重构处理器支持的算子集合中的各算子进行编号,确定待运算算法对应的目标算子与算子集合中的算子的对应关系,并根据对应关系生成待运算算子的目标算子编号集合。根据目标算子对应的基本计算单元的输入接口的连接关系进行编号,确定对应的输入节点集合,并确定目标算子编号集合与输入节点集合的映射关系。根据目标算子编号集合与输入节点集合的映射关系,确定可重构算子单元对应的输入端口连接关系。
在本实施例的一个可选实施方式中,在将待运算算法映射为至少一个目标算子之后,还包括:如果确定目标算子的数量为多个,则根据待运算算法,计算各目标算子间的运算关系。其中,目标算子间的运算关系可以是根据待运算算法的运算数据流确定的,例如并行计算、串行计算以及串行计算中的前后顺序等。
步骤320、根据算子与互联控制逻辑之间的映射关系,获取与各目标算子分别对应的目标互联控制逻辑。
其中,算子与互联控制逻辑间的映射关系可以是预先针对可重构处理器支持的算子集合中的各算子确定好的。针对目标算子可以根据目标算子的名称或者编号等标识信息与算子集合中的算子进行匹配,将匹配的算子的互联控制逻辑确定为目标算子的目标互联控制逻辑。
步骤330、在可重构处理器中获取与各目标算子分别匹配的目标可重构算子单元。
其中,目标算子与目标可重构算子单元的匹配关系可以是通过目标算子包含的运算符与可重构算子单元中的基本运算单元进行比对确定。例如,目标算子中存在加法运算符,可重构算子单元中需要存在加法器。对于不同的算子,如果所涉及的运算符相同,可以复用相同的可重构算子单元。例如,对于快速傅里叶变换算法中的基4算子与基2算子所涉及的运算符相同,并且是串行执行,可以复用相同可重构算子单元,硬件资源利用率高。
步骤340、将各目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各目标算子重构各目标可重构算子单元。
其中,可以通过互联控制单元根据目标互联控制逻辑生成使能信号重构目标可重构算子单元,使可重构算子单元中的输入端口的连接与目标算子对应的目标互联控制逻辑匹配。
在本实施例的一个可选实施方式中,在将各目标互联控制逻辑分别发送至各目标可重构算子单元之后,还包括:按照各目标算子间的运算关系,确定各目标可重构算子单元之间的连接关系。例如,目标算子间的运算关系是前一目标算子运算结束后开始运行下一目标算子,目标可重构算子单元可以串行连接。又如,第一目标算子与第二目标算子是并行运算后与第三目标算子进行运算,目标可重构算子单元的连接关系可以是第一目标可重构算子单元与第二目标可重构算子单元分别与第三目标可重构算子单元串行连接。其中,第一目标可重构算子单元、第二目标可重构算子单元和第三目标可重构算子单元分别与第一目标算子、第二目标算子和第三目标算子对应。
本实施例的技术方案,通过将待运算算法映射为至少一个目标算子;根据算子与互联控制逻辑之间的映射关系,获取与各目标算子分别对应的目标互联控制逻辑;在可重构处理器中获取与各目标算子分别匹配的目标可重构算子单元;将各目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各目标算子重构各目标可重构算子单元,解决了可重构处理的可重构计算的问题,实现了所需配置信息量小、内存需求低、重构时间短、重构颗粒度小且资源利用率高的效果。
实施例四
图7是本发明实施例四提供的一种可重构计算装置的结构示意图。结合图7,该装置包括:算子映射模块410,目标互联控制逻辑获取模块420,目标可重构算子单元获取模块430和目标可重构算子单元重构模块440。
其中,算子映射模块410,用于将待运算算法映射为至少一个目标算子;
目标互联控制逻辑获取模块420,用于根据算子与互联控制逻辑之间的映射关系,获取与各目标算子分别对应的目标互联控制逻辑;
目标可重构算子单元获取模块430,用于在可重构处理器中获取与各目标算子分别匹配的目标可重构算子单元;
目标可重构算子单元重构模块440,用于将各目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各目标算子重构各目标可重构算子单元。
可选的,该装置,还包括:
运算关系计算模块,用于在将待运算算法映射为至少一个目标算子之后,如果确定目标算子的数量为多个,则根据待运算算法,计算各目标算子间的运算关系;
连接关系确定模块,用于在将各目标互联控制逻辑分别发送至各目标可重构算子单元之后,按照各目标算子间的运算关系,确定各目标可重构算子单元之间的连接关系。
可选的,该装置,还包括:
当前处理算子获取模块,用于在将待运算算法映射为至少一个目标算子之前,在可重构处理器支持的算子集合中,依次获取一个当前处理算子;
输入端口连接关系确定模块,用于根据当前处理算子中包括的多个基本运算符,以及各基本运算符间的连接关系,确定与可重构算子单元对应的输入端口连接关系;
互联控制逻辑确定模块,用于根据输入端口连接关系,确定与当前处理算子对应的互联控制逻辑;
返回执行模块,用于返回执行在可重构处理器支持的算子集合中,依次获取一个当前处理算子的操作,直至计算得到算子集合中各算子与互联控制逻辑之间的映射关系。
可选地,输入端口连接关系确定模块,包括:
输入端口连接关系确定单元,用于根据当前处理算子中包括的多个基本运算符、各基本运算符间的连接关系、数据通道的位宽以及可重构算子单元内各基本计算单元的位宽,确定与可重构算子单元对应的输入端口连接关系。
可选的,算子映射模块410,包括:
算子比对单元,用于将待运算算法与预设算子库进行比对;
目标算子确定单元,用于如果待运算算法中的运算逻辑与预设算子库中预设算子的运算逻辑匹配,则将预设算子作为与待运算算法对应的目标算子。
本发明实施例所提供的可重构计算装置可执行本发明任意实施例所提供的可重构计算方法,具备执行方法相应的功能模块和有益效果。
实施例五
图8是本发明实施例五提供的一种设备的结构示意图,如图8所示,该设备包括:
一个或多个处理器510,图8中以一个处理器510为例;
存储器520;
所述设备还可以包括:输入装置530和输出装置540。
所述设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器520作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种可重构计算方法对应的程序指令/模块(例如,附图7所示的算子映射模块410,目标互联控制逻辑获取模块420,目标可重构算子单元获取模块430和目标可重构算子单元重构模块440)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种可重构计算方法,即:
将待运算算法映射为至少一个目标算子;
根据算子与互联控制逻辑之间的映射关系,获取与各所述目标算子分别对应的目标互联控制逻辑;
在可重构处理器中获取与各所述目标算子分别匹配的目标可重构算子单元;
将各所述目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各所述目标算子重构各所述目标可重构算子单元。
存储器520可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器520可选包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种可重构计算方法:
将待运算算法映射为至少一个目标算子;
根据算子与互联控制逻辑之间的映射关系,获取与各所述目标算子分别对应的目标互联控制逻辑;
在可重构处理器中获取与各所述目标算子分别匹配的目标可重构算子单元;
将各所述目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各所述目标算子重构各所述目标可重构算子单元。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种可重构算子单元,其特征在于,包括:多个基本计算单元以及互联控制单元;
每个基本计算单元中包括多个输入端口和输出端口,各所述基本计算单元的输入端口分别与所述互联控制单元相连;
所述互联控制单元,用于根据与算子匹配的互联控制逻辑,调整所述可重构算子单元内各基本计算单元各输入端口的连接关系,以按照所述算子重构所述可重构算子单元。
2.一种可重构处理器,其特征在于,包括至少一个如权利要求1所述的可重构算子单元。
3.一种可重构计算方法,应用于如权利要求2所述可重构处理器中,其特征在于,包括:
将待运算算法映射为至少一个目标算子;
根据算子与互联控制逻辑之间的映射关系,获取与各所述目标算子分别对应的目标互联控制逻辑;
在可重构处理器中获取与各所述目标算子分别匹配的目标可重构算子单元;
将各所述目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各所述目标算子重构各所述目标可重构算子单元。
4.根据权利要求3所述的方法,其特征在于,在将待运算算法映射为至少一个目标算子之后,还包括:
如果确定所述目标算子的数量为多个,则根据所述待运算算法,计算各所述目标算子间的运算关系;
在将各所述目标互联控制逻辑分别发送至各目标可重构算子单元之后,还包括:
按照各所述目标算子间的运算关系,确定各所述目标可重构算子单元之间的连接关系。
5.根据权利要求3所述的方法,其特征在于,在将待运算算法映射为至少一个目标算子之前,还包括:
在可重构处理器支持的算子集合中,依次获取一个当前处理算子;
根据所述当前处理算子中包括的多个基本运算符,以及各基本运算符间的连接关系,确定与可重构算子单元对应的输入端口连接关系;
根据所述输入端口连接关系,确定与所述当前处理算子对应的互联控制逻辑;
返回执行在可重构处理器支持的算子集合中,依次获取一个当前处理算子的操作,直至计算得到所述算子集合中各算子与互联控制逻辑之间的映射关系。
6.根据权利要求5所述的方法,其特征在于,根据所述当前处理算子中包括的多个基本运算符,以及各基本运算符间的连接关系,确定与可重构算子单元对应的输入端口连接关系,包括:
根据所述当前处理算子中包括的多个基本运算符、各基本运算符间的连接关系、数据通道的位宽以及所述可重构算子单元内各基本计算单元的位宽,确定与可重构算子单元对应的输入端口连接关系。
7.根据权利要求3所述的方法,其特征在于,将待运算算法映射为至少一个目标算子,包括:
将所述待运算算法与预设算子库进行比对;
如果所述待运算算法中的运算逻辑与所述预设算子库中预设算子的运算逻辑匹配,则将所述预设算子作为与所述待运算算法对应的目标算子。
8.一种可重构计算装置,配置于如权利要求2所述可重构处理器中,其特征在于,包括:
算子映射模块,用于将待运算算法映射为至少一个目标算子;
目标互联控制逻辑获取模块,用于根据算子与互联控制逻辑之间的映射关系,获取与各所述目标算子分别对应的目标互联控制逻辑;
目标可重构算子单元获取模块,用于在可重构处理器中获取与各所述目标算子分别匹配的目标可重构算子单元;
目标可重构算子单元重构模块,用于将各所述目标互联控制逻辑分别发送至各目标可重构算子单元,以按照各所述目标算子重构各所述目标可重构算子单元。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求3-7任一项所述的一种可重构计算方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求3-7任一项所述的一种可重构计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011192258.8A CN114443559A (zh) | 2020-10-30 | 2020-10-30 | 可重构算子单元、处理器、计算方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011192258.8A CN114443559A (zh) | 2020-10-30 | 2020-10-30 | 可重构算子单元、处理器、计算方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443559A true CN114443559A (zh) | 2022-05-06 |
Family
ID=81356974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011192258.8A Pending CN114443559A (zh) | 2020-10-30 | 2020-10-30 | 可重构算子单元、处理器、计算方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443559A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115576895A (zh) * | 2022-11-18 | 2023-01-06 | 摩尔线程智能科技(北京)有限责任公司 | 计算装置、计算方法及计算机可读存储介质 |
CN116560847A (zh) * | 2023-05-19 | 2023-08-08 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备以及存储介质 |
WO2024045888A1 (zh) * | 2022-08-31 | 2024-03-07 | 华为技术有限公司 | 一种处理装置及控制方法 |
-
2020
- 2020-10-30 CN CN202011192258.8A patent/CN114443559A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024045888A1 (zh) * | 2022-08-31 | 2024-03-07 | 华为技术有限公司 | 一种处理装置及控制方法 |
CN115576895A (zh) * | 2022-11-18 | 2023-01-06 | 摩尔线程智能科技(北京)有限责任公司 | 计算装置、计算方法及计算机可读存储介质 |
CN116560847A (zh) * | 2023-05-19 | 2023-08-08 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备以及存储介质 |
CN116560847B (zh) * | 2023-05-19 | 2023-10-27 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11531540B2 (en) | Processing apparatus and processing method with dynamically configurable operation bit width | |
CN114443559A (zh) | 可重构算子单元、处理器、计算方法、装置、设备及介质 | |
US10684776B2 (en) | Memory configuration for inter-processor communication in an MPSoC | |
US20240070114A1 (en) | Method, apparatus, and computer-readable medium for parallelization of a computer program on a plurality of computing cores | |
US20230035910A1 (en) | Method, system and device for parallel processing of data, and storage medium | |
WO2017035748A1 (zh) | 一种代码编译方法及代码编译器 | |
KR102371844B1 (ko) | 인공 지능 칩에 적용되는 산출 방법 및 인공 지능 칩 | |
Catthoor et al. | Application-specific architectural methodologies for high-throughput digital signal and image processing | |
CN117435855B (zh) | 用于进行卷积运算的方法、电子设备和存储介质 | |
CN112463159A (zh) | 编译方法、装置、电子设备和存储介质 | |
CN116483319A (zh) | 用于软件定义芯片的算子处理方法、装置、设备及介质 | |
CN107678781B (zh) | 处理器以及用于在处理器上执行指令的方法 | |
Janssen et al. | A specification invariant technique for regularity improvement between flow-graph clusters | |
CN114117896B (zh) | 面向超长simd管线的二值规约优化实现方法及系统 | |
Mousouliotis et al. | SqueezeJet-3: an HLS-based accelerator for edge CNN applications on SoC FPGAs | |
CN111651715A (zh) | 基于fpga的数据处理方法、处理器、设备和介质 | |
Menard et al. | Exploiting reconfigurable SWP operators for multimedia applications | |
CN113836481B (zh) | 矩阵计算电路、方法、电子设备及计算机可读存储介质 | |
Odendahl et al. | A next generation digital signal processor for European space missions | |
US11347517B2 (en) | Reduced precision based programmable and SIMD dataflow architecture | |
WO2024037168A1 (zh) | 建立模型的方法、装置以及设备 | |
Bardak et al. | Dataflow toolset for soft-core processors on FPGA for image processing applications | |
Wilhelmson | Solving partial differential equations using ILLIAC IV | |
WO2023180269A1 (en) | Variable replacement by an artificial intelligence accelerator | |
CN113360201A (zh) | 计算任务获取方法、装置、存储介质及电子设备 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201206 Shanghai Pudong New Area free trade pilot area 1258 moon 3 building fourth floor A406 room Applicant after: Chen core technology Co.,Ltd. Applicant after: Chenxin Technology Co.,Ltd. Address before: 201206 Shanghai Pudong New Area free trade pilot area 1258 moon 3 building fourth floor A406 room Applicant before: Chen core technology Co.,Ltd. Applicant before: Chenxin Technology Co.,Ltd. |