CN111399911B - 一种基于多核异构计算的人工智能开发方法及装置 - Google Patents

一种基于多核异构计算的人工智能开发方法及装置 Download PDF

Info

Publication number
CN111399911B
CN111399911B CN202010215082.7A CN202010215082A CN111399911B CN 111399911 B CN111399911 B CN 111399911B CN 202010215082 A CN202010215082 A CN 202010215082A CN 111399911 B CN111399911 B CN 111399911B
Authority
CN
China
Prior art keywords
artificial intelligence
algorithm
directed acyclic
acyclic graph
directed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010215082.7A
Other languages
English (en)
Other versions
CN111399911A (zh
Inventor
闫野鹤
程有良
梁天乐
吴飞红
陈科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Boya Hongtu Video Technology Co ltd
Original Assignee
Hangzhou Boya Hongtu Video Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Boya Hongtu Video Technology Co ltd filed Critical Hangzhou Boya Hongtu Video Technology Co ltd
Priority to CN202010215082.7A priority Critical patent/CN111399911B/zh
Publication of CN111399911A publication Critical patent/CN111399911A/zh
Application granted granted Critical
Publication of CN111399911B publication Critical patent/CN111399911B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提出一种基于多核异构计算的人工智能开发方法及装置,该方法包括:创建异构芯片的架构模式对应的有向图;根据用户提交的多个人工智能算法及算法数据流向信息,创建有向无环图;根据有向无环图,生成对应的算法调度表;根据算法调度表,通过有向图对有向无环图中的多个人工智能算法进行运算处理。本申请将异构芯片中集成的多个人工智能引擎抽象为有向图,将用户开发的多个人工智能算法及各人工智能算法之间的数据流向抽象为有向无环图。通过异构芯片对应的有向图每个节点上加载的人工智能引擎并行执行有向无环图的节点上加载的人工智能算法,提高了人工智能引擎的利用率和人工智能芯片的算力,简化了人工智能程序开发的难度。

Description

一种基于多核异构计算的人工智能开发方法及装置
技术领域
本申请属于人工智能技术领域,具体涉及一种基于多核异构计算的人工智能开发方法及装置。
背景技术
在终端侧高效运行人工智能程序需要多核异构计算。因为不同人工智能应用场景的功耗和对运算资源的需求各不相同,仅靠单颗人工智能内核无法以最佳方式运行不同应用场景下的人工智能程序,所以需要可编程的异构计算。但是随着异构CPU(CentralProcessing Unit,中央处理器)集成的AIEngine(人工智能引擎)越多,开发程序的难度越高,并且AIEngine利用率极低,导致异构CPU的算力达不到预期。
发明内容
本申请提出一种基于多核异构计算的人工智能开发方法及装置,将异构芯片中集成的多个人工智能引擎抽象为有向图,将用户开发的多个人工智能算法及各人工智能算法之间的数据流向抽象为有向无环图。通过异构芯片对应的有向图每个节点上加载的人工智能引擎并行执行有向无环图的节点上加载的人工智能算法,提高了人工智能引擎的利用率和人工智能芯片的算力,简化了人工智能程序开发的难度。
本申请第一方面实施例提出了一种基于多核异构计算的人工智能开发方法,所述方法包括:
创建异构芯片的架构模式对应的有向图;
根据用户提交的多个人工智能算法及算法数据流向信息,创建所述人工智能算法对应的有向无环图;
根据所述有向无环图,生成对应的算法调度表;
根据所述算法调度表,通过所述有向图对所述有向无环图中的所述多个人工智能算法进行运算处理。
在本申请的一些实施例中,所述创建异构芯片的架构模式对应的有向图,包括:
确定异构芯片的架构模式中包含的人工智能引擎的数目;
创建所述数目个节点,且将任意两个节点之间相互连接;
将所述异构芯片中的各个人工智能引擎分别加载到创建的不同节点上,得到所述异构芯片的架构模式对应的有向图。
在本申请的一些实施例中,所述根据用户提交的多个人工智能算法及算法数据流向信息,创建所述人工智能算法对应的有向无环图,包括:
根据用户提交的人工智能算法的数目,创建该数目个节点;
将所述用户提交的各个人工智能算法分别加载到创建的不同节点上;
根据所述用户提交的用于指示所述各个人工智能算法之间数据流向的算法数据流向信息,确定创建的所述节点之间的连接关系,得到所述人工智能算法对应的有向无环图。
在本申请的一些实施例中,所述根据所述有向无环图,生成对应的算法调度表,包括:
对所述有向无环图中的节点进行拓扑排序,确定所述有向无环图中各节点的执行顺序及每个节点的数据流向信息;
根据所述各节点的执行顺序及每个节点的数据流向信息,生成所述有向无环图对应的算法调度表。
在本申请的一些实施例中,所述根据所述有向无环图,生成对应的算法调度表之前,还包括:
通过预设校验算法校验所述有向无环图中是否包含数据环路;
若所述有向无环图中不包含数据环路,则执行所述根据所述有向无环图,生成对应的算法调度表的操作;
若所述有向无环图中包含数据环路,则显示用于指示所述多个人工智能算法中存在逻辑错误的报错信息。
在本申请的一些实施例中,所述根据所述算法调度表,通过所述有向图对所述有向无环图中的所述多个人工智能算法进行运算处理,包括:
调用预设搜索算法从所述算法调度表中确定出当前的待执行节点及其对应的数据流向信息;
将所述有向无环图中所述待执行节点上加载的人工智能算法映射到所述有向图的节点上;
通过所述有向图的节点上加载的人工智能引擎执行映射的所述人工智能算法,并将执行结果传输给所述数据流向信息对应的下一节点。
本申请第二方面的实施例中提供了一种基于多核异构计算的人工智能开发装置,所述装置包括:
有向图创建模块,用于创建异构芯片的架构模式对应的有向图;
有向无环图创建模块,用于根据用户提交的多个人工智能算法及算法数据流向信息,创建所述人工智能算法对应的有向无环图;
调度表生成模块,用于根据所述有向无环图,生成对应的算法调度表;
异构运算模块,用于根据所述算法调度表,通过所述有向图对所述有向无环图中的所述多个人工智能算法进行运算处理。
在本申请的一些实施例中,所述异构运算模块,用于调用预设搜索算法从所述算法调度表中确定出当前的待执行节点及其对应的数据流向信息;将所述有向无环图中所述待执行节点上加载的人工智能算法映射到所述有向图的节点上;通过所述有向图的节点上加载的人工智能引擎执行映射的所述人工智能算法,并将执行结果传输给所述数据流向信息对应的下一节点。
本申请第三方面的实施例中提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。
本申请第四方面的实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请实施例将异构芯片中集成的多个人工智能引擎抽象为有向图,将用户开发的多个人工智能算法及各个人工智能算法之间的数据流向抽象为有向无环图。通过异构芯片对应的有向图每个节点上加载的人工智能引擎并行执行有向无环图的节点上加载的人工智能算法,提高了人工智能引擎的利用率,增加了人工智能芯片的算力,简化了人工智能程序开发的难度。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本申请的实践了解到。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。
在附图中:
图1示出了本申请一实施例所提供的一种基于多核异构计算的人工智能开发方法的流程示意图;
图2示出了本申请一实施例所提供的有向图的示意图;
图3示出了本申请一实施例所提供的有向无环图的示意图;
图4示出了本申请一实施例所提供的一种基于多核异构计算的人工智能开发装置的结构示意图;
图5示出了本申请一实施例所提供的一种电子设备的结构示意图;
图6示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
下面结合附图来描述根据本申请实施例提出的一种基于多核异构计算的人工智能开发方法及装置。
本申请实施例提供了一种基于多核异构计算的人工智能开发方法。该方法为了提高人工智能引擎的利用率,增加人工智能芯片的算力,同时简化人工智能应用的开发难度,采用经典的有向无环图和有向有环图作为实现Pipeline(线性通信模型)功能的核心数据结构,同时采用AOV(Activity On Vertex NetWork,活动点网)作为人工智能应用的任务的逻辑表示,使用BFS(Breadth First Search,广度优先搜索)算法检索AOV网络,实现有向无环图的节点的快速调度以及向人工智能引擎线程的有向图的映射。
参见图1,该方法具体包括以下步骤:
步骤101:创建异构芯片的架构模式对应的有向图。
有向图是一种数据结构,有向图由节点的有穷非空集合和节点之间边的集合组成,通常表示为G(V,E)。其中,G表示一个图,V是图G中节点的集合,E是图G中边的集合,E具有方向性。有向图侧重描述的是节点之间的方向,节点与节点之间的数据流向可以是双向的也可以是单向的。如图2所示的有向图中,用圆圈表示节点,用箭头表示边。因为每个节点和节点之间对应着一定的方向关系,所以图2中用一个箭头来表示从一个节点到另外一个节点的有向关系。节点与节点之间可以形成一个环,节点与节点之间可以双向互通且节点与节点之间的连接是任意的,没有规律的。
本申请实施例的执行主体为终端,终端上配置有异构芯片,异构芯片可以为ASMP(Asymmetric Multi-Processing,不对称多处理)芯片。异构芯片的架构模式中包括处理器和集成的多个人工智能引擎,如异构芯片采用的是CPU加5个人工智能引擎的架构模式等。本申请实施例根据异构芯片的架构模式,将异构芯片包括的人工智能引擎在本地CPU上抽象为有向图。
具体地,确定异构芯片的架构模式中包含的人工智能引擎的数目,创建该数目个节点,且将任意两个节点之间相互连接。将异构芯片中的各个人工智能引擎分别加载到创建的不同节点上,得到异构芯片的架构模式对应的有向图。
例如,假设异构芯片采用的是CPU加5个人工智能引擎的架构模式,则通过Pipeline初始化时先创建5个节点,每个节点之间相互连接,互连互通。将异构芯片中的每个人工智能引擎分别加载到不同的节点上,得到该异构芯片的架构模式对应的有向图。
上述异构芯片对应的有向图在Pipeline初始化阶段创建,其生命周期与用户开发的人工智能应用的生命周期相同。有向图的创建与异构芯片的架构模式相关,但不与特定的芯片绑定,本申请实施例提供的方法可以以框架的形式实现快速移植与适配。有向图初始化完毕之后操作系统会将该有向图挂起阻塞,直到Pipeline将其唤醒。
通过上述方式将异构芯片包括的人工智能引擎抽象成有向图,后续可以通过有向图中各个节点上加载的人工智能引擎并行处理用户开发的人工智能算法,提高人工智能芯片的算力,提高处理效率。
步骤102:根据用户提交的多个人工智能算法及算法数据流向信息,创建人工智能算法对应的有向无环图。
有向无环图也是一种数据结构,有向无环图是由节点的有穷非空集合和节点之间边的集合组成,通常表示为G(V,E)。其中,G表示一个图,V是图G中节点的集合,E是图G中边的集合,E具有方向性。有向无环图无法从某个节点出发经过若干条边回到该节点。如图3所示的有向无环图中包括具有依赖关系7个及节点和8条边。在异构多核芯片调度中使用有向无环图,相比于其他数据结构与算法有很大的优势,可以简化人工智能程序的开发难度,使得人工智能程序开发更加快速和轻量化。
用户在进行人工智能开发过程中,会开发出多个人工智能算法,每个人工智能算法都有自己对应的算法数据流向信息,人工智能算法对应的算法数据流向信息用于指示该人工智能算法的数据流向,即指示该人工智能算法的运算结果需要传输给哪个其他的人工智能算法。用户在开发过程中将其开发的多个人工智能算法及每个人工智能算法对应的数据流向信息提交给终端。
终端根据用户提交的人工智能算法的数目,创建该数目个节点;将用户提交的各个人工智能算法分别加载到创建的不同节点上。用户提交的人工智能算法与创建的节点一一对应,将人工智能算法加载到其对应的节点上。然后根据用户提交的用于指示各个人工智能算法之间数据流向的算法数据流向信息,确定创建的节点之间的连接关系,得到人工智能算法对应的有向无环图。
在本申请实施例中,终端上的Pipeline提供了有向无环图调度机制,有向无环图主要承载程序的算法逻辑,主要包括算法数据流向以及人工智能算法的逻辑组成。有向无环图的节点表示具体的算法,边表示每个算法之间的逻辑关系。Pipeline支持程序对节点与边的增加、删除、更新等操作。
步骤103:根据有向无环图,生成对应的算法调度表。
通过步骤102的操作生成有向无环图之后,通过预设校验算法校验有向无环图中是否包含数据环路;若有向无环图中不包含数据环路,则执行步骤103的操作。若有向无环图中包含数据环路,则显示用于指示多个人工智能算法中存在逻辑错误的报错信息。
上述预设校验算法可以为Pipeline提供的校验算法,如函数gvspPipelineListVerify(),该函数首先会对上述创建的有向无环图按照节点属性进行拓扑排序,排列出有向无环图中各个节点执行的先后顺序,然后校验所有的节点中是否不包含数据环路,如果校验出包含数据环路,则函数gvspPipelineListVerify()会校验失败,报错并退出。
通过对有向无环图进行校验,确保有向无环图的节点之间不能形成数据环路,如有向无环图之中有数据环路存在,则调度有向无环图时会出现死锁的问题。因此通过校验能够提高后续调度运算的效率,减少运算资源的浪费。
通过上述方式校验出步骤102创建的有向无环图中不包含数据环路之后,对有向无环图中的节点进行拓扑排序,确定有向无环图中各节点的执行顺序及每个节点的数据流向信息;根据各节点的执行顺序及每个节点的数据流向信息,生成有向无环图对应的算法调度表,该算法调度表中记录了有向无环图中节点执行的先后顺序以及节点的逻辑指向,该算法调度表可以为PSI(PipelineScheduleImplementation)。
步骤104:根据算法调度表,通过有向图对有向无环图中的多个人工智能算法进行运算处理。
通过步骤103的操作生成算法调度表之后,调用预设搜索算法从算法调度表中确定出当前的待执行节点及其对应的数据流向信息;将有向无环图中待执行节点上加载的人工智能算法映射到有向图的节点上;通过有向图的节点上加载的人工智能引擎执行映射的人工智能算法,并将执行结果传输给数据流向信息对应的下一节点。
上述预设搜索算法可以为BFS算法。终端通过Pipeline执行调度模块调用预设搜索算法检索算法调度表,确定出当前的待执行节点,待执行节点为步骤103中创建的有向无环图中的节点,待执行节点上加载有人工智能算法。在减少带宽利用率的情况下,将待执行节点的相关的信息索引传递到步骤101创建的有向图中的节点上。步骤101创建的有向图中包括的节点数目与异构芯片中集成的人工智能引擎的数目相同,本申请实施例首次通过上述方式确定待执行节点时,可以将执行顺序排在最前面的若干节点确定为待执行节点,确定的待执行节点的数目与步骤101创建的有向图中包括的节点数目相同,然后将确定的各个待执行节点分别映射到有向图的不同节点上,如此有向图的每个节点都映射了有向无环图中的待执行节点,后续通过有向图中的各个节点上加载的多个人工智能引擎并行执行多个待执行节点,提高了人工智能程序执行的效率。
若有向图某个节点上的待执行节点运行结束,则根据该待执行节点对应的数据流向信息将执行结果传输给下一节点。其中,有向图当前节点上映射的待执行节点对应的人工智能算法的输出将作为该下一节点上映射的待执行节点对应的人工智能算法的输入。
按照上述方式将人工智能算法对应的有向无环图映射到异构芯片对应的有向图中,依据算法调度表通过动态调度有向无环图,将有向无环图的节点映射到对应的人工智能引擎上完成数据的计算与计算结果的获取。
本申请实施例将异构芯片中集成的多个人工智能引擎抽象为有向图,将用户开发的多个人工智能算法及各个人工智能算法之间的数据流向抽象为有向无环图。通过异构芯片对应的有向图每个节点上加载的人工智能引擎并行执行有向无环图的节点上加载的人工智能算法,提高了人工智能引擎的利用率,增加了人工智能芯片的算力,简化了人工智能程序开发的难度。
本申请实施例提供了一种基于多核异构计算的人工智能开发装置,该装置用于执行上述实施例所述的基于多核异构计算的人工智能开发方法。参见图4,该装置包括:
有向图创建模块401,用于创建异构芯片的架构模式对应的有向图;
有向无环图创建模块402,用于根据用户提交的多个人工智能算法及算法数据流向信息,创建人工智能算法对应的有向无环图;
调度表生成模块403,用于根据有向无环图,生成对应的算法调度表;
异构运算模块404,用于根据算法调度表,通过有向图对有向无环图中的多个人工智能算法进行运算处理。
上述有向图创建模块401,具体用于确定异构芯片的架构模式中包含的人工智能引擎的数目;创建数目个节点,且将任意两个节点之间相互连接;将异构芯片中的各个人工智能引擎分别加载到创建的不同节点上,得到异构芯片的架构模式对应的有向图。
上述有向无环图创建模块402,具体用于根据用户提交的人工智能算法的数目,创建该数目个节点;将用户提交的各个人工智能算法分别加载到创建的不同节点上;根据用户提交的用于指示各个人工智能算法之间数据流向的算法数据流向信息,确定创建的节点之间的连接关系,得到人工智能算法对应的有向无环图。
上述调度表生成模块403,具体用于对有向无环图中的节点进行拓扑排序,确定有向无环图中各节点的执行顺序及每个节点的数据流向信息;根据各节点的执行顺序及每个节点的数据流向信息,生成有向无环图对应的算法调度表。
该装置还包括:校验模块,用于通过预设校验算法校验有向无环图中是否包含数据环路;若有向无环图中不包含数据环路,则执行调度表生成模块403的操作;若有向无环图中包含数据环路,则显示用于指示多个人工智能算法中存在逻辑错误的报错信息。
上述异构运算模块404,具体用于调用预设搜索算法从算法调度表中确定出当前的待执行节点及其对应的数据流向信息;将有向无环图中待执行节点上加载的人工智能算法映射到有向图的节点上;通过有向图的节点上加载的人工智能引擎执行映射的人工智能算法,并将执行结果传输给数据流向信息对应的下一节点。
本申请实施例提供的基于多核异构计算的人工智能开发装置与本申请实施例提供的基于多核异构计算的人工智能开发方法出于相同的发明构思,具有与其采用、运行或实现的相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的基于多核异构计算的人工智能开发方法对应的电子设备,以执行上述方法。
请参考图5,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图5所示,所述电子设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的基于多核异构计算的人工智能开发方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述基于多核异构计算的人工智能开发方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的基于多核异构计算的人工智能开发方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的的基于多核异构计算的人工智能开发方法对应的计算机可读存储介质,请参考图6,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于多核异构计算的人工智能开发方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的基于多核异构计算的人工智能开发方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (7)

1.一种基于多核异构计算的人工智能开发方法,其特征在于,所述方法包括:
确定异构芯片的架构模式中包含的人工智能引擎的数目;
创建所述数目个节点,且将任意两个节点之间相互连接;
将所述异构芯片中的各个人工智能引擎分别加载到创建的不同节点上,得到所述异构芯片的架构模式对应的有向图;
根据用户提交的多个人工智能算法及算法数据流向信息,创建所述人工智能算法对应的有向无环图;
根据所述有向无环图,生成对应的算法调度表;
调用预设搜索算法从所述算法调度表中确定出当前的待执行节点及其对应的数据流向信息;
将所述有向无环图中所述待执行节点上加载的人工智能算法映射到所述有向图的节点上;
通过所述有向图的节点上加载的人工智能引擎执行映射的所述人工智能算法,并将执行结果传输给所述数据流向信息对应的下一节点。
2.根据权利要求1所述的方法,其特征在于,所述根据用户提交的多个人工智能算法及算法数据流向信息,创建所述人工智能算法对应的有向无环图,包括:
根据用户提交的人工智能算法的数目,创建该数目个节点;
将所述用户提交的各个人工智能算法分别加载到创建的不同节点上;
根据所述用户提交的用于指示所述各个人工智能算法之间数据流向的算法数据流向信息,确定创建的所述节点之间的连接关系,得到所述人工智能算法对应的有向无环图。
3.根据权利要求1所述的方法,其特征在于,所述根据所述有向无环图,生成对应的算法调度表,包括:
对所述有向无环图中的节点进行拓扑排序,确定所述有向无环图中各节点的执行顺序及每个节点的数据流向信息;
根据所述各节点的执行顺序及每个节点的数据流向信息,生成所述有向无环图对应的算法调度表。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述有向无环图,生成对应的算法调度表之前,还包括:
通过预设校验算法校验所述有向无环图中是否包含数据环路;
若所述有向无环图中不包含数据环路,则执行所述根据所述有向无环图,生成对应的算法调度表的操作;
若所述有向无环图中包含数据环路,则显示用于指示所述多个人工智能算法中存在逻辑错误的报错信息。
5.一种基于多核异构计算的人工智能开发装置,其特征在于,所述装置包括:
有向图创建模块,用于确定异构芯片的架构模式中包含的人工智能引擎的数目;创建所述数目个节点,且将任意两个节点之间相互连接;将所述异构芯片中的各个人工智能引擎分别加载到创建的不同节点上,得到所述异构芯片的架构模式对应的有向图;
有向无环图创建模块,用于根据用户提交的多个人工智能算法及算法数据流向信息,创建所述人工智能算法对应的有向无环图;
调度表生成模块,用于根据所述有向无环图,生成对应的算法调度表;
异构运算模块,用于调用预设搜索算法从所述算法调度表中确定出当前的待执行节点及其对应的数据流向信息;将所述有向无环图中所述待执行节点上加载的人工智能算法映射到所述有向图的节点上;通过所述有向图的节点上加载的人工智能引擎执行映射的所述人工智能算法,并将执行结果传输给所述数据流向信息对应的下一节点。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求1-4任一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求1-4中任一项所述的方法。
CN202010215082.7A 2020-03-24 2020-03-24 一种基于多核异构计算的人工智能开发方法及装置 Active CN111399911B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010215082.7A CN111399911B (zh) 2020-03-24 2020-03-24 一种基于多核异构计算的人工智能开发方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010215082.7A CN111399911B (zh) 2020-03-24 2020-03-24 一种基于多核异构计算的人工智能开发方法及装置

Publications (2)

Publication Number Publication Date
CN111399911A CN111399911A (zh) 2020-07-10
CN111399911B true CN111399911B (zh) 2021-11-02

Family

ID=71431168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010215082.7A Active CN111399911B (zh) 2020-03-24 2020-03-24 一种基于多核异构计算的人工智能开发方法及装置

Country Status (1)

Country Link
CN (1) CN111399911B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114387150A (zh) * 2020-10-20 2022-04-22 富泰华工业(深圳)有限公司 用于人工智能学习的处理方法及装置、设备及存储介质
CN112882696B (zh) * 2021-03-24 2024-02-02 国家超级计算天津中心 一种基于超级计算机的全要素模型训练系统
CN113918126B (zh) * 2021-09-14 2022-06-10 北京柏睿数据技术股份有限公司 一种基于图算法的ai建模流程编排方法和系统
CN116360971A (zh) * 2021-12-28 2023-06-30 北京字跳网络技术有限公司 基于异构计算框架的处理方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684083A (zh) * 2018-12-11 2019-04-26 北京工业大学 一种面向边缘-云异构下的多级事务调度分配策略
CN109960576A (zh) * 2019-03-29 2019-07-02 北京工业大学 一种面向cpu-gpu异构的低能耗任务调度策略
CN110490322A (zh) * 2019-08-14 2019-11-22 北京中科寒武纪科技有限公司 运算节点的拆分方法和装置、电子设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671938B2 (en) * 2016-01-27 2020-06-02 Bonsai AI, Inc. Artificial intelligence engine configured to work with a pedagogical programming language to train one or more trained artificial intelligence models
CN106559287B (zh) * 2016-11-11 2019-07-16 烽火通信科技股份有限公司 基于元引擎的分级深度包检测系统及方法
CN109949203B (zh) * 2019-03-19 2023-01-03 广东紫旭科技有限公司 一种异构cpu多路4k超高清视频处理装置与控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684083A (zh) * 2018-12-11 2019-04-26 北京工业大学 一种面向边缘-云异构下的多级事务调度分配策略
CN109960576A (zh) * 2019-03-29 2019-07-02 北京工业大学 一种面向cpu-gpu异构的低能耗任务调度策略
CN110490322A (zh) * 2019-08-14 2019-11-22 北京中科寒武纪科技有限公司 运算节点的拆分方法和装置、电子设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mapping DAGs on Heterogeneous Platforms Using Logic-Based Benders Decompostion;A. Emeretlis;《2015 IEEE Computer Society Annual 》;20151029;119-124 *
大规模本体分块与映射研究;徐德智;《小型微型计算机系统》;20120315;542-547 *

Also Published As

Publication number Publication date
CN111399911A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN111399911B (zh) 一种基于多核异构计算的人工智能开发方法及装置
CN110689138B (zh) 运算方法、装置及相关产品
US7503039B2 (en) Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors
CN114580653A (zh) 机器学习计算优化方法和编译器
US20210073625A1 (en) Partitioning control dependency edge in computation graph
CN112465133B (zh) 控制流多核并行方法、计算机设备和存储介质
WO2024093292A1 (zh) 计算图的算子自动融合方法及相关产品
CN112070202B (zh) 一种融合图的生成方法、生成装置和计算机可读存储介质
CN111427578B (zh) 一种数据转换方法、装置及设备
CN114035916A (zh) 计算图的编译、调度方法及相关产品
CN112416606A (zh) 任务调度方法、装置和电子设备
CN114416045A (zh) 自动生成算子的方法和装置
CN108549935B (zh) 一种实现神经网络模型的装置及方法
CN112559045B (zh) 一种基于riscv的随机指令生成平台及方法
CN113420520A (zh) 集成电路装置设计仿真方法、装置、设备和可读存储介质
Popov An introduction to the MISD technology
CN111831582A (zh) 用于智能处理器的内存管理装置、方法及电子设备
CN115345285B (zh) 基于gpu的时序图神经网络训练方法、系统及电子设备
CN116468078A (zh) 面向人工智能芯片的智能引擎处理方法和装置
US20230116546A1 (en) Method for compilation, electronic device and storage medium
CN113238855B (zh) 一种路径检测方法及装置
CN111523657B (zh) 神经网络加速器创建方法及装置、电子设备和存储介质
CN111400013B (zh) 一种多核处理器的数据流的处理方法及系统
CN113326137A (zh) 深度学习计算方法、装置、芯片及介质
CN111831333A (zh) 用于智能处理器的指令分解方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: An artificial intelligence development method and device based on multi-core heterogeneous computing

Effective date of registration: 20211221

Granted publication date: 20211102

Pledgee: Bank of Beijing Limited by Share Ltd. Hangzhou branch

Pledgor: Hangzhou Boya Hongtu Video Technology Co.,Ltd.

Registration number: Y2021330002587

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231117

Granted publication date: 20211102

Pledgee: Bank of Beijing Limited by Share Ltd. Hangzhou branch

Pledgor: Hangzhou Boya Hongtu Video Technology Co.,Ltd.

Registration number: Y2021330002587

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method and device for developing artificial intelligence based on multi-core heterogeneous computing

Effective date of registration: 20231123

Granted publication date: 20211102

Pledgee: Bank of Beijing Limited by Share Ltd. Hangzhou branch

Pledgor: Hangzhou Boya Hongtu Video Technology Co.,Ltd.

Registration number: Y2023330002763

PE01 Entry into force of the registration of the contract for pledge of patent right