CN111475313B - 适用于卷积神经网络前向传播的消息队列构建方法及装置 - Google Patents
适用于卷积神经网络前向传播的消息队列构建方法及装置 Download PDFInfo
- Publication number
- CN111475313B CN111475313B CN202010144720.0A CN202010144720A CN111475313B CN 111475313 B CN111475313 B CN 111475313B CN 202010144720 A CN202010144720 A CN 202010144720A CN 111475313 B CN111475313 B CN 111475313B
- Authority
- CN
- China
- Prior art keywords
- data
- consumed
- request data
- convolutional neural
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种适用于卷积神经网络前向传播的消息队列构建方法及装置,其中方法包括:服务端的输入队列接收客户端发送的数据,对接收到的数据分配唯一标识符,生成待处理数据;服务端的计算单元按照第一预设轮询间隔查询输入队列中的待处理数据中是否具有待消费的请求数据,如果查询到有待消费的请求数据,则将待消费的请求数据从输入队列中取出,将待消费的请求数据打包拷贝至计算单元;计算单元将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算,得到处理后的数据;服务端的输出队列获取处理后的数据,将处理后的数据发送至客户端。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种适用于卷积神经网络前向传播的消息队列构建方法及装置。
背景技术
在计算机科学中,消息队列是适用于进程间通信或同一进程的不同线程间的通信方式。消息队列提供了一种异步的通信协议,客户端向服务端发送消息后,由服务端将消息回收至消息队列中,再通过任务调度的方式对由消息的接受者接受消息并进行消费处理。
卷积神经网络通过卷积层、池化层、激活函数(层)的堆叠实现高效的特征抽象工作,一方面卷积网络对输入数据尺度有固定要求,另一方面基于GPU的神经网络运算方案允许输入多个相同尺度的数据作为一个批进行并行化加速。
然而,现有技术中的消息队列构建方法,GPU数据拷贝成本非常大,消息队列消费冗余很多,数据传递效率较低,因此,设计一种新的消息队列构建方案成为亟待解决的问题。
发明内容
本发明旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的适用于卷积神经网络前向传播的消息队列构建方法及装置。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明的一个方面提供了一种适用于卷积神经网络前向传播的消息队列构建方法,包括:服务端的输入队列接收客户端发送的数据,对接收到的数据分配唯一标识符,生成待处理数据;服务端的计算单元按照第一预设轮询间隔查询输入队列中的待处理数据中是否具有待消费的请求数据,如果查询到有待消费的请求数据,则将待消费的请求数据从输入队列中取出,将待消费的请求数据打包拷贝至计算单元;计算单元将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算,得到处理后的数据;服务端的输出队列获取处理后的数据,将处理后的数据发送至客户端。
其中,计算单元将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算包括:计算单元根据输入的数据的通道数、宽、高值通过批处理的方式进行整合并进行并行化计算。
其中,计算单元将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算包括:计算单元将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算。
其中,计算单元将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算包括:对单次获得得到的待消费的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,进行并行化运算。
其中,输出队列将处理后的数据发送至客户端包括:输出队列将处理后的数据通过数据分发的方式发送至客户端。
其中,计算单元将待消费的请求数据按照预设尺寸进行整合之前,方法还包括:计算单元根据唯一标识符建立数据访问索引;服务端的输出队列获取处理后的数据包括:服务端的输出队列根据数据访问索引获取与唯一标识符对应的处理后的数据。
其中,计算单元将待消费的请求数据按照预设尺寸进行整合之前,方法还包括:计算单元对每个卷积神经网络模型建立与唯一标识符匹配的标识索引方式。
其中,计算单元将待消费的请求数据按照预设尺寸进行整合包括:计算单元根据实际运算内存分配量确定数据切片大小,并根据确定的切片大小将待消费的请求数据进行整合。
其中,方法还包括:客户端按照按照第二预设轮询间隔根据唯一标识符获取处理后的数据。
本发明另一方面提供了一种适用于卷积神经网络前向传播的消息队列构建装置,包括:输入队列,用于接收客户端发送的数据,对接收到的数据分配唯一标识符,生成待处理数据;计算单元,用于按照第一预设轮询间隔查询输入队列中的待处理数据中是否具有待消费的请求数据,如果查询到有待消费的请求数据,则将待消费的请求数据从输入队列中取出,将待消费的请求数据打包拷贝至计算单元;计算单元,还用于将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算,得到处理后的数据;输出队列,用于获取处理后的数据,将处理后的数据发送至客户端。
其中,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算:计算单元,具体用于根据输入的数据的通道数、宽、高值通过批处理的方式进行整合并进行并行化计算。
其中,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算:计算单元,具体用于将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算。
其中,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算:计算单元,具体用于对单次获得得到的待消费的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,进行并行化运算。
其中,输出队列通过如下方式将处理后的数据发送至客户端:输出队列,具体用于将处理后的数据通过数据分发的方式发送至客户端。
其中,计算单元在将待消费的请求数据按照预设尺寸进行整合之前,还用于根据唯一标识符建立数据访问索引;输出队列通过如下方式获取处理后的数据:输出队列,具体用于根据数据访问索引获取与唯一标识符对应的处理后的数据。
其中,计算单元在将待消费的请求数据按照预设尺寸进行整合之前,还用于对每个卷积神经网络模型建立与唯一标识符匹配的标识索引方式。
其中,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合:计算单元,具体用于根据实际运算内存分配量确定数据切片大小,并根据确定的切片大小将待消费的请求数据进行整合。
由此可见,本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建方法及装置,实现服务端环境下构建消息队列,并针对待消费数据实现任务调度,其中待消费数据主要为适用于卷积神经网络前向推理的固定大小多批次并行化处理的高维数据,通过本发明提供的方法及装置能够针对数据特征进行优化调度,有利于数据消费时降低消息队列消费冗余,提高数据传递效率,提升调度灵活性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的总体架构示意图;
图2为本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建方法的一种流程图;
图3为本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建方法的另一种流程图;
图4为本发明实施例提供的多模型分发流程示意图;
图5为本发明实施例提供的消息队列数据打包流程流程示意图;
图6为本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例提供的总体架构示意图,参见图1,本发明实施例提供的总体架构包括:服务端和客户端,其中,服务端接收客户端发送数据请求,且允许多个客户端向至少一个服务端发送数据请求。
本发明应用于在客户端-服务端模型下,客户端因资源受限或模型保密等情况下将数据发送至服务端进行数据处理后返回结果的应用场景下,特别地,该应用场景下往往单个服务端对应多个客户端,则需要服务端配置较强的数据处理能力以应对大规模数据处理情况。其中客户端-服务端模型允许客户端和服务端通过TCP/UDP等网络协议进行连接。
为完成该实施例,服务端需要构建输入队列(图中所示数据接收)、计算单元和输出队列(图中所示数据发送)三个部分。其中输入队列完成数据接收的工作,计算单元完成数据处理的工作,即卷积神经网络主要应用于该计算单元中,输出队列完成数据返回的工作。
具体地,服务端接收来自客户端的消息请求,将请求消息打包推入输入队列等待计算单元进行数据处理,其中计算单元包括针对神经网络模型的数据打包分配模式以及前向传播推理过程。在计算单元的数据处理完成后,将消息送入输出队里并返回至客户端。
图2示出了本发明实施例的适用于卷积神经网络前向传播的消息队列构建方法的一种流程图,参见图2,本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建方法包括:
S1,访问数据;
S2,卷积神经网络数据处理,其中,该数据处理步骤包括:建立索引、数据打包和模型运算三个子步骤;
S3,数据发送。
本发明提供的消息队列处理方式,在消息队列数据处理步骤最大化并行前向传播数据量,在批量处理完成后返回至发送端。
以下,根据图3,对本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建方法进行详细说明,参见图3,本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建方法,包括:
S301,服务端的输入队列接收客户端发送的数据,对接收到的数据分配唯一标识符,生成待处理数据。
具体地,利用如图1所示的总体架构,本发明中,服务端首先将客户端发送的数据统一放置入输入队列。
同时,输入队列还应包括某种对请求数据进行唯一标志的数据标记方法。即,服务端的输入队列对于从客户端接收到的数据,除去原有的待处理的图像数据外,还应对原有数据分配唯一标志符用于对应性数据返回,此唯一标志符用于在输出队列中对应输入数据中的数据标记,即保证服务端能够识别数据和数据处理结果的对应性。
S302,服务端的计算单元按照第一预设轮询间隔查询输入队列中的待处理数据中是否具有待消费的请求数据,如果查询到有待消费的请求数据,则将待消费的请求数据从输入队列中取出,将待消费的请求数据打包拷贝至计算单元。
具体地,神经网络数据处理(计算单元的处理)主要适用于卷积网络等对输入数据尺寸具有约束但允许大规模并行运行的数据处理场景,即应用场景对于大规模数据处理中具有不可忽略的数据拷贝成本。
计算单元通过轮询的方式进行数据获取,即在服务端首先将客户端发送的数据统一放置入输入队列,计算单元再每间隔一定的数据查询输入消息队列中是否具有待消费的请求数据,当服务端经由轮询得到数据时,即将数据从输入消息队列中取出,并将数据打包拷贝传入运算单元。如图1所示,该图表示了客户端在一个时间间隔内发送了1,2,3,4,5,6组数据的情况,服务端在接收到数据后将数据统一放入消息队列并一次性获取6组数据。
具体实施时,计算单元可以以GPU为例,将数据拷贝传入GPU后,经由GPU计算后将计算结果回拷到内存之中准备数据返回。
其中,第一预设轮询间隔可以由服务端自行调控,若轮询间隔过长,则影响服务端数据返回效率,若轮询间隔过短,则影响服务端数据处理效率,服务端管理员应当根据实际响应调整轮询间隔。
S303,计算单元将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算,得到处理后的数据。
具体地,计算单元根据卷积神经网络模型所需要的数据尺寸进行数据整合,例如在某个轮询中得到若干组数据,则应以并行化运算的方式将所有数据同时进行运算以减少数据拷贝成本。
作为本发明实施例的一个可选实施方式,计算单元将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算包括:计算单元根据输入的数据的通道数、宽、高值通过批处理的方式进行整合并进行并行化计算。具体地,以2维卷积为例,其中并行化运算方式包含将输入数据根据自身通道数、宽、高值通过批处理的方式进行整合的步骤,也即将多个相同通道数、相同宽度、相同高度的图像运算数据通过批整合的方式并行化运算。
对于2维卷积传入的图像数据的打包流程参见图4,对于2维卷积传入的图像数据,以(1,channel,height,width)的方式传入,并行化处理方式根据轮询间隔将多个传入数据在第一个维度上进行叠加,形成(batch,channel,height,width)的数据维度,并将组合数据传入神经网络进行并行化运算。即,将相同channel,height,weight的数据在batch维度进行叠加。
作为本发明实施例的一个可选实施方式,计算单元将待消费的请求数据按照预设尺寸进行整合包括:计算单元根据实际运算内存分配量确定数据切片大小,并根据确定的切片大小将待消费的请求数据进行整合。具体地,计算单元对模型大小与数据规模同样具备约束,也即需要限制应用程序能够访问的计算单元内存大小,对于这种情况,需要对所轮询得到的数据进行再次切片,也即在每次轮询时只收取一定大小规模的数据而并非一次性读取全部数据。也即针对数据维度,其batch维度应根据数据切片大小进行调整。
作为本发明实施例的一个可选实施方式,计算单元将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算包括:计算单元将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算。具体地,计算单元对于数据运算应考虑多模型运算的应用场景,即将模型运算的结果直接或经过一些运算后导入下一个运算模型,对原有运算数据进行多次网络模型运算后方才得到最终输出结果以进行数据返回,其运算流程如图5所示,对于多个模型的情况,应当将数据从输入队列中取出后依次对模型进行运算再放入输出队列。
作为本发明实施例的一个可选实施方式,计算单元将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算包括:对单次获得得到的待消费的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,进行并行化运算。具体地,在多模型场景下对单次获得得到的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,在并行化数据处理完毕后再通过数据分发的方式将数据返回至客户端。
作为本发明实施例的一个可选实施方式,计算单元将待消费的请求数据按照预设尺寸进行整合之前,方法还包括:计算单元根据唯一标识符建立数据访问索引;服务端的输出队列获取处理后的数据包括:服务端的输出队列根据数据访问索引获取与唯一标识符对应的处理后的数据。具体地,计算单元若不支持输入队列所分配的唯一标志符,还应再次建立数据访问索引保证经由二级索引后,原唯一标志符在计算单元实施计算后仍能够得到数据索引。即将输入队列中收集的数据根据序列编号传入计算单元,并在计算结束后根据输入序列编号重新得到输入队列中的索引。
作为本发明实施例的一个可选实施方式,计算单元将待消费的请求数据按照预设尺寸进行整合之前,方法还包括:计算单元对每个卷积神经网络模型建立与唯一标识符匹配的标识索引方式。具体地,多模型场景需要在多次模型下建立针对唯一标志符的标志索引方式,标志索引方式主要包括多级标志索引或多次标志索引等方法。
作为本发明实施例的一个可选实施方式,多模型场景需要根据多次运算的实际运算内存分配量限制数据切片大小,以保证输入数据能够进行完整的数据运算后进行数据返回。
S304,服务端的输出队列获取处理后的数据,将处理后的数据发送至客户端。
具体地,计算单元将数据运算完成后,将已经运算完成的数据传入输出队列,之后可以将处理后的数据返回指客户端,对于此类数据分发操作,各项数据应通过唯一标志符保证数据标志,例如图1所示即为输出队列输出1,2,3,4,5组数据的情况,其中输出队列的输出索引与输入队列的输入索引相一致。
作为本发明实施例的一个可选实施方式,输出队列将处理后的数据发送至客户端包括:输出队列将处理后的数据通过数据分发的方式发送至客户端。
作为本发明实施例的一个可选实施方式,方法还包括:客户端按照按照第二预设轮询间隔根据唯一标识符获取处理后的数据。具体地,数据返回对于客户端而言即使数据接收操作,本发明中客户端采取针对唯一标志符的轮询操作进行数据获取,不断试图通过唯一标志符获取返回数据,若能获取成功则整个数据处理流程结束,若不能获取则继续尝试获取。其中,轮询操作应当设置轮询过期次数,当轮询次数过多时可以认为业务繁忙,不再进行轮询等待。此外,应根据具体引用场景由客户端管理员自行调控,若轮询时间过短则可能造成不必要的资源浪费,若轮询时间过长则可能影响响应速度。
通过以上实施例可知,本发明中,消息队列适用于数据消费单元中便于并行化运算的处理方式,本发明以卷积神经网络前向推理为主要构建方法进行发明。具体处理流程包括单模型/多模型等多种前向传播推理方式。
其中前向传播推理方式包含将输入数据根据自身通道数、宽、高值通过批处理的方式进行整合以便并行化的步骤,也即将多个相同通道数、相同宽度、相同高度的图像运算数据通过批整合的方式并行化运算。
其中单模型场景下对单次轮询得到请求数据进行打包,将多组数据同时传入计算单元以降低数据拷贝成本,在并行化数据处理完毕后再通过数据分发的方式将数据返回至客户端。
其中多模型场景下对单次轮询得到的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,在并行化数据处理完毕后再通过数据分发的方式将数据返回至客户端。
由此可见,本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建方法,实现服务端环境下构建消息队列,并针对待消费数据实现任务调度,其中待消费数据主要为适用于卷积神经网络前向推理的固定大小多批次并行化处理的高维数据,通过本发明提供的方法及装置能够针对数据特征进行优化调度,有利于数据消费时降低消息队列消费冗余,提高数据传递效率,提升调度灵活性。
图6示出了本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建装置的结构示意图,该适用于卷积神经网络前向传播的消息队列构建装置应用于上述适用于卷积神经网络前向传播的消息队列构建方法,以下仅对适用于卷积神经网络前向传播的消息队列构建装置的结构进行简要说明,其他未尽事宜,请参照上述适用于卷积神经网络前向传播的消息队列构建方法的相关说明,在此不再赘述。参见图6,本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建装置,包括:
输入队列,用于接收客户端发送的数据,对接收到的数据分配唯一标识符,生成待处理数据;
计算单元,用于按照第一预设轮询间隔查询输入队列中的待处理数据中是否具有待消费的请求数据,如果查询到有待消费的请求数据,则将待消费的请求数据从输入队列中取出,将待消费的请求数据打包拷贝至计算单元;
计算单元,还用于将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算,得到处理后的数据;
输出队列,用于获取处理后的数据,将处理后的数据发送至客户端。
作为本发明实施例的一个可选实施方式,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算:计算单元,具体用于根据输入的数据的通道数、宽、高值通过批处理的方式进行整合并进行并行化计算。
作为本发明实施例的一个可选实施方式,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算:计算单元,具体用于将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算。
作为本发明实施例的一个可选实施方式,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算:计算单元,具体用于对单次获得得到的待消费的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,进行并行化运算。
作为本发明实施例的一个可选实施方式,输出队列通过如下方式将处理后的数据发送至客户端:输出队列,具体用于将处理后的数据通过数据分发的方式发送至客户端。
作为本发明实施例的一个可选实施方式,计算单元在将待消费的请求数据按照预设尺寸进行整合之前,还用于根据唯一标识符建立数据访问索引;输出队列通过如下方式获取处理后的数据:输出队列,具体用于根据数据访问索引获取与唯一标识符对应的处理后的数据。
作为本发明实施例的一个可选实施方式,计算单元在将待消费的请求数据按照预设尺寸进行整合之前,还用于对每个卷积神经网络模型建立与唯一标识符匹配的标识索引方式。
作为本发明实施例的一个可选实施方式,计算单元通过如下方式将待消费的请求数据按照预设尺寸进行整合:计算单元,具体用于根据实际运算内存分配量确定数据切片大小,并根据确定的切片大小将待消费的请求数据进行整合。
由此可见,本发明实施例提供的适用于卷积神经网络前向传播的消息队列构建装置,实现服务端环境下构建消息队列,并针对待消费数据实现任务调度,其中待消费数据主要为适用于卷积神经网络前向推理的固定大小多批次并行化处理的高维数据,通过本发明提供的方法及装置能够针对数据特征进行优化调度,有利于数据消费时降低消息队列消费冗余,提高数据传递效率,提升调度灵活性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种适用于卷积神经网络前向传播的消息队列构建方法,其特征在于,包括:
服务端的输入队列接收客户端发送的数据,对接收到的数据分配唯一标识符,生成待处理数据;
所述服务端的计算单元按照第一预设轮询间隔查询所述输入队列中的待处理数据中是否具有待消费的请求数据,如果查询到有所述待消费的请求数据,则将所述待消费的请求数据从所述输入队列中取出,将所述待消费的请求数据打包拷贝至所述计算单元;
所述计算单元将所述待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算,得到处理后的数据;
所述服务端的输出队列获取所述处理后的数据,将所述处理后的数据发送至客户端;
其中:
所述计算单元将所述待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算包括:
所述计算单元将所述待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算;
所述计算单元将所述待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算包括:
对单次获得得到的所述待消费的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,进行并行化运算。
2.根据权利要求1所述的方法,其特征在于,所述计算单元将所述待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算包括:
所述计算单元根据输入的数据的通道数、宽、高值通过批处理的方式进行整合并进行并行化计算。
3.根据权利要求1所述的方法,其特征在于,所述输出队列将所述处理后的数据发送至客户端包括:
所述输出队列将所述处理后的数据通过数据分发的方式发送至所述客户端。
4.根据权利要求1所述的方法,其特征在于,
所述计算单元将所述待消费的请求数据按照预设尺寸进行整合之前,还包括:
所述计算单元根据所述唯一标识符建立数据访问索引;
所述服务端的输出队列获取所述处理后的数据包括:
所述服务端的输出队列根据所述数据访问索引获取与所述唯一标识符对应的处理后的数据。
5.根据权利要求1所述的方法,其特征在于,所述计算单元将所述待消费的请求数据按照预设尺寸进行整合之前,还包括:
所述计算单元对每个所述卷积神经网络模型建立与所述唯一标识符匹配的标识索引方式。
6.根据权利要求1所述的方法,其特征在于,所述计算单元将所述待消费的请求数据按照预设尺寸进行整合包括:
所述计算单元根据实际运算内存分配量确定数据切片大小,并根据确定的切片大小将所述待消费的请求数据进行整合。
7.根据权利要求1所述的方法,其特征在于,还包括:
所述客户端按照第二预设轮询间隔根据所述唯一标识符获取所述处理后的数据。
8.一种适用于卷积神经网络前向传播的消息队列构建装置,其特征在于,包括:
输入队列,用于接收客户端发送的数据,对接收到的数据分配唯一标识符,生成待处理数据;
计算单元,用于按照第一预设轮询间隔查询所述输入队列中的待处理数据中是否具有待消费的请求数据,如果查询到有所述待消费的请求数据,则将所述待消费的请求数据从所述输入队列中取出,将所述待消费的请求数据打包拷贝至所述计算单元;
所述计算单元,还用于将所述待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算,得到处理后的数据;
输出队列,用于获取所述处理后的数据,将所述处理后的数据发送至客户端;
其中:
所述计算单元通过如下方式将所述待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算:
所述计算单元,具体用于将所述待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算;
所述计算单元通过如下方式将所述待消费的请求数据按照预设尺寸进行整合,依次经过至少两个预设卷积神经网络模型进行计算:
所述计算单元,具体用于对单次获得得到的所述待消费的请求数据进行分层打包,为每组数据选取合适的模型多次调度,根据调度方式将数据处理方式转化为多个单模型场景进行批量数据处理,并通过模型间的链接降低重复拷贝次数,进行并行化运算。
9.根据权利要求8所述的装置,其特征在于,所述计算单元通过如下方式将所述待消费的请求数据按照预设尺寸进行整合,按照并行化运算方式进行卷积神经网络模型计算:
所述计算单元,具体用于根据输入的数据的通道数、宽、高值通过批处理的方式进行整合并进行并行化计算。
10.根据权利要求8所述的装置,其特征在于,所述输出队列通过如下方式将所述处理后的数据发送至客户端:
所述输出队列,具体用于将所述处理后的数据通过数据分发的方式发送至所述客户端。
11.根据权利要求8所述的装置,其特征在于,
所述计算单元在将所述待消费的请求数据按照预设尺寸进行整合之前,还用于根据所述唯一标识符建立数据访问索引;
所述输出队列通过如下方式获取所述处理后的数据:
所述输出队列,具体用于根据所述数据访问索引获取与所述唯一标识符对应的处理后的数据。
12.根据权利要求8所述的装置,其特征在于,所述计算单元在将所述待消费的请求数据按照预设尺寸进行整合之前,还用于对每个所述卷积神经网络模型建立与所述唯一标识符匹配的标识索引方式。
13.根据权利要求8所述的装置,其特征在于,所述计算单元通过如下方式将所述待消费的请求数据按照预设尺寸进行整合:
所述计算单元,具体用于根据实际运算内存分配量确定数据切片大小,并根据确定的切片大小将所述待消费的请求数据进行整合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010144720.0A CN111475313B (zh) | 2020-03-04 | 2020-03-04 | 适用于卷积神经网络前向传播的消息队列构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010144720.0A CN111475313B (zh) | 2020-03-04 | 2020-03-04 | 适用于卷积神经网络前向传播的消息队列构建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475313A CN111475313A (zh) | 2020-07-31 |
CN111475313B true CN111475313B (zh) | 2023-06-27 |
Family
ID=71747128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010144720.0A Active CN111475313B (zh) | 2020-03-04 | 2020-03-04 | 适用于卷积神经网络前向传播的消息队列构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475313B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113610209A (zh) * | 2021-08-10 | 2021-11-05 | 东南数字经济发展研究院 | 一种面向监控视频流场景的神经网络模型推理加速方法 |
US11922026B2 (en) | 2022-02-16 | 2024-03-05 | T-Mobile Usa, Inc. | Preventing data loss in a filesystem by creating duplicates of data in parallel, such as charging data in a wireless telecommunications network |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348571B (zh) * | 2016-11-29 | 2024-03-29 | 华为技术有限公司 | 一种神经网络模型训练方法、装置、芯片和系统 |
CN108848039B (zh) * | 2018-04-24 | 2021-11-02 | 平安科技(深圳)有限公司 | 服务器、消息分配的方法及存储介质 |
CN110062112A (zh) * | 2019-03-15 | 2019-07-26 | 平安城市建设科技(深圳)有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN110808922B (zh) * | 2019-10-29 | 2023-06-06 | 北京大米科技有限公司 | 一种消息处理方法、装置、存储介质及电子设备 |
-
2020
- 2020-03-04 CN CN202010144720.0A patent/CN111475313B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111475313A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103458270B (zh) | 视频转码系统和方法 | |
CN111475313B (zh) | 适用于卷积神经网络前向传播的消息队列构建方法及装置 | |
CN102546402B (zh) | 支持基于关键项的分布式进程的方法和计算实体 | |
CN101923490A (zh) | 作业调度设备和作业调度方法 | |
CN110769018A (zh) | 一种消息推送方法及装置 | |
CN107959695A (zh) | 一种数据传输方法及装置 | |
CN114818446B (zh) | 面向5g云边端协同的电力业务分解方法及系统 | |
CN112714164A (zh) | 一种物联网系统及其任务调度方法 | |
CN102904961A (zh) | 一种云计算资源调度方法及系统 | |
CN114710571B (zh) | 数据包处理系统 | |
CN111309488A (zh) | 无人机集群的计算资源共享方法与系统及计算机存储介质 | |
CN110356007A (zh) | 一种基于IPv6网络的大规模3D打印模型切片云平台 | |
CN114095571A (zh) | 数据处理方法、数据服务总线、终端和存储介质 | |
CN112817539A (zh) | 一种工业数据存储方法、系统、电子设备及存储介质 | |
CN113760559A (zh) | 一种双核通信方法和电子设备 | |
CN109639599B (zh) | 网络资源调度方法及系统、存储介质及调度设备 | |
CN114157997B (zh) | 一种iros话题桥接方法、设备及介质 | |
CN114610765B (zh) | 流计算方法、装置、设备及存储介质 | |
CN116244062A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN112541038A (zh) | 时序数据管理方法、系统、计算设备及存储介质 | |
CN113329043A (zh) | 一种数据服务提供方法及装置 | |
CN106095534B (zh) | 一种计算任务处理方法和系统 | |
CN110659111A (zh) | 数据处理方法及系统 | |
CN117240903B (zh) | 一种物联网脱机消息动态管理配置系统 | |
KR102263461B1 (ko) | 확장 가능한 p2p 오버레이 구조에 기반한 블록 데이터 멀티 캐스팅 방법 및 장치 |
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 |