CN114764372A - 数据处理方法、装置、电子设备和存储介质 - Google Patents
数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114764372A CN114764372A CN202110058060.9A CN202110058060A CN114764372A CN 114764372 A CN114764372 A CN 114764372A CN 202110058060 A CN202110058060 A CN 202110058060A CN 114764372 A CN114764372 A CN 114764372A
- Authority
- CN
- China
- Prior art keywords
- processing
- processing unit
- machine learning
- hardware configuration
- model
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000003860 storage Methods 0.000 title abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 640
- 238000010801 machine learning Methods 0.000 claims abstract description 207
- 238000005457 optimization Methods 0.000 claims abstract description 128
- 238000000034 method Methods 0.000 claims abstract description 78
- 238000004364 calculation method Methods 0.000 claims abstract description 21
- 230000002452 interceptive effect Effects 0.000 claims description 46
- 238000004458 analytical method Methods 0.000 claims description 28
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 29
- 238000003062 neural network model Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 25
- 238000012549 training Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000013433 optimization analysis Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009751 slip forming Methods 0.000 description 1
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/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
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备和存储介质,所述的方法包括:确定机器学习模型和硬件配置信息;依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程;将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,得到数据处理结果。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法、一种数据处理装置、一种电子设备和一种存储介质。
背景技术
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。目前通常会采用机器学习模型来解决一些推理问题,常见的机器学习模型包括算法模型、决策模型、神经网络模型等。目前通常会将多个机器学习模型互相连接,形成多计算节点(Compute Node)的计算图来提供服务。
目前,对计算图进行处理通常通过处理线程来进行数据的处理,但是由于硬件资源的限制,通常无法为每一个处理节点分配一个处理线程,因此,现有的方式通常是随机将两个或两个以上的节点分配到同一个处理线程上,以进行数据处理。
但是采用这样的方式,可能将两个执行时长较长的处理节点分配到同一个线程上进行串行(执行完毕一个再执行另一个的方式)的执行,会导致数据处理效率降低。
发明内容
本申请实施例提供了一种数据处理方法,以提高数据处理效率。
相应的,本申请实施例还提供了一种数据处理装置、一种电子设备和一种存储介质,用以保证上述系统的实现及应用。
为了解决上述问题,本申请实施例公开了一种数据处理方法,所述的方法包括:确定机器学习模型和硬件配置信息;依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程;将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,得到数据处理结果。
为了解决上述问题,本申请实施例公开了一种数据处理方法,包括:对机器学习模型的处理单元进行分析,确定对应的优化策略;依据所述优化策略,提供硬件配置参考信息;接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。
为了解决上述问题,本申请实施例公开了一种数据处理方法,包括:提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口;接收对模型上传接口的触发,以获取对应的上传数据,并上传,以确定机器学习模型;接收所述机器学习模型对应的硬件配置参考信息,并在交互页面中展示;接收对硬件配置参考信息的选择操作,以确定选择信息并上传,以确定硬件配置信息。
为了解决上述问题,本申请实施例公开了一种数据处理装置,包括:处理模型获取模块,用于确定机器学习模型和硬件配置信息;处理线程获取模块,用于依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程;处理单元调度模块,用于将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,得到数据处理结果。
为了解决上述问题,本申请实施例公开了一种数据处理装置,包括:优化策略确定模块,用于对机器学习模型的处理单元进行分析,确定对应的优化策略;参考信息确定模块,用于依据所述优化策略,提供硬件配置参考信息;选择信息确定模块,用于接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。
为了解决上述问题,本申请实施例公开了一种数据处理装置,包括:交互页面展示模块,用于提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口;模型数据上传模块,用于接收对模型上传接口的触发,以获取对应的上传数据,并上传,以确定机器学习模型;参考信息展示模块,用于接收所述机器学习模型对应的硬件配置参考信息,并在交互页面中展示;选择信息上传模块,用于接收对硬件配置参考信息的选择操作,以确定选择信息并上传,以确定硬件配置信息。
为了解决上述问题,本申请实施例公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如上述实施例中一个或多个所述的方法。
为了解决上述问题,本申请实施例公开了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如上述实施例中一个或多个所述的方法。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,可以获取机器学习模型和硬件配置信息,并依据机器学习模型的优化策略,将机器学习模型的处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算。在本申请实施例中,可以预先对机器学习模型中各处理单元进行分析,确定机器学习模型对应的优化策略,在机器学习模型进行数据处理的过程中,可以按照优化策略来为机器学习模型的处理单元分配处理线程,能够提升数据的处理效率。
附图说明
图1A是本申请一个实施例的数据处理方法的流程示意图;
图1B是本申请另一个实施例的数据处理方法的流程示意图;
图2是本申请再一个实施例的数据处理方法的流程示意图;
图3是本申请再一个实施例的数据处理方法的流程示意图;
图4是本申请再一个实施例的数据处理方法的流程示意图;
图5是本申请再一个实施例的数据处理方法的流程示意图;
图6是本申请再一个实施例的数据处理方法的流程示意图;
图7是本申请一个实施例的数据处理装置的结构示意图;
图8是本申请另一个实施例的数据处理装置的结构示意图;
图9是本申请再一个实施例的数据处理装置的结构示意图;
图10是本申请一实施例提供的装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例可应用于机器学习模型的领域中,能够对基于机器学习的模型进行优化分析。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。常见的机器学习模型包括算法模型、决策模型、神经网络(NeuralNetworks,NN)模型等。
下面以将本申请实施例的方式应用在神经网络模型的优化场景中为例,对本申请实施例的方法进行描述,其中,神经网络模型是由大量的、简单的神经元(或称算子、处理节点、计算节点等)广泛地互相连接而形成的复杂网络系统。此外,目前基于深度学习的服务/应用/训练的快速发展导致单一的神经网络模型已经无法满足场景的需求,更多场景会使用多个神经网络模型串并联的方式形成一个多计算节点(Compute Node)的计算图来提供服务,因此,本申请实施例中,可以将多计算节点的计算图看作是一个神经网络模型。
如图1A所示,本申请实施例可以通过服务端来执行,服务端可以向终端提供多个对应不同编程方式的模型上传接口,模型提供方可以通过终端模型上传接口来上传神经网络模型的相关数据。服务端依据相关数据确定神经网络模型之后,可以对神经网络模型进行分析,得到优化策略,其中,所述优化策略包括处理单元与处理器的处理线程之间的对应关系。然后依据优化策略,确定对应的硬件配置参考信息,然后将硬件配置参考信息发送给终端,模型提供方可以在终端对硬件配置参考信息进行选择,进而上传选择信息给服务端,服务端接收到选择信息之后,可以确定模型提供方选择的硬件配置信息,以便通过硬件配置信息对应的设备,按照优化策略来进行神经网络模型的数据处理。其中,在一个示例中,硬件配置信息可包括用于应用神经网络模型的加速器设备的设备信息。
具体来说,如图1B所示,本申请实施例中,服务端可以向终端提供多个对应不同编程方式的模型上传接口,模型提供方可以通过终端模型上传接口来上传对应神经网络模型的上传数据,服务端接收到上传数据之后,可以通过编译优化模型,将上传数据编译为神经网络模型,例如,上传数据可以为代码数据,编译优化模型可以对代码数据进行编译,确定对应的算子,进一步得到神经网络模型;再例如,上传数据可以为模型架构图,模型架构图可以包括节点和连接边,编译优化模型可以对模型架构图中节点的节点元素和连接边的边元素进行分析,并进行编译处理,得到神经网络模型。然后可以通过编译框架将至少一个神经网络模型转变为计算图(Compute Directed acyclic graph),计算图由计算节点(Compute Node)组成,计算节点可以理解为处理节点、算子。
之后,服务端可以对计算图中各处理单元进行分析,确定各处理单元进行数据处理所需的执行时长,其中,处理单元包括至少一个计算节点,如可以为处理单元配置处理器的处理线程,并设定该处理线程的输入数据量阈值,以确定处理线程单独执行处理单元所需的执行时长,其中,处理器可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)以及其他处理器。处理线程还可以称为线程(thread),是能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。输入数据量阈值还可以称为批量尺寸(batch size),批量尺寸的作用是限制处理单元进行一次数据处理(如训练)所选取的样本数,批量尺寸的大小影响模型的优化程度和速度。例如在训练数据的总数不变的情况下,单次输入的数据量(批量尺寸)增大,则迭代次数减小;单次输入的数据量(批量尺寸)减小,则迭代次数增多,通过对批量尺寸的调整,来控制模型的优化速度。举例来说,在使用1000组训练数据来训练神经网络模型时,若采用批量尺寸为100组,则相应的神经网络模型需要迭代10次;若采用批量尺寸为10组,则相应的,神经网络模型需要迭代100次,通过对批量尺寸的调整,从而达到控制模型的优化速度。
确定了处理单元所需的执行时长之后,服务端可以按照各处理单元对应的执行时长,调整处理单元的处理线程和输入数据量阈值,进而得到优化策略,其中,优化策略包括处理单元与处理器的处理线程之间的对应关系。例如,服务端可以将执行时长最短的两个处理单元绑定,并配置对应的处理线程以及处理线程的输入数据量阈值,以形成优化策略;还可以调整执行时长最短的处理单元的输入数据量阈值,进而确定优化策略。
在确定了优化策略之后,可以依据优化策略,确定对应的硬件配置参考信息,并将硬件配置参考信息发送给模型提供方的终端。模型提供方可以在终端对硬件配置参考信息进行选择,进而上传选择信息给服务端,服务端接收到选择信息之后,可以确定模型提供方选择的加速器设备,得到硬件配置信息,以便通过加速器设备来进行神经网络模型的数据处理。本申请实施例中,可以通过加速器设备来进行神经网络模型的训练,也可以通过加速器设备进行训练好的神经网络模型的数据处理,具体可依据需求设置。
具体的,以通过训练好的神经网络模型进行数据处理为例,本申请实施例可以获取神经网络模型对应的优化策略,所述优化策略包括处理单元与加速器设备内处理器的处理线程之间的对应关系。然后,服务端可以通过运行系统,将计算图中的处理单元分配到推理请求队列中,并通过对应的推理模型从推理请求队列中读取处理单元,并分配到处理单元队列中,其中,处理单元队列可以按照处理单元对处理线程的占用情况进行划分,具体可包括:计算密集型队列、访存密集型队列以及数据传输队列。在推理模型将处理单元调度到处理单元队列之后,可以按照各处理单元之间的依赖关系,确定各处理单元之间的执行先后顺序(或称调度顺序),并按照该顺序,将处理单元队列中的处理单元映射到处理线程队列中,以通过对应的处理线程完成处理单元对应的计算。在本申请实施例中,可以预先对神经网络模型中各处理单元的执行时长进行分析,确定神经网络模型对应的优化策略,在神经网络模型进行数据处理的过程中,可以按照优化策略来为神经网络模型的处理单元分配处理线程,能够提升数据的处理效率。
本申请实施例的方式是对机器学习模型基础层面(硬件配置方面)的优化,因此,本申请实施例的方式可以应用在各类的机器学习模型的数据处理场景中,例如,可以应用在机器学习模型的训练场景中,也可以应用在训练完成的机器学习模型的应用场景中;再例如,还可以应用在对音频、图像、视频等数据进行处理的机器学习模型中,如机器学习模型可以用于进行音频的语音识别、图像或视频的深度识别、图像的人脸识别、图像中人物的肢体动作识别等。再例如,还可以应用在深度神经网络(Deep Neural Networks,DNN)模型的训练以及应用的场景中。再例如,本申请实施例可以应用于对直播、电商领域、金融、物流、社交、自动驾驶等场景中的机器学习模型中,能够在上述场景的机器学习模型的训练阶段和/或推理阶段对机器学习模型进行优化分析,以提升上述场景中机器学习模型的数据处理效率。举例来说,可以应用在对直播场景中用于完成对象识别、人脸识别或轨迹追踪的机器学习模型进行优化处理。再举例来说,可以应用在对电商场景中用于完成商品识别或推荐商品的机器学习模型进行优化处理。再举例来说,可以对自动驾驶场景中用于完成对象识别、对象轨迹追踪或对象距离识别的机器学习模型进行优化处理。
本申请实施例提供一种数据处理方法,可以应用在服务端,服务端可以理解为进行机器学习模型训练、和/或应用训练完成的机器学习模型进行数据处理的设备,服务端可以与模型提供方的终端进行交互。服务端能够对模型提供方提供的机器学习模型进行分析,确定对应的优化策略,并按照优化策略向模型提供方提供硬件配置参考信息,以便模型提供方选择适合机器学习模型的硬件,具体的,如图2所示,所述方法包括:
步骤202、对机器学习模型的处理单元进行分析,确定对应的优化策略,所述优化策略包括与所述处理单元对应的处理线程和输入数据量阈值。服务端可以提供多个对应不同编程方式的接口给终端,模型提供方可以通过对应的接口来上传机器学习模型的相关数据。具体的,作为一个可选的实施例,所述方法还包括:提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口;依据模型上传接口获取上传数据,并对上传数据进行编译处理,得到机器学习模型。服务端可以下发交互页面给终端,交互页面中包括多个类型的模型上传接口,模型提供方可以通过终端的交互页面,选择对应的模型上传接口,以上传机器学习模型的上传数据,其中,上传数据可以为对应不同编程语言的代码段,也可以为模型架构图,模型架构图可以包括节点和连接边,模型架构图的节点与计算节点(或称算子)对应,模型架构图的连接边对应计算节点之间的依赖关系(先后顺序),可以通过配置模型架构图中节点的节点元素以及连接边的边元素,来确定节点对应的计算节点以及计算节点之间的依赖关系。服务端接收到模型架构图之后,可以对模型架构图中节点的节点元素和连接边的边元素进行分析,并进行编译处理,得到机器学习模型。
在确定了机器学习模型之后,服务端可以对机器学习模型中各处理单元的执行时长进行分析,以确定对应机器学习模型的优化策略,具体的,作为一个可选的实施例,所述对机器学习模型的处理单元进行分析,确定对应的优化策略,包括:为机器学习模型的各处理单元各分配一个处理线程,并配置处理线程的输入数据量阈值;依据处理单元对应的输入数据量阈值和处理线程,确定处理单元所需的执行时长;依据处理单元所需的执行时长,确定机器学习模型是否满足预设运行条件,得到模型运行分析结果;在模型运行分析结果为第一结果的情况下,依据处理单元的处理线程和输入数据量阈值,确定优化策略。
在一个可选的示例中,可以依据处理线程的输入数据量上限值,来设定输入数据量阈值,具体的,所述配置处理线程的输入数据量阈值,包括:获取为处理单元分配的处理线程对应的输入数据量上限值;依据所述输入数据量上限值,配置处理线程的输入数据量阈值。可依据每个处理线程的输入数据量上限值,按照对应的比例,来设定处理线程的输入数据量阈值。如可以按照100%、80%、60%等比例,设定处理线程的输入数据流阈值。在为处理单元配置了处理线程以及输入数据量阈值之后,可以获得处理单元进行数据处理所需的执行时长,之后可以依据处理单元所需的执行时长,确定机器学习模型是否满足预设运行条件,预设运行条件可以包括处理线程数量条件、机器学习模型的模型执行时长条件等。预设运行条件可以依据机器学习模型的复杂度和加速器设备的计算能力来确定,例如,可以依据机器学习模型的复杂度和加速器设备的计算能力确定比例信息,并依据比例信息和机器学习模型中执行时间最长的处理单元所需的执行时长,来确定预设运行条件。服务端可以依据机器学习模型的处理单元所需的执行时长,确定机器学习模型是否满足预设运行条件,进而得到模型运行分析结果。
模型运行分析结果可以包括第一结果和第二结果,其中,第一结果可以理解为机器学习模型满足预设运行条件,第二结果可以理解为机器学习模型未满足预设运行条件。在模型运行分析结果为第一结果时,服务端可以记录处理单元的处理线程和输入数据量阈值,得到优化策略。在模型运行结果为第二结果时,服务端可以从处理单元中筛选出目标处理单元,并对目标处理单元进行优化,以进行下一次分析,具体的,作为一个可选的实施例,所述方法还包括:在模型运行分析结果为第二结果的情况下,筛选出至少两个执行时长最短的目标处理单元;获取目标处理单元之间的执行时长差值,并确定所述执行时长差值是否超过预设阈值;在所述执行时长差值超过预设阈值的情况下,调整执行时长短的目标处理单元的输入数据量阈值;在所述执行时长差值未超过预设阈值的情况下,将至少两个目标处理单元绑定,并重新配置处理线程和输入数据量阈值,以确定处理单元对应的执行时长。
在模型运行分析结果为第二结果的情况下,可以筛选出至少两个执行时长最短的目标处理单元,并两两对比,确定执行时长差值,然后将执行时长差值与预设阈值进行对比,并在执行时长差值超过预设阈值的情况下,调整执行时长短的目标处理单元的输入数据量阈值。例如,可以缩短执行时长短的目标处理单元的输入数据量阈值,以便执行时长短的目标处理单元能够更加早的进行执行。在执行时长差值未超过预设阈值的情况下,可以将两个目标处理单元进行绑定,以便通过同一个处理线程进行两个目标处理单元的处理。将两个目标处理单元绑定之后,可以重新配置处理线程和输入数据量阈值,以便进行下一次迭代分析,直至在模型运行分析结果为第一结果时,确定机器学习模型对应的优化策略。
在实际应用过程中,通常会将多个机器学习模型以串并联进行连接,形成大的(包含多个计算节点的)机器学习模型,因此,在一个可选的实施例中,本申请实施例可以确定由多个子机器学习模型组成的机器学习模型的优化策略。另外,在另一个可选的实施例中,本申请实施例还可以将包含多个计算节点的机器学习模型进行分割,并将分割后的各部分作为一个单独的机器学习模型进行分析,确定对应的优化策略,具体的,所述方法还包括:获取机器学习模型,并对机器模型进行分割,得到子机器学习模型,并对子机器学习模型的处理单元进行分析,确定对应的优化策略。本实施例可以将机器学习模型分割为多个子机器学习模型,并对子机器学习模型进行分析,得到各子机器学习模型对应的优化策略,以便依据不同的优化策略,为分割后的各部分分别配置对应的硬件,以进行分割后的各部分对应的数据处理。机器学习模型的分割方式可以按照需求进行配置,例如按照数据处理的进程可以划分为多个不同的数据处理阶段,从而按照数据处理阶段对机器学习模型进行分割。
此外,在一个可选的实施例中,本申请实施例中在确定了机器学习模型对应的优化策略之后,可以记录机器学习模型的类型和对应的优化策略,形成对应关系,具体的,所述方法还包括:获取机器学习模型的模型类型,并按照预设的对应关系,确定机器学习模型对应的优化策略。本实施例中,机器学习模型的模型类型可以依据机器学习模型的处理单元数量、处理单元对数据进行处理的方式来确定,本实施例可以通过不断记录各类型的机器学习模型以及各优化策略,不断形成新的对应关系,从而在后续接收到机器学习模型之后,可以按照机器学习模型所属的类型,确定对应的优化策略,而略去了对机器学习模型进行复杂分析的过程,能够提升优化策略的分析效率。
在确定了优化策略之后,服务端可以在步骤204中,依据所述优化策略,提供硬件配置参考信息。服务端可以将配置参考信息下发给终端,终端可以在交互页面中展示多个硬件配置参考信息,具体的,作为一个可选的实施例,所述依据所述优化策略,提供硬件配置参考信息,包括:依据所述优化策略,确定多个硬件配置参考信息;下发多个硬件配置参考信息,以在交互页面中进行显示。在设定预设运行条件时,可以设置多个预设运行条件,以便确定多个优化方式,作为优化策略,并依据优化策略提供多个硬件配置参考信息给模型提供方进行选择。用户在终端的交互页面中选择了硬件配置参考信息之后,可以将选择信息上传给服务端,服务端在步骤206中,接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。其中,硬件配置信息可以包括用于应用机器学习模型的加速器设备的设备信息。本申请实施例中,可以通过加速器设备来进行机器学习模型的训练,也可以通过加速器设备进行训练好的机器学习模型的数据处理,具体可依据需求设置。
在本申请实施例中,可以对机器学习模型的处理单元进行分析,确定各处理单元进行数据处理所需的执行时长,并确定对应的优化策略,然后依据优化策略向模型提供方提供硬件配置参考信息,模型提供方可以依据硬件配置参考信息作出选择,以确定对应的硬件配置信息。本申请实施例中,可以对机器学习模型的处理单元进行分析,确定多个与应用机器学习模型匹配的硬件配置,并获取模型提供方的选择,进而得到适合机器学习模型的硬件配置,从而通过对应的硬件设备按照优化策略,来完成机器学习模型对应的数据处理过程,提升数据处理效率。
本申请实施例还提供一种数据处理方法,可以应用在服务端,如图3所示,所述方法包括:
步骤302、提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口。并依据模型上传接口获取上传数据,并对上传数据进行编译处理,得到机器学习模型。
步骤304、为机器学习模型的各处理单元各分配一个处理线程;并获取为处理单元分配的处理线程对应的输入数据量上限值,依据所述输入数据量上限值,配置处理线程的输入数据量阈值。
步骤306、依据处理单元对应的输入数据量阈值和处理线程,确定处理单元所需的执行时长;并依据处理单元所需的执行时长,确定机器学习模型是否满足预设运行条件,得到模型运行分析结果。
步骤308、在模型运行分析结果为第一结果的情况下,依据处理单元的处理线程和输入数据量阈值,确定优化策略,所述优化策略包括与所述处理单元对应的处理线程和输入数据量阈值。
步骤310、在模型运行分析结果为第二结果的情况下,筛选出至少两个执行时长最短的目标处理单元;并获取目标处理单元之间的执行时长差值,确定所述执行时长差值是否超过预设阈值。
步骤312、在所述执行时长差值超过预设阈值的情况下,调整执行时长短的目标处理单元的输入数据量阈值。
步骤314、在所述执行时长差值未超过预设阈值的情况下,将至少两个目标处理单元绑定,并重新配置处理线程和输入数据量阈值,以确定处理单元对应的执行时长。
步骤316、依据所述优化策略,确定多个硬件配置参考信息,并下发多个硬件配置参考信息,以在交互页面中进行显示。
步骤318、接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。
在本申请实施例中,可以提供交互页面给模型提供方的终端,模型提供方通过交互页面中的模型上传接口来上传机器学习模型的上传数据,服务端依据上传数据确定机器学习模型。然后,可以为机器学习模型的处理单元配置处理线程以及输入数据量阈值,得到各处理单元进行数据处理所需的执行时长,并确定对应的优化策略,然后依据优化策略向模型提供方提供硬件配置参考信息,模型提供方可以依据硬件配置参考信息作出选择,以确定硬件配置信息。
在上述实施例的基础上,本申请实施例提供一种数据处理方法,可以应用在终端,终端可以理解为与服务端进行交互,以向服务端上传机器学习模型的设备。模型提供方可以通过终端向服务端上传机器学习模型的相关数据,服务端可以对接收到相关的数据进行编译,得到机器学习模型,并确定对应的优化策略,然后按照优化策略向终端提供硬件配置参考信息,以便模型提供方选择适合机器学习模型的硬件,具体的,如图4所示,所述方法包括:
步骤402、提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口。
步骤404、接收对模型上传接口的触发,以获取对应的上传数据,并上传,以确定机器学习模型。
步骤406、接收所述机器学习模型对应的硬件配置参考信息,并在交互页面中展示。
步骤408、接收对硬件配置参考信息的选择操作,以确定选择信息并上传,以确定硬件配置信息。
本实施例的实施方式与上述实施例的实施方式类似,具体实施方式可以参考上述实施例的具体实施方式,此处不再赘述。
在本申请实施例中,终端可以接收服务端提供的交互页面,交互页面中包含有多个模型上传接口。模型提供方可以通过模型上传接口来上传机器学习模型的上传数据,以依据上传数据确定机器学习模型。然后,服务端可以对机器学习模型的处理单元进行分析,确定各处理单元进行数据处理所需的执行时长,并确定对应的优化策略,然后依据优化策略向终端提供硬件配置参考信息,模型提供方可以依据硬件配置参考信息作出选择,以确定对应的硬件配置信息。
在上述实施例的基础上,本申请实施例还提供一种数据处理方法,可以应用在服务端,服务端可以理解为进行机器学习模型训练、和/或应用训练完成的机器学习模型进行数据处理的设备,服务端可以与模型提供方的终端进行交互。服务端能够按照优化策略,将机器学习模型的处理单元分配到对应的处理线程上,以更加高效的进行数据处理,具体的,如图5所示,所述方法包括:
步骤502、确定机器学习模型和硬件配置信息,所述机器学习模型由处理单元组成,所述硬件配置信息可以包括加速器设备的设备信息,加速器设备包括至少一个处理器。服务端可以获取至少一个机器学习模型,并组合成计算图以提供服务。在机器学习模型进行数据处理(如模型训练的训练过程、训练好的模型的应用过程)之前,服务端可以对机器学习模型中各处理单元(的执行时长)进行分析,得到优化策略,并依据优化策略向模型提供方提供硬件配置参考信息,模型提供方可以选择对应的硬件配置参考信息,以确定计算图对应的加速器设备,并确定对应的优化策略,以在步骤504中、依据优化策略,确定机器学习模型的各处理单元对应的处理线程。其中,所述优化策略包括处理单元与处理器的处理线程之间的对应关系,所述优化策略依据处理单元单独在处理线程中进行数据处理所需的执行时长来确定。在确定了机器学习模型的各处理单元对应的处理线程之后,服务端可以在步骤506中,将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,得到数据处理结果。
服务端可以获取机器学习模型中的各个处理单元,并添加到推理请求队列中,然后通过对应的推理模型,将推理请求队列中的处理单元分配到处理器的处理线程的调度队列中,具体的,作为一个可选的实施例,所述将处理单元调度到处理线程的调度队列中,包括:将处理单元调度到推理请求队列中;通过推理模型从推理请求队列中读取处理单元,并按照处理单元类型,将处理单元分配到处理单元队列中;将处理单元队列中的处理单元映射到处理线程的调度队列中。其中,作为一个可选的实施例,可以按照处理单元对处理线程的占用情况,将处理单元划分为三种类型,包括:计算密集型、访存密集型以及数据传输型,相应的,所述处理单元队列包括计算密集型队列、访存密集型队列以及数据传输队列,相应的,调度队列与处理单元队列对应,调度队列包括:计算密集型队列、访存密集型队列以及数据传输队列。本实施例可以依据处理单元所属的类型,将处理单元分配到对应的处理单元队列中,然后映射到调度队列中,从而使得推理模型能够将不同的机器学习模型的处理单元进行分配,在模型调度的基础上,进一步提升了硬件的利用率。
其中,在将处理单元从处理单元队列映射到调度队列的过程中,可以按照处理单元执行的先后顺序,将处理单元队列中的处理单元映射到调度队列中,具体的,作为一个可选的实施例,所述将处理单元队列中的处理单元映射到处理线程的调度队列中,包括:为处理单元队列中的处理单元配置处理单元标记信息,所述处理单元标记信息包括处理单元对应的机器学习模型以及处理单元与其他处理单元之间的依赖关系;依据所述处理单元标记信息,确定处理单元的调度顺序,并依据调度顺序,将处理单元队列中的处理单元映射到调度序列中。在将处理单元按照类型分配到处理单元队列中之后,服务端可以为处理单元队列中的处理单元标记其所属的机器学习模型以及处理单元之间的依赖关系,之后可以依据处理单元之间的依赖关系,确定各处理单元之间的调度顺序,并按照调度顺序,将处理单元队列中的处理单元映射到调度队列中,处理器的处理线程可以从调度队列中依次调取处理单元,并进行对应的数据处理。
本申请实施例的方式除了可以为处理单元配置处理线程之外,还可以配置处理线程的输入数据量阈值,以控制处理线程的输入数据量,以便更加高效的进行数据处理,具体的,作为一个可选的实施例,所述优化策略还包括输入数据量阈值,所述通过处理线程来完成处理单元对应的计算,包括:依据输入数据量阈值,获取所述处理单元对应的输入数据;对输入数据进行处理单元对应的数据处理,得到数据处理结果。在一个可选的实施例中,可以为处理线程配置一个固定的输入数据量阈值,使得处理线程能够在输入数据量达到输入数据量阈值时,进行处理单元对应的数据处理。在另一个可选的实施例中,在后执行的处理单元的执行需要依赖于在先执行的处理单元的数据处理结果,因此,若是输入数据量阈值保持不变,那么可能会导致在后执行的处理单元会需要较长的时间来等待输入数据量达到输入数据量阈值,会导致对应的处理线程空闲时间过长,因此,所述方法还可以包括:依据处理单元对处理线程的利用率,调整所述输入数据量阈值。服务端还可以对处理单元对应的处理线程的利用率进行检测,并根据处理线程的利用率来动态调整输入数据量阈值,进一步的提升数据处理效率。
为了更加高效的将数据同步到处理线程,本申请实施例还可以采取异步并行的方式,进行数据的同步,具体的,作为一个可选的实施例,所述获取所述处理单元对应的输入数据,包括:调取输入数据到第一缓存中;采取异步并行的方式,将输入数据同步到处理线程的第二缓存中,以便处理线程从第二缓存中获取输入数据。输入数据可以为存储在数据库中的数据,也可以为从其他设备获取的数据,第一缓存和第二缓存可以理解为缓存(cache),是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,它先于内存与CPU交换数据,因此速率很快。第一缓存还可以称为设备内存(device memory),第一缓存为对应输入数据的缓存,第二缓存还可以称为宿主机内存(host memory),第二缓存为对应处理线程的缓存,本申请实施例可以将输入数据调度到第一缓存中,并采取异步并行的方式将输入数据同步到第二缓存中,能够提升数据传输效率。
在本申请实施例中,可以获取机器学习模型和硬件配置信息,并依据机器学习模型的优化策略,将机器学习模型的处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算。在本申请实施例中,可以预先对机器学习模型中各处理单元进行分析,确定机器学习模型对应的优化策略,在机器学习模型进行数据处理的过程中,可以按照优化策略来为机器学习模型的处理单元分配处理线程,能够提升数据的处理效率。
在上述实施例的基础上,本申请实施例提供一种数据处理方法,可以应用在服务端,具体的,如图6所示,所述方法包括:
步骤602、确定机器学习模型和硬件配置信息。
步骤604、依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程,所述优化策略包括处理单元与处理器的处理线程之间的对应关系,所述优化策略依据处理单元单独在处理线程中进行数据处理所需的执行时长来确定。
步骤606、将处理单元调度到推理请求队列中。
步骤608、通过推理模型从推理请求队列中读取处理单元,并按照处理单元类型,将处理单元分配到处理单元队列中。作为一个可选的实施例,所述处理单元队列包括计算密集型队列、访存密集型队列以及数据传输队列。
步骤610、为处理单元队列中的处理单元配置处理单元标记信息,所述处理单元标记信息包括处理单元对应的机器学习模型以及处理单元与其他处理单元之间的依赖关系。
步骤612、依据所述处理单元标记信息,确定处理单元的调度顺序,并依据调度顺序,将处理单元队列中的处理单元映射到调度序列中。
步骤614、依据输入数据量阈值,获取所述处理单元对应的输入数据。作为一个可选的实施例,所述输入数据量阈值可以依据处理线程的利用率来动态调整,具体的,所述方法还包括:依据处理单元对处理线程的利用率,调整所述输入数据量阈值。本实施例还可以采取并行同步的方式来同步输入数据,具体的,作为一个可选的实施例,所述获取所述处理单元对应的输入数据,包括:调取输入数据到第一缓存中;采取异步并行的方式,将输入数据同步到处理线程的第二缓存中,以便处理线程从第二缓存中获取输入数据。
步骤616、对输入数据进行处理单元对应的数据处理,得到数据处理结果。
在本申请实施例中,可以获取机器学习模型和对应的硬件配置信息,并依据机器学习模型的优化策略和硬件配置信息,确定机器学习模型的处理单元对应的处理线程。在确定了处理单元对应的处理线程之后,可以将处理单元调度到推理请求队列中,然后通过推理模型从推理请求队列中读取处理单元,并按照处理单元所属的处理单元类型,将处理单元分配到对应的处理单元队列中,然后可以为处理单元队列中的处理单元配置处理单元标记信息,以确定处理单元之间的调度顺序。之后按照调度顺序,将处理单元队列中的处理单元映射到调度队列中,以便处理线程从调度队列中获取处理单元,执行处理单元对应的数据处理,确定对应的数据处理结果。
在上述实施例的基础上,本申请实施例提供一种数据处理方法,可以应用在服务端,可以对应用在直播场景中,能够依据机器学习模型来对直播数据进行计算处理,从而得到对应的处理结果。具体的,所述方法包括:
获取直播数据,并确定对应的机器学习模型和硬件配置信息。
依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程,所述处理单元用于对直播数据进行处理。
将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,完成对直播数据进行分析处理,得到数据处理结果。
在本申请实施例中,机器学习模型可以对直播数据进行分析处理,例如,可以对直播数据中的目标进行人脸识别、对象识别、目标跟踪等处理。本实施例,可以获取直播数据、机器学习模型和硬件配置信息,并依据机器学习模型的优化策略,将机器学习模型的处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,从而完成对直播数据的分析处理,得到数据分析结果,在确定了数据分析结果之后,可以依据数据分析结果来对目标进行处理,如可以为人脸添加虚拟信息(如墨镜特效),达到虚拟与现实结合的效果,如可以为主播的面部进行美颜、美白处理。在本申请实施例中,可以预先对机器学习模型中各处理单元进行分析,确定机器学习模型对应的优化策略,在机器学习模型进行数据处理的过程中,可以按照优化策略来为机器学习模型的处理单元分配处理线程,能够提升数据的处理效率。
在上述实施例的基础上,本申请实施例提供一种数据处理方法,可以应用在服务端,可以对应用在自动驾驶场景中,能够依据机器学习模型来对行驶数据进行计算处理,从而得到对应的处理结果,以对车辆行驶进行控制。具体的,所述方法包括:
获取行驶数据,并确定对应的机器学习模型和硬件配置信息。
依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程,所述处理单元用于对行驶数据进行处理。
将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,完成对行驶视频数据进行分析处理,得到数据处理结果。
依据所述数据处理结果,确定驾驶指令,以对车辆进行控制。
在本申请实施例中,行驶数据可以包括行驶视频,本实施例可以获取行驶数据、机器学习模型和硬件配置信息,并依据机器学习模型的优化策略,将机器学习模型的处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,从而完成对行驶数据的分析处理,得到数据处理结果,以便依据数据处理结果确定驾驶指令(如加速、减速、转弯等),然后依据驾驶指令对车辆进行控制。在本申请实施例中,可以预先对机器学习模型中各处理单元进行分析,确定机器学习模型对应的优化策略,在机器学习模型进行数据处理的过程中,可以按照优化策略来为机器学习模型的处理单元分配处理线程,能够提升数据的处理效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,参照图7,具体可以包括如下模块:
处理模型获取模块702,用于确定机器学习模型和硬件配置信息。
处理线程获取模块704,用于依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程。
处理单元调度模块706,用于将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,得到数据处理结果。
综上,在本申请实施例中,可以获取机器学习模型和硬件配置信息,并依据机器学习模型的优化策略,将机器学习模型的处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算。在本申请实施例中,可以预先对机器学习模型中各处理单元进行分析,确定机器学习模型对应的优化策略,在机器学习模型进行数据处理的过程中,可以按照优化策略来为机器学习模型的处理单元分配处理线程,能够提升数据的处理效率。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,具体可以包括如下模块:
处理模型获取处理模块,用于确定机器学习模型和硬件配置信息。
处理线程获取处理模块,用于依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程,所述优化策略包括处理单元与处理器的处理线程之间的对应关系,所述优化策略依据处理单元单独在处理线程中进行数据处理所需的执行时长来确定。
处理单元调度处理模块,用于将处理单元调度到推理请求队列中。
处理单元分配处理模块,用于通过推理模型从推理请求队列中读取处理单元,并按照处理单元类型,将处理单元分配到处理单元队列中。作为一个可选的实施例,所述处理单元队列包括计算密集型队列、访存密集型队列以及数据传输队列。
处理单元标记处理模块,用于为处理单元队列中的处理单元配置处理单元标记信息,所述处理单元标记信息包括处理单元对应的机器学习模型以及处理单元与其他处理单元之间的依赖关系。
处理单元映射处理模块,用于依据所述处理单元标记信息,确定处理单元的调度顺序,并依据调度顺序,将处理单元队列中的处理单元映射到调度序列中。
输入数据获取处理模块,用于依据输入数据量阈值,获取所述处理单元对应的输入数据。作为一个可选的实施例,所述输入数据量阈值可以依据处理线程的利用率来动态调整,具体的,所述装置还包括:输入数据量阈值调整处理模块,用于依据处理单元对处理线程的利用率,调整所述输入数据量阈值。本实施例还可以采取并行同步的方式来同步输入数据,具体的,作为一个可选的实施例,所述输入数据量阈值调整处理模块,具体包括:调取输入数据到第一缓存中;采取异步并行的方式,将输入数据同步到处理线程的第二缓存中,以便处理线程从第二缓存中获取输入数据。
数据处理结果获取处理模块,用于对输入数据进行处理单元对应的数据处理,得到数据处理结果。
在本申请实施例中,可以获取机器学习模型和对应的硬件配置信息,并依据机器学习模型的优化策略和硬件配置信息,确定机器学习模型的处理单元对应的处理线程。在确定了处理单元对应的处理线程之后,可以将处理单元调度到推理请求队列中,然后通过推理模型从推理请求队列中读取处理单元,并按照处理单元所属的处理单元类型,将处理单元分配到对应的处理单元队列中,然后可以为处理单元队列中的处理单元配置处理单元标记信息,以确定处理单元之间的调度顺序。之后按照调度顺序,将处理单元队列中的处理单元映射到调度队列中,以便处理线程从调度队列中获取处理单元,执行处理单元对应的数据处理,确定对应的数据处理结果。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,参照图8,具体可以包括如下模块:
优化策略确定模块802,用于对机器学习模型的处理单元进行分析,确定对应的优化策略。
参考信息确定模块804,用于依据所述优化策略,提供硬件配置参考信息。
选择信息确定模块806,用于接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。
综上,在本申请实施例中,可以对机器学习模型的处理单元进行分析,确定各处理单元进行数据处理所需的执行时长,并确定对应的优化策略,然后依据优化策略向模型提供方提供硬件配置参考信息,模型提供方可以依据硬件配置参考信息作出选择,以确定对应的硬件配置信息。本申请实施例中,可以对机器学习模型的处理单元进行分析,确定多个与应用机器学习模型匹配的硬件配置,并获取模型提供方的选择,进而得到适合机器学习模型的硬件配置,从而通过对应的硬件设备按照优化策略,来完成机器学习模型对应的数据处理过程,提升数据处理效率。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,具体可以包括如下模块:
交互页面下发处理模块,用于提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口。并依据模型上传接口获取上传数据,并对上传数据进行编译处理,得到机器学习模型。
处理单元配置处理模块,用于为机器学习模型的各处理单元各分配一个处理线程;并获取为处理单元分配的处理线程对应的输入数据量上限值,依据所述输入数据量上限值,配置处理线程的输入数据量阈值。
执行时长获取处理模块,用于依据处理单元对应的输入数据量阈值和处理线程,确定处理单元所需的执行时长;并依据处理单元所需的执行时长,确定机器学习模型是否满足预设运行条件,得到模型运行分析结果。
优化策略获取处理模块,用于在模型运行分析结果为第一结果的情况下,依据处理单元的处理线程和输入数据量阈值,确定优化策略,所述优化策略包括与所述处理单元对应的处理线程和输入数据量阈值。
执行时长差判断处理模块,用于在模型运行分析结果为第二结果的情况下,筛选出至少两个执行时长最短的目标处理单元;并获取目标处理单元之间的执行时长差值,确定所述执行时长差值是否超过预设阈值。
第一调整处理模块,用于在所述执行时长差值超过预设阈值的情况下,调整执行时长短的目标处理单元的输入数据量阈值。
第二调整处理模块,用于在所述执行时长差值未超过预设阈值的情况下,将至少两个目标处理单元绑定,并重新配置处理线程和输入数据量阈值,以确定处理单元对应的执行时长。
参考信息获取处理模块,用于依据所述优化策略,确定多个硬件配置参考信息,并下发多个硬件配置参考信息,以在交互页面中进行显示。
选择信息接收处理模块,用于接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。
在本申请实施例中,可以提供交互页面给模型提供方的终端,模型提供方通过交互页面中的模型上传接口来上传机器学习模型的上传数据,服务端依据上传数据确定机器学习模型。然后,可以为机器学习模型的处理单元配置处理线程以及输入数据量阈值,得到各处理单元进行数据处理所需的执行时长,并确定对应的优化策略,然后依据优化策略向模型提供方提供硬件配置参考信息,模型提供方可以依据硬件配置参考信息作出选择,以确定硬件配置信息。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,参照图9,具体可以包括如下模块:
交互页面展示模块902,用于提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口。
模型数据上传模块904,用于接收对模型上传接口的触发,以获取对应的上传数据,并上传,以确定机器学习模型。
参考信息展示模块906,用于接收所述机器学习模型对应的硬件配置参考信息,并在交互页面中展示。
选择信息上传模块908,用于接收对硬件配置参考信息的选择操作,以确定选择信息并上传,以确定硬件配置信息。
综上,在本申请实施例中,终端可以接收服务端提供的交互页面,交互页面中包含有多个模型上传接口。模型提供方可以通过模型上传接口来上传机器学习模型的上传数据,以依据上传数据确定机器学习模型。然后,服务端可以对机器学习模型的处理单元进行分析,确定各处理单元进行数据处理所需的执行时长,并确定对应的优化策略,然后依据优化策略向终端提供硬件配置参考信息,模型提供方可以依据硬件配置参考信息作出选择,以确定对应的硬件配置信息。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括服务器、终端设备等设备。
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端等电子设备。图10示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1000。
对于一个实施例,图10示出了示例性装置1000,该装置具有一个或多个处理器1002、被耦合到(一个或多个)处理器1002中的至少一个的控制模块(芯片组)1004、被耦合到控制模块1004的存储器1006、被耦合到控制模块1004的非易失性存储器(NVM)/存储设备1008、被耦合到控制模块1004的一个或多个输入/输出设备1010,以及被耦合到控制模块1004的网络接口1012。
处理器1002可包括一个或多个单核或多核处理器,处理器1002可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1000能够作为本申请实施例中所述服务端、终端等设备。
在一些实施例中,装置1000可包括具有指令1014的一个或多个计算机可读介质(例如,存储器1006或NVM/存储设备1008)以及与该一个或多个计算机可读介质相合并被配置为执行指令1014以实现模块从而执行本公开中所述的动作的一个或多个处理器1002。
对于一个实施例,控制模块1004可包括任意适当的接口控制器,以向(一个或多个)处理器1002中的至少一个和/或与控制模块1004通信的任意适当的设备或组件提供任意适当的接口。
控制模块1004可包括存储器控制器模块,以向存储器1006提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器1006可被用于例如为装置1000加载和存储数据和/或指令1014。对于一个实施例,存储器1006可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1006可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,控制模块1004可包括一个或多个输入/输出控制器,以向NVM/存储设备1008及(一个或多个)输入/输出设备1010提供接口。
例如,NVM/存储设备1008可被用于存储数据和/或指令1014。NVM/存储设备1008可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备1008可包括作为装置1000被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,NVM/存储设备1008可通过网络经由(一个或多个)输入/输出设备1010进行访问。
(一个或多个)输入/输出设备1010可为装置1000提供接口以与任意其他适当的设备通信,输入/输出设备1010可以包括通信组件、音频组件、传感器组件等。网络接口1012可为装置1000提供接口以通过一个或多个网络通信,装置1000可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,装置1000可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1000可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1000包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
本申请实施例还提供了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据处理方法、一种数据处理装置、一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (19)
1.一种数据处理方法,其特征在于,所述的方法包括:
确定机器学习模型和硬件配置信息;
依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程;
将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,得到数据处理结果。
2.根据权利要求1所述的方法,其特征在于,所述优化策略还包括输入数据量阈值,所述通过处理线程来完成处理单元对应的计算,包括:
依据输入数据量阈值,获取所述处理单元对应的输入数据;
对输入数据进行处理单元对应的数据处理,得到数据处理结果。
3.根据权利要求2所述的方法,其特征在于,所述获取所述处理单元对应的输入数据,包括:
调取输入数据到第一缓存中;
采取异步并行的方式,将输入数据同步到处理线程的第二缓存中,以便处理线程从第二缓存中获取输入数据。
4.根据权利要求2所述的方法,其特征在于,还包括:
依据处理单元对处理线程的利用率,调整所述输入数据量阈值。
5.根据权利要求1所述的方法,其特征在于,所述将处理单元调度到处理线程的调度队列中,包括:
将处理单元调度到推理请求队列中;
通过推理模型从推理请求队列中读取处理单元,并按照处理单元类型,将处理单元分配到处理单元队列中;
将处理单元队列中的处理单元映射到处理线程的调度队列中。
6.根据权利要求5所述的方法,其特征在于,所述将处理单元队列中的处理单元映射到处理线程的调度队列中,包括:
为处理单元队列中的处理单元配置处理单元标记信息;
依据所述处理单元标记信息,确定处理单元的调度顺序,并依据调度顺序,将处理单元队列中的处理单元映射到调度序列中。
7.根据权利要求5所述的方法,其特征在于,所述处理单元队列包括计算密集型队列、访存密集型队列以及数据传输队列。
8.一种数据处理方法,其特征在于,包括:
对机器学习模型的处理单元进行分析,确定对应的优化策略;
依据所述优化策略,提供硬件配置参考信息;
接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。
9.根据权利要求8所述的方法,其特征在于,所述对机器学习模型的处理单元进行分析,确定对应的优化策略,包括:
为机器学习模型的各处理单元各分配一个处理线程,并配置处理线程的输入数据量阈值;
依据处理单元对应的输入数据量阈值和处理线程,确定处理单元所需的执行时长;
依据处理单元所需的执行时长,确定机器学习模型是否满足预设运行条件,得到模型运行分析结果;
在模型运行分析结果为第一结果的情况下,依据处理单元的处理线程和输入数据量阈值,确定优化策略。
10.根据权利要求9所述的方法,其特征在于,还包括:
在模型运行分析结果为第二结果的情况下,筛选出至少两个执行时长最短的目标处理单元;
获取目标处理单元之间的执行时长差值,并确定所述执行时长差值是否超过预设阈值;
在所述执行时长差值超过预设阈值的情况下,调整执行时长短的目标处理单元的输入数据量阈值;
在所述执行时长差值未超过预设阈值的情况下,将至少两个目标处理单元绑定,并重新配置处理线程和输入数据量阈值,以确定处理单元对应的执行时长。
11.根据权利要求9所述的方法,其特征在于,所述配置处理线程的输入数据量阈值,包括:
获取为处理单元分配的处理线程对应的输入数据量上限值;
依据所述输入数据量上限值,配置处理线程的输入数据量阈值。
12.根据权利要求8所述的方法,其特征在于,还包括:
提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口;
依据模型上传接口获取上传数据,并对上传数据进行编译处理,得到机器学习模型。
13.根据权利要求12所述的方法,其特征在于,所述依据所述优化策略,提供硬件配置参考信息,包括:
依据所述优化策略,确定多个硬件配置参考信息;
下发多个硬件配置参考信息,以在交互页面中进行显示。
14.一种数据处理方法,其特征在于,包括:
提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口;
接收对模型上传接口的触发,以获取对应的上传数据,并上传,以确定机器学习模型;
接收所述机器学习模型对应的硬件配置参考信息,并在交互页面中展示;
接收对硬件配置参考信息的选择操作,以确定选择信息并上传,以确定硬件配置信息。
15.一种数据处理装置,其特征在于,包括:
处理模型获取模块,用于确定机器学习模型和硬件配置信息;
处理线程获取模块,用于依据优化策略和硬件配置信息,确定机器学习模型的各处理单元对应的处理线程;
处理单元调度模块,用于将处理单元调度到处理线程的调度队列中,以通过处理线程来完成处理单元对应的计算,得到数据处理结果。
16.一种数据处理装置,其特征在于,包括:
优化策略确定模块,用于对机器学习模型的处理单元进行分析,确定对应的优化策略;
参考信息确定模块,用于依据所述优化策略,提供硬件配置参考信息;
选择信息确定模块,用于接收对硬件配置参考信息的选择信息,确定对应的硬件配置信息。
17.一种数据处理装置,其特征在于,包括:
交互页面展示模块,用于提供交互页面,所述交互页面包括多个对应不同编程方式的模型上传接口;
模型数据上传模块,用于接收对模型上传接口的触发,以获取对应的上传数据,并上传,以确定机器学习模型;
参考信息展示模块,用于接收所述机器学习模型对应的硬件配置参考信息,并在交互页面中展示;
选择信息上传模块,用于接收对硬件配置参考信息的选择操作,以确定选择信息并上传,以确定硬件配置信息。
18.一种电子设备,其特征在于,包括:处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-14中一个或多个所述的方法。
19.一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1-14中一个或多个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110058060.9A CN114764372A (zh) | 2021-01-15 | 2021-01-15 | 数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110058060.9A CN114764372A (zh) | 2021-01-15 | 2021-01-15 | 数据处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114764372A true CN114764372A (zh) | 2022-07-19 |
Family
ID=82364919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110058060.9A Pending CN114764372A (zh) | 2021-01-15 | 2021-01-15 | 数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114764372A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964181A (zh) * | 2023-03-10 | 2023-04-14 | 之江实验室 | 一种数据处理的方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109409513A (zh) * | 2018-10-10 | 2019-03-01 | 广州市百果园信息技术有限公司 | 一种基于神经网络的任务处理方法及相关设备 |
US20190114533A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Machine learning runtime library for neural network acceleration |
KR101974091B1 (ko) * | 2018-11-14 | 2019-04-30 | (주)시큐레이어 | 머신러닝 기반 쓰레드풀을 관리하는 방법 및 이를 사용한 컴퓨팅 장치 |
CN111914985A (zh) * | 2019-05-10 | 2020-11-10 | 杭州海康威视数字技术股份有限公司 | 深度学习网络模型的配置方法、装置及存储介质 |
CN112052083A (zh) * | 2020-09-15 | 2020-12-08 | 浙江智慧视频安防创新中心有限公司 | 云端gpu的显存调度方法、装置、电子设备及存储介质 |
-
2021
- 2021-01-15 CN CN202110058060.9A patent/CN114764372A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190114533A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Machine learning runtime library for neural network acceleration |
CN109409513A (zh) * | 2018-10-10 | 2019-03-01 | 广州市百果园信息技术有限公司 | 一种基于神经网络的任务处理方法及相关设备 |
WO2020073742A1 (zh) * | 2018-10-10 | 2020-04-16 | 广州市百果园信息技术有限公司 | 一种基于神经网络的任务处理方法及相关设备 |
KR101974091B1 (ko) * | 2018-11-14 | 2019-04-30 | (주)시큐레이어 | 머신러닝 기반 쓰레드풀을 관리하는 방법 및 이를 사용한 컴퓨팅 장치 |
CN111914985A (zh) * | 2019-05-10 | 2020-11-10 | 杭州海康威视数字技术股份有限公司 | 深度学习网络模型的配置方法、装置及存储介质 |
CN112052083A (zh) * | 2020-09-15 | 2020-12-08 | 浙江智慧视频安防创新中心有限公司 | 云端gpu的显存调度方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
高榕;张良;梅魁志;: "基于Caffe的嵌入式多核处理器深度学习框架并行实现", 西安交通大学学报, no. 06, 27 March 2018 (2018-03-27) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964181A (zh) * | 2023-03-10 | 2023-04-14 | 之江实验室 | 一种数据处理的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022037337A1 (zh) | 机器学习模型的分布式训练方法、装置以及计算机设备 | |
Yang et al. | Re-thinking CNN frameworks for time-sensitive autonomous-driving applications: Addressing an industrial challenge | |
US11061731B2 (en) | Method, device and computer readable medium for scheduling dedicated processing resource | |
CN110147251B (zh) | 用于计算神经网络模型的系统、芯片及计算方法 | |
WO2023160290A1 (zh) | 神经网络推理加速方法、目标检测方法、设备及存储介质 | |
US20220035544A1 (en) | Memory allocation method and device, and electronic apparatus | |
CN110546611A (zh) | 通过跳过处理操作来减少神经网络处理器中的功耗 | |
US11144330B2 (en) | Algorithm program loading method and related apparatus | |
WO2022057940A1 (zh) | 一种计算节点资源信息更新方法、节点和存储介质 | |
US20220100576A1 (en) | Video processing method and device, electronic equipment and storage medium | |
KR20210094639A (ko) | 리소스 스케줄링 방법 및 장치, 전자 디바이스 및 기록 매체 | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
CN110109899B (zh) | 物联网数据填补方法、装置及系统 | |
CN105607952A (zh) | 一种虚拟化资源的调度方法及装置 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN109598250A (zh) | 特征提取方法、装置、电子设备和计算机可读介质 | |
WO2020000383A1 (en) | Systems and methods for low-power, real-time object detection | |
CN115860079A (zh) | 神经网络加速装置、方法、芯片、电子设备及存储介质 | |
CN114764372A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN110866605B (zh) | 数据模型训练方法、装置、电子设备及可读介质 | |
WO2024045836A1 (zh) | 参数调整方法及相关设备 | |
US20240303970A1 (en) | Data processing method and device | |
CN116893854A (zh) | 指令资源的冲突检测方法、装置、设备及存储介质 | |
CN111199276A (zh) | 数据处理方法及相关产品 | |
WO2023015500A1 (en) | Multiple-model heterogeneous computing |
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 |