CN111160539A - 运行人工神经网络的计算处理图的系统及方法 - Google Patents
运行人工神经网络的计算处理图的系统及方法 Download PDFInfo
- Publication number
- CN111160539A CN111160539A CN201910602988.1A CN201910602988A CN111160539A CN 111160539 A CN111160539 A CN 111160539A CN 201910602988 A CN201910602988 A CN 201910602988A CN 111160539 A CN111160539 A CN 111160539A
- Authority
- CN
- China
- Prior art keywords
- graph
- resource
- sub
- model
- compiler
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004364 calculation method Methods 0.000 claims description 52
- 238000005457 optimization Methods 0.000 claims description 7
- 238000013135 deep learning Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 32
- 102100040678 Programmed cell death protein 1 Human genes 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 101710089372 Programmed cell death protein 1 Proteins 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- SHXWCVYOXRDMCX-UHFFFAOYSA-N 3,4-methylenedioxymethamphetamine Chemical compound CNC(C)CC1=CC=C2OCOC2=C1 SHXWCVYOXRDMCX-UHFFFAOYSA-N 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 108010025037 T140 peptide Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
提供用于运行人工神经网络的计算处理图的系统及方法。一种用于管理通过多个异构资源运行的人工神经网络的计算处理图的系统包括:任务管理器,被配置为:将所述多个异构资源分配给将被运行的第一子图和第二子图,第一子图和第二个子图包括在计算处理图中;第一编译器,被配置为:将第一子图编译为在所述多个异构资源之中的第一资源上是可执行的;以及第二编译器,被配置为:将第二子图编译为在所述多个异构资源之中的第二资源上是可执行的,其中,第一子图和第二子图通过独立的计算路径被分别管理。
Description
本申请要求于2018年11月8日提交到韩国知识产权局的第10-2018-0136801号韩国专利申请的权益,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
发明构思涉及用于管理人工神经网络的计算处理图(calculation processinggraph)的神经网络系统和通过使用神经网络系统管理计算处理图的方法,更具体地,涉及用于对计算处理图执行并行编译的神经网络系统和通过使用神经网络系统管理计算处理图的方法。
背景技术
人工神经网络(ANN)表示对生物大脑进行建模的计算架构。深度学习、机器学习等可基于人工神经网络来实现。近来,随着通过使用ANN处理的计算迅速增加,存在通过使用ANN高效地执行计算处理的需要。
发明内容
发明构思提供一种用于并行处理分配给多个异构资源的计算处理图的神经网络系统以及一种通过使用神经网络系统管理计算处理图的方法。
根据发明构思的一个方面,提供一种用于管理通过多个异构资源运行的ANN的计算处理图的系统,所述系统包括:任务管理器,被配置为:将所述多个异构资源分配给将被运行的第一子图和第二子图,第一子图和第二个子图包括在计算处理图中;第一编译器,被配置为:将第一子图编译为能够在所述多个异构资源之中的第一资源上运行;以及第二编译器,被配置为:将第二子图编译为能够在所述多个异构资源之中的第二资源上运行,其中,第一子图和第二子图通过独立的计算路径被分别管理。
根据发明构思的另一方面,提供一种管理通过多个异构资源运行的ANN的计算处理图的方法,所述方法包括:将构成计算处理图的多个子图之中的第一子图分配给所述多个异构资源之中的第一资源;将第一子图编译为能够在第一资源上运行;将所述多个子图之中的第二子图分配给所述多个异构资源之中的第二资源;以及将第二子图编译为能够在第二资源上运行,其中,第一子图和第二子图通过独立的计算路径被分别管理。
根据发明构思的另一方面,提供一种用于通过使用ANN的计算处理图执行深度学习的装置,所述装置包括:第一编译器,被配置为:将计算处理图的至少一部分编译为能够在第一资源上运行;第二编译器,被配置为:将计算处理图的至少一部分编译为能够在与第一资源不同的第二资源上运行;以及任务管理器,被配置为:将包括在计算处理图的中的第一子图输出到第一编译器,将包括在计算处理图的中的第二子图输出到第二编译器,其中,第一编译器和第二编译器彼此独立地操作。
在发明构思的一个方面,提供一种用于管理通过多个异构资源运行的ANN的计算处理图的系统,所述系统包括:至少一个处理器,被配置为实现:任务管理器,被配置为:将所述多个异构资源分配给第一子图和第二子图,第一子图和第二个子图属于ANN的计算处理图;第一编译器,被配置为:将第一子图编译为能够在所述多个异构资源之中的第一资源上运行;以及第二编译器,被配置为:将第二子图编译为能够在所述多个异构资源之中的第二资源上运行,其中,第一子图和第二子图通过独立的计算路径被分别输出到第一编译器和第二编译器。
在发明构思的另一方面,提供一种管理通过多个异构资源运行的ANN的计算处理图的方法,所述方法包括:将计算处理图的多个子图之中的第一子图分配给所述多个异构资源之中的第一资源,计算处理图属于ANN;将第一子图编译为能够在第一资源上运行;将所述多个子图之中的第二子图分配给所述多个异构资源之中的第二资源;以及将第二子图编译为能够在第二资源上运行,其中,第一子图和第二子图通过独立的计算路径被分别输出到第一编译器和第二编译器。
在发明构思的另一方面,提供一种通过使用ANN的计算处理图执行深度学习的装置,所述装置包括:至少一个处理器,被配置为实现:第一编译器,被配置为:将计算处理图的至少一部分编译为能够在第一资源上运行,计算处理图属于ANN;第二编译器,被配置为:将计算处理图的至少一部分编译为能够在与第一资源不同的第二资源上运行;以及任务管理器,被配置为:将计算处理图的中的第一子图输出到第一编译器,将计算处理图的中的第二子图输出到第二编译器,其中,第一编译器和第二编译器彼此独立地操作。
附图说明
根据以下结合附图的详细描述,将更清楚地理解发明构思的实施例,其中:
图1是示出根据示例实施例的神经网络系统的框图;
图2是示出根据示例实施例的模型处理器的框图;
图3是示出根据示例实施例的模型处理器的操作的流程图;
图4是示出根据示例实施例的计算处理图的示图;
图5是示出根据示例实施例的模型分析器的操作的流程图;
图6是示出根据示例实施例的模型处理器的操作的示图;
图7是示出根据示例实施例的模型处理器的操作的示图;
图8是示出根据示例实施例的神经网络系统的框图;
图9是示出根据示例实施例的神经网络系统的操作的流程图;
图10是示出根据示例实施例的神经网络系统的操作的示图;
图11是示出根据示例实施例的神经网络系统的操作的示图;
图12是示出根据示例实施例的神经网络系统的操作的示图;
图13是示出根据示例实施例的神经网络系统的框图;
图14是示出根据示例实施例的神经网络系统的操作的示图;以及
图15是示出根据示例实施例的电子系统的框图。
具体实施方式
图1是示出根据示例实施例的神经网络系统的框图。
参照图1,神经网络系统10(例如,人工神经网络系统)可包括多个应用APP、模型处理器100以及包括第一资源210、第二资源220和第N资源230的多个资源。多个应用APP可通过各种应用程序接口(API)来生成,并且可通过使用人工神经网络模型来执行各种任务。例如,多个应用APP可通过将输入模型IM输出到模型处理器100,来请求模型处理器100使用ANN模型执行数据处理。
模型处理器100可包括模型分析器110、任务管理器120和多个编译器130。包括在模型处理器100中的每个组件可利用软件来实现,并且可利用神经网络平台(诸如,进化深度网络(EDEN))来实现。在另一示例中,包括在模型处理器100中的每个组件可利用硬件(诸如,电子电路)来实现。在一个示例中,模型处理器100可利用ANN的框架来实现。在另一示例中,模型处理器100可通过至少一个处理器来实现,使得单个处理器实现模型处理器100或者使得多个处理器实现模型处理器100。
模型分析器110可从多个应用APP接收使用ANN的包括数据的输入模型IM,并且可通过分析输入模型IM来生成包括多个子图的计算处理图。在此使用的术语“计算处理图”可表示由包括多个计算节点的图表示的数据结构。模型分析器110可通过将计算处理图划分为适合于分别由包括第一资源210、第二资源220和第N资源230的多个资源处理的结构,来生成多个子图。模型分析器110可将计算处理图和多个子图输出到任务管理器120。
任务管理器120可将包括计算节点的多个子图分配给包括第一资源210、第二资源220和第N资源230的多个资源,由此可在第二资源220与第N资源230之间存在附加资源。根据发明构思,任务管理器120可基于每个子图的结构特征和包括在每个子图中的计算的类型,将合适的资源(例如,第一资源210、第二资源220或第N资源230)分配给多个子图中的每个。任务管理器120可经由单独的计算路径,分别将多个子图输出到多个编译器130,每个编译器130对应于分配的资源。根据一个实施例,多个子图可经由单独的计算路径(或线程)被分别管理,从而被分别并行地输出到多个编译器130。
多个编译器130中的每个可对从任务管理器120接收的子图进行编译,使得子图被转换成被包括第一资源210、第二资源220和第N资源的多个资源中的每个可理解的编程语言。多个编译器130中的每个可对应于一个资源,并且可将从任务管理器120接收的子图编译为相应的资源的编程语言。在一个示例中,多个编译器130之中的第一编译器可对应于第一资源210,并且可将接收的子图编译为与第一资源210对应的编程语言。此外,多个编译器130之中的第二编译器可对应于第二资源220,并且可将接收的子图编译为与第二资源220对应的编程语言。多个编译器130中的每个可通过编译子图来生成执行数据ED,并且可将生成的执行数据ED输出到相应的资源(例如,第一资源210、第二资源220或第N资源230)。在一个示例中,执行数据ED可被实现为转换成与资源对应的编程语言的编程文件。
根据发明构思,多个编译器130可彼此独立地执行编译,因此,并行编译可对多个子图执行。在一个示例中,即使在多个编译器130之中的第一编译器对第一子图进行编译时,多个编译器130之中的第二编译器也可对第二子图进行编译。因此,编译所需的时间可被减少,并且ANN的计算处理可被高效地执行。
包括第一资源210、第二资源220和第N资源230的多个资源可包括计算资源和通信资源。例如,计算资源可包括各种计算处理装置(诸如,中央处理器(CPU)、图形处理单元(GPU)、应用处理器(AP)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、神经网络处理单元(NPU)、电子控制单元(ECU)、图像信号处理器(ISP)等)。通信资源可包括能够支持内部通信的资源(诸如,系统总线、外围组件互连(PCI)、PCI快速(PCIe)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)和串行连接SCSI(SAS))和/或能够支持外部通信的资源(诸如,通用串行总线(USB)、以太网、WiFi、蓝牙、近场通信(NFC)、射频识别(RFID)和移动电信)。
每个计算资源可包括特定的任务专用硬件。例如,NPU可包括用于使用ANN处理计算的特定的任务专用硬件。
包括第一资源210、第二资源220和第N资源230的多个资源可包括异构资源。在一个示例中,第一资源210可包括NPU,第二资源220可包括GPU。包括第一资源210、第二资源220和第N资源230的多个资源中的每个可通过执行从相应的编译器接收的执行数据ED来执行子图的计算。
根据发明构思,包括第一资源210、第二资源220和第N资源230的多个资源可彼此独立地加载执行数据ED。包括第一资源210、第二资源220和第N资源230的多个资源中的每个从模型处理器100加载执行数据ED的时间可被需要,并且在一个示例中,当第一资源210通过执行与其对应的第一执行数据来执行计算时,第二资源220可从模型处理器100加载与其对应的第二执行数据,从而加载时间可被减少并且总的计算处理时间可被减少。
虽然未示出,但是模型处理器100还可包括用于运行模型分析器110、任务管理器120和多个编译器130的操作系统。操作系统可包括各种移动操作系统、在线操作系统、离线操作系统等。在一个示例中,操作系统可利用Linux、基于Linux的安卓、Windows、iOS、MacOS、Chromium OS等来实现。
图2是示出根据示例实施例的模型处理器的框图。参照图1给出的重复的描述将被省略。
参照图2,模型处理器100可包括模型分析器110、任务管理器120、第一编译器131和第二编译器132,模型分析器110可包括模型解析器111、模型构建器112和模型优化器113。尽管图2示出模型处理器100包括两个编译器(例如,131和132)的示例,但是这仅是示例,并且模型处理器100可包括两个以上的编译器。
模型解析器111可通过对从应用APP接收的输入模型IM进行解析,来生成模型信息Info_M。输入模型IM可包括用于执行被编程到应用APP的指令的请求信息,术语“解析”可表示对输入模型IM的语法结构或句法进行分析的处理。
模型构建器112可基于从模型解析器111接收的模型信息Info_M,从输入模型IM生成计算处理图CPG’。计算处理图CPG’可表示包括多个计算节点的图。
模型优化器113可对计算处理图CPG’执行优化操作,并且可将作为优化操作的结果而生成的计算处理图CPG输出到任务管理器120。优化操作可表示最小化并优化计算处理图CPG’的计算处理量的操作。在一个实施例中,优化操作可包括利用另一图替换计算处理图CPG’的至少一部分的图替换操作、合并计算处理图CPG’的至少部分的图合并操作、以及划分计算处理图CPG’的至少一部分的图划分操作。
模型分析器110中的处理图分割器(未示出,可包括在模型优化器113或独立于模型优化器113)可将优化的计算处理图CPG分割为包括第一子图SG1和第二子图SG2的多个子图,并且可将第一子图SG1和第二子图SG2输出到任务管理器120。在一个实施例中,可省略模型优化器113,处理图分割器直接将计算处理图CPG’分割为多个子图,但在这种情况下,系统的效率可能会降低。
任务管理器120可分别将计算处理图CPG的多个子图SG1和SG2分配给包括第一编译器131和第二编译器132的多个编译器。根据一个实施例,多个子图SG1和SG2中的每个可对应于一个资源,任务管理器120可分别将多个子图SG1和SG2分配给包括第一编译器131和第二编译器132的多个编译器,每个编译器对应于合适的资源。
在一个实施例中,任务管理器120可接收关于多个资源中的每个资源的硬件能力的信息,并且可针对多个子图SG1和SG2中的每个确定合适的资源。任务管理器120可分别将多个子图SG1和SG2分配给包括第一编译器131和第二编译器132的多个编译器,每个编译器对应于确定的资源。
在图2的示例中,第一编译器131可对应于第一资源(未示出),第二编译器132可对应于第二资源(未示出)。也就是说,第一编译器131可将接收的输入编译为用在第一资源中的编程语言,并且第二编译器132可将接收的输入编译为用在第二资源中的编程语言。
任务管理器120可基于关于每个资源的硬件能力的信息,将接收到的计算处理图CPG的第一子图SG1分配给第一资源,并将接收到的计算处理图CPG的第二子图SG2分配给第二资源。任务管理器120可将分配给第一资源的第一子图SG1输出到与第一资源对应的第一编译器131,并将分配给第二资源的第二子图SG2输出到与第二资源对应的第二编译器132。第一编译器131可将第一子图SG1编译为能够在第一资源上运行,并且第二编译器132可将第二子图SG2编译为能够在第二资源上运行。在一个实施例中,将子图编译为能够在资源上运行是将子图转换成或转化为将被资源读取并执行的代码或形式。
图3是示出根据示例实施例的模型处理器的操作的流程图。
参照图2和图3,模型处理器100可通过分析输入模型IM,来生成第一子图SG1(S110)。模型处理器100可将第一子图SG1分配给第一资源(S120)。模型处理器100可将第一子图SG1编译为能够在第一资源上运行(S130)。在一个实施例中,第一子图SG1可由与第一资源对应的第一编译器131编译。
模型处理器100可通过分析输入模型IM,来生成第二子图SG2(S140)。模型处理器100可将第二子图SG2分配给第二资源(S150)。模型处理器100可将第二子图SG2编译为能够在第二资源上运行(S160)。在一个实施例中,第二子图SG2可由与第二资源对应的第二编译器132编译。
根据一个实施例,模型处理器100可在通过分析输入模型IM生成第二子图SG2之前对第一子图SG1进行编译。也就是说,在输入模型IM的分析完成之前,第一子图SG1可被编译。因此,处理计算处理图CPG所需的时间可被减少。
图4是示出根据示例实施例的计算处理图的示图。
参照图2和图4,模型分析器110可通过分析输入模型IM,来生成包括第一计算OP00至第十四计算OP13的计算处理图CPG。第一计算OP00至第十四计算OP13中的每个可表示各种数学计算(例如,卷积计算、整流线性单元计算、存储器复制计算等),并且第一计算OP00至第十四计算OP13可彼此相同或不同。应该理解,这里计算的数量仅是示例性的,不限于十四个。
模型分析器110可基于计算的种类、计算偏好、图的形状等,将生成的计算处理图CPG分割为多个子图SG1、SG2和SG3。在图4的示例中,模型分析器110可将第一计算OP00至第四计算OP03分类为第一子图SG1,将第五计算OP04至第十一计算OP10分类为第二子图SG2,并将第十二计算OP11至第十四计算OP13分类为第三子图SG3。应该理解,这里的多个子图的数量仅是示例性的,不限于三个。
任务管理器120可接收包括第一子图SG1至第三子图SG3的计算处理图CPG,并且可分别将第一子图SG1至第三子图SG3分配给多个资源。在一个实施例中,任务管理器120可基于多个资源中的每个的硬件能力,将第一子图SG1至第三子图SG3中的每个分配给合适的资源。
在一个示例中,任务管理器120可将第一子图SG1和第三子图SG3分配给第一资源(例如,NPU),并将第二子图SG2分配给第二资源(例如,GPU)。在另一示例中,任务管理器120可将第一子图SG1分配给第一资源(例如,NPU),将第二子图SG2分配给第二资源(例如,GPU),并将第三子图SG3分配给第三资源(例如,CPU)。
任务管理器120可将第一子图SG1至第三子图SG3中的每个输出到与分配的资源对应的编译器131和132中的每个,并且编译器131和132中的每个可通过对接收的第一子图SG1至第三子图SG3中的每个进行编译,来生成多条执行数据。
图5是示出根据示例实施例的模型分析器的操作的流程图。
参照图2和图5,模型分析器110可从输入模型IM提取模型信息Info_M(S210)。模型分析器110可通过基于模型信息Info_M分析输入模型IM,来生成计算处理图CPG’(S220)。模型分析器110可优化计算处理图CPG’(S230)。在一个示例中,模型分析器110可通过执行利用另一图替换计算处理图CPG’的至少一部分的图替换操作、合并计算处理图CPG’的至少部分的图合并操作和划分计算处理图CPG’的至少一部分的图划分操作中的至少一个,来生成优化的计算处理图CPG。在下文中,表述“a、b和c中的至少一个”应被理解为仅包括a、仅包括b、仅包括c、包括a和b两者、包括a和c两者、包括b和c两者、包括全部的a、b和c,或其所有变形。模型分析器110可通过根据图特征划分优化的计算处理图CPG,来顺序地生成多个子图SG1和SG2(S240)。例如,模型分析器110可基于计算的种类、计算偏好、图的形状等,将优化的计算处理图CPG分割为多个子图。这里,合并操作用于将计算处理图CPG’的至少部分合并为更小的部分。例如,可针对作为计算处理图CPG’的至少一部分的第一计算OP00至第三计算OP02执行合并操作,以得到作为比第一计算OP00至第三计算OP02小的第五计算。这里,划分操作用于将计算处理图CPG’的至少一部分划分为计算处理图CPG’的新的部分。例如,可针对作为计算处理图CPG’的至少一部分的第一计算OP00执行划分操作,以得到作为计算处理图CPG’的新的部分的第五计算和第六计算。
图6是示出根据示例实施例的模型处理器的操作的示图。具体地,图6是示出模型处理器随时间的操作的示图。
参照图6,模型分析器110可分析输入模型(T110),并且可将作为分析的结果而生成的第一子图SG1输出到任务管理器120(T120)。在一个实施例中,模型分析器110可基于输入模型生成计算处理图,并且可通过基于计算的特征分割计算处理图来生成第一子图SG1。第一子图SG1可比第二子图SG2早生成(即,在第二子图SG2之前生成)。
任务管理器120可基于包括在第一子图SG1中的计算的特征和多个资源的硬件能力,将第一子图SG1分配给第一资源RS1(T130)。任务管理器120可将第一子图SG1输出到与第一资源RS1对应的第一编译器131(T140)。即使在第二子图SG2被生成之前,第一编译器131也可对第一子图SG1进行编译。
模型分析器110可将作为分析输入模型的结果而生成的第二子图SG2输出到任务管理器120(T160)。模型分析器110可通过基于计算的特征分割计算处理图来生成第二子图SG2。任务管理器120可基于包括在第二子图SG2中的计算的特征和多个资源的硬件能力,将第二子图SG2分配给第二资源RS2(T170)。任务管理器120可将第二子图SG2输出到与第二资源RS2对应的第二编译器132(T180),并且第二编译器132可对第二子图SG2进行编译(T190)。
根据一个实施例,即使在输入模型的分析完成之前,模型分析器110也可将首先生成的第一子图SG1输出到任务管理器120,并且任务管理器120可第一子图SG1首先输出到第一编译器131。
图7是示出根据示例实施例的模型处理器的操作的示图。具体地,图7是示出模型处理器随时间的操作的示图。
参照图7,模型分析器110可分析输入模型(T210),并且可将生成的第一子图SG1和第二子图SG2输出到任务管理器120(T220)。任务管理器120可基于包括在第一子图SG1和第二子图SG2中的计算的特征以及多个资源的硬件能力,将第一子图SG1分配给第一资源RS1并将第二子图SG2分配给第二资源RS2(T230)。第一编译器131可对第一子图SG1进行编译(T250),第二编译器132可对第二子图SG2进行编译(T260)。
根据一个实施例,包括第一编译器131和第二编译器132的多个编译器可分别对多个子图SG1和SG2并行编译,并且多个子图SG1和SG2的编译可被快速完成。
图8是示出根据示例实施例的神经网络系统的框图。参照图2给出的重复的描述将被省略。
参照图8,神经网络系统10可包括模型处理器100、第一资源210和第二资源220,模型处理器100可包括任务管理器120、第一编译器131、第二编译器132和模型保持器140。由于已经参照图2描述了任务管理器120、第一编译器131和第二编译器132,所以其描述将被省略。
第一编译器131可从任务管理器120接收第一子图SG1,并且可通过将第一子图SG1编译为能够在第一资源210上运行来生成第一执行数据ED1。第一编译器131可将第一执行数据ED1输出到模型保持器140。
第二编译器132可从任务管理器120接收第二子图SG2,并且可通过将第二子图SG2编译为能够在第二资源220上运行来生成第二执行数据ED2。第二编译器132可将第二执行数据ED2输出到模型保持器140。
模型保持器140可存储第一执行数据ED1和第二执行数据ED2,响应于或基于第一资源210的请求将第一执行数据ED1输出到第一资源210,响应于或基于第二资源220的请求将第二执行数据ED2输出到第二资源220。在一个实施例中,当第一编译器完成对第一子图进行编译并且第二编译器完成对第二子图进行编译时,模型保持器可基于时序同时将第一执行数据输出到第一资源,将第二执行数据输出到第二资源。在另一个实施例中,当第一编译器完成对第一子图进行编译并且第二编译器完成对第二子图进行编译时,模型保持器可基于时序顺序地将第一执行数据输出到第一资源,将第二执行数据输出到第二资源。
模型保持器140可包括至少一个存储装置。作为示例,模型保持器140可包括易失性存储器和非易失性存储器中的至少一个。非易失性存储器可包括闪存、相变随机存取存储器(PRAM)、磁随机存取存储器(MRAM)、电阻随机存取存储器(RRAM)、铁电随机存取存储器(FRAM)等,易失性存储器可包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步DRAM(SDRAM)、锁存器、触发器、寄存器等。
尽管在图8中模型保持器140被示出为模型处理器100内部的组件,但是在另一示例中,模型保持器140可被实现为与模型处理器100分离的组件。在一个示例中,模型保持器140可通过使用硬盘驱动器(HDD)、固态驱动器(SSD)、紧凑型闪存(CF)、安全数字(SD)、微型SD、迷你SD、极限数字(xD)和记忆棒中的至少一个来实现。此外,模型处理器100可包括直接存储器存取(DMA)、存储器DMA(MDMA)、外围DMA(PDMA)、远程DMA(RDMA)、智能DMA(SDMA)等,以控制对模型保持器140的访问。
第一资源210可接收第一执行数据ED1,并且可基于第一执行数据ED1执行与第一子图SG1对应的第一计算。第二资源220可独立于第一资源210接收第二执行数据ED2,并且可加载第二执行数据ED2。第一资源210可通过执行第一计算来生成计算结果CR,并且当第二资源210接收到计算结果CR时,第二资源210可基于加载的第二执行数据ED2和计算结果CR来执行与第二子图SG2对应的第二计算。
根据一个实施例,多个资源210和220中的每个可通过在从其他资源接收到根据先前计算的计算结果之前预先加载执行数据来减少计算时间,因此,神经网络系统10的计算处理能力可被提高。
图9是示出根据示例实施例的神经网络系统的操作的流程图。
参照图8和图9,神经网络系统10可通过对第一子图SG1进行编译来生成第一执行数据ED1(S310)。神经网络系统10可通过使用第一执行数据ED1来执行与第一子图SG1对应的第一计算(S320)。神经网络系统10可通过对第二子图SG2进行编译来生成第二执行数据ED2(S330)。即使在针对第一执行数据ED1的第一计算完成之前,神经网络系统10也可加载第二执行数据ED2(S340)。神经网络系统10可通过完成第一计算来生成计算结果CR(S350),并且可通过使用生成的计算结果CR和预先加载的第二执行数据ED2来执行与第二子图SG2对应的第二计算(S360)。
图10是示出根据示例实施例的神经网络系统的操作的示图。具体地,图10是示出神经网络系统在对多个子图进行编译之后随时间的操作的示图。
参照图10,与第一资源210对应的第一编译器131可对第一子图SG1进行编译(T310),并且可将由此生成的第一执行数据ED1输出到模型保持器140(T320)。模型保持器140可将接收到的第一执行数据ED1输出到第一资源210(T330),第一资源210可基于第一执行数据ED1执行第一计算(T340)。
与第二资源220对应的第二编译器132可对第二子图SG2进行编译(T350),并且可将由此生成的第二执行数据ED2输出到模型保持器140(T360)。模型保持器140可将接收到的第二执行数据ED2输出到第二资源220(T370),第二资源220可加载第二执行数据ED2(T380)。
第一资源210可将通过执行第一计算而生成的计算结果CR输出到第二资源220(T390),并且第二资源220可通过使用计算结果CR和加载的第二执行数据ED2来执行第二计算(T395)。
图11是示出根据示例实施例的神经网络系统的操作的示图。具体地,图11是示出神经网络系统在对多个子图进行编译之后随时间的操作的示图。
参照图11,与第一资源210对应的第一编译器131可对第一子图SG1进行编译(T410),与第二资源220对应的第二编译器132可对第二子图SG2进行编译(T420)。在第一子图SG1的编译完成之前第二子图SG2的编译可完成,因此,第二编译器132可将生成的第二执行数据ED2输出到模型保持器140(T430)。
模型保持器140可将第二执行数据ED2输出到第二资源220(T440),即使在第一子图SG1的编译(T410)完成之前,第二资源220也可加载第二执行数据ED2(S450)。
第一编译器131可将通过第一子图SG1的编译的完成而生成的第一执行数据ED1输出到模型保持器140(T460)。模型保持器140可将第一执行数据ED1输出到第一资源210(T470),并且第一资源210可执行与第一子图SG1对应的第一计算(T480)。
第一资源210可将通过执行第一计算而生成的计算结果CR输出到第二资源220(T490),并且第二资源220可通过使用计算结果CR和加载的第二执行数据ED2来执行第二计算(T495)。
图12是示出根据示例实施例的神经网络系统的操作的示图。具体地,图12是示出神经网络系统在对多个子图进行编译之后随时间的操作的示图。
参照图12,与第一资源210对应的第一编译器131可对第一子图SG1进行编译(T510),并且可将由此生成的第一执行数据ED1输出到模型保持器140(T520)。模型保持器140可将接收到的第一执行数据ED1输出到第一资源210(T530),并且第一资源210可基于第一执行数据ED1执行第一计算(T540)。
与第二资源220对应的第二编译器132可对第二子图SG2进行编译(T550),并且可将由此生成的第二执行数据ED2输出到模型保持器140(T560)。当第二资源220能够加载第二执行数据ED2时,第二资源220可将第二执行数据请求信号Req_ED2输出到模型保持器140(T570)。在一个示例中,第二资源220可在完成所有当前任务之后将第二执行数据请求信号Req_ED2输出到模型保持器140。在另一示例中,当第二资源220可用于执行任务时,第二资源220可将第二执行数据请求信号Req_ED2输出到模型保持器140。
即使在执行第一计算(T540)的处理中,模型保持器140也可响应于或基于第二执行数据请求信号Req_ED2将第二执行数据ED2输出到第二资源220(T580),并且第二资源220可加载第二执行数据ED2(T585)。
第一资源210可将通过执行第一计算而生成的计算结果CR输出到第二资源220(T590),并且第二资源220可通过使用计算结果CR和加载的第二执行数据ED2来执行第二计算(T595)。
图13是示出根据示例实施例的神经网络系统的框图。参照图8给出的重复的描述将被省略。
参照图13,神经网络系统10a可包括模型处理器100a、第一资源210a和第二资源220a,模型处理器100a可包括任务管理器120a、第一编译器131a和模型保持器140a。由于任务管理器120a和第一编译器131a可分别与图8中的任务管理器120和第一编译器131相同或相似,所以其描述将被省略。
第一编译器131a可从任务管理器120a接收第一子图SG1,并且可通过将第一子图SG1编译为能够在第一资源210a上运行来生成第一执行数据ED1。第一编译器131a可将第一执行数据ED1输出到模型保持器140a。
模型保持器140a可存储第一执行数据ED1和第一预构建数据PD1。第一预构建数据PD1可以是与第二子图对应的预构建数据。在此使用的术语“预构建数据”可表示具有特定子图的预先已知编译结果的数据。神经网络系统10a可将在其中编译有特定子图的数据预先地存储在模型保持器140a中,并且可在特定子图的计算处理期间通过使用存储在模型保持器140a中的预构建数据来执行计算,而无需进行额外的编译。
模型保持器140a可响应于或基于第一资源210a的请求将第一执行数据ED1输出到第一资源210a,响应于或基于第二资源220a的请求将第一预构建数据PD1输出到第二资源220a。
第一资源210a可接收第一执行数据ED1,并且可基于第一执行数据ED1执行与第一子图SG1对应的第一计算。第二资源220a可独立于第一资源210a接收第一预构建数据PD1,并且可加载第一预构建数据PD1。第一资源210a可通过执行第一计算来生成计算结果CR,并且当第二资源220a接收到计算结果CR时,第二资源220a可基于加载的第一预构建数据PD1和计算结果CR来执行与第二子图对应的第二计算。
图14是示出根据示例实施例的神经网络系统的操作的示图。具体地,图14是示出神经网络系统在对多个子图进行编译之后随时间的操作的示图。
参照图14,与第一资源210a对应的第一编译器131a可对第一子图SG1进行编译(T610),并且可将由此生成的第一执行数据ED1输出到模型保持器140a(T620)。模型保持器140a可将接收到的第一执行数据ED1输出到第一资源210a(T630),并且第一资源210a可基于第一执行数据ED1执行第一计算(T640)。
当第二资源220a能够加载第一预构建数据PD1时,第二资源220a可将第一预构建数据请求信号Req_PD1输出到模型保持器140a(T650)。在一个示例中,第二资源220a可在完成所有当前任务之后将第一预构建数据请求信号Req_PD1输出到模型保持器140a。在另一示例中,当第二资源220a可用于执行任务时,第二资源220a可将第一预构建数据请求信号Req_PD1输出到模型保持器140a。
即使在执行第一计算(T640)的处理中,模型保持器140a也可响应于或基于第一预构建数据请求信号Req_PD1将第一预构建数据PD1输出到第二资源220a(T660),并且第二资源220a可加载第一预构建数据PD1(T670)。
第一资源210a可将通过执行第一计算而生成的计算结果CR输出到第二资源220a(T680),并且第二资源220a可通过使用计算结果CR和加载的第一预构建数据PD1来执行第二计算(T595)。
图15是示出根据示例实施例的电子系统的框图。
参照图15,电子系统1000可通过基于神经网络实时分析输入数据来提取有效信息,并且可基于提取的信息确定情况,或者可控制其中安装有电子系统1000的电子装置的组件。例如,电子系统1000可被应用于机器人装置(诸如,无人机或高级驾驶员辅助系统(ADAS))、智能TV、智能电话、医疗装置、移动装置、图像显示装置、测量装置、IoT装置等,并且除此之外还可被安装在各种电子装置中的至少一个中。
电子系统1000可包括处理器1010、RAM 1020、模型处理器1030、存储器1040、传感器模块1050和资源1060。电子系统1000的组件可经由总线以可通信的方式彼此连接。处理器1010可控制电子系统1000的整体操作。例如,处理器1010可通过执行存储在RAM 1020中的程序来控制模型处理器1030的功能。此外,处理器1010可通过控制RAM 1020、存储器1040等,将将要基于神经网络被执行深度学习的输入模型输出到模型处理器1030。RAM 1020可暂时存储程序、数据、应用或指令。
模型处理器1030可通过控制资源1060来执行神经网络的计算,并且可基于执行计算的结果来生成信息信号。存储器1040是用于存储数据的存储单元,并且例如可存储在通过模型处理器1030和资源1060执行计算的处理中生成的各种数据。传感器模块1050可从电子系统1000的外部感测或接收信号(例如,图像信号、音频信号、磁信号、生物信号、触摸信号等),并且可将信号转换为数据。资源1060可包括用于基于神经网络执行大量计算的计算资源,或者利用可与电子系统1000的外部的装置通信的各种有线或无线接口实现的通信资源。
根据发明构思,模型处理器1030可执行并行编译以将执行数据输出到资源1060,从而计算处理的过程可被高效地执行。
上述示例实施例可被写入在计算机上可执行的程序中,并且可被实现在通过使用计算机可读记录介质运行程序的通用数字计算机中。此外,上述示例实施例中使用的数据结构可通过各种手段记录在计算机可读记录介质中。计算机可读记录介质可包括存储介质,诸如,磁存储介质(例如,只读存储器(ROM)、软盘、硬盘等)或光学读取介质(例如,光盘-ROM(CD-ROM)、数字通用光盘(DVD)等)。
尽管已经参照发明构思的实施例具体示出和描述了发明构思,但是本领域技术人员将理解,在不脱离权利要求的精神和范围的情况下,可在实施例中在形式和细节上进行各种改变。此外,应理解,在此使用的特定术语仅用于描述实施例的目的,并不意图限制发明构思。因此,发明构思的范围应由权利要求及其等同物来限定。
Claims (25)
1.一种通过多个异构资源运行人工神经网络的计算处理图的系统,所述系统包括:
任务管理器,被配置为:将所述多个异构资源分配给第一子图和第二子图,第一子图和第二个子图属于人工神经网络的计算处理图;
第一编译器,被配置为:将第一子图编译为能够在所述多个异构资源之中的第一资源上运行;以及
第二编译器,被配置为:将第二子图编译为能够在所述多个异构资源之中的第二资源上运行,
其中,第一子图和第二子图通过独立的计算路径被分别输出到第一编译器和第二编译器。
2.根据权利要求1所述的系统,其中,任务管理器还被配置为:将第一子图输出到与第一资源对应的第一编译器,并将第二子图输出到与第二资源对应的第二编译器,
第一编译器和第二编译器被配置为彼此独立地操作。
3.根据权利要求1所述的系统,还包括:
模型分析器,被配置为:
接收输入模型,
分析输入模型以生成计算处理图,以及
将计算处理图分割为多个子图,所述多个子图包括第一子图和第二子图。
4.根据权利要求3所述的系统,其中,模型分析器还被配置为:当所述多个子图中的每个的生成完成时,基于时序将所述多个子图同时或顺序地输出到任务管理器,
任务管理器还被配置为:将第一子图输出到与分配给第一子图的第一资源对应的第一编译器。
5.根据权利要求3所述的系统,其中,模型分析器包括:
模型解析器,被配置为:接收输入模型,并从输入模型提取模型信息;
模型构建器,被配置为:通过基于模型信息分析输入模型,生成计算处理图;以及
模型优化器,被配置为:对计算处理图执行优化操作;以及
处理图分割器,将优化的计算处理图分割为多个子图。
6.根据权利要求5所述的系统,其中,优化操作包括以下项中的至少一个:利用另一图替换计算处理图的至少一部分的图替换操作、合并计算处理图的至少部分的图合并操作、以及划分计算处理图的至少一部分的图划分操作。
7.根据权利要求1所述的系统,其中,第一编译器还被配置为:对第一子图进行编译以生成在第一资源上是可执行的第一执行数据,
第二编译器还被配置为:对第二子图进行编译以生成在第二资源上是可执行的第二执行数据。
8.根据权利要求7所述的系统,还包括:
模型保持器,被配置为:存储第一执行数据和第二执行数据。
9.根据权利要求8所述的系统,其中,模型保持器还被配置为:当第一编译器完成对第一子图进行编译并且第二编译器完成对第二子图进行编译时,基于时序同时或顺序地将第一执行数据输出到第一资源,将第二执行数据输出到第二资源。
10.根据权利要求8所述的系统,其中:
第一资源被配置为:通过使用第一执行数据,执行与第一子图对应的第一计算;
第二资源被配置为:通过使用第二执行数据,执行与第二子图对应的第二计算;以及
在通过第二编译器对第二子图进行编译完成之前,第一资源执行第一计算。
11.根据权利要求10所述的系统,其中,第二资源在接收到第一计算的结果值之前从模型保持器加载第二执行数据,并通过使用第二执行数据和第一计算的结果值来执行与第二子图对应的第二计算。
12.根据权利要求11所述的系统,其中,当第二资源能够执行第二计算时,第二资源将用于请求第二执行数据的第二执行数据请求信号输出到模型保持器,
模型保持器基于第二执行数据请求信号将第二执行数据输出到第二资源。
13.一种通过多个异构资源运行人工神经网络的计算处理图的方法,所述方法包括:
将计算处理图的多个子图之中的第一子图分配给所述多个异构资源之中的第一资源,计算处理图属于人工神经网络;
将第一子图编译为能够在第一资源上运行;
将所述多个子图之中的第二子图分配给所述多个异构资源之中的第二资源;以及
将第二子图编译为能够在第二资源上运行,
其中,第一子图和第二子图通过独立的计算路径被分别输出到第一编译器和第二编译器。
14.根据权利要求13所述的方法,其中,对第一子图的编译和对第二子图的编译被彼此独立地执行。
15.根据权利要求13所述的方法,还包括:
通过分析输入模型生成第一子图;以及
通过分析输入模型生成第二子图,
其中,在生成第二子图完成之前,第一子图被输出到第一编译器。
16.根据权利要求15所述的方法,其中,生成第一子图和第二子图的步骤包括:
从输入模型提取模型信息;
通过基于模型信息分析输入模型,生成计算处理图;
对计算处理图进行优化;以及
通过分割计算处理图生成第一子图和第二子图。
17.根据权利要求16所述的方法,其中,对计算处理图进行优化的步骤包括以下项中的至少一个:利用另一图替换计算处理图的至少一部分的图替换操作、合并计算处理图的至少部分的图合并操作、以及划分计算处理图的至少一部分的图划分操作。
18.根据权利要求13所述的方法,还包括:
生成作为对第一子图进行编译的结果的第一执行数据;以及
生成作为对第二子图进行编译的结果的第二执行数据。
19.根据权利要求18所述的方法,还包括:
通过使用第一执行数据,执行与第一子图对应的第一计算,
其中,在对第二子图进行编译完成之前,执行第一计算的步骤被执行。
20.根据权利要求19所述的方法,还包括:
将第二执行数据加载到第二资源上;以及
通过使用第二执行数据,执行与第二子图对应的第二计算;
其中,在执行第一计算完成之前,将第二执行数据加载到第二资源上的步骤被执行。
21.一种通过使用人工神经网络的计算处理图执行深度学习的装置,所述装置包括:
第一编译器,被配置为:将计算处理图的至少一部分编译为能够在第一资源上运行,计算处理图属于人工神经网络;
第二编译器,被配置为:将计算处理图的至少一部分编译为能够在与第一资源不同的第二资源上运行;以及
任务管理器,被配置为:将计算处理图的中的第一子图输出到第一编译器,将计算处理图的中的第二子图输出到第二编译器,
其中,第一编译器和第二编译器彼此独立地操作。
22.根据权利要求21所述的装置,还包括:
模型分析器,被配置为:接收输入模型,通过分析输入模型来生成包括第一子图和第二子图的计算处理图,
其中,模型分析器在生成第二子图之前将第一子图输出到任务管理器。
23.根据权利要求22所述的装置,其中,模型分析器包括:
模型解析器,被配置为:接收输入模型,并从输入模型提取模型信息;
模型构建器,被配置为:通过基于模型信息分析输入模型,生成计算处理图;以及
模型优化器,被配置为:对计算处理图执行优化操作。
24.根据权利要求21所述的装置,还包括:
模型保持器,
其中,模型保持器存储在第一资源上是可执行的第一执行数据,第一执行数据作为第一编译器对第一子图进行编译的结果而生成,
模型保持器存储在第二资源上是可执行的第二执行数据,第二执行数据作为第二编译器对第二子图进行编译的结果而生成。
25.根据权利要求24所述的装置,其中,在第二编译器生成第二执行数据之前,模型保持器将第一执行数据输出到第一资源。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0136801 | 2018-11-08 | ||
KR1020180136801A KR20200053318A (ko) | 2018-11-08 | 2018-11-08 | 인공 신경망의 연산 처리 그래프를 관리하는 시스템 및 이를 이용한 연산 처리 그래프를 관리하는 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111160539A true CN111160539A (zh) | 2020-05-15 |
Family
ID=70550592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910602988.1A Pending CN111160539A (zh) | 2018-11-08 | 2019-07-05 | 运行人工神经网络的计算处理图的系统及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11915149B2 (zh) |
KR (1) | KR20200053318A (zh) |
CN (1) | CN111160539A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860816A (zh) * | 2020-07-08 | 2020-10-30 | Oppo广东移动通信有限公司 | 神经网络模型的编译方法、装置、设备及存储介质 |
WO2022087788A1 (zh) * | 2020-10-26 | 2022-05-05 | 华为技术有限公司 | 一种神经网络编译优化方法和相关装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11175898B2 (en) * | 2019-05-31 | 2021-11-16 | Apple Inc. | Compiling code for a machine learning model for execution on a specialized processor |
KR20220078787A (ko) | 2020-12-03 | 2022-06-13 | 삼성전자주식회사 | 컴퓨팅 장치의 동작 방법 그리고 명령들을 저장하는 컴퓨터로 독출 가능한 저장 매체 |
KR20230041444A (ko) | 2021-09-17 | 2023-03-24 | 삼성전자주식회사 | 뉴럴 네트워크를 위한 컴파일 방법 및 장치 |
WO2024177377A1 (ko) * | 2023-02-23 | 2024-08-29 | 삼성전자 주식회사 | 인공지능 모델을 이용하여 연산을 수행하는 전자 장치 및 전자 장치의 동작 방법 |
CN116467061B (zh) * | 2023-06-19 | 2023-09-19 | 之江实验室 | 一种任务执行的方法、装置、存储介质及电子设备 |
CN117271424B (zh) * | 2023-11-24 | 2024-02-06 | 北京中星微人工智能芯片技术有限公司 | 基于多模融合计算框架的处理装置和处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029357A1 (en) * | 1998-11-16 | 2002-03-07 | Insignia Solution, Plc | Method and system of memory management using stack walking |
US20090125370A1 (en) * | 2007-11-08 | 2009-05-14 | Genetic Finance Holdings Limited | Distributed network for performing complex algorithms |
US20130055063A1 (en) * | 2011-08-24 | 2013-02-28 | Qualcomm Innovation Center, Inc. | Controlled Parallel Compilation and Execution of JavaScripts |
WO2016141991A1 (en) * | 2015-03-12 | 2016-09-15 | Huawei Technologies Co., Ltd. | Systems and methods for dynamic scheduling of programs on processing systems |
US20170124452A1 (en) * | 2015-10-28 | 2017-05-04 | Google Inc. | Processing computational graphs |
US20180136912A1 (en) * | 2016-11-17 | 2018-05-17 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5561801A (en) * | 1991-12-13 | 1996-10-01 | Thinking Machines Corporation | System and method for multilevel promotion |
JP4784827B2 (ja) | 2006-06-06 | 2011-10-05 | 学校法人早稲田大学 | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
US20080082644A1 (en) * | 2006-09-29 | 2008-04-03 | Microsoft Corporation | Distributed parallel computing |
US8365153B2 (en) | 2007-10-26 | 2013-01-29 | Qualcomm Incorporated | Server-based code compilation |
US7948910B2 (en) | 2008-03-06 | 2011-05-24 | Cisco Technology, Inc. | Monitoring quality of a packet flow in packet-based communication networks |
US9032377B2 (en) | 2008-07-10 | 2015-05-12 | Rocketick Technologies Ltd. | Efficient parallel computation of dependency problems |
KR100968774B1 (ko) | 2008-09-18 | 2010-07-09 | 고려대학교 산학협력단 | 다수의 이종 프로세서를 구비하는 멀티 프로세싱 시스템 및그 구동 방법 |
KR101522444B1 (ko) | 2008-10-24 | 2015-05-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 소스 코드 처리 방법, 시스템, 및 프로그램 |
US20100153934A1 (en) | 2008-12-12 | 2010-06-17 | Peter Lachner | Prefetch for systems with heterogeneous architectures |
GB0911099D0 (en) * | 2009-06-26 | 2009-08-12 | Codeplay Software Ltd | Processing method |
WO2014020735A1 (ja) * | 2012-08-02 | 2014-02-06 | 富士通株式会社 | データ処理方法、情報処理装置およびプログラム |
CN102868571B (zh) | 2012-08-07 | 2015-04-08 | 华为技术有限公司 | 一种规则匹配方法和装置 |
US9373074B2 (en) * | 2012-10-09 | 2016-06-21 | Qualcomm Incorporated | Method and apparatus for time management and scheduling for sychronous processing on a cluster of processing nodes |
US10564929B2 (en) | 2016-09-01 | 2020-02-18 | Wave Computing, Inc. | Communication between dataflow processing units and memories |
CN108351983A (zh) * | 2015-10-28 | 2018-07-31 | 谷歌有限责任公司 | 修改计算图 |
US9715373B2 (en) | 2015-12-18 | 2017-07-25 | International Business Machines Corporation | Dynamic recompilation techniques for machine learning programs |
US20200301898A1 (en) * | 2018-06-25 | 2020-09-24 | BigStream Solutions, Inc. | Systems and methods for accelerating data operations by utilizing dataflow subgraph templates |
-
2018
- 2018-11-08 KR KR1020180136801A patent/KR20200053318A/ko not_active Application Discontinuation
-
2019
- 2019-07-05 CN CN201910602988.1A patent/CN111160539A/zh active Pending
- 2019-09-05 US US16/561,760 patent/US11915149B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029357A1 (en) * | 1998-11-16 | 2002-03-07 | Insignia Solution, Plc | Method and system of memory management using stack walking |
US20090125370A1 (en) * | 2007-11-08 | 2009-05-14 | Genetic Finance Holdings Limited | Distributed network for performing complex algorithms |
US20130055063A1 (en) * | 2011-08-24 | 2013-02-28 | Qualcomm Innovation Center, Inc. | Controlled Parallel Compilation and Execution of JavaScripts |
WO2016141991A1 (en) * | 2015-03-12 | 2016-09-15 | Huawei Technologies Co., Ltd. | Systems and methods for dynamic scheduling of programs on processing systems |
US20170124452A1 (en) * | 2015-10-28 | 2017-05-04 | Google Inc. | Processing computational graphs |
US20180136912A1 (en) * | 2016-11-17 | 2018-05-17 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860816A (zh) * | 2020-07-08 | 2020-10-30 | Oppo广东移动通信有限公司 | 神经网络模型的编译方法、装置、设备及存储介质 |
WO2022087788A1 (zh) * | 2020-10-26 | 2022-05-05 | 华为技术有限公司 | 一种神经网络编译优化方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200151579A1 (en) | 2020-05-14 |
US11915149B2 (en) | 2024-02-27 |
KR20200053318A (ko) | 2020-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111160539A (zh) | 运行人工神经网络的计算处理图的系统及方法 | |
US10032114B2 (en) | Predicting application performance on hardware accelerators | |
US10338956B2 (en) | Application profiling job management system, program, and method | |
CN111831287B (zh) | 用于确定执行代码段所需的资源的方法、设备和程序产品 | |
US20200334544A1 (en) | Method, device and computer program product for processing machine learning model | |
US9396033B2 (en) | Method of executing parallel application on manycore cluster system and the manycore cluster system | |
US11789913B2 (en) | Integration of model execution engine containers with a model development environment | |
CN114830135A (zh) | 算子的层次分区 | |
US20190317737A1 (en) | Methods and apparatus to recommend instruction adaptations to improve compute performance | |
CN116228515B (zh) | 硬件加速系统、方法及相关装置 | |
JP6763411B2 (ja) | 設計支援装置、設計支援方法、および設計支援プログラム | |
US20220222177A1 (en) | Systems, apparatus, articles of manufacture, and methods for improved data transfer for heterogeneous programs | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
CN111382865A (zh) | 用于预测轮询时间的神经网络系统和神经网络模型处理方法 | |
KR102376527B1 (ko) | Dnn 프레임워크를 이용하는 단일 가속기용 프로그램을 복수의 가속기에서 처리하는 방법 및 컴퓨터 프로그램 | |
JP2024515023A (ja) | ニューラル・ネットワークのパフォーマンス・ホット・スポットの特定 | |
US11663465B2 (en) | Method of managing task performance in an artificial neural network, and system executing an artificial neural network | |
US9853871B2 (en) | Dynamic collaboration service platform and method for providing an application service at the same platform | |
KR20220113873A (ko) | 소프트웨어 모듈 개발을 위한 시스템 | |
US20160283810A1 (en) | Computing control device, computing control method, and computer readable medium | |
US20220058031A1 (en) | Self optimizing application | |
US10990357B2 (en) | Application build automation | |
Mourão | Review of Machine Learning Deployment Frameworks | |
CN118451395A (zh) | 用于对用动态语言编写的代码进行类型推理的装置、系统和方法 | |
CN117312839A (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 |