发明内容
为此,本发明提供一种晶上系统开发环境搭建方法及系统,能够充分利用系统计算资源来获取较快的开发模板重构时间和较高的开发执行效率。
按照本发明所提供的设计方案,一种晶上系统开发环境搭建方法,包含如下内容:
依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,生成任务的开发环境模板。
作为本发明晶上系统开发环境搭建方法,进一步的,对任务进行分析,将其分解为组件流程,依据组件流程选取对应需求的组件来组成组件运行集合。
作为本发明晶上系统开发环境搭建方法,进一步地,依据任务功能、连接关系及带宽需求将任务进行有向无环图的图形化表示,对任务进行分析,以选取对应需求的组件来组成组件运行集合。
作为本发明晶上系统开发环境搭建方法,进一步地,利用资源自适应分配算法分配当前任务需求,寻找最相似组件,以通过最小修改代价完成资源分配。
作为本发明晶上系统开发环境搭建方法,进一步地,资源自适应分配算法包含如下内容:遍历组件库中组件,依据当前任务需求通过组件的差异度选取候选组件;依据候选组件的修改代价来选择其中修改代价最小的组件进行修改适配。
作为本发明晶上系统开发环境搭建方法,进一步地,对组件的差异度进行排序,选取差异度小于设定阈值的组件作为候选组件。
作为本发明晶上系统开发环境搭建方法,进一步地,资源分配中,通过物理资源映射优化来满足应用功能切换需求。
作为本发明晶上系统开发环境搭建方法,进一步地,结合任务调度和负载平衡对任务执行效能及资源利用率影响,通过启发式算法或强化学习算法进行物理资源映射的优化。
进一步地,本发明还提供一种晶上系统开发环境搭建系统,用于依据应用需求在晶上系统上搭建相应开发环境,包含:识预设模块和搭建模块,其中,
预设模块,用于依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
搭建模块,用于将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,生成任务的开发环境模板。
进一步地,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的晶上系统开发环境搭建方法。
本发明的有益效果:
依据系统芯片集成设计将具有处理功能的芯粒作为开发组件中构件,每个PE单元可以对应于一个构件实现,根据领域需要预置不同的组件,使得用户可以通过组件通过拖拽的方式轻松搭建自己的应用,高级用户也可通过高级语言基于组件构建更加复杂的系统;整个搭建过程方便、快捷,有利于各种组件的复用,能够使用组件更加灵活地满足新的应用需求,确保搭建过程中系统稳定性,降低时间开销,且便于资源的统一管理、调配和存储,具有较好的应用前景。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
晶上系统将系统集成在单个芯片中,其核心功能在于多功能模块的集成,技术优势主要是相对于SoC芯片和基于PCB板的集成技术,长期发展有望给现有半导体产业链和商业模式带来变革。晶上系统具有良好的发展前景,但是其庞大的计算资源,复杂的互联关系给编译系统带来了较大的挑战,如何充分利用系统资源,给用户提供方便易用的开发环境。本发明实施例,参见图1所示,提供一种晶上系统开发环境搭建方法,参见图1所示,包含如下内容:
S101、依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
S102、将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,生成任务的开发环境模板。
依据系统芯片集成设计将具有处理功能的芯粒作为开发组件中构件,每个PE单元可以对应于一个构件实现,根据领域需要预置不同的软件组件,对应用任务进行细化,并通过构件算粒来实现,使得用户可以通过组件通过拖拽的方式轻松搭建自己的应用,高级用户也可通过高级语言基于组件构建更加复杂的系统。整个搭建过程方便、快捷,便于资源的统一管理、调配和存储,具有较好的应用前景。
作为本发明实施例中的晶上系统开发环境搭建方法,进一步的,对任务进行分析,将其分解为组件流程,依据组件流程选取对应需求的组件来组成组件运行集合。进一步地,依据任务功能、连接关系及带宽需求将任务进行有向无环图的图形化表示,对任务进行分析,以选取对应需求的组件来组成组件运行集合。
参见图2所示,开发环境主要由任务管理、调度以及资源管理三部分组成,其中,任务管理包括在线资源管理、任务管理、在线任务三部分。在线资源管理用于显示调度器发送的在线资源及使用情况。任务管理负责对任务的管理,包括:新建任务,参见图3所示,任务描述,可用图形化的DAG表示,包括任务功能,连接关系,带宽需求等;任务使用资源数计算,下发所需资源数给Scheduler进行资源分配,同时接收Scheduler资源分配信息;保存任务模板,将任务的基本信息、资源使用情况及运行结果保存到数据库中。在线任务用于显示用户查看的任务的DAG图及资源分配图,任务参数及输入数据配置,任务的运行进度情况及任务执行结果展示。调度包括DAG调度、资源调度两部分。Scheduler负责汇总Node Manager上报的资源信息。DAG调度负责将任务分成时间前后运行的组件运行集合、构件运行集合;参见图4所示,资源调度负责将构件分解到不同的资源节点上,通过下载器将相应的构件配置下载到相应的逻辑单元,同时负责汇总Node Manager上报的资源信息发送给Applications Manager的Online resource模块。资源管理负责整个系统的资源管理。
每个PE单元可以对应于一个构件实现,根据领域需要预置不同的组件,使得用户可以通过组件通过拖拽的方式轻松搭建自己的应用,高级用户也可通过高级语言基于组件构建更加复杂的系统。可利用智能编译工具分析任务组成,将其分为组件流程,进一步划分为构件实现,每个构件对应于一种PE实现,然后调用资源虚拟化接口进行资源的分配,如图5所示。因为基于芯片设计的数据处理系统中各类资源规模庞大,互连约束复杂,如果通过穷举难以实现,需要通过启发式算法和强化学习等算法进行映射效率的优化,满足系统功能的快速切换需求。系统中集成有各种功能不同、性能各异、且资源规模动态变化的PE、SDI以及DM资源,实现任务调度和负载平衡将对任务执行的效能以及系统资源的利用率均有十分重要的影响。系统中异构资源丰富,分布较为复杂,为了重复利用系统资源,系统提前预置不同通信效率的互连转换模块,中心互连采用高带宽、高吞吐量、低交换代价的交换协议模块,在末节节点采用较为复杂的交换协议降低端点协议转换代价,从而从整体上提高系统传输效率,编译系统在进行编译时自动根据系统需求将相应子任务通信选择合适的通信传输协议,以充分利用系统资源,提升传输效率。
进一步地,本发明实施例中,利用资源自适应分配算法分配当前任务需求,寻找最相似组件,以通过最小修改代价完成资源分配。进一步地,资源自适应分配算法包含如下内容:遍历组件库中组件,依据当前任务需求通过组件的差异度选取候选组件;依据候选组件的修改代价来选择其中修改代价最小的组件进行修改适配。进一步地,对组件的差异度进行排序,选取差异度小于设定阈值的组件作为候选组件。进一步地,资源分配中,通过物理资源映射优化来满足应用功能切换需求。进一步地,结合任务调度和负载平衡对任务执行效能及资源利用率影响,通过启发式算法或强化学习算法进行物理资源映射的优化。具体实现算法可参见图6所示,基于最小改动的资源自适应分配根据当前的资源状况,从回收组件库中寻找最相似的组件,使得系统可以以最小的修改代价完成资源分配,分为以下步骤:1、判断回收组件库是否为空,否则跳到第7步;2、遍历回收组件库,计算与组件K的差异度;3、按照差异度对组件库中的组件进行排序;4、取其中差异度<M的组件作为候选;5、计算候选集中的修改代价;6、取其中修改代价最小的进行修改适配,调至第8步;7、按照构件进行相应申请;8、申请结束,返回被修改的组件。
PE处理单元构件可以根据当前资源类型及分布情况,寻找出最小的资源修改方法,以快速满足任务需求,如图7所示,假定Task1和Task2都只有1个组件形成。其中Task1是原来任务执行后被回收的组件,Task2是新来任务中需要被例化的组件,可映射在同一块物理资源上。Task1由2个A构件和1个B构件、1个C构件组成,映射在物理资源上如图中映射 1所示,构件之间的通路如映射1中的由点和断线组成的虚线所示,Task2由2个B构件和1 个A构件、1个C构件组成,映射在物理资源上如图中映射2所示,相比较映射1,只需将左下角的PE重构为B形态,同时调整构件之间的通路如映射2中的由点和断线组成的虚线所示,相比于重新构件Task,可以获取更快的重构时间和更高的执行效率。
进一步地,本发明实施例还提供一种晶上系统开发环境搭建系统,用于依据应用需求在晶上系统上搭建相应开发环境,包含:识预设模块和搭建模块,其中,
预设模块,用于依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
搭建模块,用于将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,生成任务的开发环境模板。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
基于上述的系统,本发明实施例还提供一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的系统。
基于上述的系统,本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的系统。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述系统实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述系统实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述系统实施例中的对应过程,在此不再赘述。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、系统和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/ 或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和系统,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述系统的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。