CN110968404A - 一种设备数据处理方法及装置 - Google Patents
一种设备数据处理方法及装置 Download PDFInfo
- Publication number
- CN110968404A CN110968404A CN201811156109.9A CN201811156109A CN110968404A CN 110968404 A CN110968404 A CN 110968404A CN 201811156109 A CN201811156109 A CN 201811156109A CN 110968404 A CN110968404 A CN 110968404A
- Authority
- CN
- China
- Prior art keywords
- predefined
- computing
- data
- equipment
- instructions
- 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.)
- Granted
Links
Images
Classifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/045—Combinations of networks
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施方式公开了一种设备数据处理方法及装置。所述方法包括:获取包括多个运算步骤的预定义运算任务;解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备;基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。利用本申请的技术方案,不仅可以降低构建运算任务的复杂度,还可以大大降低人力成本和时间成本。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种设备数据处理方法及装置。
背景技术
运算任务中往往包括多个运算步骤,在利用客户端中的运算设备执行所述多个运算步骤之前,往往需要预先定义运算执行指令。一般地,在一些简单的运算任务中,往往只需要在同一个运算设备中执行该运算任务的运算步骤,例如只在CPU上执行或者只在GPU上执行。但是,在一些复杂的运算任务中,为了尽可能地提升客户端的运算性能,往往需要跨设备执行运算任务,在同一个运算任务中,既需要在CPU进行计算,又需要在GPU进行计算,且这两种计算方式中间可能会交替。由于CPU和GPU是两个相互独立的运算设备,因此,当需要切换计算设备时,需要将其中一个运算设备计算得到的数据结果拷贝至另一个运算设备中。
基于此,现有技术中在预定义运算任务的运算指令的过程中,不仅需要人工指定实施各个运算步骤的运算设备,还需要从运算任务中筛选出需要进行跨设备运算的运算步骤,并在相应的运算步骤中设置相应的数据拷贝的指令。该方式不仅提高构建运算任务的复杂程度,还增加大量的人力成本。
因此,现有技术中亟需一种简单灵活、成本较低的运算任务构建方式。
发明内容
本申请实施方式的目的是提供一种设备数据处理方法及装置,不仅可以降低构建运算任务的复杂度,还可以大大降低人力成本和时间成本。
具体地,所述设备数据处理方法及装置是这样实现的:
一种设备数据处理方法,所述方法包括:
获取包括多个运算步骤的预定义运算任务;
解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备;
基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。
一种设备数据处理装置,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取包括多个运算步骤的预定义运算任务;
解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备;
基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述设备数据处理方法的步骤。
本申请实施例提供的设备数据处理方法及装置,可以在对简单的预定义运算任务进行解析,分别确定实施所述预定义运算任务中各个运算步骤的运算设备。基于运算设备,可以将所述预定义运算任务转化成可执行的运算指令。本申请各个实施例通过的技术方案,可以在预定义运算任务的过程中,不需要人工指定各个运算步骤的运算设备,运算任务中只需简单地指定运算类型即可。这样,不仅可以降低构建运算任务的复杂度,还可以大大降低人力成本和时间成本。
附图说明
为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的设备数据处理方法的场景示意图;
图2是本申请提供的设备数据处理方法的场景示意图;
图3是本申请提供的设备数据处理方法的一种实施例的方法流程图;
图4为本申请提供的设备数据处理装置的一种实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面首先通过图1对技术方案实现的技术环境进行说明。
为了清楚地示出本申请技术方案的细节,下面非限制性地以构建神经网络的运算任务举例说明,本领域的技术人员可以理解,本申请所述的运算任务可以包括任何具有多个运算步骤且需要进行跨设备运算的任务。深度学习是人工智能中的重要技术,已经广泛应用于图像处理、语音识别等技术领域。神经网络是深度学习中的重要技术,典型的包括卷积神经网络、循环神经网络等等。神经网络可以通过组合多层运算及数据处理,以完成一项运算任务,比如对输入图片进行分类等。神经网络中往往可以包括多个网络层,一个网络层的输出往往作为下一个网络层的输入,通过网络层之间的输入输出,网络层与网络层之间建立联系并形成计算网络。常见的网络层可以包括卷积(Convolution)、激活(Relu)、池化(Pooling)、全连接(Fully Connected)、局部响应归一化(LRN)等。对于一项运算任务,如上述对输入图片进行分类,在进行深度学习之前,可以预先建立相应的神经网络架构,其中包括网络层的层数、网络层的计算方式(即卷积、池化、激活等)等等。网络层的计算方式具有与之相应的算子(operator),如卷积计算具有卷子算子、池化计算具有池化算子。对于计算机的算子,可能运行于不同的设备中,如一些算子运行在CPU中,一些算子运行于GPU中,另一些算子运行于计算机中其他设备中。基于此,在基于神经网络的深度学习中,可能出现跨设备运算的需求,即在CPU上运算得到的输出数据可能是GPU上运算所需的输入数据。对于跨设备运算的需求,在一些深度学习框架中的做法往往是专门设置一个拷贝算子,用于对不同设备上的数据进行拷贝,如将CPU上的数据拷贝至GPU中,或将GPU上的数据拷贝至CPU上。
那么,在构建神经网络架构的过程中,需要预先定义运算执行指令,且该运算执行指令需要指出执行各个运算步骤的运算设备,并且,在确定为跨设备运算的步骤中,还需要在运算执行指令增加数据拷贝的过程。下面通过一段预定义的运算执行指令举例说明以上过程:
input;/输入数据/
copy input buffer from cpu to gpu;/将输入数据从CPU的缓存区拷贝至GPU的缓存区/
conv(run on gpu);/在GPU上对输入数据进行卷积运算/
pooling(run on gpu);/在GPU上进行池化运算/
copy buffer to cpu;/将池化得到的数据从GPU的缓存区拷贝至CPU的缓存区/
softmax(run on cpu)./在CPU上进行归一化运算/
由此发现,该方式需要投入较多的人工成本,并且大大增加了构建神经网络的复杂度。
基于类似于上文所述的技术需求,本申请提供一种设备数据处理方法,该方法可以针对跨设备运算(不限于上述神经网络深度学习),可以对简单定义的运算任务进行解析,确定实施运算任务中各个运算步骤的运算设备,并将运算任务转换成可执行的运算指令。
下面结合附图1和附图2说明本申请实施例的具体应用场景。在本应用场景中,还是以构建神经网络的运算任务举例说明。如图1所示,本申请实施例中,可以提供用于解析神经网络运算任务的任务解析装置,利用所述任务解析装置可以将神经网络运算任务转换成可执行的运算指令。本应用场景中提供的神经网络预定义运算任务如图1所示,该运算任务可以包括由多个算子组成的算子类别,其中,所述算子为神经网络中各个网络层的运算方式,对应于本申请技术方案中的运算步骤,所述算子中可以包括算子类型(即运算类型)、输入/输出数据以及相关参数等。
如图1所示的算子列表中,共设置有n个算子,即需要n个运算步骤可以实现该神经网络的运算任务。其中,算子1对应的参数为{算子类型:convolution;输入数据:image;输出数据:conv1;相关参数:……},算子2对应的参数为{算子类型:relu输入数据:conv1输出数据:conv1_relu},……,算子n对应的参数为{算子类型:priorbox输入数据:pool100输出数据:priorbox1}。由此可见,该运算任务的定义方式比较简单,无需指定实施各个算子的运算设备。
所述任务解析装置在获取到所述神经网络预定义运算任务之后,可以对其进行解析。在解析过程中,可以分别确定执行各个算子的运算设备。在此情况下,所述任务解析装置可以参考图1所示的GPU/CPU和算子关联关系表,所述关联关系表用于记录各个运算设备上可以运行的算子类型。当然,对于不同的客户端,运算设备与算子之间的关联关系表也不相同。在本申请的技术方案中,还可以通过图1所示的设备管理记录管理各个数据的状态,以便于所述任务解析装置在进行运算指令的转化过程中,可以获取到实施各个算子时所需的输入数据所在的运算设备。
对于图1所示的算子列表,所述任务解析装置在解析算子1的过程,确定算子类型为convolution,通过查询GPU/CPU和算子关联关系表确定,convolution运算优先运行于GPU中。但是,所述任务解析装置通过检查设备管理记录中的第1条记录image:[cpu],确定此时输入数据image位于CPU中,因此,生成可执行运算指令的第1条指令,即copy image toGPU,并在设备管理记录中增加第2条记录:image:[cpu gpu]。将输入数据image拷贝至GPU中之后,GPU即可以对输入数据image执行convolution运算,并生成输出数据conv1。于是,可以在可执行运算指令中生成第2条指令:GPU convolution,并在设备管理记录中增加第3条记录:conv1:[gpu]。同样地,在解析算子2的过程中,确定算子类型为relu,通过查询GPU/CPU和算子关联关系表确定,relu运算优先运行于GPU中。然后,所述任务解析装置通过检查设备管理记录中的第3条记录conv1:[gpu],确定relu运算所需的输入数据conv1位于GPU中,因此,可以在GPU中对输入数据conv1执行relu运算,并生成输出数据conv1_relu。于是,可以在可执行运算指令中生成第3条指令:GPU relu,并在设备管理记录中增加第4条记录:conv1_relu:[gpu]。接着,所述任务解析装置可以以相同的方式继续解析剩余的(n-2)个算子,在此不再赘述。通过以上各个数据模块的协作,所述任务解析装置可以将所述神经网络预定义运算任务转换成图1所示的可执行运算指令。
如图2所示,本申请技术方案还提供一种任务执行装置,所述任务执行装置可以基于所述可执行运算执行完成所述神经网络预定义运算任务。如图2所示,在执行所述可执行运算指令的过程中,所述任务执行装置可以依据指令从GPU/CPU数据缓存区中获取相应的数据。另外,还设置有图2所示的数据列表,该数据列表可以对应于在图1所示的设备管理记录。同样地,在任务执行阶段,通过所述数据列表可以获取到执行各条指令所需的输入数据的位置。
需要说明的是,以上应用场景可以应用于各类客户端设备上,随着客户端设备上运算设备性能的增强,可以将很多运算任务从线上转移到线下。因此,合理运用客户端设备上的运算设备,以优化各个运算任务的运算效率、提升客户端设备的资源利用率是有必要的。因此,本申请的技术方案可以在一定程度上解决以上技术问题。
下面结合附图对本申请所述的设备数据处理方法进行详细的说明。图3是本申请提供的设备数据处理方法的一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的设备数据处理过程中,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
具体的本申请提供的设备数据处理方法的一种实施例如图3所示,所述方法可以包括:
S301:获取包括多个运算步骤的预定义运算任务。
S303:解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备。
S305:基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。
本实施例中,所述预定义运算任务可以包括具有多个运算步骤的任务,该任务可以实现某种功能,如实现图片分类、获取某个业务指标的最优值等。所述运算任务可以包括神经网络模型组件,则所述运算步骤可以对应于所述神经网络模型组件中的网络层。所述神经网络组件可以包括卷积神经网络模型、循环神经网络组件等等。当然,所述预定义运算任务还可以包括任何具有多个连续运算步骤的任务,本申请对此不做限制。在本申请的一个实施例中,所述多个运算步骤可以包括多种不同的运算类型。在一个示例中,所述运算类型可以包括加、减、乘、除、取最大值、取整数等等。在神经网络组件中,所述运算类型则可以包括卷积(Convolution)、激活(Relu)、池化(Pooling)、全连接(Fully Connected)、归一化(softmax)、局部响应归一化(LRN)等。
基于此,本申请实施例提供的预定义运算任务可以包括由运算类型组成的链路,对应于现有技术中预定义的运算执行指令,本申请的一个实施例可以简化为以下预定义运算任务:
input→conv→pooling→softmax→output。
可以发现,本实施例中提供的预定义运算任务可以是简单的运算类型的链路表达,并且,可以不需要指定实施各个运算步骤的运算设备。当然,在各个运算步骤中,不仅可以包括运算类型,还可以包括输入数据、输出数据以及一些相关参数等,本申请对此不做限制。
在本申请的一个实施例中,在获取到预定义运算任务以及该任务中所包括的多个运算步骤之后,可以解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备。本实施例中,所述运算设备可以包括客户端中执行运算步骤的硬件设备,如客户端中的CPU、GPU等。在本申请的一个实施例中,可以从预定义的运算类型和运算设备的关联关系中确定所述运算类型对应的运算设备。其中,所述关联关系可以根据不同的运算类型运行于不同的运算设备上的历史运算性能数据确定。在一个示例中,根据不同的运算类型运行于不同的运算设备上的历史运算性能数据统计得到,相比于其他运算设备,GPU更加适合逻辑简单且数据量的运算类型,如卷积、池化等,而CPU则更加适合逻辑复杂但数据量少的运算类型,如归一化等。基于此,可以将运算设备GPU与卷积、池化等运算类型相关联,将运算设备CPU与归一化等运算类型相关联。在一个实施例中,可以将所述关联关系利用关联关系表等形式存储于客户端中,这样在解析所述预定义运算任务时,可以从关联关系表中获取运算步骤对应的运算设备。需要说明的是,本领域的技术人员可以理解,随着硬件设备性能的不断提升,用户在客户端中进行运算的硬件设备的种类也在增多,但是,运算设备种类的增多不脱离本申请技术方案的精髓。
在本申请的一个实施例中,对于不同的客户端,所述运算类型和运算设备的关联关系可以不相同。例如,对于不同品牌的手机,其CPU、GPU的性能可能不相同,一些手机的CPU的性能优于GPU,一些手机的GPU的性能优于CPU。因此,即使是相同的运算类型,可能在不同品牌的手机上适合不同的运算设备。基于此,本实施例中,可以针对不同的客户端设置与之相匹配的运算类型和运算设备的关联关系。这样,在确定运算类型对应的运算设备的过程中,可以先确定所述预定义运算任务所在的客户端,再确定与所述客户端相匹配的预定义的运算类型和运算设备的关联关系,最后从所述关联关系中确定所述运算类型对应的运算设备。
在本申请的一个实施例中,在确定实施各个运算步骤的运算设备之后,可以基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。在一个实施例中,可以分别生成所述多个运算步骤的可执行的运算指令,所述运算指令可以包括实施所述运算步骤的运算类型和运算设备。在一个示例中,可以将预定义运算任务input→conv→Relu→pooling→output转换成以下运算指令:
input to GPU;/输入数据到GPU/
GPU convolution;/在GPU上对输入数据进行卷积运算/
GPU Relu;/在GPU上对卷积后的数据进行激活处理/
GPU pooling./在GPU上对激活后的数据进行池化计算/
由此可见,在本申请的技术方案中,可以将简单的预定义运算任务自动转化成可执行的运算指令。
在本申请的另一个实施例中,对于跨设备运算任务,即在所述预定义运算任务中的运算步骤运行于不同的运算设备的情况下,可以设置设备管理记录,用于存储所述预定义运算任务中所使用到的运算设备的数据缓存区内的数据状态。具体地,在确定所述预定义运算任务中的运算步骤对应的运算设备中不包括实施所述运算步骤所需的输入数据的情况下,可以从所述设备管理记录中获取所述输入数据所在的其他运算设备。在一个示例中,若解析到实施卷积步骤的GPU中不存在输入图像时,根据所述设备管理记录查询到image:[cpu]这样的数据记录,可以确定输入图像在CPU中,因此,可以将该输入图像从CPU中拷贝至GPU中。然后,可以生成该卷积步骤的可执行的运算指令,该运算指令中可以包括将输入图像从CPU拷贝至GPU中的指令,以及实施该卷积操作的指令,在一个示例中,生成的运算指令为:
Copy image to GPU;/将图像拷贝至GPU/
GPU convolution./在GPU上对输入图像进行卷积运算/
在本申请的一个实施例中,在生成所述运算步骤的可执行的运算指令之后,还可以将拷贝所述输入数据的状态信息、执行所述运算步骤生成的输出数据及所述输出数据所在的运算设备之间的对应关系存储至所述设备管理记录中。在上述示例中,所述拷贝所述输入图像的状态信息可以为image:[cpu,gpu],执行所述卷积操作生成的输出数据及所述输出数据所在的运算设备之间的对应关系可以为conv:[gpu],其中,conv为对image实施卷积操作后生成的输出数据的参数名称。
本实施例中,在对跨设备运算任务的解析过程中,可以通过所述设备管理记录确定运算任务中各个运算步骤生成输出数据的状态。这样,当解析到某个运算步骤为跨设备运算步骤时,可以快速确定其输入数据所在的运算设备的位置。
在本申请的一个实施例中,在确定所述预定义运算任务对应的可执行的运算指令之后,可以分别在所述运算设备上利用所述运算类型执行所述多个运算步骤对应的运算指令。
在本申请的另一个实施例中,在所述运算步骤为跨设备运算步骤时,可以按照下述方式执行所述预定义运算任务对应的运算指令:首先可以从所述其他运算设备的数据缓存区中获取所述输入数据。然后,可以将所述输入数据存储至所述运算设备的数据缓存区中。最后,在所述运算设备上利用所述运算类型执行所述运算步骤对应的运算指令。本实施例中,各个运行步骤所使用的输入数据和/或输出数据可以存储于实施该运行步骤的运算设备的数据缓存区中。所述数据缓存区可以用于临时存储运行步骤所使用的数据。在一个实施例中,当不再需要所述数据时,还可以释放所述数据,清理数据缓存区的空间。
在本申请的一个实施例中,可以在解析所述预定义运算任务的过程中,可以设置各个运算设备的数据缓存区的数据的预设使用次数。那么,在确定数据缓存区内的数据的实际使用次数达到所述预设使用次数时,可以从所述数据缓存区内释放相应的数据。举例说明,在使用运算设备GPU的情况下,假设一池化步骤1的输出数据pool1需要被两个下游步骤卷积步骤2和卷积步骤3使用,那么可以设置池化步骤在GPU buffer(GPU数据缓存区)内的预设使用次数为2。在执行所述卷积步骤2时,可以访问所述输出数据pool1,即pool1在GPU buffer中的实际使用次数为1,小于所述预设使用次数2。在执行所述卷积步骤3时可以再次访问所述输出数据pool1,此时pool1的在GPU buffer中的实际使用次数为2,等于所述预设使用次数2,此时,可以将所述输出数据pool1从GPU buffer中释放。
本申请实施例提供的设备数据处理方法,可以在对简单的预定义运算任务进行解析,分别确定实施所述预定义运算任务中各个运算步骤的运算设备。基于运算设备,可以将所述预定义运算任务转化成可执行的运算指令。本申请各个实施例通过的技术方案,可以在预定义运算任务的过程中,不需要人工指定各个运算步骤的运算设备,运算任务中只需简单地指定运算类型即可。这样,不仅可以降低构建运算任务的复杂度,还可以大大降低人力成本和时间成本。
如图4所示,本申请另一方面还提供一种设备数据处理装置,所述装置可以包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取包括多个运算步骤的预定义运算任务;
解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备;
基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。
可选的,在本申请的一个实施例中,所述处理器在实现步骤解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备时包括:
分别确定所述多个运算步骤对应的运算类型;
从预定义的运算类型和运算设备的关联关系中确定所述运算类型对应的运算设备,其中,所述关联关系根据不同的运算类型运行于不同的运算设备上的历史运算性能数据确定。
可选的,在本申请的一个实施例中,所述处理器在实现步骤从预定义的运算类型和运算设备的关联关系中确定所述运算类型对应的运算设备时包括:
确定所述预定义运算任务所在的客户端;
确定与所述客户端相匹配的预定义的运算类型和运算设备的关联关系;
从所述关联关系中确定所述运算类型对应的运算设备。
可选的,在本申请的一个实施例中,所述处理器在实现步骤基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令时包括:
分别生成所述多个运算步骤的可执行的运算指令,所述运算指令包括实施所述运算步骤的运算类型和运算设备。
可选的,在本申请的一个实施例中,所述处理器在实现步骤基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令之后,还包括:
分别存储实施所述多个运算步骤生成的输出数据和所述输出数据所在的运算设备之间的对应关系。
可选的,在本申请的一个实施例中,所述处理器在实现步骤基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令时包括:
在确定所述运算步骤对应的运算设备中不包括实施所述运算步骤所需的输入数据的情况下,从设备管理记录中获取所述输入数据所在的其他运算设备,其中,所述设备管理记录用于存储所述预定义运算任务中所使用到的运算设备的数据缓存区内的数据状态;
生成所述运算步骤的可执行的运算指令,所述运算指令包括将所述输入数据从所述其他运算设备拷贝至所述运算设备的指令、实施所述运算步骤的运算类型和运算设备。
可选的,在本申请的一个实施例中,所述处理器在实现步骤在所述生成所述运算步骤的可执行的运算指令之后,还包括:
将拷贝所述输入数据的状态信息、执行所述运算步骤生成的输出数据及所述输出数据所在的运算设备之间的对应关系存储至所述设备管理记录中。
可选的,在本申请的一个实施例中,所述处理器在实现步骤在所述分别生成所述多个运算步骤的可执行的运算指令之后,还包括:
分别在所述运算设备上利用所述运算类型执行所述多个运算步骤对应的运算指令。
可选的,在本申请的一个实施例中,所述处理器在实现步骤在所述生成所述运算步骤的可执行的运算指令之后,还包括:
执行所述运算指令,从所述其他运算设备的数据缓存区中获取所述输入数据;
将所述输入数据存储至所述运算设备的数据缓存区中;
在所述运算设备上利用所述运算类型执行所述运算步骤对应的运算指令。
可选的,在本申请的一个实施例中,所述数据缓存区内的数据被设置为按照下述方式释放:
获取所述数据缓存区内的数据的预设使用次数;
在确定所述数据的使用次数达到所述预设使用次数的情况下,释放所述数据。
可选的,在本申请的一个实施例中,所述预定义运算任务包括神经网络模型组件,所述运算步骤对应于所述神经网络模型组件中的网络层。
可选的,在本申请的一个实施例中所述运算步骤包括卷积、激活、池化、全连接、局部响应归一化中的一种。
本申请另一方面还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任一实施例所述方法的步骤。
所述计算机可读存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。本实施例所述的计算机可读存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是当所述资源占用率小于第三预设阈值时,将所述多个租户迁移至其他服务节点上。
软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA)就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell UniversityProgramming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (25)
1.一种设备数据处理方法,其特征在于,所述方法包括:
获取包括多个运算步骤的预定义运算任务;
解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备;
基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。
2.根据权利要求1所述的方法,其特征在于,所述解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备包括:
分别确定所述多个运算步骤对应的运算类型;
从预定义的运算类型和运算设备的关联关系中确定所述运算类型对应的运算设备,其中,所述关联关系根据不同的运算类型运行于不同的运算设备上的历史运算性能数据确定。
3.根据权利要求2所述的方法,其特征在于,所述从预定义的运算类型和运算设备的关联关系中确定所述运算类型对应的运算设备包括:
确定所述预定义运算任务所在的客户端;
确定与所述客户端相匹配的预定义的运算类型和运算设备的关联关系;
从所述关联关系中确定所述运算类型对应的运算设备。
4.根据权利要求1所述的方法,其特征在于,所述基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令包括:
分别生成所述多个运算步骤的可执行的运算指令,所述运算指令包括实施所述运算步骤的运算类型和运算设备。
5.根据权利要求1所述的方法,其特征在于,在所述基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令之后,所述方法包括:
分别存储实施所述多个运算步骤生成的输出数据和所述输出数据所在的运算设备之间的对应关系。
6.根据权利要求1所述的方法,其特征在于,所述基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令包括:
在确定所述运算步骤对应的运算设备中不包括实施所述运算步骤所需的输入数据的情况下,从设备管理记录中获取所述输入数据所在的其他运算设备,其中,所述设备管理记录用于存储所述预定义运算任务中所使用到的运算设备的数据缓存区内的数据状态;
生成所述运算步骤的可执行的运算指令,所述运算指令包括将所述输入数据从所述其他运算设备拷贝至所述运算设备的指令、实施所述运算步骤的运算类型和运算设备。
7.根据权利要求6所述的方法,其特征在于,在所述生成所述运算步骤的可执行的运算指令之后,所述方法还包括:
将拷贝所述输入数据的状态信息、执行所述运算步骤生成的输出数据及所述输出数据所在的运算设备之间的对应关系存储至所述设备管理记录中。
8.根据权利要求4所述的方法,其特征在于,在所述分别生成所述多个运算步骤的可执行的运算指令之后,所述方法还包括:
分别在所述运算设备上利用所述运算类型执行所述多个运算步骤对应的运算指令。
9.根据权利要求6所述的方法,其特征在于,在所述生成所述运算步骤的可执行的运算指令之后,所述方法还包括:
执行所述运算指令,从所述其他运算设备的数据缓存区中获取所述输入数据;
将所述输入数据存储至所述运算设备的数据缓存区中;
在所述运算设备上利用所述运算类型执行所述运算步骤对应的运算指令。
10.根据权利要求9所述的方法,其特征在于,所述数据缓存区内的数据被设置为按照下述方式释放:
获取所述数据缓存区内的数据的预设使用次数;
在确定所述数据的使用次数达到所述预设使用次数的情况下,释放所述数据。
11.根据权利要求1-10中任意一项所述的方法,其特征在于,所述预定义运算任务包括神经网络模型组件,所述运算步骤对应于所述神经网络模型组件中的网络层。
12.根据权利要求11所述的方法,其特征在于,所述运算步骤包括卷积、激活、池化、全连接、局部响应归一化中的一种。
13.一种设备数据处理装置,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取包括多个运算步骤的预定义运算任务;
解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备;
基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令。
14.根据权利要求13所述的装置,其特征在于,所述处理器在实现步骤解析所述预定义运算任务,分别确定实施所述多个运算步骤的运算设备时包括:
分别确定所述多个运算步骤对应的运算类型;
从预定义的运算类型和运算设备的关联关系中确定所述运算类型对应的运算设备,其中,所述关联关系根据不同的运算类型运行于不同的运算设备上的历史运算性能数据确定。
15.根据权利要求14所述的装置,其特征在于,所述处理器在实现步骤从预定义的运算类型和运算设备的关联关系中确定所述运算类型对应的运算设备时包括:
确定所述预定义运算任务所在的客户端;
确定与所述客户端相匹配的预定义的运算类型和运算设备的关联关系;
从所述关联关系中确定所述运算类型对应的运算设备。
16.根据权利要求13所述的装置,其特征在于,所述处理器在实现步骤基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令时包括:
分别生成所述多个运算步骤的可执行的运算指令,所述运算指令包括实施所述运算步骤的运算类型和运算设备。
17.根据权利要求13所述的装置,其特征在于,所述处理器在实现步骤基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令之后,还包括:
分别存储实施所述多个运算步骤生成的输出数据和所述输出数据所在的运算设备之间的对应关系。
18.根据权利要求13所述的装置,其特征在于,所述处理器在实现步骤基于所述运算设备,将所述预定义运算任务转化成可执行的运算指令时包括:
在确定所述运算步骤对应的运算设备中不包括实施所述运算步骤所需的输入数据的情况下,从设备管理记录中获取所述输入数据所在的其他运算设备,其中,所述设备管理记录用于存储所述预定义运算任务中所使用到的运算设备的数据缓存区内的数据状态;
生成所述运算步骤的可执行的运算指令,所述运算指令包括将所述输入数据从所述其他运算设备拷贝至所述运算设备的指令、实施所述运算步骤的运算类型和运算设备。
19.根据权利要求18所述的装置,其特征在于,所述处理器在实现步骤在所述生成所述运算步骤的可执行的运算指令之后,还包括:
将拷贝所述输入数据的状态信息、执行所述运算步骤生成的输出数据及所述输出数据所在的运算设备之间的对应关系存储至所述设备管理记录中。
20.根据权利要求16所述的装置,其特征在于,所述处理器在实现步骤在所述分别生成所述多个运算步骤的可执行的运算指令之后,还包括:
分别在所述运算设备上利用所述运算类型执行所述多个运算步骤对应的运算指令。
21.根据权利要求18所述的装置,其特征在于,所述处理器在实现步骤在所述生成所述运算步骤的可执行的运算指令之后,还包括:
执行所述运算指令,从所述其他运算设备的数据缓存区中获取所述输入数据;
将所述输入数据存储至所述运算设备的数据缓存区中;
在所述运算设备上利用所述运算类型执行所述运算步骤对应的运算指令。
22.根据权利要求21所述的装置,其特征在于,所述数据缓存区内的数据被设置为按照下述方式释放:
获取所述数据缓存区内的数据的预设使用次数;
在确定所述数据的使用次数达到所述预设使用次数的情况下,释放所述数据。
23.根据权利要求13-22中任意一项所述的装置,其特征在于,所述预定义运算任务包括神经网络模型组件,所述运算步骤对应于所述神经网络模型组件中的网络层。
24.根据权利要求23所述的装置,其特征在于,所述运算步骤包括卷积、激活、池化、全连接、局部响应归一化中的一种。
25.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至12中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811156109.9A CN110968404B (zh) | 2018-09-30 | 2018-09-30 | 一种设备数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811156109.9A CN110968404B (zh) | 2018-09-30 | 2018-09-30 | 一种设备数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968404A true CN110968404A (zh) | 2020-04-07 |
CN110968404B CN110968404B (zh) | 2023-04-28 |
Family
ID=70028760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811156109.9A Active CN110968404B (zh) | 2018-09-30 | 2018-09-30 | 一种设备数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968404B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114492737A (zh) * | 2021-12-31 | 2022-05-13 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
CN115222025A (zh) * | 2021-04-16 | 2022-10-21 | 广东高云半导体科技股份有限公司 | 人工智能模型部署和人工智能运算方法、系统 |
CN116761080A (zh) * | 2022-10-13 | 2023-09-15 | 荣耀终端有限公司 | 图像数据的处理方法和终端设备 |
US11983086B2 (en) | 2021-12-31 | 2024-05-14 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for processing data, and electronic device, storage medium and program product |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160371081A1 (en) * | 2015-06-16 | 2016-12-22 | Architecture Technology Corporation | Dynamic computational acceleration using a heterogeneous hardware infrastructure |
CN106293736A (zh) * | 2016-08-08 | 2017-01-04 | 合肥工业大学 | 用于粗粒度多核计算系统的两级编程模型及其编程方法 |
CN106326007A (zh) * | 2016-08-22 | 2017-01-11 | 北京信安世纪科技有限公司 | 一种分布运算方法、装置及系统 |
US20170161604A1 (en) * | 2015-12-02 | 2017-06-08 | Google Inc. | Determining Orders of Execution of a Neural Network |
CN107341541A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络训练的装置和方法 |
US20170330120A1 (en) * | 2016-05-13 | 2017-11-16 | Alibaba Group Holding Limited | Method and system for task processing |
CN107861860A (zh) * | 2016-09-21 | 2018-03-30 | Fmr有限责任公司 | 同步移动设备的移动应用程序的自动验证 |
CN108431775A (zh) * | 2015-07-30 | 2018-08-21 | 高通股份有限公司 | 用于高效并行计算的简化的基于任务的运行时的方法 |
CN108549934A (zh) * | 2018-04-25 | 2018-09-18 | 福州瑞芯微电子股份有限公司 | 一种基于自动集群神经网络芯片组的运算方法和装置 |
-
2018
- 2018-09-30 CN CN201811156109.9A patent/CN110968404B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160371081A1 (en) * | 2015-06-16 | 2016-12-22 | Architecture Technology Corporation | Dynamic computational acceleration using a heterogeneous hardware infrastructure |
CN108431775A (zh) * | 2015-07-30 | 2018-08-21 | 高通股份有限公司 | 用于高效并行计算的简化的基于任务的运行时的方法 |
US20170161604A1 (en) * | 2015-12-02 | 2017-06-08 | Google Inc. | Determining Orders of Execution of a Neural Network |
CN107341541A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行全连接层神经网络训练的装置和方法 |
US20170330120A1 (en) * | 2016-05-13 | 2017-11-16 | Alibaba Group Holding Limited | Method and system for task processing |
CN106293736A (zh) * | 2016-08-08 | 2017-01-04 | 合肥工业大学 | 用于粗粒度多核计算系统的两级编程模型及其编程方法 |
CN106326007A (zh) * | 2016-08-22 | 2017-01-11 | 北京信安世纪科技有限公司 | 一种分布运算方法、装置及系统 |
CN107861860A (zh) * | 2016-09-21 | 2018-03-30 | Fmr有限责任公司 | 同步移动设备的移动应用程序的自动验证 |
CN108549934A (zh) * | 2018-04-25 | 2018-09-18 | 福州瑞芯微电子股份有限公司 | 一种基于自动集群神经网络芯片组的运算方法和装置 |
Non-Patent Citations (1)
Title |
---|
富弘毅;杨学军;: "大规模并行计算机系统硬件故障容错技术综述" * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115222025A (zh) * | 2021-04-16 | 2022-10-21 | 广东高云半导体科技股份有限公司 | 人工智能模型部署和人工智能运算方法、系统 |
CN114492737A (zh) * | 2021-12-31 | 2022-05-13 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
CN114492737B (zh) * | 2021-12-31 | 2022-12-09 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
US11983086B2 (en) | 2021-12-31 | 2024-05-14 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for processing data, and electronic device, storage medium and program product |
CN116761080A (zh) * | 2022-10-13 | 2023-09-15 | 荣耀终端有限公司 | 图像数据的处理方法和终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110968404B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101606622B1 (ko) | Fsm을 구현하기 위한 특수 목적 요소의 이용 | |
JP2019139747A (ja) | 演算装置、演算実行設備及び演算実行方法 | |
US20140013313A1 (en) | Editor/Development Tool for Dataflow Programs | |
AU2014203218B2 (en) | Memory configuration for inter-processor communication in an MPSoC | |
CN110968404B (zh) | 一种设备数据处理方法及装置 | |
EP3525119A1 (en) | Deep learning fpga converter | |
CN110047477B (zh) | 一种加权有限状态转换机的优化方法、设备以及系统 | |
CN107479866B (zh) | 基于重构技术实现开放终端应用数据与功能的方法 | |
CN101604286A (zh) | 一种关键字驱动表格生成方法 | |
CN110352400A (zh) | 用于处理报文的方法和装置 | |
CN116341642B (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
US10073938B2 (en) | Integrated circuit design verification | |
CN116304704A (zh) | 一种模型训练方法、装置、存储介质及电子设备 | |
CN114449063B (zh) | 一种报文处理方法、装置及设备 | |
KR102610431B1 (ko) | 인공지능 분석 기반 프로그램 소스코드의 요약문 생성 장치 및 방법 | |
CN115640989A (zh) | 一种动态调整业务流程的配置装置及方法 | |
CN108062223A (zh) | 一种Simulink模型之间建立连接关系的方法及装置 | |
US11080141B2 (en) | Automatic restarting and reconfiguration of physics-based models in event of model failure | |
CN109753713B (zh) | 基于内部实体状态转移的数字电路功能建模方法及系统 | |
US8495033B2 (en) | Data processing | |
Benveniste et al. | Hybrid systems modeling challenges caused by cyber-physical systems | |
KR101731629B1 (ko) | Circus로부터 go 코드를 자동으로 생성하는 방법 및 장치 | |
CN111158704B (zh) | 模型建立方法、部署流程生成方法、装置和电子设备 | |
US11727204B2 (en) | Schema and object extractor | |
US20230350653A1 (en) | Computational Graph Optimization Method and Apparatus |
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 |