【技术实现步骤摘要】
用于优化硬件FIFO指令的方法、系统和计算机存储介质
[0001]分案说明
[0002]本申请属于申请日为2019年11月26日的中国专利技术专利申请201980093043.X的分案申请。
技术介绍
[0003]一些处理器(例如,域特定处理器)可以包括长延迟、高吞吐量硬件单元。例如,一些处理器可以包括脉动阵列以有效地计算复杂的数值工作负荷。用于这种硬件单元的自然编程接口是在处理器的指令集架构(ISA)中定义的先进先出(FIFO)队列,因为存在负责将数据压入(push)到这些单元并将数据弹出(pop)这些单元的指令。然而,硬件FIFO对指令施加排序约束,并且可以将额外的状态保持为配置,使得编译器难以有效地优化和调度指令。
技术实现思路
[0004]本说明书描述了涉及例如在编译时改进FIFO指令的顺序以减少执行机器学习和其他计算时的延迟的技术。
[0005]通常,本说明书中描述的主题的一个创新方面可以体现在一种方法中,该方法包括接收表示要由包括硬件处理器的处理单元执行的程序的代码的数据。该方法包括对于一个或多个硬件处理器中的每一个:在表示程序的代码的数据中标识用于由硬件处理器执行的独立的先进先出(FIFO)指令组的顺序;对于由硬件处理器执行的每个独立的FIFO指令组,确定路径长度度量,路径长度度量表示从独立的FIFO指令组到达程序的末尾将花费多长时间;以及至少基于用于由硬件处理器执行的每个独立的FIFO指令组的路径长度度量,生成用于由硬件处理器执行的独立的FIFO指令组的新顺序。至少基于用于一个或多个硬件 ...
【技术保护点】
【技术特征摘要】
1.一种由一个或多个数据处理装置执行的方法,所述方法包括:接收表示要由包括硬件处理器的处理单元执行的程序的代码的数据;对于多个所述硬件处理器中的每一个:在表示所述程序的所述代码的所述数据中,标识用于由该硬件处理器执行的先进先出FIFO指令的一个或多个独立组;以及确定性能度量,所述性能度量表示由该硬件处理器执行的操作在所述程序中的性能优势程度;基于所述多个硬件处理器中的每个硬件处理器的所述性能度量来确定所述多个硬件处理器的评估顺序;以及以所确定的评估顺序评估所述多个硬件处理器中的每一个,以确定是否对所述多个硬件处理器中的每个硬件处理器的所述FIFO指令重新排序;对于所述多个硬件处理器中的至少一个,确定所述硬件处理器的所述FIFO指令的新顺序;至少基于所述多个硬件处理器的FIFO指令的每个新顺序来生成所述程序的更新代码;基于所述程序的所述更新代码来生成输出代码,以用于由所述硬件处理器执行;以及将所述输出代码提供给所述硬件处理器。2.根据权利要求1所述的方法,其中,确定所述硬件处理器的所述FIFO指令的新顺序包括:对于用于由所述硬件处理器执行的FIFO指令的每个独立组,确定路径长度度量,所述路径长度度量表示从FIFO指令的该独立组到达所述程序的末尾要花费多长时间;以及至少基于用于由所述硬件处理器执行的FIFO指令的每个独立组的所述路径长度度量,生成用于由所述硬件处理器执行的FIFO指令的所述独立组的新顺序。3.根据权利要求1所述的方法,还包括将一个或多个硬件FIFO单元标识为所述多个硬件处理器,所述一个或多个硬件FIFO单元中的每一个包括使用FIFO队列建模的硬件处理器。4.根据权利要求1所述的方法,其中,每个硬件处理器的所述性能度量至少部分地基于该硬件处理器将花费多少时间来完成该硬件处理器的FIFO指令的所述一个或多个独立组的所述FIFO指令。5.根据权利要求1所述的方法,其中,每个硬件处理器的所述性能度量至少部分地基于将花费多少时间来执行该硬件处理器的所述FIFO指令的所有压入和弹出。6.根据权利要求1所述的方法,其中,每个硬件处理器的所述性能度量至少部分地基于(i)该硬件处理器的吞吐量、(ii)由该硬件处理器对数据执行的计算、(iii)该硬件处理器执行所述计算的数据的量或(iv)(i)、(ii)和(iii)的任意组合。7.根据权利要求1所述的方法,其中,表示所述程序的所述代码的所述数据包括所述程序的源代码的编译器中间表示。8.根据权利要求1所述的方法,其中,所述输出代码包括能够由所述硬件处理器执行的编译机器代码。9.根据权利要求1所述的方法,其中,对于所述多个硬件处理器中的至少一个,确定所述硬件处理器的所述FIFO指令的新顺序包括:
确定第一硬件处理器的FIFO指令的新顺序;以及针对所确定的评估顺序中的一个或多个后续硬件处理器中的每一个,经受基于所述第一硬件处理器的FIFO指令的所述新顺序来施加在该后续硬件处理器的FIFO指令的顺序上的一个或多个约束,确定该后续硬件处理器的FIFO指令的新顺序。10.根据权利要求9所述的方法,其中,以所确定的评估顺序评估所述多个硬件处理器中的每一个减少了施加在具有较高性能度量的硬件处理器的FIFO指令的所述新顺序上的一定数目的约束,所述一定数目的约束否则将由具有较低性能度量的硬件处理器的FIFO指令的所述新顺序施加在具有较高性能度量的所述硬件处理器的FIFO指令的所述新顺序上。11.一种系统,所述系统包括:数据处理装置;以及与所述数据处理装置进行数据通信的存储器存储装置,所述存储器存储装置存储指令,所述指令能够由所述数据处理装置执行并且在这样的执行时使所述数据处理装置执行操作,所述操作包括:接收表示要由包括硬件处理器的处理单元执行的程序的代码的数据;对于多个所述硬件处理器中的每一个:在表示所述程序的所述代码的所述数据中,标识用于由该硬件处理器执行的先进先出FIFO指令的一个或多个独立组;以...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。