用于多架构异构计算的可执行代码的动态分配制造技术

技术编号:39594984 阅读:11 留言:0更新日期:2023-12-03 19:52
一种用于执行软件程序的装置,其包括处理单元和硬件处理器,该硬件处理器适于:在软件程序的中间表示中标识调用块和目标块,其中,中间表示包括多个块,每个块与软件程序的一个执行块相关联并且包括中间指令集,其中,调用块包括至少一个控制流中间指令以执行目标块的至少一个目标中间指令;使用目标块生成目标可执行指令;使用调用块和用于唤起目标指令的计算机控制指令生成调用指令,此时调用指令由调用处理单元执行并且目标指令由目标处理单元执行;配置调用处理单元用于执行调用指令;以及配置目标处理单元用于执行目标指令

【技术实现步骤摘要】
【国外来华专利技术】用于多架构异构计算的可执行代码的动态分配
[0001]相关申请
[0002]本申请要求
2021
年2月
10
日提交的美国专利申请
No.17/172,134
的优先权,该美国专利申请现于
2021
年9月7日被颁布为美国专利
No.11,113,059
,其全部内容通过引用并入本文



[0003]本公开中描述的一些实施例涉及计算设备,更具体地,但不排他地,涉及异构多架构计算系统


技术介绍

[0004]在计算领域中,术语性能是指由计算机化系统执行的有用工作量

有用工作的一些特性包括工作被执行的速率

计算资源的利用
(
例如所使用的存储器的量或所消耗的网络带宽量
)
,以及计算机化系统对输入作出反应所花费的时间量

有多种度量用于测量有用工作量

一些度量对于计算机化系统的环境是特定的;一些其它度量是可以在各种计算机化系统中测量的一般度量

[0005]如本文所使用的,术语“处理单元”用于表示被配置成执行一组操作的任何类型的可编程或非可编程电路

处理单元可以包括硬件以及软件

例如,处理单元可以包括一个或多个处理器和承载程序的暂时性或非暂时性存储器,当程序由一个或多个处理器执行时,该程序使处理单元执行相应的操作

[0006]此外,如本文中所使用的,术语“改善性能”是指改善根据一个或多个性能度量所测量或计算的一个或多个性能得分

用于测量处理单元的性能的两个常见度量是等待时间和吞吐量

等待时间是处理单元执行所标识的操作所花费的时间量

所标识的操作的一些示例是,将数据分组从源传送到目的地,以及响应于输入值执行所标识的计算机指令集

改善等待时间是指减少处理单元执行所标识的操作所花费的时间量

吞吐量是处理单元在一个时间间隔中执行的所标识的操作的量,例如在该时间间隔期间传送的数据分组的量

系统吞吐量的另一示例是处理单元在时间间隔内执行所标识的计算机指令集的输入值的量

提高吞吐量是指增加处理单元在时间间隔内执行的标识的操作的量

[0007]在计算领域中,术语“协处理器”被用于描述辅助处理单元,该辅助处理单元被用于补充系统的主处理单元,并通过从主处理单元卸载一些处理器密集的任务来帮助改善系统的性能

随着对高性能计算的需求的增加,使用协同处理来提高性能也在增加

一些协处理器被设计成执行唯一任务

常见的协处理器是用于执行浮点运算任务的浮点处理器

可以由协处理器执行的唯一任务的其它示例包括网络输入

输出接口任务

加密

字符串处理

图形处理

线性代数处理

机器学习处理和信号处理

其他协处理器可以被配置为执行计算机程序的任意部分,而不是被表征为唯一任务

[0008]协同处理不同于分布式处理

在分布式系统中,问题被分成多个独立的任务,每个任务由多个处理单元中的一个或多个处理单元来解决,这些处理单元基本上彼此独立地操
作,可能在它们之间通信

在协同处理中,协处理器补充主处理单元的功能,并与主处理单元一起工作

[0009]需要将计算机程序的某些部分委托给一个或多个协处理器来执行


技术实现思路

[0010]本公开的一些实施例描述了在包括多个处理单元的异构计算系统中执行软件程序,每个处理单元具有多个计算机架构中的一个

[0011]上述和其它目的通过独立权利要求的特征来实现

进一步的实施方式从从属权利要求

说明书和附图中是明显的

[0012]上述和其它目的通过独立权利要求的特征来实现

进一步的实施方式从从属权利要求

说明书和附图中是明显的

[0013]根据本专利技术的第一方面,一种用于执行软件程序的装置包括多个处理单元和至少一个硬件处理器,所述至少一个硬件处理器适于:在软件程序的中间表示中标识调用块和目标块,其中,中间表示包括多个块,每个块与软件程序的多个执行块中的一个执行块相关联并且包括中间指令集,其中,调用块包括至少一个控制流中间指令以执行目标块的至少一个目标中间指令;使用目标块生成目标可执行指令集;当调用可执行指令集由调用处理单元执行并且目标可执行指令集由目标处理单元执行时,使用调用块并且使用用于唤起目标可执行指令集的至少一个计算机控制指令,来生成调用可执行指令集;配置调用处理单元用于执行调用可执行指令集

以及配置目标处理单元用于执行目标可执行指令集

在软件程序的中间表示中标识调用块和目标块允许例如在软件程序的运行时期间动态生成调用可执行指令集并且附加地或替代地生成目标可执行指令集,并因此允许动态配置调用处理单元并且附加地或替代地配置目标处理单元

调用处理单元的并且附加地或替代地目标处理单元的动态配置有助于通过将调用块的以及附加地或替代地将目标块的执行委托给一个或多个协处理器来提高执行软件程序的系统的性能

[0014]根据本专利技术的第二方面,一种用于执行软件程序的方法包括:在软件程序的中间表示中标识调用块和目标块,其中,中间表示包括多个块,每个块与软件程序的多个执行块中的一个执行块相关联并且包括中间指令集其中,调用块包括至少一个控制流中间指令以执行目标块的至少一个目标中间指令;使用目标块生成目标可执行指令集;当调用可执行指令集由多个处理单元中的调用处理单元执行并且目标可执行指令集由多个处理单元中的目标处理单元执行时,使用调用块并且使用用于唤起目标可执行指令集的至少一个计算机控制指令;配置调用处理单元用于执行调用可执行指令集,来生成调用可执行指令集;以及配置目标处理单元用于执行目标可执行指令集

[0015]根据本专利技术的第三方面,一种用于执行软件程序的软件程序产品包括:非暂时性计算机可读存储介质;第一程序指令,用于:在软件程序的中间表示中标识调用块和目标块,其中,中间表示包括多个块,每个块与软件程序的多个执行块中的一个执行块相关联并且包括中间指令集,其中,调用块包括至少一个控制流中间指令以执行目标块的至少一个目标中间指令;第二程序指令,用于使用目标块生成目标可执行指令集;第三程序指令,用于当调用可执行指令集由多个处理单元中的调用处理单元执行并且目标可执行指令集由多个处理单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.
一种用于执行软件程序的装置,所述装置包括多个处理单元和至少一个硬件处理器,所述硬件处理器适于:在所述软件程序的中间表示中标识调用块和目标块,其中,所述中间表示包括多个块,每个块与所述软件程序的多个执行块中的一个执行块相关联并且包括中间指令集,其中,所述调用块包括至少一个控制流中间指令以执行所述目标块的至少一个目标中间指令;使用所述目标块生成目标可执行指令集;使用所述调用块并且使用用于唤起所述目标可执行指令集的至少一个计算机控制指令,来生成调用可执行指令集,此时所述调用可执行指令集由调用处理单元执行并且所述目标可执行指令集由目标处理单元执行;配置所述调用处理单元用于执行所述调用可执行指令集;以及配置所述目标处理单元用于执行所述目标可执行指令集
。2.
根据权利要求1所述的装置,其中,所述目标处理单元还被配置用于向所述调用处理单元提供由执行所述目标指令集中的至少一些指令的所述目标处理单元所产生的至少一个值
。3.
根据权利要求2所述的装置,其中,所述调用处理单元还被配置用于从所述调用处理单元接收由执行所述目标指令集中的至少一些指令的所述目标处理单元所产生的所述至少一个值
。4.
根据权利要求1所述的装置,其中,所述调用处理单元还被配置用于向所述目标处理单元提供至少一个自变量值
。5.
根据权利要求1所述的装置,其中,所述目标处理单元还被配置用于在执行所述目标指令集中的至少一些其它指令之后,指示所述调用处理单元执行所述调用可执行指令集中的至少一些指令
。6.
根据权利要求5所述的装置,其中,所述调用处理单元还被配置用于:在执行用于唤起所述目标可执行指令集的所述至少一个计算机控制指令之后,暂停所述调用可执行指令集的执行;以及响应于从所述目标处理单元接收到指令,执行所述调用可执行指令集中的所述至少一些指令
。7.
根据权利要求1所述的装置,其中,所述目标处理单元选自由以下项构成的处理单元群组:中央处理器

多核中央处理器
(CPU)、
数据处理单元
(DPU)、
微控制器单元
(MCU)、
加速处理单元
(ACU)、
现场可编程门阵列
(FPGA)、
粗粒度可重构架构
(CGRA)、
神经网络加速器

智能处理单元
(IPU)、
专用集成电路
(ASIC)、
量子计算机和互连计算网格,其包括由多个可配置数据路由结点连接的多个可重构逻辑元件
。8.
根据权利要求1所述的装置,其中,所述调用处理单元的第一计算机架构不同于所述目标处理单元的第二计算机架构
。9.
根据权利要求8所述的装置,其中,所述第一计算机架构和所述第二计算机架构中的至少一个选自由以下项构成的计算机架构群组:复杂指令集计算机
(CISC)
架构

精简指令集计算机
(RISC)
架构

基于
x86
族的计算机架构

基于国际商业机器
(IBM)Power
族的计算机架构以及基于
ARM
族的计算机架构
。10.
根据权利要求8所述的装置,其中,所述调用可执行指令集包括多个转换指令,其实
现应用于所述至少一个控制流中间指令的应用二进制接口,以在所述调用处理单元的所述第一计算机架构与所述目标处理单元的所述第二计算机架构之间转换
。11.
根据权利要求8所述的装置,其中,所述目标块包括多个目标元数据值;并且其中,生成所述目标可执行指令集包括:根据所述目标处理单元的所述第二计算机架构,使用所述多个目标元数据值生成多个经转换的目标元数据值

【专利技术属性】
技术研发人员:埃拉德
申请(专利权)人:涅克斯硅利康有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1