一种跨硬件的算子并发调度方法及系统技术方案

技术编号:46630537 阅读:1 留言:0更新日期:2025-10-14 21:29
本发明专利技术公开了一种跨硬件的算子并发调度方法及系统。本方法为:1)将一目标程序的不同操作分别抽象为具有统一接口的算子,并为每一算子指定一用于执行该算子的软硬件平台;将算子及其输入输出数据分别抽象为对象;2)基于目标程序的数据流确定对象间的依赖关系,将各对象以有向有环图的方式组织起来,得到一有向有环图,作为所述目标程序的抽象表达;在每一软硬件平台上设置一驱动,用于执行算子;3)根据有向有环图存储各算子对应的节点,每一个节点包含一个算子及其输入对象、输出对象和该算子对应的软硬件平台;4)调度器遍历所存储的节点,获取当前可被执行的节点并将其中的算子并发调度到对应的硬件上执行,并接收算子的返回值。

【技术实现步骤摘要】

本专利技术属于程序移植和自动优化领域,具体涉及一种跨硬件的算子并发调度方法及系统


技术介绍

1、目前计算机指令集发展呈现多样化格局,国外的包括intel和amd的x86架构和x64架构、arm公司的arm(advanced risc machines)架构以及ibm基于risc(reducedinstruction set computer)指令集的power架构等;我国国产芯片也发展迅速,研发出如龙芯系列处理器(基于risc授权的核心技术自主产权)、神威系列(基于dec的alpha架构发展而来的自主产权神威架构)以及飞腾处理器(arm架构国产化且具有自主产权)等自主知识产权产品。除了cpu外,科学计算和高性能计算领域还广泛应用gpu和fpga(fieldprogrammable gate array)板等计算平台。每种计算平台都有其独特的程序设计语言,如nvidia公司的gpu使用cuda,amd公司的gpu现采用rocm平台,而不同的fpga产品也拥有各自专属的编程语言与环境。这些多样化的编程环境无疑增加了科学计算人员在编程和优化方面的挑战。

本文档来自技高网...

【技术保护点】

1.一种跨硬件的算子并发调度方法,其步骤包括:

2.根据权利要求1所述的方法,其特征在于,采用环形链表、环形队列或状态机模型存储各所述算子对应的节点。

3.根据权利要求2所述的方法,其特征在于,所述调度器根据节点中算子的本身状态、输入对象状态、输出对象状态确定对应的节点是否可被执行;当算子的本身和输入对象可读、输出对象可写时,或者该算子的数据对象处于被写了一部分时,该算子对应的节点为可被执行的节点。

4.根据权利要求1所述的方法,其特征在于,所述对象的状态包括:待分配、待建构、待析构、待读取、读取中、待写入、写入中、已打包。

5.根据权利要...

【技术特征摘要】

1.一种跨硬件的算子并发调度方法,其步骤包括:

2.根据权利要求1所述的方法,其特征在于,采用环形链表、环形队列或状态机模型存储各所述算子对应的节点。

3.根据权利要求2所述的方法,其特征在于,所述调度器根据节点中算子的本身状态、输入对象状态、输出对象状态确定对应的节点是否可被执行;当算子的本身和输入对象可读、输出对象可写时,或者该算子的数据对象处于被写了一部分时,该算子对应的节点为可被执行的节点。

4.根据权利要求1所述的方法,其特征在于,所述对象的状态包括:待分配、待建构、待析构、待读取、读取中、待写入、写入中、已打包。

5.根据权利要求1所述的方法,其特征在于,所述硬件驱动为与硬件无关的抽象接口。

6.根据权利要求1所述的方法,其特征在于,步骤1)中,利用脚本语言描述所述算子及有向有环图;其中,利用脚本语言指定算子的调用、输入输出数据、数据类型和属性;其中,通过“<”和“[]”指定算子的输入输出数据,“<”表示有向有环图中的一条有向边,数据包含在“[]”中以空格作为分隔,使用变量名或变量类型指定数据变量;变量的类型使用load_type原语和变量类型的文件路径调用,调用算子时,通过有向有环图脚本的上下文和算子脚本进行数据类型匹配检查;使用“=”表示相等的关系,“=”左右两侧的数据是等价的,具...

【专利技术属性】
技术研发人员:宫明韩斌陈莹刘朝峰栾钟治徐顺张克龙
申请(专利权)人:中国科学院高能物理研究所
类型:发明
国别省市:

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

1