CN110458285A - 数据处理方法、装置、计算机设备和存储介质 - Google Patents

数据处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110458285A
CN110458285A CN201910748308.7A CN201910748308A CN110458285A CN 110458285 A CN110458285 A CN 110458285A CN 201910748308 A CN201910748308 A CN 201910748308A CN 110458285 A CN110458285 A CN 110458285A
Authority
CN
China
Prior art keywords
data
information
space
static
dynamic
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
Application number
CN201910748308.7A
Other languages
English (en)
Other versions
CN110458285B (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Beijing Zhongke Cambrian Technology Co Ltd
Original Assignee
Beijing Zhongke Cambrian Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zhongke Cambrian Technology Co Ltd filed Critical Beijing Zhongke Cambrian Technology Co Ltd
Priority to CN201910748308.7A priority Critical patent/CN110458285B/zh
Publication of CN110458285A publication Critical patent/CN110458285A/zh
Application granted granted Critical
Publication of CN110458285B publication Critical patent/CN110458285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

本公开涉及一种数据处理方法、装置、计算机设备和存储介质。其所公开的板卡包括:存储器件、接口装置和控制器件以及数据处理装置;其中,数据处理装置与存储器件、控制器件以及接口装置分别连接;存储器件,用于存储数据;接口装置,用于实现数据处理装置与外部设备之间的数据传输;控制器件,用于对数据处理装置的状态进行监控。本公开实施例所提供的数据处理方法、装置、计算机设备和存储介质,通过标签信息对神经网络中的数据进行标记,简化了对数据进行存储等处理的过程,减少了对硬件资源的占用,且提高了神经网络运算的速度。

Description

数据处理方法、装置、计算机设备和存储介质
技术领域
本公开涉及计算机技术领域,特别是涉及一种数据处理方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,神经网络(neural networks)也有了显著的进步,可以通过特定或者通用的处理器进行神经网络运算。相关技术中,在神经网络中数据类型多、运算量大、硬件限制等因素的影响下,神经网络运算的速度受到了很大限制。
发明内容
基于此,有必要针对上述技术问题,提供一种数据处理方法、装置、计算机设备和存储介质。
根据本公开的一方面,提供了一种数据处理方法,应用于处理器,所述方法包括:
获取第一数据的标签信息,所述第一数据用于进行神经网络运算;
根据所述标签信息,将所述第一数据存入数据存储空间中,
其中,所述标签信息包括静态标签信息,所述静态标签信息用于表征所述第一数据参与所述神经网络运算相关的信息。
根据本公开的另一方面,提供了一种数据处理装置,用于处理器,所述装置包括:
标签获取模块,获取第一数据的标签信息,所述第一数据用于进行神经网络运算;
数据存储模块,根据所述标签信息,将所述第一数据存入数据存储空间中,
其中,所述标签信息包括静态标签信息,所述静态标签信息用于表征所述第一数据参与所述神经网络运算相关的信息。
根据本公开的另一方面,提供了一种数据处理装置,所述数据处理装置包括上述数据处理装置。
根据本公开的另一方面,提供了一种电子设备,该电子设备包括上述数据处理装置。
根据本公开的另一方面,提供了一种板卡,该板卡包括上述数据处理装置。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述数据处理方法。
在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开实施例提供一种数据处理方法、装置、计算机设备和存储介质,通过标签信息对神经网络中的数据进行标记,简化了对数据进行存储等处理的过程,为用户提供了更为友好的API,改善了软件的性能,减少了对硬件资源的占用,且提高了神经网络运算的速度。
通过权要中的技术特征进行推导,能够达到对应背景技术中的技术问题的有益效果。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据处理方法的处理器的示意图。
图2a示出根据本公开一实施例的数据处理方法的流程图。
图2b示出根据本公开一实施例的数据处理方法中确定数据类别的流程图。
图2c示出根据本公开一实施例的数据处理方法中确定数据类别的示意图。
图3a示出根据本公开实施例的数据处理方法中的关联列表的示意图。
图3b示出根据本公开实施例的数据处理方法中的计算图的示意图。
图4a示出根据本公开实施例的数据处理方法中的数据转换的示意图。
图4b示出根据本公开实施例的数据处理方法中所设计的用于神经网络运算的装置的示意图。
图4c示出根据本公开实施例的数据处理方法中用于神经网络运算装置的使用示意图。
图5示出根据本公开实施例的数据处理装置的框图。
图6示出根据本公开实施例的板卡的结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
相关技术中,对神经网络加速器的研究已经取得了显著成就,并为很多深度学习算法提供了有力的硬件支持。为了提高神经网络加速器的性能,神经网络开发工具包(neural network development kit,简称NDK)中的算法优化和数据布局(包括数据的存储、变形、转移等与数据相关的处理)是不可缺少的。神经网络算法中丰富的数据类型导致了数据布局信息的多样性。如何将复杂的数据布局信息添加至NDK,从而引导软件全方面的工作,以避免用户感知,同时提供用户友好的API,并能改善软件的性能,提供神经网络运算的速度是亟待解决的问题。本公开实施例提供一种数据处理方法、装置、计算机设备和存储介质,通过标签信息对神经网络中的数据进行标记,简化了对数据进行存储、变形、转移等处理的过程,为用户提供了更为友好的API,改善了软件的性能,减少了对硬件资源的占用,且提高了神经网络运算的速度。
根据本公开实施例的数据处理方法可应用于处理器中,该处理器可以包括通用处理器,例如CPU(Central Processing Unit,中央处理器),其中,通用处理器可以对该电子设备接收的数据及指令进行预处理等操作,该通用处理器也可以实现指令编译等功能。该处理器也可以包括执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital SignalProcess,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对人工智能处理器的具体类型不作限制。
在一种可能的实现方式中,本公开中所提及的人工智能处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本公开对处理单元及处理单元所运行的任务不作限制。该人工智能处理器可以根据该通用处理器传送的编译后的指令执行机器学习运算,如该人工智能处理器可以根据编译后的指令执行神经网络推理或训练等运算,以实现图像识别、语音识别等。
当然,在其他可能的实施例中,该人工智能处理器也可以实现上述的指令编译等功能。进一步可选地,本公开一实施例的电子设备可以包括上述的处理器,即该电子设备可以包括上述的通用处理器和人工智能处理器。
图1示出根据本公开实施例的数据处理方法的处理器的示意图。如图1所示,处理器100包括多个处理单元101以及存储单元102,多个处理单元101用于执行指令序列,存储单元102用于存储数据,存储单元102可包括随机存储器(RAM,Random Access Memory)和寄存器堆。处理器100中的多个处理单元101既可共用部分存储空间,例如共用部分RAM存储空间和寄存器堆,又可同时拥有各自的存储空间。
图2a示出根据本公开一实施例的数据处理方法的流程图。如图2a所示,该方法应用于处理器,该方法包括步骤S11和步骤S22。
在步骤S11中,获取第一数据的标签信息,第一数据用于进行神经网络运算。其中,标签信息包括静态标签信息,静态标签信息用于表征第一数据参与神经网络运算相关的信息。
在本实施例中,静态标签信息可以包括描述第一数据本身性质的数据类型、维度、维度值等信息,还包括基于第一数据所参与的神经网络运算相关的信息。静态标签信息可以在神经网络建立之后确定,第一数据的静态标签信息可以适用于任意运行神经网络的处理器,也即在不同的处理器中第一数据的静态标签信息是不变的。同一第一数据在不同的神经网络中的静态标签信息可能不同。可选地,第一数据的静态标签信息可以是获取第一数据的过程(用户输入第一数据的过程)中处理器自动检测确定的,也可以是根据用户输入的信息确定的,本公开对此不作限制。
在步骤S12中,根据标签信息,将第一数据存入数据存储空间中。
在本实施例中,处理器可以根据标签信息确定存储第一数据所需的数据存储空间大小,进而申请所需的数据存储空间,而后将第一数据存储至申请到的数据存储空间中。具体地,处理器可以直接根据静态标签信息进行数据存储空间申请,存储第一数据。例如,根据第一数据的静态标签信息确定第一数据的数据量,进而根据确定的数据量申请存储第一数据的数据存储空间,进而存储第一数据。
可选地,静态标签信息可以包括以下至少一项:数据类别、静态数据类型、静态数据维度、静态数据维度顺序以及对应每个静态数据维度的维度值。
在该实现方式中,数据类别表示的第一数据在神经网络中属于何种类别的数据,是基于用户是否可见、在神经网络中所参与操作等信息确定的。静态数据类型表示的是第一数据的类型和位数,如静态数据类型可以为32位浮点数等。静态数据维度可以是一维、二维、多维等维度,静态数据维度顺序可以表示第一数据的存储和/或读取的维度顺序。对应每个静态数据维度的维度值表示的是对应静态数据维度的长度或尺寸。例如,某第一数据为矩阵,静态数据维度包括行和列,静态数据维度顺序为行优先,行的维度值为10、列的维度值为4。某第一数据为三维数据,静态数据维度包括第一维、第二维、第三维,静态数据维度顺序为第三维>第二维>第一维,第一维的维度值为10、第二维的维度值为4、第三维的维度值为8。
在一种可能的实现方式中,获取第一数据的标签信息,可以包括:根据第一数据对应于神经网络的出度、入度和第一数据参与的神经网络中的操作,确定第一数据的数据类别。
在该实现方式中,入度表示该第一数据作为数据节点所参与的前续操作节点的数量(该第一数据为前续操作节点的输出),出度表示第一数据作为数据节点所参与的后续操作节点的数量(该第一数据为后续操作节点的输入)。例如,某第一数据cc可以是1个前续操作节点的输出、3个后续操作节点的输入,则该第一数据cc的出度为3、入度为1。可以为不同的数据类别设置不同的代码,以进行区分。如下表1所示,描述了不同数据类别的数据所具有的特点和对应的标识。
可选地,数据类别可以包括以下任一项:指令(Instruction)、输入神经元(InputNeuron)、输出神经元(Output Neuron)、隐藏神经元(Hidden Neuron)、常量神经元(Constant Neuron)、输入权值(Input Weight)、输出权值(Output Weight)、常量权值(Constant Weight)和辅助数据(Auxiliary)。
表1数据类别、对应标识及数据特点
其中,指令的出度和入度为零,用于触发神经网络运算。输入神经元、常量神经元、输入权值、常量权值、辅助数据的出度大于1、入度为0。输出神经元、输出权值的出度为0、入度大于或等于1。隐藏神经元的出度和入度均大于或等于1。
在一种可能的实现方式中,第一数据的静态标签信息可以表示为:
Static:classification,type1,DIM_A1…An,{x1…xn}
其中,static为表示标签信息为静态标签信息的标识。classification表示数据类别,type1表示静态数据类型。DIM_A1…An中的n表示静态数据维度,A1…An表示静态数据维度顺序为A1…An。A1的维度值为x1…An的维度值为xn。“,”、“{}”仅用于在本公开中分隔静态标签信息中的不同参数,并非静态标签信息的必备内容,实际应用中“,”、“{}”可以不存在,也可以由其他标识替代,本公开对此不作限制。
应当理解的是,本领域技术人员可以根据实际需要对静态标签信息、数据类别的标识,以及静态标签信息中各参数的位置进行设置,本公开对此不作限制。
例如,某第一数据的静态标签信息为:Static:IW,Float32,DIM_HW,{10,4},则表示该第一数据为输入权值(数据类别)、32位浮点数(静态数据类型)、二维行优先(静态数据维度及静态数据维度顺序)、行具有10个数(维度值)、列具有4个数(维度值)。
图2b示出根据本公开一实施例的数据处理方法中确定数据类别的流程图。在一种可能的实现方式中,如图2b所示,确定静态标签信息中的数据类别的步骤包括步骤S31至步骤S34。
在步骤S31中,获取待标记计算图。
其中,待标记计算图中包括无类别数据节点、操作节点、以及无类别的数据节点与操作节点之间的连接关系。无类别数据节点中包括参与神经网络运算的数据(包括第一数据以及下文所提及的第二数据)、数据的除数据类别之外的其余静态标签信息、与该数据节点相连接的前续操作节点和后续操作节点。操作节点中包括对应的参数、与该操作节点连接的输入数据节点和输出数据节点(也即上述无类别数据节点)。
在该实现方式中,待标记计算图可以用于存储神经网络结构的图结构,也可以是用于存储数据图结构,该数据图结构仅用于存储数据,本公开对此不作限制。
在步骤S32中,遍历待标记计算图,获得待标记计算图中所有的无类别数据节点和操作节点。
在该实现方式中,处理器可以从待标记计算图的某一个无类别数据节点(如,输入神经元)开始进行遍历,先确定该无类别数据节点的前续操作节点和后续操作节点,之后再获取新的无类别数据节点,继续确定该新的无类别数据节点的前续操作节点和后续操作节点,直至遍历到所有的节点(包括无类别数据节点和操作节点)。
在步骤S33中,在数据节点队列中依次存储遍历到的无类别数据节点,在操作节点队列中依次存储遍历到的操作节点。
其中,数据节点队列中仅存储无类别数据节点,处理器每次存储遍历到无类别数据节点之后,需先判断数据节点队列中该无类别数据节点是否已经进行了存储,若数据节点队列中已存则不再存储该无类别数据节点。若数据节点队列中未存储该无类别数据节点,则存储该无类别数据节点。处理器每次存储遍历到的操作节点之前,需先判断操作节点队列中该操作节点是否已存,若操作节点队列中已存则不再存储该操作节点。若操作节点队列中未存储该操作节点,则存储该操作节点。这样,可以节省存储空间,提供遍历速度。
在步骤S34中,在遍历的过程中,确定数据节点队列中无类别数据节点对应的数据类别,并将确定的数据类别存入待标记计算图中对应的数据节点内(如存入数据节点的静态标签信息中),以及将确定了数据类别的无类别数据节点从数据节点队列中删除。此时,待标记计算图中的该无类别数据节点由于已存储了其对应的数据类别,变为具备完整内容的数据节点。直至数据节点队列为空,确定出待标记计算图中所有无类别数据节点的数据类别后,结束节点扫描和数据类别确定,得到已标记计算图。
举例来说,图2c示出根据本公开一实施例的数据处理方法中确定数据类别的示意图。如图2c所示,确定数据类别包括节点扫描过程和数据类别确定过程。
节点扫描过程:
处理器获取到待标记计算图之后对其进行遍历。处理器可以先获取到无类别数据节点1,并将其存储至数据节点队列的头部(或称首位)。而后,处理器将无类别数据节点1的后续操作节点1’存储至操作节点队列的尾部。处理器之后获取无类别数据节点2,并在确定数据节点队列中并未存储无类别数据节点2之后,将无类别数据节点2存储至数据节点队列的尾部。而后,处理器通过查询操作节点队列,确定操作节点1’已存,则处理器不存储无类别数据节点2的后续操作节点1’。基于同样过程,处理器将获取到的无类别数据节点3存储至数据节点队列的尾部。处理器还继续扫描待标记计算图,获取无类别数据节点4,在确定数据节点队列中并未存储无类别数据节点4之后,将无类别数据节点4存储至数据节点队列的尾部。并判断操作节点队列中是否存储无类别数据节点4的前续操作节点1’和后续操作节点2’,由于操作节点队列中已存储操作节点1’,则将操作节点2’存入操作节点队列的尾部。处理器还继续扫描待标记计算图,获取无类别数据节点5,在确定数据节点队列中并未存储无类别数据节点5之后,将无类别数据节点5存储至数据节点队列的尾部。并判断操作节点队列中是否存储无类别数据节点5的前续操作节点2’,由于操作节点队列中已存储操作节点2’,则不对操作节点2’进行存储。
数据类别确定过程:
处理器在扫描节点的过程中,可以先根据数据节点队列的头部的无类别数据节点1的出度、入度、对应的前续操作节点和后续操作节点,确定无类别数据节点1的数据类别为“输入神经元”,进而将“输入神经元”的标识添加到待标记计算图中的无类别数据节点1中,如添加到该数据节点1的静态标签信息中;同时,处理器需在数据节点队列中删除已经确定出数据类别的无类别数据节点1。处理器继续查询数据节点队列的头部,若数据节点队列的头部存储有无类别数据节点,则执行上述数据类别确定过程;若数据节点队列的头部为空,则结束,并确定已完成该待标记计算图中所有数据节点的数据类别的确定,形成已标记计算图。
可选地,静态标签信息中的静态数据类型、静态数据维度、静态数据维度顺序以及对应每个静态数据维度的维度值等静态标签信息,处理器可以通过对其接收到的数据进行检测确定。或者,处理器可以在接收数据时,根据用户或数据的发送端提供的信息确定上述静态标签信息。
在一种可能的实现方式中,标签信息还可以包括动态标签信息,动态标签信息用于表征第一数据与运行神经网络的处理器相关的信息。其中,上述操作S11,获取第一数据的标签信息,可以包括:根据处理器和静态标签信息,生成第一数据的动态标签信息。
在该实现方式中,动态标签信息是在确定运行神经网络的处理器之后,根据静态标签信息以及处理器的算力、性能等确定的,以使得具有动态标签信息的第一数据能够适用于处理器的运算。当神经网络采用不同的处理器进行运算时,第一数据的动态标签信息可以不同。当两个处理器的性能、算力等参数相同时,第一数据的动态标签信息可能相同。
在一种可能的实现方式中,动态标签信息可以包括以下至少一项:动态数据类型、动态数据维度顺序、分片参数、填充参数和数据尺寸。
在该实现方式中,动态数据类型可以是根据运行神经网络的处理器所能处理的数据的类型、算力等确定的。如,某处理器能够处理16位浮点数,那么在利用该处理器运行神经网络时,第一数据的动态数据类型即为16位浮点数。动态数据维度顺序可以是根据运行神经网络的处理器读取或存储数据的需求确定。分片参数可以根据运行神经网络的处理器的算力确定的,例如,某处理器每一次能够进行8个数的运算,则可以将分片参数设置为8。填充参数可以根据该第一数据的静态数据维度的维度值、分片参数确定的。数据尺寸或者称为数据的大小、数据量,其是根据静态数据维度的维度值、分片参数以及填充参数确定的。
在一种可能的实现方式中,确定动态标签信息的步骤包括:
获取运行神经网络的目标处理器的信息,目标处理器的信息中可以包括目标处理器所能处理的数据的数据类型,目标处理器的读取、存储数据的维度顺序,目标处理器每一次处理的数据位数(或处理的数的个数)等与目标数量的算力和性能相关的信息。
根据目标处理器的信息和第一数据的静态标签信息,确定第一数据的动态标签信息。
其中,根据目标处理器的信息和第一数据的静态标签信息,确定第一数据的动态标签信息,可以包括以下至少一项:
根据目标处理器所能处理的数据的数据类型确定动态数据类型;
根据目标处理器的读取、存储数据的维度顺序确定动态数据维度顺序;
根据目标处理器每一次处理的数据位数确定分片参数;
根据分片参数、静态数据维度的维度值确定填充参数;
根据静态数据维度的维度值、分片参数以及填充参数确定数据尺寸。
在一种可能的实现方式中,第一数据的动态标签信息可以表示为:
dynamic:type2,DIM_B1…Bn,tiling,padding,size
其中,dynamic表示该标签信息为动态标签信息的标识。type2表示动态数据类型。DIM_B1…Bn表示动态数据维度顺序为B1…Bn。Tiling为分片参数。Padding为填充参数,size为数据尺寸。“,”、“{}”仅用于在本公开中分隔动态标签信息中的不同参数,并非动态标签信息的必备内容,实际应用中“,”、“{}”可以不存在,也可以由其他标识替代,本公开对此不作限制。
举例来说,假定某第一数据的静态标签信息为Static:IW,Float32,DIM_HW,{10,4}。且运行第一数据所参与的神经网络的处理器,采用列优先方式存储数据,能够对16位浮点数进行处理,每次最多可进行8个数的计算。那么,第一数据的动态标签信息中tiling=8,padding=tiling-(10-tiling)=6,size=(10+6)×4×2(16位浮点数所占用的字节)=128Byte。那么,该第一数据的动态标签信息可以为dynamic:Float16,DIM_WH,8,6,128Byte。
在本实施例中,可以根据实际需要对动态标签信息和静态标签信息中的各参数的位置进行调整,本公开对此不作限制。
可选地,处理器可以存储上述第一数据的标签信息。可选地,上述第一数据的标签信息可以与第一数据分离单独存储,即该第一数据有其对应的数据存储空间,该第一数据的标签信息尤其对应的标签存储空间,该标签存储空间与上述的数据存储空间可以不重叠。具体地,该方法还可以包括:将第一数据的标签信息存入标签存储空间中。其中,该标签存储空间进一步可以包括静态标签存储空间和动态标签存储空间,静态标签信息存入标签存储空间中的静态标签存储空间中;动态标签信息存入标签存储空间中的动态标签存储空间中。可选地,处理器还可以将第一数据的静态标签信息和动态标签信息存储在同一标签存储空间中,本公开对此不作限制。
在该实现方式中,可以将第一数据的静态标签信息和动态标签信息存储至不同的标签存储空间中,以便于处理器对静态标签信息和动态标签信息进行管理。并且,由于第一数据的数量庞大,存在多个第一数据具有相同的标签信息的情况,将第一数据、静态标签信息、动态标签信息分开存储更有利于进行标签信息的复用,节省存储空间。
在一种可能的实现方式中,该方法还可以包括:将标签信息的标签标识和第一数据的数据标识对应存储至关联列表,关联列表用于记录第一数据与标签信息的对应关系。进一步可选地,该关联列表可以存储至存储器中,处理器可以通过查询该关联列表确定第一数据对应的标签信息,或者通过相应的标签信息确定相应的第一数据。
在该实现方式中,第一数据的数据标识以及第一数据的标签信息的标签标识可以是相同或者相匹配的标识,标签标识和数据标识可以是编号、符号等标识。数据标识还可以是对应的第一数据的存储地址(如物理地址的首地址、指示存储地址的指针等能够表示第一数据存储地址的信息),对应的标签标识可以是存储第一数据的标签信息的存储地址(如物理地址的首地址、指示存储地址的指针等能够表示第一数据存储地址的信息)。本领域技术人员可以根据实际需要对标签标识、数据标识进行设置,本公开对此不作限制。
图3a示出根据本公开实施例的数据处理方法中的关联列表的示意图,如图3a所示,根据关联列表中的对应关系1可以确定第一数据A的标签信息为静态标签信息a和动态标签信息1。根据对应关系2可以确定第一数据B的标签信息为静态标签信息b和动态标签信息1。根据对应关系3可以确定第一数据C的标签信息为静态标签信息c和动态标签信息2。根据对应关系4可以确定第一数据D的标签信息为静态标签信息c和动态标签信息3。第一数据A和第一数据B公用相同的动态标签信息1。第一数据C和第一数据D公用相同的静态标签信息c。
通过上述方式,处理器可以根据关联列表准确、快速地确定第一数据与标签信息之间的对应关系。在其他可选的实现方式中,该第一数据与标签信息之间的对应关系还可以采用关联列表之外的其他方式进行存储。
在一种可能的实现方式中,将第一数据的标签信息存入标签存储空间中,可以包括:为标签信息添加第一标识,并将带有第一标识的标签信息存储至标签存储空间中。其中,根据标签信息,将第一数据存入数据存储空间中,可以包括:为第一数据添加与第一标识匹配的第二标识,并将带有第二标识的第一数据存入数据存储空间。
在该实现方式中,第一标识和第二标识可以是相同、或者唯一对应的标识,例如,相同的编号、编码等标识。第一标识可以是表示对应的第一数据的存储地址的标识,第二标识可以是表示第一数据的标签信息的存储地址的标识。这样,处理器可以根据第一标识和第二标识快速、准确地确定第一数据和对应的标签信息。
进一步可选地,处理器可以根据标签信息及神经网络的结构数据存储神经网络,例如,处理器可以根据标签信息和神经网络的结构图存储神经网络,其中,神经网络的结构图可以包括数据节点和操作节点,其中,该数据节点中包含数据的标签信息。
在一种可能的实现方式中,该方法还可以包括:
获取神经网络中的数据节点,数据节点包括参与神经网络运算的第二数据、第二数据的标签信息、第二数据的出度、入度和第二数据与操作节点的连接关系,第二数据可以包括第一数据;
获取神经网络中的操作节点(也可称运算节点),操作节点包括对应的参数、对应的输入数据节点和输出数据节点;
获取神经网络所对应的计算图,计算图中包括神经网络所包含的操作节点、所对应的数据节点以及数据节点与操作节点之间的连接关系;
存储数据节点、操作节点和计算图。
在该实现方式中,图3b示出根据本公开实施例的数据处理方法中的计算图的示意图,如图3b所示,在构建神经网络之后,可以根据构建的神经网络确定对应的数据节点、操作节点和计算图。其中,数据节点用于记录第二数据的结构或标记(包括第二数据的标签信息),根据第二数据的出度、入度以及第二数据与操作节点之间的连接关系,可以确定第二数据可以作为哪些前续操作节点的输出、以及可以作为哪些后续操作节点的输入。操作节点用于记录对输入的一个或多个输入数据节点所进行的操作或运算所需的参数,以及执行相应的操作或运算后输出的一个或多个输出数据节点。例如,假定某操作节点为对输入的3个输入数据节点的数据进行卷积运算得到一个输出数据节点的数据,则操作节点中需记录的参数包括卷积核的尺寸、步幅以及填充等。计算图以图的形式来表示神经网络,计算图中包括数据节点、操作节点和表征数据节点和操作节点的连接关系的有向的“边”。
在一种可能的实现方式中,处理器可以根据计算图生成一个或多个对应的指令,以通过执行一个或多个指令实现神经网络运算。可选地,处理器包含的通用处理器可以根据计算图以及该计算图中包含的标签信息等,对计算图进行编译处理,获得一个或多个指令,之后,该通用处理器可以执行指令以实现神经网络训练或推理等运算。可选地,处理器包含的通用处理器可以编译获得指令,处理器包含的人工智能处理器可以根据该编译后的指令进行神经网络训练或推理等运算。
在一种可能的实现方式中,根据标签信息,将第一数据存入数据存储空间中,包括:
在标签信息中包含动态标签信息时,根据动态标签信息中的数据尺寸,从数据存储空间中申请用于存储第一数据的第一数据存储空间;
将第一数据存入第一数据存储空间中。
在该实现方式中,在第一数据的标签信息中有动态标签信息时,处理器可以根据用户的请求,或者自动根据动态标签信息中的数据尺寸为第一数据申请第一数据存储空间,并将第一数据存储至第一数据存储空间。
举例来说,可以通过如“labelMalloc(&wp,weight)”等方式实现第一数据存储空间的申请,其中,weight所需的第一数据存储空间的大小,其可以根据动态标签信息中的数据尺寸确定的,可以是用户根据处理器提供的第一数据的动态标签信息中的数据尺寸输入(也可以是处理器自动识别第一数据的动态标签信息中的数据尺寸)确定的。通过上述方式,可以从某个指定的数据存储空间wp(wp为数据存储空间的编号、编码等标识)中为第一数据申请到第一数据存储空间。
进一步地,将第一数据存入第一数据存储空间中,可以包括:
判断第一数据当前的数据状态与动态标签信息是否一致,数据状态包括第一数据的数据类型、数据维度的顺序和维度值;可选地,该数据状态可以是根据第一数据的静态标签信息确定的。
在第一数据当前的数据状态与动态标签信息不一致时,根据静态标签信息和动态标签信息对第一数据进行转换,得到转换后的第一数据,转换后的第一数据的数据状态与动态标签信息一致;
将转换后的第一数据存入第一数据存储空间中。
在该实现方式中,在将第一数据存储至数据存储空间之前,在判断出第一数据当前的数据状态与第一数据的动态标签信息一致时,可以直接将第一数据存储至第一数据存储空间。第一数据当前的数据状态与第一数据的动态标签信息是否一致,可以是第一数据当前的数据类型与动态数据类型相同、当前的数据维度的顺序与动态数据维度顺序相同、当前对应维度的维度值与根据分片参数、填充参数和静态数据维度的维度值所计算出的维度值相同。
在一种可能的实现方式中,根据静态标签信息和动态标签信息对第一数据进行转换,得到转换后的第一数据,可以包括以下至少一项处理:
将第一数据的数据类型转换为动态数据类型;
对第一数据的数据维度的顺序进行调整;
根据填充参数,对第一数据进行填充;
根据分片参数,对第一数据进行切分。
在一种可能的实现方式中,处理器可以先判断第一数据当前的数据类型与动态数据类型是否一致,若不一致,可以先将第一数据的数据类型转换为动态数据类型。对类型转换后的第一数据的数据维度的顺序进行调整,使其与动态数据维度顺序相同。根据填充参数对调整了维度顺序的第一数据进行填充。根据分片参数对填充后的第一数据进行分片,得到转换后的第一数据,转换后的第一数据包括多个数据分片,每个数据分片的尺寸与分片参数相对应。处理器也可以先对调整了维度顺序的第一数据进行分片,而后对分片后剩余的尺寸与分片参数不对应的一个或多个待填充分片进行填充,以得到转换后的第一数据。
举例来说,图4a示出根据本公开实施例的数据处理方法中的数据转换的示意图。如图4a所示,该第一数据的静态标签信息为“Static:IW,Float32,DIM_HW,{10,4}”。第一数据当前的数据状态与静态标签信息一致。第一数据的动态标签信息为“dynamic:Float16,DIM_WH,8,6,128Byte”。处理器可以先将第一数据的数据类型由32位浮点数转换为16位浮点数。而后对第一数据进行转置处理,使其数据维度顺序与“DIM_WH”一致。基于分片参数“8”,将第一数据切分为两个数据分片。而后根据填充参数“6”对尺寸与分片参数不对应的数据分片进行填充,如均用0进行填充补位。最终,得到转换后的第一数据。
在将上述方法进行实际应用的过程中,用于利用上述带有标签信息的第一数据进行神经网络运算时,需要将上述方法以软件的形式体现,以供用户使用。软件中为用户提供的API中需要为用户提供输入第一数据的输入接口。由于用户已知或者可见的是通过输入接口输入的第一数据对应静态标签信息的数据量(或称尺寸),而在实际应用过程中第一数据的存储和运算中其数据状态是与动态标签信息相对应的,而动态标签信息对用户是不可见的。假定处理器需要根据用户输入数据量或数据尺寸之后,申请存储数据状态与动态标签信息相对应的第一数据的第一数据存储空间,则可以在为用户提供的API中添加输入数据量的另一输入接口,处理器为用户显示第一数据的动态标签信息中的数据尺寸,以便于用于输入,进而使处理器进行第一数据存储空间的申请。或者,处理器可以直接根据第一数据的动态标签信息中的数据尺寸进行第一数据存储空间的申请,用户所提供的API更无需添加输入接口。以上两种方式对用户而言其所需进行的操作都是非常简便的,为用户所提供的API都是非常友好的。并且,实时根据第一数据的动态标签信息进行存储空间申请,能够节省存储空间,减少资源占用。
通过上述方式,在第一数据有动态标签信息时,按照动态标签信息存储第一数据,该第一数据能够与处理器的性能相匹配。处理器在再次使用该第一数据时,可以直接对其进行处理,无需进行数据变形或转换,简化了处理器使用第一数据的过程,能够提升处理器的运算速度,节省运算时间。在一种可能的实现方式中,在第一数据参与神经网络运算的过程中,第一数据可能需要在不同的数据存储空间之间进行转移(如Load或Store等访存操作),次数,处理器可以根据该第一数据的标签信息,实现上述的数据访存操作。具体地,该方法还可以包括:根据标签信息,将第一数据从当前数据存储空间中转存到第二数据存储空间中。
具体地,处理器在接收到进行第一数据转移(或称转存)的转移请求时,进行第一数据的转移。处理器在接收到进行第一数据转移请求时可以获取第一数据的当前数据存储空间地址、第二数据存储空间地址、数据尺寸以及转移方向,进而实现第一数据的转移。其中,当前数据存储空间地址、第二数据存储空间地址和转移方向可以是根据用户的输入或者根据接收到的转移请求确定。数据尺寸可以根据第一数据的动态标签信息确定,或者在第一数据仅具有静态标签信息时可根据静态数据维度以及对应的维度值确定数据尺寸。转移方向可以为从一个存储器转移至另一存储器、存储器内部进行转移,在处理器包括主处理器和一个或多个从处理器时,“从一个存储器转移至另一存储器”包括:从主处理器对应的存储器转移至从处理器对应的存储器中、从一个从处理器对应的存储器转移至主处理器对应的存储器中、从一个从处理器对应的存储器转移至另一个从处理器对应的存储器中。其中,该主处理器可以是CPU等通用处理器,该从处理器可以是人工智能处理器。
举例来说,可以通过如“labelMemcpy(wp,wp_cpu,weight,HostToDevice)”等方式实现第一数据的转移,其表示为从主机(如CPU端)的存储器中的当前数据存储空间wp_cpu(可以为当前数据存储空间的物理地址等)中获取第一数据,并将第一数据存储至设备(如人工智能处理器端)中申请到的大小为weight的第二数据存储空间wp中。其中,在进行数据转移的过程中、将第一数据存储至第二数据存储空间wp之前,需要处理器申请到大小为weight的第二数据存储空间wp。在处理器所包括的主处理器为CPU、从处理器也为CPU时,在进行数据转移的过程中,可以是主处理器或从处理器进行数据存储空间的申请。在处理器包括的主处理器为CPU、从处理器为IPU时,在进行数据转移的过程中,可以是主处理器进行数据存储空间的申请。
在一种可能的实现方式中,根据标签信息,将第一数据从当前数据存储空间中转存到第二数据存储空间中,可以包括:
判断第一数据当前的数据状态是否与第一数据的动态标签信息一致,数据状态可以包括第一数据的数据类型、数据维度的顺序和维度值;
在第一数据当前的数据状态与动态标签信息不一致时,根据静态标签信息和动态标签信息对第一数据进行数据转换,得到转换后的第一数据,转换后的第一数据的数据状态与动态标签信息一致;
将转换后的第一数据转存入第二数据存储空间中。
在该实现方式中,在对第一数据进行转移时,若该第一数据有静态标签信息和动态标签信息,则先判断第一数据的数据状态是否与第一数据的动态标签信息一致。若一致,可以对第一数据做处理直接将第一数据转存至第二数据存储空间,若不一致,可以根据静态标签信息和动态标签信息对第一数据进行数据转换,并将得到的转换后的第一数据转存入第二数据存储空间中。若该第一数据仅含有静态标签信息,可以不对第一数据做处理直接将第一数据转存至第二数据存储空间。
通过上述方式,在进行数据转移的过程中,优先按照第一数据的动态标签信息对第一数据的数据状态进行判断,保证转存至第二数据储存空间中的第一数据(包含动态标签信息)能够与处理器的性能相匹配。处理器在再次使用该第一数据时,可以直接对其进行处理,无需进行数据变形,简化了处理器使用第一数据的过程,能够提升处理器的运算速度,节省运算时间。
在本实施例中,由于标签信息和第一数据存储在不同的存储空间中,需要通过相应的策略,保证处理器能够根据第一数据确定对应的标签信息。
在一种可能的实现方式中,该方法还可以包括用于对进行神经网络开发、执行的装置进行设置,使得装置能够实现以下步骤:开发创建步骤、开发编译步骤和开发运行步骤,通过上述步骤对用于对进行神经网络开发、执行的装置进行设置,可以使得该装置能够进行神经网络开发、执行神经网络运算,该装置可以包括处理器(处理器可以包括CPU等通用处理器和人工智能处理器),其中,CPU用于执行开发创建步骤、开发编译步骤和开发运行步骤。具体如下:
开发创建步骤,创建神经网络运算所需的数据节点、操作节点,并根据数据节点与操作节点之间的连接关系生成计算图,并存储数据节点、操作节点和计算图。
开发编译步骤,对计算图进行扫描,确定每个数据节点中数据所对应的数据类别和动态标签信息,并根据计算图生成对应的一个或多个指令。可选地,通用处理器可以根据该计算图及其中的标签信息对计算图进行编译处理,获得指令。
开发运行步骤,根据数据节点中数据的动态标签信息,对数据节点中的数据进行转换,得到转换后的数据。其中,该转换后的数据的动态标签信息可以与人工智能处理器等用于指令的设备的硬件信息一致。
在一种可能的实现方式中,开发运行步骤还可以包括:对装置(如IPU等处理器)进行管理,对装置所进行的管理包括以下至少一项:控制装置执行神经网络运算的开始、结束,对装置进行配置,进行寄存器设置,进行检查中断等与装置的运行相关的处理,本公开对此不作限制。
在一种可能的实现方式中,开发运行步骤还可以包括:对装置(如IPU等处理器)的内存进行管理,对装置的内存所进行的关联包括内存申请、内存释放等与内存的使用相关的关联。例如,开发运行步骤包括根据数据节点中数据的动态标签信息,申请用于存储对应的数据的第一数据存储空间。开发运行步骤包括根据数据节点中数据的标签信息将数据从当前数据存储空间中转移到第二数据存储空间中。开发运行步骤包括释放闲置的内存资源。
在一种可能的实现方式中,图4b示出根据本公开实施例的数据处理方法中所设计的用于神经网络运算的装置的示意图,如图4b所示,处理器可以包括开发创建模块41、开发编译模块42和开发运行模块43,该开发创建模块41、开发编译模块42和开发运行模块43可以集成于处理器的通用处理器中。其中,
开发创建模块41包括:用于创建并存储数据节点的数据节点子模块、用于创建并存储操作节点的操作节点子模块、用于创建并存储计算图的计算图子模块。开发创建模块41用于向开发编译模块42发送计算图。
开发编译模块42中包括:用于扫描计算图生成数据节点的标签信息(包括数据类别和动态标签信息)的计算图扫描子模块、用于生成数据节点的动态标签信息以及根据计算图生成指令的指令生成子模块。开发编译模块42用于向开发运行模块43发送指令和标签信息。
开发运行模块43包括:用于进行数据变换的数据变换子模块、用于对装置进行管理的装置管理子模块、用于对装置的内存进行管理的内存管理子模块。
在该实现方式中,用户根据上述用于进行神经网络开发的步骤可以简单、快捷地对执行神经网络运算的装置进行设计。
在一种可能的实现方式中,图4c示出根据本公开实施例的数据处理方法中用于神经网络运算装置的使用示意图,如图4c所示,该方法还可以包括用于执行神经网络的以下执行创建步骤、执行编译步骤和执行运行步骤,通过上述步骤可以对用于神经网络运算的装置进行使用,进而实现神经网络运算。该用于神经网络运算的装置可以包括CPU和IPU等处理器。
执行创建步骤(如步骤S61),CPU等通用处理器可以用于创建执行神经网络运算所需的数据节点、操作节点,并根据数据节点与操作节点之间的连接关系生成计算图。
执行编译步骤(如步骤S62),CPU等通用处理器可以用于扫描计算图生成数据节点的标签信息(包括数据类别和动态标签信息)的计算图,并用于对计算图进行编译,生成对应计算图的硬件指令。
执行运行步骤(如步骤S63),IPU等人工智能处理器用于运行硬件指令,实现训练或推理等神经网络运算。基于硬件指令调用对应的函数对数据进行运算,完成神经网络运算过程。当然,CPU等通用处理器也可以用于运行硬件指令,实现神经网络训练或推理等运算。
在一种可能的实现方式中,执行运算步骤还可以包括:IPU或CPU等处理器用于基于硬件指令进行数据存储空间(如上文所述的申请第一数据存储空间)、标签存储空间申请,以及进行数据的移动(如上文所述的将数据转移至第二数据存储空间)。
在一种可能的实现方式中,执行运算步骤还可以包括:IPU或CPU等处理器用于释放不再使用的资源。
在该实现方式中,用户根据上述用于执行神经网络的步骤,可以简便、快捷地使用对应的处理器等装置执行神经网络运算。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
进一步需要说明的是,虽然图2a、图2b的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2a、图2b中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图5示出根据本公开实施例的数据处理装置的框图。如图5所示,该装置应用于处理器,该装置包括标签获取模块51和数据存储模块52。
标签获取模块51,获取第一数据的标签信息,第一数据用于进行神经网络运算;
数据存储模块52,根据标签信息,将第一数据存入数据存储空间中,
其中,标签信息包括静态标签信息,静态标签信息用于表征第一数据参与神经网络运算相关的信息。
在一种可能的实现方式中,标签信息还可以包括动态标签信息,动态标签信息用于表征第一数据与运行神经网络的处理器相关的信息;
其中,标签获取模块,可以包括:
静态标签获取子模块,根据处理器和静态标签信息,生成第一数据的动态标签信息。
在一种可能的实现方式中,该装置还可以包括:
标签存储模块,将第一数据的标签信息存入标签存储空间中;
其中,静态标签信息存入标签存储空间中的静态标签存储空间中;
动态标签信息存入标签存储空间中的动态标签存储空间中。
在一种可能的实现方式中,静态标签信息可以包括以下至少一项:数据类别、静态数据类型、静态数据维度、静态数据维度顺序以及对应每个静态数据维度的维度值,
动态标签信息可以包括以下至少一项:动态数据类型、动态数据维度顺序、分片参数、填充参数和数据尺寸。
在一种可能的实现方式中,标签获取模块,可以包括:
类别确定子模块,根据第一数据对应于神经网络的出度、入度和第一数据所参与的神经网络中的操作,确定第一数据的数据类别;
其中,数据类别包括以下任一项:指令、输入神经元、输出神经元、隐藏神经元、常量神经元、输入权值、输出权值、常量权值和辅助数据。
在一种可能的实现方式中,数据存储模块,可以包括:
空间申请子模块,在标签信息中包含动态标签信息时,根据动态标签信息,从数据存储空间中申请用于存储第一数据的第一数据存储空间;
第一存储子模块,将第一数据存入第一数据存储空间中。
在一种可能的实现方式中,将第一数据存入第一数据存储空间中,可以包括:
判断第一数据当前的数据状态与动态标签信息是否一致,数据状态包括第一数据的数据类型、数据维度的顺序和维度值;
在第一数据当前的数据状态与动态标签信息不一致时,根据静态标签信息和动态标签信息对第一数据进行转换,得到转换后的第一数据,转换后的第一数据的数据状态与动态标签信息一致;
将转换后的第一数据存入第一数据存储空间中。
在一种可能的实现方式中,该装置还可以包括:
数据转移模块,根据标签信息,将第一数据从当前数据存储空间中转移到第二数据存储空间中。
在一种可能的实现方式中,根据标签信息,将第一数据从当前数据存储空间中转存到第二数据存储空间中,可以包括:
判断第一数据当前的数据状态是否与第一数据的动态标签信息一致,数据状态包括第一数据的数据类型、数据维度的顺序和维度值;
在第一数据当前的数据状态与动态标签信息不一致时,根据静态标签信息和动态标签信息对第一数据进行数据转换,得到转换后的第一数据,转换后的第一数据的数据状态与动态标签信息一致;
将转换后的第一数据转存入第二数据存储空间中。
在一种可能的实现方式中,该装置还可以包括:
列表存储模块,将标签信息的标签标识和第一数据的数据标识对应存储至关联列表,关联列表用于记录第一数据与标签信息的对应关系。
在一种可能的实现方式中,标签存储模块,可以包括:
第一标记子模块,为标签信息添加第一标识,并将带有第一标识的标签信息存储至标签存储空间中,
数据存储模块,可以包括:
第二标记子模块,为第一数据添加与第一标识匹配的第二标识,并将带有第二标识的第一数据存入数据存储空间。
在一种可能的实现方式中,该装置还可以包括:
数据节点获取模块,获取神经网络中的数据节点,数据节点包括参与神经网络运算的第二数据、第二数据的标签信息、第二数据的出度、入度和第二数据与操作节点的连接关系,第二数据包括第一数据;
操作节点获取模块,获取神经网络中的操作节点,操作节点包括对应的参数、对应的输入数据节点和输出数据节点;
计算图获取模块,获取神经网络所对应的计算图,计算图中包括操作节点、所对应的数据节点以及数据节点与操作节点之间的连接关系;
存储模块,存储数据节点、操作节点和计算图。
本公开实施例还提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述数据处理方法。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述数据处理装置;其中,所述数据处理装置与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述数据处理装置与外部设备之间的数据传输;所述控制器件,用于对所述数据处理装置的状态进行监控。
图6示出根据本公开实施例的板卡的结构框图,参阅图6,上述板卡除了包括上述数据处理装置389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述数据处理装置通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述数据处理装置通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述数据处理装置内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述数据处理装置中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述数据处理装置电连接。所述接口装置用于实现所述数据处理装置与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述数据处理装置,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述数据处理装置的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述数据处理装置电连接。所述控制器件用于对所述数据处理装置的状态进行监控。具体的,所述数据处理装置与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述数据处理装置可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述数据处理装置可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述数据处理装置中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述数据处理装置。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1.一种数据处理方法,应用于处理器,所述方法包括:
获取第一数据的标签信息,所述第一数据用于进行神经网络运算;
根据所述标签信息,将所述第一数据存入数据存储空间中,
其中,所述标签信息包括静态标签信息,所述静态标签信息用于表征所述第一数据参与所述神经网络运算相关的信息。
条款A2.根据条款A1所述的方法,所述标签信息还包括动态标签信息,所述动态标签信息用于表征所述第一数据与运行所述神经网络的处理器相关的信息;
其中,获取第一数据的标签信息,包括:
根据所述处理器和所述静态标签信息,生成所述第一数据的动态标签信息。
条款A3.根据条款A2所述的方法,所述方法还包括:
将所述第一数据的标签信息存入标签存储空间中;
其中,所述静态标签信息存入所述标签存储空间中的静态标签存储空间中;
所述动态标签信息存入所述标签存储空间中的动态标签存储空间中。
条款A4.根据条款A2所述的方法,所述静态标签信息包括以下至少一项:数据类别、静态数据类型、静态数据维度、静态数据维度顺序以及对应每个静态数据维度的维度值,
所述动态标签信息包括以下至少一项:动态数据类型、动态数据维度顺序、分片参数、填充参数和数据尺寸。
条款A5.根据条款A4所述的方法,获取第一数据的标签信息,包括:
根据所述第一数据对应于所述神经网络的出度、入度和所述第一数据参与的所述神经网络中的操作,确定所述第一数据的数据类别;
其中,所述数据类别包括以下任一项:指令、输入神经元、输出神经元、隐藏神经元、常量神经元、输入权值、输出权值、常量权值和辅助数据。
条款A6.根据条款A1-条款A5任一项所述的方法,根据所述标签信息,将所述第一数据存入数据存储空间中,包括:
在所述标签信息中包含动态标签信息时,根据所述动态标签信息,从所述数据存储空间中申请用于存储所述第一数据的第一数据存储空间;
将所述第一数据存入所述第一数据存储空间中。
条款A7.根据条款A6所述的方法,将所述第一数据存入所述第一数据存储空间中,包括:
判断所述第一数据当前的数据状态与所述动态标签信息是否一致,所述数据状态包括所述第一数据的数据类型、数据维度的顺序和维度值;
在所述第一数据当前的数据状态与动态标签信息不一致时,根据所述静态标签信息和所述动态标签信息对所述第一数据进行转换,得到转换后的第一数据,所述转换后的第一数据的数据状态与所述动态标签信息一致;
将所述转换后的第一数据存入所述第一数据存储空间中。
条款A8.根据条款A1-条款A5任一项所述的方法,所述方法还包括:
根据所述标签信息,将所述第一数据从当前数据存储空间中转移到第二数据存储空间中。
条款A9.根据条款A8所述的方法,根据所述标签信息,将所述第一数据从当前数据存储空间中转存到第二数据存储空间中,包括:
判断所述第一数据当前的数据状态是否与所述第一数据的动态标签信息一致,所述数据状态包括所述第一数据的数据类型、数据维度的顺序和维度值;
在所述第一数据当前的数据状态与动态标签信息不一致时,根据所述静态标签信息和所述动态标签信息对所述第一数据进行数据转换,得到转换后的第一数据,所述转换后的第一数据的数据状态与所述动态标签信息一致;
将所述转换后的第一数据转存入所述第二数据存储空间中。
条款A10.根据条款A1-条款A5任一项所述的方法,所述方法还包括:
将所述标签信息的标签标识和所述第一数据的数据标识对应存储至关联列表,所述关联列表用于记录所述第一数据与标签信息的对应关系。
条款A11.根据条款A4所述的方法,将所述第一数据的标签信息存入标签存储空间中,包括:
为所述标签信息添加第一标识,并将带有所述第一标识的标签信息存储至所述标签存储空间中,
其中,根据所述标签信息,将所述第一数据存入数据存储空间中,包括:
为所述第一数据添加与所述第一标识匹配的第二标识,并将带有所述第二标识的第一数据存入所述数据存储空间。
条款A12.根据条款A4所述的方法,所述方法还包括:
获取所述神经网络中的数据节点,所述数据节点包括参与所述神经网络运算的第二数据、所述第二数据的标签信息、所述第二数据的出度、入度和所述第二数据与操作节点的连接关系,所述第二数据包括所述第一数据;
获取所述神经网络中的操作节点,所述操作节点包括对应的参数、对应的输入数据节点和输出数据节点;
获取所述神经网络所对应的计算图,所述计算图中包括操作节点、所对应的数据节点以及数据节点与操作节点之间的连接关系;
存储所述数据节点、所述操作节点和所述计算图。
条款A13.一种数据处理装置,应用于处理器,所述装置包括:
标签获取模块,获取第一数据的标签信息,所述第一数据用于进行神经网络运算;
数据存储模块,根据所述标签信息,将所述第一数据存入数据存储空间中,
其中,所述标签信息包括静态标签信息,所述静态标签信息用于表征所述第一数据参与所述神经网络运算相关的信息。
条款A14.根据条款A13所述的装置,所述标签信息还包括动态标签信息,所述动态标签信息用于表征所述第一数据与运行所述神经网络的处理器相关的信息;
其中,所述标签获取模块,包括:
静态标签获取子模块,根据所述处理器和所述静态标签信息,生成所述第一数据的动态标签信息。
条款A15.根据条款A14所述的装置,所述装置还包括:
标签存储模块,将所述第一数据的标签信息存入标签存储空间中;
其中,所述静态标签信息存入所述标签存储空间中的静态标签存储空间中;
所述动态标签信息存入所述标签存储空间中的动态标签存储空间中。
条款A16.根据条款A14所述的装置,所述静态标签信息包括以下至少一项:数据类别、静态数据类型、静态数据维度、静态数据维度顺序以及对应每个静态数据维度的维度值,
所述动态标签信息包括以下至少一项:动态数据类型、动态数据维度顺序、分片参数、填充参数和数据尺寸。
条款A17.根据条款A16所述的装置,所述标签获取模块,包括:
类别确定子模块,根据所述第一数据对应于所述神经网络的出度、入度和所述第一数据所参与的所述神经网络中的操作,确定所述第一数据的数据类别;
其中,所述数据类别包括以下任一项:指令、输入神经元、输出神经元、隐藏神经元、常量神经元、输入权值、输出权值、常量权值和辅助数据。
条款A18.根据条款A13-条款A17任一项所述的装置,所述数据存储模块,包括:
空间申请子模块,在所述标签信息中包含动态标签信息时,根据所述动态标签信息,从所述数据存储空间中申请用于存储所述第一数据的第一数据存储空间;
第一存储子模块,将所述第一数据存入所述第一数据存储空间中。
条款A19.根据条款A18所述的装置,将所述第一数据存入所述第一数据存储空间中,包括:
判断所述第一数据当前的数据状态与所述动态标签信息是否一致,所述数据状态包括所述第一数据的数据类型、数据维度的顺序和维度值;
在所述第一数据当前的数据状态与动态标签信息不一致时,根据所述静态标签信息和所述动态标签信息对所述第一数据进行转换,得到转换后的第一数据,所述转换后的第一数据的数据状态与所述动态标签信息一致;
将所述转换后的第一数据存入所述第一数据存储空间中。
条款A20.根据条款A13-条款A17任一项所述的装置,所述装置还包括:
数据转移模块,根据所述标签信息,将所述第一数据从当前数据存储空间中转移到第二数据存储空间中。
条款A21.根据条款A20所述的装置,根据所述标签信息,将所述第一数据从当前数据存储空间中转存到第二数据存储空间中,包括:
判断所述第一数据当前的数据状态是否与所述第一数据的动态标签信息一致,所述数据状态包括所述第一数据的数据类型、数据维度的顺序和维度值;
在所述第一数据当前的数据状态与动态标签信息不一致时,根据所述静态标签信息和所述动态标签信息对所述第一数据进行数据转换,得到转换后的第一数据,所述转换后的第一数据的数据状态与所述动态标签信息一致;
将所述转换后的第一数据转存入所述第二数据存储空间中。
条款A22.根据条款A13-条款A17任一项所述的装置,所述装置还包括:
列表存储模块,将所述标签信息的标签标识和所述第一数据的数据标识对应存储至关联列表,所述关联列表用于记录所述第一数据与标签信息的对应关系。
条款A23.根据条款A16所述的装置,
所述标签存储模块,包括:
第一标记子模块,为所述标签信息添加第一标识,并将带有所述第一标识的标签信息存储至所述标签存储空间中,
所述数据存储模块,包括:
第二标记子模块,为所述第一数据添加与所述第一标识匹配的第二标识,并将带有所述第二标识的第一数据存入所述数据存储空间。
条款A24.根据条款A16所述的装置,所述装置还包括:
数据节点获取模块,获取所述神经网络中的数据节点,所述数据节点包括参与所述神经网络运算的第二数据、所述第二数据的标签信息、所述第二数据的出度、入度和所述第二数据与操作节点的连接关系,所述第二数据包括所述第一数据;
操作节点获取模块,获取所述神经网络中的操作节点,所述操作节点包括对应的参数、对应的输入数据节点和输出数据节点;
计算图获取模块,获取所述神经网络所对应的计算图,所述计算图中包括操作节点、所对应的数据节点以及数据节点与操作节点之间的连接关系;
存储模块,存储所述数据节点、所述操作节点和所述计算图。
条款A25.一种电子设备,所述电子设备包括如条款A13至条款A24任意一项所述的数据处理装置。
条款A26.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A13至24任意一项所述的数据处理装置;
其中,所述数据处理装置与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述数据处理装置与外部设备之间的数据传输;
所述控制器件,用于对所述数据处理装置的状态进行监控。
条款A27.根据条款A26所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述数据处理装置通过总线连接,所述存储单元为:DDR SDRAM;
所述数据处理装置包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
条款A28.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现条款A1至条款A12任一项所述的数据处理方法。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

Claims (16)

1.一种数据处理方法,其特征在于,应用于处理器,所述方法包括:
获取第一数据的标签信息,所述第一数据用于进行神经网络运算;
根据所述标签信息,将所述第一数据存入数据存储空间中,
其中,所述标签信息包括静态标签信息,所述静态标签信息用于表征所述第一数据参与所述神经网络运算相关的信息。
2.根据权利要求1所述的方法,其特征在于,所述标签信息还包括动态标签信息,所述动态标签信息用于表征所述第一数据与运行所述神经网络的处理器相关的信息;
其中,获取第一数据的标签信息,包括:
根据所述处理器和所述静态标签信息,生成所述第一数据的动态标签信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述第一数据的标签信息存入标签存储空间中;
其中,所述静态标签信息存入所述标签存储空间中的静态标签存储空间中;
所述动态标签信息存入所述标签存储空间中的动态标签存储空间中。
4.根据权利要求2所述的方法,其特征在于,所述静态标签信息包括以下至少一项:数据类别、静态数据类型、静态数据维度、静态数据维度顺序以及对应每个静态数据维度的维度值,
所述动态标签信息包括以下至少一项:动态数据类型、动态数据维度顺序、分片参数、填充参数和数据尺寸。
5.根据权利要求4所述的方法,其特征在于,获取第一数据的标签信息,包括:
根据所述第一数据对应于所述神经网络的出度、入度和所述第一数据参与的所述神经网络中的操作,确定所述第一数据的数据类别;
其中,所述数据类别包括以下任一项:指令、输入神经元、输出神经元、隐藏神经元、常量神经元、输入权值、输出权值、常量权值和辅助数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,根据所述标签信息,将所述第一数据存入数据存储空间中,包括:
在所述标签信息中包含动态标签信息时,根据所述动态标签信息,从所述数据存储空间中申请用于存储所述第一数据的第一数据存储空间;
将所述第一数据存入所述第一数据存储空间中。
7.根据权利要求6所述的方法,其特征在于,将所述第一数据存入所述第一数据存储空间中,包括:
判断所述第一数据当前的数据状态与所述动态标签信息是否一致,所述数据状态包括所述第一数据的数据类型、数据维度的顺序和维度值;
在所述第一数据当前的数据状态与动态标签信息不一致时,根据所述静态标签信息和所述动态标签信息对所述第一数据进行转换,得到转换后的第一数据,所述转换后的第一数据的数据状态与所述动态标签信息一致;
将所述转换后的第一数据存入所述第一数据存储空间中。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
根据所述标签信息,将所述第一数据从当前数据存储空间中转移到第二数据存储空间中。
9.根据权利要求8所述的方法,其特征在于,根据所述标签信息,将所述第一数据从当前数据存储空间中转存到第二数据存储空间中,包括:
判断所述第一数据当前的数据状态是否与所述第一数据的动态标签信息一致,所述数据状态包括所述第一数据的数据类型、数据维度的顺序和维度值;
在所述第一数据当前的数据状态与动态标签信息不一致时,根据所述静态标签信息和所述动态标签信息对所述第一数据进行数据转换,得到转换后的第一数据,所述转换后的第一数据的数据状态与所述动态标签信息一致;
将所述转换后的第一数据转存入所述第二数据存储空间中。
10.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
将所述标签信息的标签标识和所述第一数据的数据标识对应存储至关联列表,所述关联列表用于记录所述第一数据与标签信息的对应关系。
11.根据权利要求4所述的方法,其特征在于,将所述第一数据的标签信息存入标签存储空间中,包括:
为所述标签信息添加第一标识,并将带有所述第一标识的标签信息存储至所述标签存储空间中,
其中,根据所述标签信息,将所述第一数据存入数据存储空间中,包括:
为所述第一数据添加与所述第一标识匹配的第二标识,并将带有所述第二标识的第一数据存入所述数据存储空间。
12.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述神经网络中的数据节点,所述数据节点包括参与所述神经网络运算的第二数据、所述第二数据的标签信息、所述第二数据的出度、入度和所述第二数据与操作节点的连接关系,所述第二数据包括所述第一数据;
获取所述神经网络中的操作节点,所述操作节点包括对应的参数、对应的输入数据节点和输出数据节点;
获取所述神经网络所对应的计算图,所述计算图中包括操作节点、所对应的数据节点以及数据节点与操作节点之间的连接关系;
存储所述数据节点、所述操作节点和所述计算图。
13.一种数据处理装置,其特征在于,应用于处理器,所述装置包括:
标签获取模块,获取第一数据的标签信息,所述第一数据用于进行神经网络运算;
数据存储模块,根据所述标签信息,将所述第一数据存入数据存储空间中,
其中,所述标签信息包括静态标签信息,所述静态标签信息用于表征所述第一数据参与所述神经网络运算相关的信息。
14.一种电子设备,其特征在于,所述电子设备包括如权利要求13所述的数据处理装置。
15.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求13所述的数据处理装置;
其中,所述数据处理装置与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述数据处理装置与外部设备之间的数据传输;
所述控制器件,用于对所述数据处理装置的状态进行监控。
16.一种非易失性计算机可读存储介质,其特征在于,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至12任一项所述的数据处理方法。
CN201910748308.7A 2019-08-14 2019-08-14 数据处理方法、装置、计算机设备和存储介质 Active CN110458285B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910748308.7A CN110458285B (zh) 2019-08-14 2019-08-14 数据处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910748308.7A CN110458285B (zh) 2019-08-14 2019-08-14 数据处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110458285A true CN110458285A (zh) 2019-11-15
CN110458285B CN110458285B (zh) 2021-05-14

Family

ID=68486443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910748308.7A Active CN110458285B (zh) 2019-08-14 2019-08-14 数据处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110458285B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555522A (zh) * 2019-09-23 2019-12-10 北京中科寒武纪科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN110647981A (zh) * 2019-09-23 2020-01-03 北京中科寒武纪科技有限公司 数据处理方法、装置、计算机设备和存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140310217A1 (en) * 2013-04-12 2014-10-16 Qualcomm Incorporated Defining dynamics of multiple neurons
CN108171317A (zh) * 2017-11-27 2018-06-15 北京时代民芯科技有限公司 一种基于soc的数据复用卷积神经网络加速器
US20190012597A1 (en) * 2008-09-21 2019-01-10 Brainchip, Inc. Method and A System for Creating Dynamic Neural Function Libraries
CN109492241A (zh) * 2018-08-10 2019-03-19 北京中科寒武纪科技有限公司 转换方法、装置、计算机设备和存储介质
CN109726822A (zh) * 2018-12-14 2019-05-07 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN109871949A (zh) * 2017-12-22 2019-06-11 泓图睿语(北京)科技有限公司 卷积神经网络加速器及加速方法
CN109919308A (zh) * 2017-12-13 2019-06-21 腾讯科技(深圳)有限公司 一种神经网络模型部署方法、预测方法及相关设备
CN109978131A (zh) * 2017-12-28 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993284A (zh) * 2017-12-29 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN110033086A (zh) * 2019-04-15 2019-07-19 北京异构智能科技有限公司 用于神经网络卷积运算的硬件加速器
CN110073370A (zh) * 2016-12-13 2019-07-30 高通股份有限公司 用于稀疏神经网络的低功率架构
CN110119807A (zh) * 2018-10-12 2019-08-13 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190012597A1 (en) * 2008-09-21 2019-01-10 Brainchip, Inc. Method and A System for Creating Dynamic Neural Function Libraries
US20140310217A1 (en) * 2013-04-12 2014-10-16 Qualcomm Incorporated Defining dynamics of multiple neurons
CN110073370A (zh) * 2016-12-13 2019-07-30 高通股份有限公司 用于稀疏神经网络的低功率架构
CN108171317A (zh) * 2017-11-27 2018-06-15 北京时代民芯科技有限公司 一种基于soc的数据复用卷积神经网络加速器
CN109919308A (zh) * 2017-12-13 2019-06-21 腾讯科技(深圳)有限公司 一种神经网络模型部署方法、预测方法及相关设备
CN109871949A (zh) * 2017-12-22 2019-06-11 泓图睿语(北京)科技有限公司 卷积神经网络加速器及加速方法
CN109978131A (zh) * 2017-12-28 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993284A (zh) * 2017-12-29 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109492241A (zh) * 2018-08-10 2019-03-19 北京中科寒武纪科技有限公司 转换方法、装置、计算机设备和存储介质
CN110119807A (zh) * 2018-10-12 2019-08-13 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN109726822A (zh) * 2018-12-14 2019-05-07 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN110033086A (zh) * 2019-04-15 2019-07-19 北京异构智能科技有限公司 用于神经网络卷积运算的硬件加速器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GEOFFREY W. BURR 等: ""Accelerating Deep Neural Networks with Analog Memory Devices"", 《2019 CHINA SEMICONDUCTOR TECHNOLOGY INTERNATIONAL CONFERENCE (CSTIC)》 *
陈桂林 等: ""硬件加速神经网络综述"", 《计算机研究与发展》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555522A (zh) * 2019-09-23 2019-12-10 北京中科寒武纪科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN110647981A (zh) * 2019-09-23 2020-01-03 北京中科寒武纪科技有限公司 数据处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN110458285B (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN110908667B (zh) 神经网络联合编译的方法、装置和电子设备
CN107103113A (zh) 面向神经网络处理器的自动化设计方法、装置及优化方法
CN110198247A (zh) 接口测试方法及系统
CN110363810A (zh) 建立图像检测模型的方法、装置、设备和计算机存储介质
CN110119807A (zh) 运算方法、装置、计算机设备和存储介质
CN110458285A (zh) 数据处理方法、装置、计算机设备和存储介质
CN114580606A (zh) 数据处理方法、装置、计算机设备和存储介质
CN108965404A (zh) 云网健康服务系统及方法
CN110837567A (zh) 实现知识图谱嵌入的方法和系统
CN113808664A (zh) 基于机器学习的抗体筛选方法及装置
CN110647981B (zh) 数据处理方法、装置、计算机设备和存储介质
CN110490317B (zh) 神经网络运算装置及运算方法
CN110555522A (zh) 数据处理方法、装置、计算机设备和存储介质
CN111814044A (zh) 一种推荐方法、装置、终端设备及存储介质
CN111079909B (zh) 运算方法、系统及相关产品
CN110458286A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112766475B (zh) 处理部件及人工智能处理器
CN111832714B (zh) 运算方法及装置
CN111260070B (zh) 运算方法、装置及相关产品
CN111949317A (zh) 指令处理方法、装置及相关产品
CN111061507A (zh) 运算方法、装置、计算机设备和存储介质
CN109919314A (zh) 基于预测模型的处理结果预测方法、装置及服务器
CN111338694B (zh) 运算方法、装置、计算机设备和存储介质
CN111966399A (zh) 指令处理方法、装置及相关产品
CN111966400A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant after: Zhongke Cambrian Technology Co., Ltd

Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant