【技术实现步骤摘要】
【国外来华专利技术】用于实现数据流AI应用的自主加速的方法和装置
[0001]相关申请交叉引用
[0002]本申请要求于2019年9月13日提交的序列号为16/570,822、专利技术名称为“用于实现数据流AI应用的自主加速的方法和装置(METHOD AND APPARATUS FOR ENABLING AUTONOMOUS ACCELERATION OF DATAFLOW AI APPLICATIONS)”的美国专利申请的优先权,其内容通过全文引用并入本文。
[0003]本专利技术涉及数据流应用领域,具体涉及一种方法和装置,用于通过降低与将运算符卸载到硬件加速器以进行执行相关的卸载开销来提高数据流编程应用的性能。
技术介绍
[0004]数据流应用是使用数据流编程方法编写的计算机程序(例如软件)。现代数据流应用使用运算符系统来最大限度地提高软件兼容性和可组合性。现代数据流应用的开发人员使用运算符来创建新的算法,方式是将运算符组装为这些算法的构建块。数据流图(见图2)可用于表示数据流应用中算法的不同运算符(operators,op ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种由软件编译器执行的方法,其特征在于,所述方法包括:分析表示数据流应用的运算符之间的数据依赖关系的数据流图,以识别所述运算符的多个候选组;根据给定硬件加速器的特征和所述多个候选组中给定候选组的运算符,确定所述给定候选组的所述运算符是否要被组合;在确定所述给定候选组的所述运算符要被组合之后:检索与所述给定候选组的所述运算符对应的可执行二进制代码段;生成二进制代码单元,所述二进制代码单元包括所述可执行二进制代码段和表示所述可执行二进制代码段之中执行控制流的元数据;将所述代码单元调度到所述给定硬件加速器以执行所述代码单元。2.根据权利要求1所述的方法,其特征在于,确定所述给定候选组的所述运算符是否要被分组在一起包括:根据所述给定候选组的运算符是否被限制为在多个硬件加速器中的不同硬件加速器上执行来确定所述运算符是否应该被组合。3.根据权利要求1或2所述的方法,其特征在于,确定所述给定候选组的所述运算符是否要被分组在一起包括:根据所述给定硬件加速器的可用资源确定所述运算符是否应该被组合。4.根据权利要求1至3中任一项所述的方法,其特征在于,确定所述给定候选组的所述运算符是否要被分组在一起包括:根据所述给定候选组的所述运算符的数量确定所述运算符是否应该被组合。5.根据权利要求1至4中任一项所述的方法,其特征在于,确定所述给定候选组的所述运算符是否要被分组在一起包括:根据与执行所述给定候选组的所有所述运算符相关联的计算运行时间确定所述运算符是否应该被组合。6.根据权利要求1至5中任一项所述的方法,其特征在于,生成所述二进制代码单元包括:生成表示所述给定候选组的每个运算符的输入参数和输出参数的元数据。7.根据权利要求1至6中任一项所述的方法,其特征在于,生成所述二进制代码单元包括生成表示多个导航表条目的元数据,其中,所述多个导航表条目中的给定条目包括与所述给定条目的大小相关联的字段和指向所述多个可执行二进制代码段中的给定可执行二进制代码段的指针。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述二进制码单元包括胶水代码。9.一种计算机系统,其特征在于,包括:处理器;硬件加速器;用于存储指令的非瞬时性存储器,当所述处理器执行所述指令时,使所述处理器:执行二进制代码单元,所述二进制代码单元包括可执行二进制代码段和表示所述可执行二进制代码段之中执行控制流的元数据,所述可执行二进制代码段对应于给定候选组的运算符,所述给定候选组的所述运算符通过如下方式选择:分析表示数据流应用的运算符之间的数据依赖关系的数据流图,以识别所述运算符的多个候选组,并根据所述硬件加速器的特征和所述多个候选组中的所述给定候选组的所述运算符,确定所述给定候选组的所
述运算符要被组合;将所述代码单元调度到所述硬件加速...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。