CN111831207A - 一种数据处理方法、装置及其设备 - Google Patents

一种数据处理方法、装置及其设备 Download PDF

Info

Publication number
CN111831207A
CN111831207A CN201910302217.0A CN201910302217A CN111831207A CN 111831207 A CN111831207 A CN 111831207A CN 201910302217 A CN201910302217 A CN 201910302217A CN 111831207 A CN111831207 A CN 111831207A
Authority
CN
China
Prior art keywords
data
target
data set
sub
determining
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
CN201910302217.0A
Other languages
English (en)
Other versions
CN111831207B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910302217.0A priority Critical patent/CN111831207B/zh
Publication of CN111831207A publication Critical patent/CN111831207A/zh
Application granted granted Critical
Publication of CN111831207B publication Critical patent/CN111831207B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据处理方法、装置及其设备,该方法包括:针对具有多行多列的输入数据集合,在获取到输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;根据所述起始数据对应的子数据集合获取输出数据集合。通过本申请的技术方案,避免数据读操作的频繁执行,节约了带宽,使读写效率显著增加。

Description

一种数据处理方法、装置及其设备
技术领域
本申请涉及互联网领域,尤其是一种数据处理方法、装置及其设备。
背景技术
在机器学习技术中,CNN(Convolutional Neural Network,卷积神经网络)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理具有出色表现。CNN是一个多层的神经网络,每层由多个二维平面组成,每个平面由多个独立的神经元组成。一般地,CNN可以由卷积层和池化层组成,卷积层的作用是提取图像的各种特征,池化层的作用是对原始特征进行两次特征提取,以减小特征分辨率,大幅度减少训练参数,并减轻模型过拟合的程度。此外,CNN以其局部权值共享的特殊结构,降低网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点,避免了特征提取和分类过程中数据重建的复杂度,因而,CNN得到了广泛的应用。
在CNN的相关运算中,为了提升计算效率,可以进行Im2col(image to columntransform,图像转列向量变换)操作。例如,将输入图像转化为图像矩阵(如3*3的矩阵),然后将图像矩阵与filter矩阵(过滤矩阵)进行乘加运算。例如,针对大小为100*200的输入图像,可以从输入图像中获取3*3的子图像,然后将这个3*3的子图像转换为3*3的图像矩阵。但是,在传统方式中,为了从输入图像中获取3*3的子图像,存在读写效率低,处理性能低等问题。
例如,针对大小为100*200的输入图像,是按照行存储到缓冲区中,如先存储第1行的100个像素点的像素值,然后存储第2行的100个像素点的像素值,以此类推。基于此,为了获取3*3的子图像,需要从缓冲区中读取300个像素点的像素值,即连续3行的所有数据。然后,从300个像素点的像素值中选择9个像素点的像素值,用这9个像素点的像素值得到3*3的子图像。
综上所述,为得到3*3的子图像,需要从缓冲区中读取大量数据,数据读操作非常频繁,浪费了带宽。需要频繁的跨行操作,使读写效率显著降低。
发明内容
本申请提供一种数据处理方法,所述方法包括:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取输出数据集合。
本申请提供一种数据处理方法,所述方法包括:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
其中,所述第一存储介质中的数据用于生成输出数据集合。
本申请提供一种数据处理方法,所述方法包括:
确定输出数据集合中的起始数据对应的第二存储位置;
根据所述第二存储位置从第一存储介质中读取所述起始数据对应的子数据集合;其中,所述第一存储介质用于存储输入数据集合中的目标数据对应的子数据集合,该子数据集合包括目标数据、与目标数据对应的至少一个关联数据;
根据所述起始数据对应的子数据集合获取输出数据集合。
本申请提供一种数据处理方法,所述方法包括:
针对具有多行多列的输入数据集合,为所述输入数据集合中的目标行的目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取输出数据集合。
本申请提供一种数据处理装置,所述装置包括:
生成模块,用于针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定模块,用于确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
读取模块,用于确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从第一存储介质中读取所述起始数据对应的子数据集合;
获取模块,用于根据所述起始数据对应的子数据集合获取输出数据集合。
本申请提供一种数据处理设备,所述数据处理设备包括:
逻辑芯片和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述逻辑芯片执行所述计算机指令时进行如下处理:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取所述输出数据集合。
基于上述技术方案,本申请实施例中,在数据存储过程中,采用行拆分方式进行存储,例如,为目标数据生成子数据集合,确定与目标数据对应的第一存储位置,并根据第一存储位置将目标数据对应的子数据集合存储到第一存储介质中。在数据读取过程中,采用多行重组方式进行读取,例如,确定输出数据集合中的起始数据对应的第二存储位置,根据第二存储位置从第一存储介质中读取起始数据对应的子数据集合,并根据起始数据对应的子数据集合获取输出数据集合。通过行拆分和多行重组两种操作的结合,能够避免多行数据的跨行操作,容易实现批处理,能够满足读写需求,提升处理效率。避免数据读操作的频繁执行,节约了带宽,避免频繁的跨行操作,使读写效率显著增加。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的数据处理方法的流程图;
图2A是本申请一种实施方式中的输入数据集合的示意图;
图2B是本申请一种实施方式中的输出数据集合的示意图;
图3是本申请另一种实施方式中的数据处理方法的流程图;
图4A-图4F是本申请一种实施方式中的数据处理的示意图;
图5是本申请一种实施方式中的数据处理装置的结构图;
图6是本申请一种实施方式中的数据处理设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种数据处理方法,该方法可以应用于任意设备(如数据处理设备等),参见图1所示,为该方法的流程示意图,该方法可以包括:
步骤101,针对具有多行多列的输入数据集合,在获取到该输入数据集合中的目标行的目标数据后,为该目标数据生成子数据集合。其中,该子数据集合可以包括该目标数据、与该目标数据对应的至少一个关联数据。
在一个例子中,该关联数据可以包括目标行中位于目标数据之后的数据;或者,该关联数据可以包括指定数据(如默认数据,如数据0等);或者,该关联数据可以包括目标行中位于目标数据之后的数据和指定数据。
在一个例子中,为该目标数据生成子数据集合,可以包括:根据输出数据集合中一行的数据数量,确定子数据集合的数据数量;然后,根据所述子数据集合的数据数量,为目标数据生成子数据集合。例如,输出数据集合的每一行包括5个数据,则子数据集合的数据数量为5个,因此,为目标数据生成的子数据集合可以包括5个数据,即1个目标数据和4个关联数据。
在一个例子中,为该目标数据生成子数据集合,可以包括:按照行存储方式将输入数据集合中的数据存储到第二存储介质中,也就是说,将输入数据集合的每一行数据,依次存储到第二存储介质中。然后,从第二存储介质中获取输入数据集合的多个数据(如每次从第二存储介质中获取8个数据);若所述多个数据包括目标行的目标数据,则可以为目标数据生成子数据集合。
步骤102,确定与该目标数据对应的第一存储位置,并根据该第一存储位置将该目标数据对应的子数据集合存储到第一存储介质中。
在一个例子中,可以确定该目标数据在目标行中的位置,并根据该目标数据在目标行中的位置,确定该目标数据对应的第一存储位置。例如,假设目标数据是目标行的第5个数据,则目标数据在目标行中的位置就是位置5,因此,目标数据在第一存储介质中的第一存储位置是位置5对应的存储位置。
步骤103,确定输出数据集合中的起始数据对应的第二存储位置,并根据该第二存储位置从第一存储介质中读取该起始数据对应的子数据集合。
在一个例子中,可以确定起始数据在输入数据集合的数据行中的位置,并根据起始数据在输入数据集合的数据行中的位置,确定该起始数据对应的第二存储位置。例如,假设起始数据是数据行的第3个数据,则起始数据在数据行中的位置就是位置3,因此,第二存储位置是位置3对应的存储位置。
步骤104,根据起始数据对应的子数据集合获取输出数据集合。
具体的,可以将起始数据对应的子数据集合确定为输出数据集合的一行数据,也就是说,起始数据对应的子数据集合就构成了输出数据集合的一行数据。
在一个例子中,上述步骤101和步骤102是数据存储过程,上述步骤103和步骤104是数据读取过程,数据存储过程和数据读取过程是两个不同过程。
在一个例子中,上述方法可以应用于逻辑芯片,逻辑芯片可以包括但不限于:FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)、CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)等,对此不做限制。
在一个例子中,第一存储介质可以包括但不限于:缓冲区(如buffer等);第二存储介质可以包括但不限于:寄存器阵列(如Register Bucket等)。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,在数据存储过程中,采用行拆分方式进行存储,例如,为目标数据生成子数据集合,确定与目标数据对应的第一存储位置,并根据第一存储位置将目标数据对应的子数据集合存储到第一存储介质中。在数据读取过程中,采用多行重组方式进行读取,例如,确定输出数据集合中的起始数据对应的第二存储位置,根据第二存储位置从第一存储介质中读取起始数据对应的子数据集合,并根据起始数据对应的子数据集合获取输出数据集合。通过行拆分和多行重组两种操作的结合,能够避免多行数据的跨行操作,容易实现批处理,能够满足读写需求,提升处理效率。避免数据读操作的频繁执行,节约了带宽,避免频繁的跨行操作,使读写效率显著增加。
基于与上述方法同样的申请构思,本申请实施例中还提出另一种数据处理方法,该方法可以包括:针对具有多行多列的输入数据集合,在获取到输入数据集合中的目标行的目标数据后,为目标数据生成子数据集合,该子数据集合包括该目标数据、与该目标数据对应的至少一个关联数据。确定与该目标数据对应的第一存储位置,根据该第一存储位置将该目标数据对应的子数据集合存储到第一存储介质中。其中,第一存储介质中的数据用于生成输出数据集合。
在一个例子中,该关联数据可以包括目标行中位于目标数据之后的数据;或者,该关联数据可以包括指定数据(如默认数据,如数据0等);或者,该关联数据可以包括目标行中位于目标数据之后的数据和指定数据。
在一个例子中,为该目标数据生成子数据集合,可以包括:按照行存储方式将输入数据集合中的数据存储到第二存储介质中,也就是说,将输入数据集合的每一行数据,依次存储到第二存储介质中。然后,从第二存储介质中获取输入数据集合的多个数据(如每次从第二存储介质中获取8个数据);若所述多个数据包括目标行的目标数据,则可以为目标数据生成子数据集合。
在一个例子中,确定与目标数据对应的第一存储位置,可以包括:确定目标数据在目标行中的位置,根据该目标数据在目标行中的位置,确定目标数据对应的第一存储位置。例如,假设目标数据是目标行的第5个数据,则目标数据在目标行中的位置就是位置5,因此,第一存储位置是位置5对应的存储位置。
基于与上述方法同样的申请构思,本申请实施例中还提出另一种数据处理方法,该方法可以包括:确定输出数据集合中的起始数据对应的第二存储位置;根据该第二存储位置从第一存储介质中读取该起始数据对应的子数据集合;所述第一存储介质用于存储输入数据集合中的目标数据对应的子数据集合,该子数据集合可以包括该目标数据、与该目标数据对应的至少一个关联数据。进一步的,根据该起始数据对应的子数据集合获取所述输出数据集合。
在一个例子中,确定输出数据集合中的起始数据对应的第二存储位置,可以包括但不限于:确定起始数据在输入数据集合的数据行中的位置,并根据起始数据在输入数据集合的数据行中的位置,确定该起始数据对应的第二存储位置。例如,假设该起始数据是数据行的第3个数据,则该起始数据在数据行中的位置就是位置3,因此,第二存储位置可以是位置3对应的存储位置。
在一个例子中,根据起始数据对应的子数据集合获取输出数据集合,可以包括:可以将起始数据对应的子数据集合确定为输出数据集合的一行数据,也就是说,起始数据对应的子数据集合就构成了输出数据集合的一行数据。
基于与上述方法同样的申请构思,本申请实施例还提出一种数据处理方法,该方法包括:针对具有多行多列的输入数据集合,为输入数据集合中的目标行的目标数据生成子数据集合;所述子数据集合包括目标数据、与目标数据对应的至少一个关联数据。确定与目标数据对应的第一存储位置,根据第一存储位置将目标数据对应的子数据集合存储到第一存储介质中。确定输出数据集合中的起始数据对应的第二存储位置,根据第二存储位置从第一存储介质中读取起始数据对应的子数据集合;根据起始数据对应的子数据集合获取输出数据集合。
其中,上述各步骤可以参见图1所示的流程,在此不再重复赘述。
以下结合具体应用场景,对本申请实施例的数据处理方法进行说明。本应用场景中,输入数据集合是具有多行多列的数据集合,参见图2A所示,为输入数据集合的示例。A1表示第1行第1列的数据,A2表示第1行第2列的数据,以此类推,B1表示第2行第1列的数据,以此类推。针对输入数据集合中的每个数据,可以是输入图像的每个像素点的像素值,例如,A1是输入图像的第1行第1列的像素点的像素值,A2是输入图像的第1行第2列的像素点的像素值,以此类推。当然,上述只是输入数据集合的示例,对此输入数据集合不做限制,只要输入数据集合包括多行多列的数据即可,后续以图2A为例进行说明。
输出数据集合是具有多行多列的数据集合,输出数据集合是输入数据集合的子区域,如输入数据集合中大小为M*N的子区域。为了进行后续运算,输出数据集合的大小为已知,即M和N的大小为已知。例如,M为3,N为4,表示输出数据集合为3*4的子区域,参见图2B所示,为输出数据集合的示例。
在传统方式中,为了构建图2B所示的输出数据集合,可以获取图2A所示的输入数据集合,并按照行存储方式将输入数据集合中的每个数据存储到缓冲区中。例如,在缓冲区中依次存储第1行的A1-A8,然后,在缓冲区中依次存储第2行的B1-B8,以此类推,最后在缓冲区中依次存储第9行的I1-I8。
为了构建图2B所示的输出数据集合,需要按照顺序从缓冲区中读取第1行的A1-A8、读取第2行的B1-B8、读取第3行的C1-C4。然后,利用第1行的A1-A4、第2行的B1-B4、第3行的C1-C4,构建图2B所示的输出数据集合。
显然,第1行的A5-A8、第2行的B5-B8,对于输出数据集合来说就是无效数据,这些数据的读取浪费了处理资源。而且,若每行均包括大量数据,则需要从缓冲区中读取大量无效数据,数据读操作非常频繁,浪费了带宽。
针对上述发现,本申请实施例提出一种数据处理方法,可以应用于逻辑芯片,如FPGA等。在数据存储过程中,采用行拆分方式进行存储,在数据读取过程中,采用多行重组方式进行读取,从而避免数据的频繁读操作,节约带宽。
参见图3所示,为数据处理方法的流程示意图,该方法可以包括:
步骤301,获取具有多行多列的输入数据集合。
具体的,FPGA可以获取输入数据集合,该输入数据集合是具有多行多列的数据集合。例如,可以获取输入图像,并基于输入图像的每个像素点的像素值,确定输入数据集合。参见图2A所示,为输入数据集合的示例。A1表示第1行第1列的数据(如输入图像的第1行第1列的像素点的像素值),A2表示第1行第2列的数据(如输入图像的第1行第2列的像素点的像素值),以此类推。
步骤302,按照行存储方式将输入数据集合中的数据存储到第二存储介质中,也就是说,将输入数据集合的每一行数据,依次存储到第二存储介质中。
其中,第二存储介质可以包括但不限于寄存器阵列(Register bucket),该寄存器阵列可以是具有环形结构的寄存器数组,对此第二存储介质不做限制。
例如,在寄存器阵列中依次存储第1行的A1-A8、第2行的B1-B8、以此类推,第9行的I1-I8。此外,若寄存器阵列的存储空间无法存储所有的数据,则寄存器阵列只存储部分数据。假设寄存器阵列的存储空间能够存储16个数据(寄存器阵列的存储空间的大小可以根据经验配置,对此不做限制,以存储16个数据为例),则在寄存器阵列中依次存储第1行的A1-A8、第2行的B1-B8。
其中,A1占据寄存器阵列的第1个位置,A2占据寄存器阵列的第2个位置,以此类推,B8占据寄存器阵列的第16个位置。这样,由于寄存器阵列的所有位置均已经存储数据,因此,不再将其它数据存储到寄存器阵列。
在后续过程中,假设A1-A8被取出(这个取出操作参见后续实施例),则在寄存器阵列中存储8个新的数据,如第3行的C1-C8,此时,B1占据寄存器阵列的第1个位置,B2占据寄存器阵列的第2个位置,以此类推,C8占据寄存器阵列的第16个位置。假设B1-B8被取出,则在寄存器阵列中存储8个新的数据,如第4行的D1-D8,此时,C1占据寄存器阵列的第1个位置,C2占据寄存器阵列的第2个位置,以此类推,D8占据寄存器阵列的第16个位置。
以此类推,直到将第9行的I1-I8存储到寄存器阵列,这样,将输入数据集合中的所有数据存储到寄存器阵列,即每个数据均经过寄存器阵列的存储。
步骤303,从第二存储介质中获取输入数据集合的多个数据。
例如,在将输入数据集合中的数据存储到寄存器阵列后,FPGA可以从寄存器阵列中取出输入数据集合的多个数据,即一次性从寄存器阵列中取出多个数据。针对取出数据的数量,可以根据经验进行配置,如可以取出8个数据,可以取出16个数据,对此不做限制。为了方便描述,后续以取出8个数据为例。
例如,首先,可以从寄存器阵列中取出A1-A8,并对A1-A8进行后续处理。在处理完成后,可以从寄存器阵列中取出B1-B8,并对B1-B8进行后续处理。以此类推,一直到从寄存器阵列中取出I1-I8,并对I1-I8进行后续处理。
步骤304,针对输入数据集合的多个数据,遍历所述多个数据中的每个数据,将遍历到的数据称为目标数据,将该目标数据所在的数据行称为目标行。
步骤305,为目标数据生成子数据集合,子数据集合包括目标数据、与目标数据对应的至少一个关联数据。该关联数据包括目标行中位于目标数据之后的数据;或,指定数据;或,目标行中位于目标数据之后的数据和指定数据。
为了生成子数据集合,可以先确定输出数据集合中一行的数据数量,并将输出数据集合中一行的数据数量确定为子数据集合的数据数量。例如,输出数据集合的大小为M*N,且输出数据集合的大小为已知,例如,M为3,N为4。因此,输出数据集合中一行的数据数量N为4,即输出数据集合的每一行包括4个数据,则子数据集合的数据数量为4个,即1个目标数据和3个关联数据。
参见图4A所示,在从寄存器阵列中取出A1-A8后,首先遍历到A1,即A1为目标数据,A1所在的数据行(即第1行)为目标行。为A1生成子数据集合,该子数据集合包括A1、第1行中位于A1之后的A2、A3和A4。
然后,遍历到A2,即A2为目标数据,第1行为目标行。为A2生成子数据集合,该子数据集合包括A2、第1行中位于A2之后的A3、A4和A5。
以此类推,在遍历到A6时,由于第1行中位于A6之后的为A7和A8(B1是第2行的数据,不是第1行中位于A6之后的数据),因此,在A6的子数据集合中添加指定数据(如0),即A6的子数据集合包括A6、A7、A8和0。
在遍历到A7时,A7的子数据集合包括A7、A8、0和0。
在遍历到A8时,A8的子数据集合包括A8、0、0和0。
参见图4B所示,在从寄存器阵列中取出B1-B8后,首先遍历到B1,即B1为目标数据,B1所在的数据行(即第2行)为目标行,基于此,B1的子数据集合可以包括B1、B2、B3和B4。此外,B2的子数据集合可以包括B2、B3、B4和B5。以此类推,B6的子数据集合可以包括B6、B7、B8和0。B7的子数据集合可以包括B7、B8、0和0。B8的子数据集合可以包括B8、0、0和0。
进一步的,在从寄存器阵列中取出其它数据(如C1-C8,…,I1-I8等)后,其实现过程与A1-A8、B1-B8的实现过程类似,在此不再重复赘述。
步骤306,确定与目标数据对应的第一存储位置,并根据第一存储位置将目标数据对应的子数据集合存储到第一存储介质中。具体的,可以根据目标数据在目标行中的位置,确定目标数据在第一存储介质中对应的第一存储位置。
在一个例子中,第一存储介质可以包括但不限于:缓冲区(如buffer等)。
例如,参见图4C和图4D所示,目标数据在缓冲区中对应的第一存储位置可以是(X-1)*Y+S,X表示目标数据的目标行,Y表示目标行的数据数量,S表示目标数据在目标行中的位置。参见图4C所示,针对第1行的A1-A8,若目标数据是A5,由于A5是第1行的第5个数据,因此,A5在缓冲区中的第一存储位置是(1-1)*8+5,即缓冲区的存储位置5。参见图4D所示,针对第2行的B1-B8,若目标数据是B4,由于B4是第2行的第4个数据,因此,B4在缓冲区中的第一存储位置是(2-1)*8+4,即缓冲区的存储位置12,以此类推。
当然,上述只是确定第一存储位置的一个示例,对此不做限制,只要根据目标数据在目标行中的位置,确定目标数据对应的第一存储位置即可。
显然,A1对应缓冲区的存储位置1,将A1对应的子数据集合(A1、A2、A3、A4)存储到缓冲区的存储位置1。A2对应缓冲区的存储位置2,将A2对应的子数据集合(A2、A3、A4、A5)存储到缓冲区的存储位置2,以此类推。
综上所述,步骤301-步骤306是数据存储过程,在数据存储过程中,可以进行行方向拆分,行方向拆分过程是将一个M*N的2D卷积向量,拆分成M个1*N的向量进行存储。在上述实施例中,只是以第1行的A1-A8,第2行的B1-B8为例,实际应用中,其它数据行的处理过程与此类似,在此不再赘述。
在数据存储过程结束后,还可以进行后续的数据读取过程,在数据读取过程中,主要是得到输出数据集合,如图2B所示的输出数据集合。
参见图3所示,本申请实施例的数据处理方法还可以包括以下步骤:
步骤307,确定输出数据集合中的起始数据对应的第二存储位置,并根据第二存储位置从第一存储介质中读取该起始数据对应的子数据集合。具体的,确定起始数据在输入数据集合的数据行中的位置,根据起始数据在输入数据集合的数据行中的位置,确定起始数据在第一存储介质中对应的第二存储位置。
例如,起始数据在缓冲区中对应的第二存储位置可以是(W-1)*Q+R,W表示起始数据所在的数据行,Q表示数据行的数据数量,R表示起始数据在输入数据集合的数据行中的位置。针对图2B所示的输出数据集合,起始数据包括输入数据集合的第1行的A1(即第1行的第1个数据)、输入数据集合的第2行的B1、输入数据集合的第3行的C1。针对起始数据A1,第二存储位置是(1-1)*8+1,即存储位置1;针对起始数据B1,第二存储位置是(2-1)*8+1,即存储位置9;针对起始数据C1,第二存储位置是(3-1)*8+1,即存储位置17。
参见图4E所示,从存储位置1读取起始数据A1对应的子数据集合,该子数据集合可以包括A1、A2、A3和A4;从存储位置9读取起始数据B1对应的子数据集合,该子数据集合可以包括B1、B2、B3和B4;从存储位置17读取起始数据C1对应的子数据集合,该子数据集合可以包括C1、C2、C3和C4。
当然,上述只是确定第二存储位置的一个示例,对此不做限制,只要根据起始数据在输入数据集合的数据行中的位置,确定第二存储位置即可。
步骤308,根据起始数据对应的子数据集合获取输出数据集合。
例如,参见图4F所示,可以将起始数据对应的子数据集合组成一个列向量,即将起始数据A1对应的子数据集合(A1、A2、A3和A4)、起始数据B1对应的子数据集合(B1、B2、B3和B4)、起始数据C1对应的子数据集合(C1、C2、C3和C4),组成一个列向量,这个列向量是一个1*12的列向量。
然后,可以将这个1*12的列向量转换成3*4(即输出数据集合的大小)的输出数据集合,这个输出数据集合也就是图2B所示的输出数据集合。
例如,可以将起始数据A1对应的子数据集合(A1、A2、A3和A4)确定为输出数据集合的一行数据,即输出数据集合的第1行数据;将起始数据B1对应的子数据集合(B1、B2、B3和B4)确定为输出数据集合的一行数据,即输出数据集合的第2行数据;将起始数据C1对应的子数据集合(C1、C2、C3和C4)确定为输出数据集合的一行数据,即输出数据集合的第3行数据。
综上所述,在数据存储过程中,可以进行行方向拆分,行方向拆分过程是将一个M*N的2D卷积向量,拆分成M个1*N的向量进行存储。在数据读取过程中,可以采用多行重组,多行重组是对数据进行列方向重组,将M个1*N的向量,还原成多行*多列的向量。通过行拆分存储和多行重组两种操作的结合,重构了列向量结构,避免了多行索引的跨行操作,容易实现批处理。由于寄存器阵列一次输出多个数据,因此,一次性完成多个列向量,相对提升了处理性能。在数据复用上,行方向计算过程重组过程可以复用,相对提升了处理性能。将2D矩阵通过行和列的分步计算,降维成2个1D向量,提升了计算并行度。
进一步的,在得到输出数据集合后,就可以将输出数据集合提供给CNN,以使CNN利用输出数据集合进行处理,例如,将输出数据集合与filter矩阵进行乘加运算等,对此输出数据集合的作用,本申请实施例中不做限制。
在上述实施例中,针对输入数据集合/输出数据集合中的每个数据,该数据可以是一个3维结构的数据,也可以是其它类型的数据,对此不做限制。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,在数据存储过程中,采用行拆分方式进行存储,例如,为目标数据生成子数据集合,确定与目标数据对应的第一存储位置,并根据第一存储位置将目标数据对应的子数据集合存储到第一存储介质中。在数据读取过程中,采用多行重组方式进行读取,例如,确定输出数据集合中的起始数据对应的第二存储位置,根据第二存储位置从第一存储介质中读取起始数据对应的子数据集合,并根据起始数据对应的子数据集合获取输出数据集合。通过行拆分和多行重组两种操作的结合,能够避免多行数据的跨行操作,容易实现批处理,能够满足读写需求,提升处理效率。避免数据读操作的频繁执行,节约了带宽,避免频繁的跨行操作,使读写效率显著增加。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据处理装置,如图5所示,为所述数据处理装置的结构图,所述装置包括:
生成模块51,用于针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定模块52,用于确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
读取模块53,用于确定输出数据集合中的起始数据对应的第二存储位置,根据第二存储位置从第一存储介质中读取所述起始数据对应的子数据集合;
获取模块54,用于根据所述起始数据对应的子数据集合获取输出数据集合。
在一个例子中,所述生成模块51为所述目标数据生成子数据集合时具体用于:按照行存储方式将输入数据集合中的数据存储到第二存储介质中;从所述第二存储介质中获取所述输入数据集合的多个数据;若所述多个数据包括目标行的目标数据,为所述目标数据生成子数据集合。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据处理设备,包括:逻辑芯片和机器可读存储介质;其中,所述机器可读存储介质上存储有若干计算机指令,所述逻辑芯片执行所述计算机指令时进行如下处理:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取所述输出数据集合。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取所述输出数据集合。
参见图6所示,为本申请实施例中提出的数据处理设备的结构图,所述数据处理设备60可以包括:逻辑芯片61,网络接口62,总线63,存储器64。
存储器64可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据等等。例如,存储器64可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等)。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种数据处理方法,其特征在于,所述方法包括:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取输出数据集合。
2.根据权利要求1所述的方法,其特征在于,所述关联数据包括所述目标行中位于所述目标数据之后的数据;或者,所述关联数据包括指定数据;或者,所述关联数据包括所述目标行中位于所述目标数据之后的数据和指定数据。
3.根据权利要求1所述的方法,其特征在于,
所述为所述目标数据生成子数据集合,包括:
根据输出数据集合中一行的数据数量,确定子数据集合的数据数量;
根据所述子数据集合的数据数量,为所述目标数据生成子数据集合。
4.根据权利要求1所述的方法,其特征在于,
所述为所述目标数据生成子数据集合,包括:
按照行存储方式将输入数据集合中的数据存储到第二存储介质中;
从所述第二存储介质中获取所述输入数据集合的多个数据;
若所述多个数据包括目标行的目标数据,为所述目标数据生成子数据集合。
5.根据权利要求1所述的方法,其特征在于,
所述确定与所述目标数据对应的第一存储位置,包括:
确定所述目标数据在所述目标行中的位置;根据所述目标数据在所述目标行中的位置,确定所述目标数据对应的第一存储位置。
6.根据权利要求1所述的方法,其特征在于,
所述确定输出数据集合中的起始数据对应的第二存储位置,包括:
确定所述起始数据在输入数据集合的数据行中的位置;根据所述起始数据在输入数据集合的数据行中的位置,确定所述起始数据对应的第二存储位置。
7.根据权利要求1所述的方法,其特征在于,
所述根据所述起始数据对应的子数据集合获取所述输出数据集合,包括:
将所述起始数据对应的子数据集合确定为输出数据集合的一行数据。
8.根据权利要求4所述的方法,其特征在于,所述第一存储介质包括缓冲区;所述第二存储介质包括寄存器阵列;所述方法应用于逻辑芯片。
9.一种数据处理方法,其特征在于,所述方法包括:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
其中,所述第一存储介质中的数据用于生成输出数据集合。
10.根据权利要求9所述的方法,其特征在于,
所述确定与所述目标数据对应的第一存储位置,包括:
确定所述目标数据在所述目标行中的位置;根据所述目标数据在所述目标行中的位置,确定所述目标数据对应的第一存储位置。
11.一种数据处理方法,其特征在于,所述方法包括:
确定输出数据集合中的起始数据对应的第二存储位置;
根据所述第二存储位置从第一存储介质中读取所述起始数据对应的子数据集合;其中,所述第一存储介质用于存储输入数据集合中的目标数据对应的子数据集合,该子数据集合包括目标数据、与目标数据对应的至少一个关联数据;
根据所述起始数据对应的子数据集合获取输出数据集合。
12.根据权利要求11所述的方法,其特征在于,
所述确定输出数据集合中的起始数据对应的第二存储位置,包括:
确定所述起始数据在输入数据集合的数据行中的位置;根据所述起始数据在输入数据集合的数据行中的位置,确定所述起始数据对应的第二存储位置。
13.一种数据处理方法,其特征在于,所述方法包括:
针对具有多行多列的输入数据集合,为所述输入数据集合中的目标行的目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取输出数据集合。
14.一种数据处理装置,其特征在于,所述装置包括:
生成模块,用于针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定模块,用于确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
读取模块,用于确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从第一存储介质中读取所述起始数据对应的子数据集合;
获取模块,用于根据所述起始数据对应的子数据集合获取输出数据集合。
15.根据权利要求14所述的装置,其特征在于,所述生成模块为所述目标数据生成子数据集合时具体用于:按照行存储方式将输入数据集合中的数据存储到第二存储介质中;从所述第二存储介质中获取所述输入数据集合的多个数据;若所述多个数据包括目标行的目标数据,为所述目标数据生成子数据集合。
16.一种数据处理设备,其特征在于,所述数据处理设备包括:
逻辑芯片和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述逻辑芯片执行所述计算机指令时进行如下处理:
针对具有多行多列的输入数据集合,在获取到所述输入数据集合中的目标行的目标数据后,为所述目标数据生成子数据集合;其中,所述子数据集合包括所述目标数据、与所述目标数据对应的至少一个关联数据;
确定与所述目标数据对应的第一存储位置,并根据所述第一存储位置将所述目标数据对应的子数据集合存储到第一存储介质中;
确定输出数据集合中的起始数据对应的第二存储位置,根据所述第二存储位置从所述第一存储介质中读取所述起始数据对应的子数据集合;
根据所述起始数据对应的子数据集合获取所述输出数据集合。
CN201910302217.0A 2019-04-16 2019-04-16 一种数据处理方法、装置及其设备 Active CN111831207B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910302217.0A CN111831207B (zh) 2019-04-16 2019-04-16 一种数据处理方法、装置及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910302217.0A CN111831207B (zh) 2019-04-16 2019-04-16 一种数据处理方法、装置及其设备

Publications (2)

Publication Number Publication Date
CN111831207A true CN111831207A (zh) 2020-10-27
CN111831207B CN111831207B (zh) 2024-06-11

Family

ID=72914628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910302217.0A Active CN111831207B (zh) 2019-04-16 2019-04-16 一种数据处理方法、装置及其设备

Country Status (1)

Country Link
CN (1) CN111831207B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117435855A (zh) * 2023-12-19 2024-01-23 北京壁仞科技开发有限公司 用于进行卷积运算的方法、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254694A1 (en) * 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
CN101776988A (zh) * 2010-02-01 2010-07-14 中国人民解放军国防科学技术大学 一种块大小可变的可重构矩阵寄存器文件
US8577951B1 (en) * 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
CN106126481A (zh) * 2016-06-29 2016-11-16 华为技术有限公司 一种计算引擎和电子设备
CN108268423A (zh) * 2016-12-31 2018-07-10 英特尔公司 实现用于具有写到读依赖关系的稀疏线性代数运算的增强的并行性的微架构
CN109284823A (zh) * 2017-04-20 2019-01-29 上海寒武纪信息科技有限公司 一种运算装置及相关产品
CN109597647A (zh) * 2018-11-29 2019-04-09 龙芯中科技术有限公司 数据处理方法及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254694A1 (en) * 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
CN101776988A (zh) * 2010-02-01 2010-07-14 中国人民解放军国防科学技术大学 一种块大小可变的可重构矩阵寄存器文件
US8577951B1 (en) * 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
CN106126481A (zh) * 2016-06-29 2016-11-16 华为技术有限公司 一种计算引擎和电子设备
CN108268423A (zh) * 2016-12-31 2018-07-10 英特尔公司 实现用于具有写到读依赖关系的稀疏线性代数运算的增强的并行性的微架构
CN109284823A (zh) * 2017-04-20 2019-01-29 上海寒武纪信息科技有限公司 一种运算装置及相关产品
CN109597647A (zh) * 2018-11-29 2019-04-09 龙芯中科技术有限公司 数据处理方法及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SALVATORE FILIPPONE 等: "Sparse Matrix-Vector Multiplication on GPGPUs", ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 9 January 2017 (2017-01-09) *
杨一晨;梁峰;张国和;何平;吴斌;高震霆;: "一种基于可编程逻辑器件的卷积神经网络协处理器设计", 西安交通大学学报, no. 07, 10 July 2018 (2018-07-10) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117435855A (zh) * 2023-12-19 2024-01-23 北京壁仞科技开发有限公司 用于进行卷积运算的方法、电子设备和存储介质
CN117435855B (zh) * 2023-12-19 2024-03-19 北京壁仞科技开发有限公司 用于进行卷积运算的方法、电子设备和存储介质

Also Published As

Publication number Publication date
CN111831207B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
US10909418B2 (en) Neural network method and apparatus
CN111369440B (zh) 模型训练、图像超分辨处理方法、装置、终端及存储介质
CN111260586B (zh) 扭曲文档图像的矫正方法和装置
CN110781923B (zh) 特征提取方法及装置
EP3798921A1 (en) Neural processing apparatus and method with neural network pool processing
US10013628B2 (en) Information processing apparatus and information processing method
CN109784372B (zh) 一种基于卷积神经网络的目标分类方法
CN110020639B (zh) 视频特征提取方法及相关设备
US20220083857A1 (en) Convolutional neural network operation method and device
CN111862251B (zh) 医学图像重建技术的方法、装置、存储介质和电子设备
KR102452951B1 (ko) 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
EP3093757B1 (en) Multi-dimensional sliding window operation for a vector processor
KR20200095300A (ko) 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치
KR20230081697A (ko) 팽창 컨볼루션 계산 가속화 방법 및 장치
CN111133457A (zh) 电子设备及其控制方法
CN111831207B (zh) 一种数据处理方法、装置及其设备
CN110298441B (zh) 一种数据处理方法、电子装置及计算机可读存储介质
CN113496228B (zh) 一种基于Res2Net、TransUNet和协同注意力的人体语义分割方法
KR20240036594A (ko) 인-메모리 연산을 위한 부분 합 관리 및 재구성가능 시스톨릭 플로우 아키텍처들
Eusse et al. A flexible ASIP architecture for connected components labeling in embedded vision applications
CN112837256B (zh) 一种用于Harris角点检测的电路系统及检测方法
CN114693919A (zh) 一种目标检测方法、终端设备及存储介质
CN118037528A (zh) 基于邻域图像帧存储体的大核卷积计算方法和装置
CN112132253A (zh) 3d动作识别方法、装置、计算机可读存储介质及设备
CN111831405B (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
GR01 Patent grant
GR01 Patent grant