CN115374052A - 用于可重构密码阵列的任务处理方法及装置 - Google Patents
用于可重构密码阵列的任务处理方法及装置 Download PDFInfo
- Publication number
- CN115374052A CN115374052A CN202211059479.7A CN202211059479A CN115374052A CN 115374052 A CN115374052 A CN 115374052A CN 202211059479 A CN202211059479 A CN 202211059479A CN 115374052 A CN115374052 A CN 115374052A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- operator
- computing
- holding
- token
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明提出了一种用于可重构计算阵列的任务处理方法,应用于计算机技术领域,该方法包括:获取预设任务对应的m个配置信息块中的第一个配置信息块,每个该配置信息块对应一个子计算过程,根据该第一个配置信息块配置该多个算核中的第一算核,该第一算核用于执行该预设任务,在该第一算核执行完该第一个配置信息块对应的任务后,根据该m个配置信息块中的下一个配置信息块重新配置该第一算核,以便该第一算核能够继续执行该预设任务。本发明还提出了一种用于可重构计算阵列的任务处理装置、设备、介质和程序产品,能够利用第一算核这一较小的一维算子阵列进行频繁的重构的方式即可达到和原先二维算子阵列一样的计算效果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于可重构密码计算阵列的任务处理方法、装置、设备、介质和产品。
背景技术
可重构计算阵列是利用粗粒度可重构计算技术开发的软件定义芯片硬件架构,是一种介于现场可编程门阵列与专用集成电路之间的新形态。一般来说,使用可重构计算阵列进行计算的过程是将任务拆分为一个或多个可以映射进可重构计算阵列的子任务,每个子任务从输入端口或者内部存储模块获得数据以进行计算,计算完成将中间数据存放于内部存储模块中或者输出最终计算结果。每个子任务计算完成时,通过配置更新指令将可重构计算阵列重构,以进行下一个子任务的计算。
但是在可重构计算阵列进行计算过程中,仅处于数据流到达状态的算子才参与计算,其他算子处于已经计算完成状态或者处于等待数据流到达状态的算子无法参与计算,因此导致可重构计算阵列中算子利用率较低,可重构计算阵列整体性能不高。
发明内容
本发明的主要目的在于提供一种用于可重构密码计算阵列的任务处理方法、装置、设备、介质和程序产品,可以充分提高可重构计算阵列中算子的利用率。
为实现上述目的,本发明实施例第一方面提供一种用于可重构计算阵列的任务处理方法,所述可重构计算阵列包括多个算核,所述多个算核中的每个算核相互独立地执行计算任务,每个所述算核包含一行或多行算子,所述方法包括:
获取预设任务对应的m个配置信息块中的第一个配置信息块,每个所述配置信息块对应一个子计算过程,其中m为正整数;
根据所述第一个配置信息块配置所述多个算核中的第一算核,所述第一算核用于执行所述预设任务;
在所述第一算核执行完所述第一个配置信息块对应的任务后,根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核,以便所述第一算核能够继续执行所述预设任务。
在本发明一实施例中,所述方法还包括:
根据所述第一个配置信息块,确定所述第一算核中的保持算子,所述保持算子为在本次子计算过程中不具有下一连接算子的算子;
为所述保持算子设置令牌保持信息,所述保持算子的令牌保持信息为需要保持令牌直至本次重构计算完成。
在本发明一实施例中,在所述根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核之前,所述方法还包括:
判断所述第一算核中每个保持算子的令牌保持状态是否均与自身的令牌保持信息一致;
若每个保持算子的令牌保持状态均与自身的令牌保持信息一致,则触发所述第一算核的重构使能。
在本发明一实施例中,在所述根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核之前,所述方法还包括:
判断所述第一算核中每个保持算子的令牌保持状态是否均将在下一个时钟周期与自身的令牌保持信息一致;
若每个保持算子的令牌保持状态均将在下一个时钟周期与自身的令牌保持信息一致,则触发所述第一算核的重构使能。在本发明一实施例中,所述方法还包括:
根据所述下一个配置信息块重新配置所述第一算核时,所述保持算子输出的计算结果保持在自身的接口上;
在根据所述下一个配置信息块重新配置所述第一算核后,将所述保持算子输出的计算结果发送至计算逻辑对应的下一个或多个算子。
本发明实施例第二方面提供一种用于可重构计算阵列的任务处理装置,所述可重构计算阵列包括多个算核,所述多个算核中的每个算核相互独立地执行计算任务,每个所述算核包含一行或多行算子,包括:
获取模块,用于获取预设任务对应的m个配置信息块中的第一个配置信息块,每个所述配置信息块对应一个子计算过程,其中m为正整数;
配置模块,用于根据所述第一个配置信息块配置所述多个算核中的第一算核,所述第一算核用于执行所述预设任务;
执行模块,用于在所述第一算核执行完所述第一个配置信息块对应的任务后,根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核,以便所述第一算核能够继续执行所述预设任务。
在本发明一实施例中,配置模块包括:
确定模块,用于根据所述第一个配置信息块,确定所述第一算核中的保持算子,所述保持算子为在本次子计算过程中不具有下一连接算子的算子;
设置模块,用于为所述保持算子设置令牌保持信息,所述保持算子的令牌保持信息为需要保持令牌直至本次重构计算完成。
在本发明一实施例中,装置还包括:
判断模块,用于判断所述第一算核中每个保持算子的令牌保持状态是否均与自身的令牌保持信息一致;
触发模块,用于若每个保持算子的令牌保持状态均与自身的令牌保持信息一致,则触发所述第一算核的重构使能。
在本发明一实施例中,装置还包括:
所述判断模块,还用于判断所述第一算核中每个保持算子的令牌保持状态是否均将在下一个时钟周期与自身的令牌保持信息一致;
所述触发模块,还用于若每个保持算子的令牌保持状态均将在下一个时钟周期与自身的令牌保持信息一致,则触发所述第一算核的重构使能。
在本发明一实施例中,装置还包括:
保持模块,用于根据所述下一个配置信息块重新配置所述第一算核时,所述保持算子输出的计算结果保持在自身的接口上;
发送模块,用于在根据所述下一个配置信息块重新配置所述第一算核后,将所述保持算子输出的计算结果发送至计算逻辑对应的下一个或多个算子。
本发明的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述任务处理方法。
本发明的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述任务处理方法。
本发明的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任务处理方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述用于可重构密码计算阵列的数据处理方法。
根据本发明实施例,本发明提供的用于可重构计算阵列的任务处理方法、装置、设备、介质和程序产品,该可重构计算阵列包括多个算核,该多个算核中的每个算核相互独立地执行计算任务,每个该算核包含一行或多行算子,该方法包括:获取预设任务对应的m个配置信息块中的第一个配置信息块,每个该配置信息块对应一个子计算过程,其中m为正整数,根据该第一个配置信息块配置该多个算核中的第一算核,该第一算核用于执行该预设任务,在该第一算核执行完该第一个配置信息块对应的任务后,根据该m个配置信息块中的下一个配置信息块重新配置该第一算核,以便该第一算核能够继续执行该预设任务。通过选取可重构计算阵列的多个算核中的第一算核,使得能够利用第一算核这一较小的算子阵列进行频繁的重构的方式即可达到和原先多个算核的阵列一样的计算效果,因此可在计算能力总体不变的前提下,极大的减小了算子阵列的规模,提升算子利用率,从而提升整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的用于可重构密码计算阵列的任务处理方法的流程示意图;
图2为本发明一实施例提供的可重构密码计算阵列的传统重构示意图;
图3为本发明一实施例提供的可重构密码计算阵列的重构示意图;
图4为本发明一实施例提供的用于可重构密码计算阵列的任务处理方法的流程示意图;
图5为本发明一实施例提供的第一次重构的时序图;
图6为本发明一实施例提供的用于可重构密码计算阵列的任务处理方法的流程示意图;
图7为本发明一实施例提供的用于可重构计算阵列的任务处理装置的示意图;
图8示出了一种电子设备的硬件结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种用于可重构计算阵列的任务处理方法、装置、设备、介质和产品,该可重构计算阵列包括多个算核,该多个算核中的每个算核相互独立地执行计算任务,每个该算核包含一行或多行算子,该方法包括:获取预设任务对应的m个配置信息块中的第一个配置信息块,每个该配置信息块对应一个子计算过程,其中m为正整数,根据该第一个配置信息块配置该多个算核中的第一算核,该第一算核用于执行该预设任务,在该第一算核执行完该第一个配置信息块对应的任务后,根据该m个配置信息块中的下一个配置信息块重新配置该第一算核,以便该第一算核能够继续执行该预设任务。根据本发明实施例,本发明通过选取可重构计算阵列的多个算核中的第一算核,使得能够利用第一算核这一较小的一维算子阵列进行频繁的重构的方式即可达到和原先二维算子阵列一样的计算效果,因此可在计算能力总体不变的前提下,极大的减小了算子阵列的规模,提升算子利用率,从而提升整体性能。
下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互结合。
请参阅图1,图1为本发明一实施例提供的用于可重构密码计算阵列的任务处理方法的流程示意图,该可重构计算阵列包括多个算核,该多个算核中的每个算核相互独立地执行计算任务,每个该算核包含一行或多行算子,该方法包括操作S110至操作S130。
操作S110,获取预设任务对应的m个配置信息块中的第一个配置信息块,每个该配置信息块对应一个子计算过程。
操作S120,根据该第一个配置信息块配置该多个算核中的第一算核,该第一算核用于执行该预设任务。
操作S130,在该第一算核执行完该第一个配置信息块对应的任务后,根据该m个配置信息块中的下一个配置信息块重新配置该第一算核,以便该第一算核能够继续执行该预设任务。
其中,m为正整数,可重构计算阵列是一种粗粒度可重构密码多核架构,其结构按照阵列排布。在传统架构上,使用可重构计算阵列进行计算的过程是将任务拆分为一个或多个可以映射进可重构计算阵列的子任务,每个子任务从输入端口或者内部存储模块获得数据以进行计算,计算完成将中间数据存放于内部存储模块中或者输出最终计算结果。每个子任务计算完成时,通过配置更新指令将可重构计算阵列重构,以进行下一个子任务的计算。如图2所示,可重构计算阵列包括四行算子,也即算核组包括四行算子,在传统的架构上绘制任务映射图,以一个任务需要拆分为三个子任务处理为例进行说明,横向表示第几次重构,在进行第1次重构时,进行子任务1的处理,计算开始时,由IN_PORT发放令牌和数据,令牌和数据在阵列中自由传递,到达CACHE之后,中间计算结果被存储下来,令牌被销毁,当阵列中不再有令牌则表示此子任务1处理完成,开始进行子任务2的处理,以此类推,直至所有的子任务处理完成,则整个计算完成。
在本发明中,将可重构计算阵列拆分为多个子阵列,使得可以使用较小的算子阵列(第一算核)进行频繁的重构达到和原先阵列一样的计算效果。本发明中的用于执行预设任务的第一算核中算子的数量小于多个算核的算子的数量,以图2所示可重构计算阵列为例,图2所示的可重构计算阵列中多个算核的算子为4行,则本发明中第一算核可以为该4行算子中的一行、两行或者三行,以第一算核为一行算子为例进行说明,也即将图2中每个子任务又分为四次更小的任务,在上述用于执行预设任务的已有的可重构计算阵列上做算法映射,在不拆分算法映射图的总体结构下,根据本发明可以得到图3任务映射图,也即,根据本发明获取包括多行算子的可重构计算阵列,多行该算子共同用于执行预设任务,选取多行该算子中的至少一行该算子,至少一行该算子的数量小于多行该算子的数量,利用至少一行该算子执行该预设任务,如图3所示,利用包含一行算子的第一算核,对其重构12次执行12次子计算任务即可执行完成预设任务。也即,m=12,预设任务对应12个配置信息块。
可以理解的,图3所选取的一行算子PE0、PE1、PE2和PE3仅为其中一个示例,其还可以选择一行算子PE4、PE5、PE6和PE7,或者,一行算子PE8、PE9、PE10和PE11等,本发明对此不做限制,同样的,本发明也不局限于仅选取一行算子,仅保证选取的第一算核中算子的数量小于多个算核中的算子的数量即可。
根据本发明实施例,通过选取可重构计算阵列中多个算核中的第一算核,使得能够利用第一算核这一较小的算子阵列进行频繁的重构的方式即可达到和原先阵列一样的计算效果,因此可在计算能力总体不变的前提下,极大的减小了算子阵列的规模,提升算子利用率,从而提升整体性能。
请参阅图4,图4为本发明一实施例提供的用于可重构密码计算阵列的任务处理方法的流程示意图,操作S120包括操作410至操作S420。
操作S410,根据该第一个配置信息块,确定该第一算核中的保持算子,该保持算子为在本次子计算过程中不具有下一连接算子的算子。
操作S420,为该保持算子设置令牌保持信息。
在本发明中,确定每次重构计算中第一算核(至少一行该算子)中的第一算子和第二算子,该第一算子(非保持算子)为在本次重构计算过程中具有下一连接算子的算子,该第二算子(保持算子)为在本次重构计算过程中不具有下一连接算子的算子。对于第一算子,将该第一算子的令牌保持信息设置为不需要保持令牌。对于第二算子,将该第二算子的令牌保持信息设置为需要保持令牌,并保持自身所持有的令牌直至本次重构计算完成。
在本发明中,每次重构计算过程中第一算核中算子的连接关系可以参照原有多个算核中对应行中算子的连接关系,第一算核以图2中PE0、PE1、PE2和PE3为例,如图2和图3所示,在第一次重构计算过程中,PE0为具有下一连接算子PE1的算子,因此PE0为第一算子,将PE0的令牌保持信息设置为不需要保持令牌。PE1、PE2和PE3在第一次重构计算过程中均为不具有下一连接算子的算子(仅与下一次重构计算中的算子保持数据连接),因此PE1、PE2和PE3为第二算子,将PE1、PE2和PE3的令牌保持信息设置为需要保持令牌,并保持自身所持有的令牌直至本次重构计算完成。
在本发明中,如图5所示,在该次重构计算的t1时刻,PE0的令牌保持状态为保持有令牌,PE1的令牌保持状态为没有保持令牌,PE2的令牌保持状态为保持有令牌,PE3的令牌保持状态为保持有令牌,而在该次重构计算中需要PE0的令牌保持信息为不需要保持令牌,PE1、PE2和PE3的令牌保持信息为需要保持令牌,则PE0、PE1、PE2和PE3的令牌保持状态和令牌保持信息不一致,在t1时刻该次重构计算没有完成。在该次重构计算的t2时刻,PE0的令牌保持状态为没有保持令牌,PE1、PE2和PE3的令牌保持状态均为保持有令牌,因此,PE0、PE1、PE2和PE3的令牌保持状态和令牌保持信息一致,在t2时刻该次重构计算完成。
在本发明中,令牌的保持状态和令牌保持信息可以采用二进制编码的形式或其它形式来表示,本公开对此不做限定,例如,“0”表示令牌的保持状态为没有保持以及令牌保持信息为不需要保持令牌,“1”表示令牌的保持状态为保持有令牌以及令牌保持信息为需要保持令牌。
在本发明一实施例中,本发明提供的用于可重构密码计算阵列的任务处理方法还包括:根据该下一个配置信息块重新配置该第一算核时,该保持算子输出的计算结果保持在自身的接口上;在根据该下一个配置信息块重新配置该第一算核后,将该保持算子输出的计算结果发送至计算逻辑对应的下一个或多个算子。
在本发明中,对于每次重构计算中,在每个该第二算子计算完成后,将该第二算子输出的计算结果保持在该第二算子自身的接口上,在本次重构计算完成后,将所有该第二算子输出的计算结果发送给下一次重构计算中的该目标算子(计算逻辑对应的下一个或多个算子)。根据本发明实施例,与图2所示现有可重构计算阵列的算核组包括四行算子所不同,拆分后的可重构计算阵列的算核组仅有一行算子,因此在一次重构后计算并没有完成,通过将令牌和中间数据保持在算子接口上,等待所有算子计算结束,重构之后,再释放保持的令牌与数据,可以省去在cache中缓存的操作,加速数据流动。
在本发明中,获取本次重构计算中该算子的令牌保持信息。在该算子的令牌保持信息为不需要保持令牌的情况下,将该算子的令牌的传递给在本次重构计算中该算子连接的下一算子。在该算子的令牌保持信息为需要保持令牌的情况下,保持该算子自身所持有的令牌直至本次重构计算完成后,将所有该第二算子持有的令牌传递给下一次重构计算中的目标算子,该目标算子用于接收前一次重构计算完成后输出的中间数据。
在本发明一实施例中,在首次重构计算中,为第一算核中的第三算子均发放令牌,该第三算子用于接收该预设任务的任务数据。如图2、图3和图5所示,PE0、PE2和PE3为第三算子。
在本发明中,以第1次重构计算为例,PE0为第一算子,PE0的令牌保持信息为不需要保持令牌,PE1、PE2和PE3为第二算子,PE1、PE2和PE3的令牌保持信息为需要保持令牌,如图5所示,PE1、PE2和PE3的输出需要送往下一次重构,t0时刻,第一次重构开始计算,由端口发放令牌到PE0、PE2和PE3。t1时刻算子PE0完成了计算,但是PE0的令牌保持信息为不需要保持令牌,则令牌在t1时刻自由传递到PE1,算子PE2和PE3完成了计算,根据PE2和PE3的令牌保持信息为需要保持令牌,则PE2和PE3需要对令牌进行保持,t2时刻,PE1完成了计算,根据PE1的令牌保持信息为需要保持令牌,则PE1需要保持令牌。在本次重构计算完成后,PE1、PE2和PE3将持有的令牌传递给下一次重构计算中的目标算子PE0和PE2。
在本发明一实施例中,判断第一算核中每个算子的令牌保持状态是否均与自身的令牌保持信息一致,若每个算子的令牌保持状态均与自身的令牌保持信息一致,则本次重构计算完成。可理解的,若存在算子的令牌保持状态与自身的令牌保持信息不一致,则本次重构计算没有完成。
根据本发明实施例,新增令牌保持信息,为保持算子设置令牌保持信息,保持算子的令牌保持信息为需要保持令直至本次重构计算完成,对于在本次重构计算过程中具有下一连接算子的算子(非保持算子)的令牌保持信息设置为不需要保持令牌,对于在本次重构计算过程中不具有下一连接算子的算子(保持算子)的令牌保持信息设置为需要保持令牌,以此监控当前重构计算是否完成。
在本发明一实施例中,本发明提供的用于可重构密码计算阵列的任务处理方法还包括:判断该第一算核中的每个保持算子的令牌保持状态是否均与自身的令牌保持信息一致。若每个保持算子的令牌保持状态均与自身的令牌保持信息一致,则触发该第一算核的重构使能。使得能够及时重构第一算核,提升任务处理效率。
请参阅图6,图6为本发明一实施例提供的用于可重构密码计算阵列的任务处理方法的流程示意图,该方法除了包括操作S110至操作S130之外,还包括操作S610至操作S620。
操作S610,判断该第一算核中每个保持算子的令牌保持状态是否均与自身的令牌保持信息一致。
操作S620,若每个保持算子的令牌保持状态均与自身的令牌保持信息一致,则触发该第一算核的重构使能。
在本发明一实施例中,对于每次重构计算中,在重构计算完成的至少前一个时钟周期,开始进行下一次重构。
在本发明中,由于重构次数增加,重构带来的性能损耗会变大,算子内可以增加输出表示下一个时钟周期该算子是否计算完成的PE_NEXT_OTOKEN_O信号,使用PE_NEXT_OTOKEN_O信号可以提前判定计算是否完成,开始进行重构,节省时间。如图4,t1时刻即可预知t2时刻计算完成,则t1时刻即可开始重构,到t2时刻计算完成,重构也同时完成。此方式可以将重构的时间隐藏于计算的时间之内,去除重构次数增加带来的性能损耗。
在一示例中,可以对算子内令牌持新增令牌保持与释放逻辑,KEEP_OTOKEN_I和RELEASE_OTOKEN_I为新增的两个控制信号,分别为令牌保持信号和释放使能信号。释放使能信号为开始重构信号,在切换配置的同时给出一拍的高电平,保持使能关闭时,和原算子功能一致,保持使能打开时,释放使能信号到来之前,令牌保持在算子内部,释放使能信号到来时,保持的令牌在下一个周期被清除。
请参阅图7,图7为本发明一实施例提供的用于可重构计算阵列的任务处理装置,该可重构计算阵列包括多个算核,该多个算核中的每个算核相互独立地执行计算任务,每个该算核包含一行或多行算子,该装置700包括:
获取模块710,用于获取预设任务对应的m个配置信息块中的第一个配置信息块,每个该配置信息块对应一个子计算过程,其中m为正整数;
配置模块720,用于根据该第一个配置信息块配置该多个算核中的第一算核,该第一算核用于执行该预设任务;
执行模块730,用于在该第一算核执行完该第一个配置信息块对应的任务后,根据该m个配置信息块中的下一个配置信息块重新配置该第一算核,以便该第一算核能够继续执行该预设任务。
在本发明一实施例中,配置模块720包括:
确定模块,用于根据该第一个配置信息块,确定该第一算核中的保持算子,该保持算子为在本次子计算过程中不具有下一连接算子的算子;
设置模块,用于为该保持算子设置令牌保持信息,该保持算子的令牌保持信息为需要保持令牌直至本次重构计算完成。
在本发明一实施例中,装置700还包括:
判断模块,用于判断所述第一算核中每个保持算子的令牌保持状态是否均与自身的令牌保持信息一致;
触发模块,用于若每个保持算子的令牌保持状态均与自身的令牌保持信息一致,则触发所述第一算核的重构使能。
在本发明一实施例中,装置700还包括:
该判断模块,还用于判断所述第一算核中每个保持算子的令牌保持状态是否均将在下一个时钟周期与自身的令牌保持信息一致;
该触发模块,还用于若每个保持算子的令牌保持状态均将在下一个时钟周期与自身的令牌保持信息一致,则触发所述第一算核的重构使能。
在本发明一实施例中,装置700还包括:
保持模块,用于根据该下一个配置信息块重新配置该第一算核时,该保持算子输出的计算结果保持在自身的接口上;
发送模块,用于在根据该下一个配置信息块重新配置该第一算核后,将该保持算子输出的计算结果发送至计算逻辑对应的下一个或多个算子。
根据本公开的实施例,例如,获取模块710、配置模块720、执行模块730,中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块710、配置模块720、执行模块730中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块710、配置模块720、执行模块730中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括可重构处理器801,可重构处理器801包括可重构密码计算阵列,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。可重构处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。可重构处理器801还可以包括用于缓存用途的板载存储器。可重构处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,该程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的用于可重构密码计算阵列的任务处理方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (9)
1.一种用于可重构计算阵列的任务处理方法,其特征在于,所述可重构计算阵列包括多个算核,所述多个算核中的每个算核相互独立地执行计算任务,每个所述算核包含一行或多行算子,所述方法包括:
获取预设任务对应的m个配置信息块中的第一个配置信息块,每个所述配置信息块对应一个子计算过程,其中m为正整数;
根据所述第一个配置信息块配置所述多个算核中的第一算核,所述第一算核用于执行所述预设任务;
在所述第一算核执行完所述第一个配置信息块对应的任务后,根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核,以便所述第一算核能够继续执行所述预设任务。
2.根据权利要求1所述的任务处理方法,其特征在于,所述根据所述第一个配置信息块配置所述多个算核中的第一算核包括:
根据所述第一个配置信息块,确定所述第一算核中的保持算子,所述保持算子为在本次子计算过程中不具有下一连接算子的算子;
为所述保持算子设置令牌保持信息,所述保持算子的令牌保持信息为需要保持令牌直至本次重构计算完成。
3.根据权利要求2所述的任务处理方法,其特征在于,在所述根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核之前,所述方法还包括:
判断所述第一算核中每个保持算子的令牌保持状态是否均与自身的令牌保持信息一致;
若每个保持算子的令牌保持状态均与自身的令牌保持信息一致,则触发所述第一算核的重构使能。
4.根据权利要求2所述的任务处理方法,其特征在于,在所述根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核之前,所述方法还包括:
判断所述第一算核中每个保持算子的令牌保持状态是否均将在下一个时钟周期与自身的令牌保持信息一致;
若每个保持算子的令牌保持状态均将在下一个时钟周期与自身的令牌保持信息一致,则触发所述第一算核的重构使能。
5.根据权利要求1至4任意一项所述的任务处理方法,其特征在于,所述方法还包括:
根据所述下一个配置信息块重新配置所述第一算核时,所述保持算子输出的计算结果保持在自身的接口上;
在根据所述下一个配置信息块重新配置所述第一算核后,将所述保持算子输出的计算结果发送至计算逻辑对应的下一个或多个算子。
6.一种用于可重构计算阵列的任务处理装置,其特征在于,所述可重构计算阵列包括多个算核,所述多个算核中的每个算核相互独立地执行计算任务,每个所述算核包含一行或多行算子,包括:
获取模块,用于获取预设任务对应的m个配置信息块中的第一个配置信息块,每个所述配置信息块对应一个子计算过程,其中m为正整数;
配置模块,用于根据所述第一个配置信息块配置所述多个算核中的第一算核,所述第一算核用于执行所述预设任务;
执行模块,用于在所述第一算核执行完所述第一个配置信息块对应的任务后,根据所述m个配置信息块中的下一个配置信息块重新配置所述第一算核,以便所述第一算核能够继续执行所述预设任务。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~5中任一项所述的方法。
9.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211059479.7A CN115374052A (zh) | 2022-08-30 | 2022-08-30 | 用于可重构密码阵列的任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211059479.7A CN115374052A (zh) | 2022-08-30 | 2022-08-30 | 用于可重构密码阵列的任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115374052A true CN115374052A (zh) | 2022-11-22 |
Family
ID=84070554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211059479.7A Pending CN115374052A (zh) | 2022-08-30 | 2022-08-30 | 用于可重构密码阵列的任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374052A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724678A (zh) * | 2024-02-07 | 2024-03-19 | 深圳市纽创信安科技开发有限公司 | 执行方法、装置、系统、设备、芯片、介质及程序产品 |
-
2022
- 2022-08-30 CN CN202211059479.7A patent/CN115374052A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724678A (zh) * | 2024-02-07 | 2024-03-19 | 深圳市纽创信安科技开发有限公司 | 执行方法、装置、系统、设备、芯片、介质及程序产品 |
CN117724678B (zh) * | 2024-02-07 | 2024-05-17 | 深圳市纽创信安科技开发有限公司 | 执行方法、装置、系统、设备、芯片、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949328B2 (en) | Data flow graph computation using exceptions | |
CN107766148B (zh) | 一种异构集群及任务处理方法和装置 | |
US10580190B2 (en) | Graph based heterogeneous parallel processing system | |
TW201723934A (zh) | 類神經網路處理器中之批次處理 | |
US9378533B2 (en) | Central processing unit, GPU simulation method thereof, and computing system including the same | |
CN110825436B (zh) | 应用于人工智能芯片的计算方法和人工智能芯片 | |
US20190138373A1 (en) | Multithreaded data flow processing within a reconfigurable fabric | |
CN110825440B (zh) | 指令执行方法和装置 | |
US9268623B2 (en) | Analyzing update conditions for shared variable directory information in a parallel computer | |
US9513910B2 (en) | Requesting shared variable directory (SVD) information from a plurality of threads in a parallel computer | |
US10997102B2 (en) | Multidimensional address generation for direct memory access | |
US11036546B1 (en) | Multi-threaded shared memory functional simulation of dataflow graph | |
WO2015127796A1 (zh) | 一种处理串行任务的数据处理装置及方法 | |
US20240211397A1 (en) | Processor Cluster Address Generation | |
US9256538B2 (en) | Acquiring remote shared variable directory information in a parallel computer | |
US8941674B2 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
CN110825435B (zh) | 用于处理数据的方法和装置 | |
US20200117465A1 (en) | Multi-agent instruction execution engine for neural inference processing | |
CN115374052A (zh) | 用于可重构密码阵列的任务处理方法及装置 | |
KR20200018234A (ko) | 인공지능 칩 및 인공지능 칩에 사용되는 명령 실행 방법 | |
CN108628693A (zh) | 处理器调试方法和系统 | |
CN110825461B (zh) | 数据处理方法和装置 | |
CN113805940B (zh) | 用于人工智能和机器学习的向量加速器 | |
EP4384902A1 (en) | Parallel processing architecture using distributed register files | |
Miomandre et al. | Demonstrating the spider runtime for reconfigurable dataflow graphs execution onto a dma-based manycore processor |
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 |