[发明专利]一种基于深度图分割的自定义指令并行枚举方法在审
申请号: | 201910627526.5 | 申请日: | 2019-07-12 |
公开(公告)号: | CN110363700A | 公开(公告)日: | 2019-10-22 |
发明(设计)人: | 肖成龙;王珊珊;王心霖 | 申请(专利权)人: | 辽宁工程技术大学 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06T7/11;G06F9/30;G06F9/38;G06F9/50 |
代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 李珉 |
地址: | 125105 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 自定义指令 计算节点 深度图分割 枚举 计算集群 分割 并行 电子设计自动化 非线性回归 原始数据流 并行模式 负载均衡 近似线性 枚举算法 任务运行 时间预测 数据流图 中间表示 自动生成 图分割 有效地 主节点 预测 凸子 主从 空闲 分配 保证 | ||
本发明提供一种基于深度图分割的自定义指令并行枚举方法,涉及电子设计自动化技术领域。该方法首先采用主从并行模式,计算集群中的主节点接收专用自定义指令集自动生成过程的中间表示生成阶段产生的数据流图作为输入;然后采用基于非线性回归任务运行时间预测模型的深度图分割方法将原始数据流图分割为若干子图,并将分割后的子图分配给计算集群中的空闲计算节点;同时对分割的子任务的运行时间进行预测,根据所有子任务的预测时间和计算节点的数目,判断是否需要继续对复杂的子任务进行分割;计算节点使用凸子图枚举算法从收到的子图中枚举自定义指令。本发明方法能够更有效地保证计算节点间的负载均衡,达到近似线性的加速比。
技术领域
本发明涉及电子设计自动化技术领域,尤其涉及一种基于深度图分割的自定义指令并行枚举方法。
背景技术
为了满足嵌入式应用对高性能和低功耗不断增长的需求,通过使用加速器或自定义功能单元(Custom Function Unit)的定制计算越来越多地应用到嵌入式系统当中。其中,专用处理器是实现定制运算的最重要的方案之一。
专用处理器是一种架构与指令集优化设计的处理器,其通过扩展指令集,使得目标应用程序的部分代码在基准处理器执行,其它计算密集的代码在自定义指令的硬件实现-自定义功能单元中执行。应用专用芯片是针对某个特定应用而设计,只能运行特定的应用,因此缺乏一定的灵活性。相对于应用专用芯片(ASIC),专用处理器架构中的基准处理器可以保证一定的灵活性。其次,设计和生产应用专用芯片具有设计周期长和测试成本高的缺点。
相对于通用处理器,专用处理器通过使用自定义指令封装一系列基本操作指令(例如,加法,减法,乘法以及逻辑操作),使得这些基本操作指令之间根据数据依赖关系自动链化,没有数据依赖关系的基本指令并行化,从而很大程度地提高运算的速度。此外,由于多个基本指令封装到一个自定义指令中,使得取指令次数和数据在寄存器与处理器之间传输的次数减少,进而专用处理器的功耗显著低于通用处理器。
扩展指令集的自动生成是专用处理器设计实现的关键。专用处理器的应用专用扩展指令集的自动生成一般包括如图1所示四个步骤:中间表示生成,自定义指令枚举,自定义指令选择,代码生成。中间表示生成阶段将应用程序转换为合适的中间表示,比如,控制数据流图;自定义指令枚举阶段在架构约束下枚举出所有满足约束条件的子图作为候选的自定义指令;自定义指令选择阶段根据不同的设计目的从枚举出的子图(自定义指令的图形化表示)中选出一部分最佳子图作为最终的自定义指令。这些选出的自定义指令就构成了最终的扩展指令集。代码生成阶段负责自动生成自定义指令的硬件实现代码,以及将源代码转换为包含自定义指令的新代码。
自定义指令枚举和自定义指令选择是扩展指令集自动生成过程中最为关键和复杂的两个阶段。在自定义指令枚举方面已有大量研究工作,这些研究工作都是采用串行的方法,然而,当问题规模较大时,串行方法可能无法在合理的时间内给出最优设计方案或者不能给出最优设计方案。自定义指令枚举问题是从应用程序对应的数据流图中枚举出所有满足一定设计约束或用户约束的凸子图作为候选自定义指令。一个给定的数据流图中的子图(AS)数目最多可能有2n个,其中n是数据流图中结点的数目。由此可以看出自定义指令枚举是算法复杂度非常高的问题。为了降低问题的复杂度,之前的研究或是引入微体系结构的约束或是人为加入一些约束条件。根据约束条件的不同,之前的研究可以如下分类和分析:
(1)树形子图(TS):为了降低枚举的复杂度,早期的研究主要集中于枚举出所有树形子图。然而,只枚举树形子图作为自定义指令,只能非常有限地提升性能或降低功耗。
(2)多输入单输出子图(MISO):此类研究关注于枚举所有具有多个输入个单个输出的子图。虽然只枚举多输入单输出子图可以很大程度上降低问题的复杂度,但是多输入单个输出子图作为自定义指令带来的性能提升或功耗降低还是非常有限。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辽宁工程技术大学,未经辽宁工程技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910627526.5/2.html,转载请声明来源钻瓜专利网。