【技术实现步骤摘要】
【国外来华专利技术】存储器受限调度
[0001]相关申请的交叉引用
[0002]本申请要求于2021年8月31日提交的美国专利申请S/N.17/463,393的优先权,该美国专利申请要求于2020年9月1日提交的美国临时专利申请S/N.63/073,269的权益和优先权,其中每件申请的全部内容通过援引整体纳入于此。
[0003]引言
[0004]本公开的各方面涉及计算机处理器操作调度,尤其涉及针对存储器受限系统的改进的操作调度。
[0005]如今各种各样的计算进程涉及顺序地或并行地执行数个离散的操作。调度这些操作应当计及数据依赖关系(例如,在特定操作必须在某些后续操作之前完成的情况下)。计算系统往往利用具有快速存取的存储器(诸如高速缓存、紧密耦合存储器(TCM)、静态随机存取存储器(SRAM)等)来存储每个操作的执行所需的相关联数据。然而,在存储器受限系统中,这些快速存取存储器中可能没有足够的空间来存储整个操作序列和伴随的数据。
[0006]在存储器受限系统上执行此类进程会以各种方式降低性能。尽管一些数据通常会被存储在快速存取存储器(诸如高速缓存)中,但存储器受限系统往往需要依赖于更大更慢的存储器来存储其余数据。因为较大的主机存储器相比于快速存取存储器(诸如SRAM)通常会引致显著更多的计算成本,所以减少此类存储器存取的次数以改进进程的执行是有用的。一般而言,对主机存储器的存取增加了功耗和等待时间,并减少了计算机的总带宽。由此,调度此类操作的一个重要方面是减少对较慢存储器(例如,主机处理系统动态随机存取存储器(DRAM))的存储器 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:接收用于进程的数据流图表,其中数据流图表包括多个节点和多条边;至少部分地基于所述进程的存储器利用来生成所述数据流图表的拓扑排序;通过基于预定义的存储器容量将与存储器存取相对应的一个或多个新节点插入到所述拓扑排序中来生成第一经修改拓扑排序;基于所述第一经修改拓扑排序来分配存储器中的存储器单元;以及通过按所述第一经修改拓扑排序重新排列一个或多个节点来生成第二经修改拓扑排序,其中所述第二经修改拓扑排序使得能够增加多个硬件组件的并行利用。2.如权利要求1所述的方法,其中按所述第一经修改拓扑排序重新排列一个或多个节点包括:将与将数据从主机处理系统存储器加载到所述存储器中相对应的一个或多个节点移到所述拓扑排序中更靠前的位置。3.如权利要求1所述的方法,其中:所述数据流图表中的所述多个节点对应于在所述进程期间执行的操作,所述数据流图表中的所述多条边对应于在所述操作之间传递的数据,所述多条边中的每条相应边关联于相应权重,该相应权重基于与该相应边相关联的所述数据的大小,并且生成所述拓扑排序包括基于所述权重来找到所述数据流图表中的最小割集。4.如权利要求3所述的方法,其中找到所述最小割集包括通过以下操作来修改所述数据流图表以实施数据依赖关系:对于所述多条边中的每条相应边,添加无限权重的相应后向边。5.如权利要求4所述的方法,其中找到所述最小割集进一步包括通过以下操作来修改所述数据流图表以实施数据依赖关系:确保在所述数据流图表中存在从源到所述多个节点中的每一者以及从所述多个节点中的每一者到阱的至少一条有效路径。6.如权利要求3所述的方法,其中找到所述最小割集包括通过以下操作向所述多条边赋予所述权重:标识所述多个节点中向所述多个节点中的至少一个消费者节点输出数据的生产者节点;确定由所述生产者节点输出的所述数据的大小;以及通过以下操作将解分配节点插入到所述数据流图表中:创建具有与由所述生产者节点输出的所述数据的大小相对应的权重的第一边,其中所述第一边从所述生产者节点插入到所述解分配节点;向从所述生产者节点到所述至少一个消费者节点的边赋予为零的权重;以及创建从所述至少一个消费者节点到所述解分配节点的边,该边被赋予为零的权重。7.如权利要求3所述的方法,其中找到所述最小割集包括:对于所述多个节点中的第一索引节点,通过以下操作将第一最小割约束为在所述第一索引节点之后发生:创建从源到所述第一索引节点的具有无限权重的第一边;标识来自所述多个节点中的从所述第一索引节点接收数据的消费者节点集合;创建从所述消费者节点集合中的每个消费者节点到阱的具有无限权重的边;以及
计算所述第一最小割,其中所述第一最小割将所述第一索引节点置于所述数据流图表的第一部分中并且将所述第一索引节点的所有后继节点置于所述数据流图表的第二部分中。8.如权利要求7所述的方法,其中找到所述最小割集进一步包括:迭代地计算所述数据流图表的所述第一部分和所述第二部分中的索引节点的最小割;以及基于所述最小割来对所述数据流图表的所述第一部分和所述第二部分进行分离,直到预定义的停止条件被满足。9.如权利要求7所述的方法,进一步包括:基于确定所述第一索引节点在所述数据流图表中居中来选择所述第一索引节点。10.如权利要求9所述的方法,进一步包括:确定所述第一索引节点是所述数据流图表中的一组同胞节点之一;以及通过将该组同胞节点的第一部分约束到所述数据流图表的所述第一部分中并且将该组同胞节点的第二部分约束到所述数据流图表的所述第二部分中来计算所述第一最小割。11.一种处理系统,包括:包括计算机可执行指令的存储器;以及一个或多个处理器,所述一个或多个处理器被配置成执行所述计算机可执行指令并使得所述处理系统执行包括以下动作的操作:接收用于进程的数据流图表,其中数据流图表包括多个节点和多条边;至少部分地基于所述进程的存储器利用来生成所述数据流图表的拓扑排序;通过基于预定义的存储器容量将与存储器存取相对应的一个或多个新节点插入到所述拓扑排序中来生成第一经修改拓扑排序;基于所述第一经修改拓扑排序来分配存储器中的存储器单元;以及通过按所述第一经修改拓扑排序重新排列一个或多个节点来生成第二经修改拓扑排序,其中所述第二经修改拓扑排序使得能够增加多个硬件组件的并行利用。12.如权利要求11所述的处理系统,其中按所述第一经修改拓扑排序重新排列一个或多个节点包括:将与将数据从主机处理系统存储器加载到所述存储器中相对应的一个或多个节点移到所述拓扑排序中更靠前的位置。13.如权利要求11所述的处理系统,其中:所述数据流图表中的所述多个节点对应于在所述进程期间执行的操作,所述数据流图表中的所述多条边对应于在所述操作之间传递的数据,所述多条边中的每条相应边关联于相应权重,该相应权重基于与该相应边相关联的所述数据的大小,并且生成所述拓扑排序包括基于所述权重来找到所述数据流图表中的最小割集。14.如权利要求13所述的处理系统,其中找到所述最小割集包括通过以下动作来修改所述数据流图表以实施数据依赖关系:对于所述多条边中的每条相应边,添加无限权重的相应后向边。15.如权利要求14所述的处理系统,其中找到所述最小割集进一步包括通过以下动作来修改所述数据流图表以实施数据依赖关系:确保在所述数据流图表中存在从源到所述多个节点中的每一者以及从所述多个节点
中的每一者到阱的至少一条有效路径。16.如权利要求13所述的处理系统,其中找到所述最小割集包括通过以下动作向所述多条边赋予所述权重:标识所述多个节点中向所述多个节点中的至少一个消费者节点输出数据的生产者节点;确定由所述生产者节点输出的所述数据的大小;以及通过以下动作将解分配节点插入到所述数据流图表中:创建具有与由所述生产者节点输出的所述数据的大小相对应的权重的第一边,其中所述第一边从所述生产者节点插入到所述解分配节点;向从所述生产者节点到所述至少一个消费者节点的边赋予为零的权重;以及创建从所述至少一个消费者节点到所述解分配节点的边,该边被赋予为零的权重。17.如权利要求13所述...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。