CN113626079A - 数据处理方法及装置以及相关产品 - Google Patents

数据处理方法及装置以及相关产品 Download PDF

Info

Publication number
CN113626079A
CN113626079A CN202010382523.2A CN202010382523A CN113626079A CN 113626079 A CN113626079 A CN 113626079A CN 202010382523 A CN202010382523 A CN 202010382523A CN 113626079 A CN113626079 A CN 113626079A
Authority
CN
China
Prior art keywords
data
address
addresses
discrete
processing instruction
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
Application number
CN202010382523.2A
Other languages
English (en)
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.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui Cambricon Information 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 Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Priority to CN202010382523.2A priority Critical patent/CN113626079A/zh
Priority to US17/619,774 priority patent/US20240126548A1/en
Priority to PCT/CN2021/090648 priority patent/WO2021223642A1/zh
Publication of CN113626079A publication Critical patent/CN113626079A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本公开涉及一种数据处理方法及装置以及相关产品。所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。

Description

数据处理方法及装置以及相关产品
技术领域
本公开涉及计算机技术领域,特别是涉及一种数据处理方法及装置以及相关产品。
背景技术
随着人工智能技术的发展,其在图像识别等领域取得了较好的效果。在图像识别过程中,可能需要对大量离散的数据点进行处理(例如进行差值运算等),然而,相关技术中对离散数据点的处理过程较为复杂,数据开销较大。
发明内容
基于此,有必要针对上述技术问题,提供一种数据处理方法及装置以及相关产品。
根据本公开的一方面,提供了一种数据处理方法,包括:
在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,所述源数据地址包括连续的数据地址;
将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据。
根据本公开的另一方面,提供了一种数据处理装置,包括:
地址确定模块,用于在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,所述源数据地址包括连续的数据地址;
数据存储模块,用于将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括上述的数据处理装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括上述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及上述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的实施例,能够通过离散存储指令将连续数据地址的向量数据存储到离散的多个数据地址,得到离散的多个数据,以便在向量运算处理后将向量还原成离散数据点,从而简化处理过程,减小数据开销。
通过权要中的技术特征进行推导,能够达到对应背景技术中的技术问题的有益效果。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的数据处理方法的处理器的示意图。
图2示出根据本公开实施例的数据处理方法的流程图。
图3示出根据本公开实施例的数据处理装置的框图。
图4示出根据本公开实施例的板卡的结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
根据本公开实施例的数据处理方法可应用于处理器中,该处理器可以是通用处理器,例如CPU(Central Processing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对处理器的具体类型不作限制。
在一种可能的实现方式中,本公开中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本公开对处理单元及处理单元所运行的任务不作限制。
图1示出根据本公开实施例的数据处理方法的处理器的示意图。如图1所示,处理器100包括多个处理单元101以及存储单元102,多个处理单元101用于执行指令序列,存储单元102用于存储数据,可包括随机存储器(RAM,Random Access Memory)和寄存器堆。处理器100中的多个处理单元101既可共用部分存储空间,例如共用部分RAM存储空间和寄存器堆,又可同时拥有各自的存储空间。
图2示出根据本公开实施例的数据处理方法的流程图。如图2所示,该方法包括:
在步骤S11中:在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,所述源数据地址包括连续的数据地址;
在步骤S12中:将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据。
根据本公开的实施例,能够通过离散存储指令将连续数据地址的向量数据存储到离散的多个数据地址,得到离散的多个数据,以便在向量运算处理后将向量还原成离散数据点,从而简化处理过程,减小数据开销。
在一种可能的实现方式中,所述方法还包括:对接收到的处理指令进行解码,得到解码后的处理指令。其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行离散存储处理。
举例来说,当处理器接收到处理指令时,可对接收到的处理指令进行解码,得到解码后的处理指令。该解码后的处理指令包括操作码及操作域,操作码用于指示该处理指令的处理类型,操作域用于指示待处理的数据及数据参数。如果解码后的处理指令的操作码指示进行离散存储处理,则该指令为离散存储指令(Scatter Store)。
在一种可能的实现方式中,如果解码后的处理指令为离散存储指令,则可在步骤S11中确定与处理指令对应的数据的源数据地址以及离散的多个目的数据地址。与处理指令对应的数据即处理指令的操作域所指示的向量数据。源数据地址表示向量数据的多个数据在数据存储空间中当前的数据存储地址,为连续的数据地址;目的数据地址表示多个数据将被存储到的数据存储空间的数据地址,为离散的多个数据地址。源数据地址所在的数据存储空间与多个目的数据地址所在的数据存储空间可以相同或不同,本公开对此不作限制。
在一种可能的实现方式中,在确定源数据地址以及目的数据地址后,处理器可在步骤S12中根据数据长度从源数据地址读取向量数据的多个数据,并将读取到的多个数据依次存储到多个目的数据地址中,得到离散的多个数据,从而完成离散存储过程。
在一种可能的实现方式中,在图像识别等应用场景中需要对大量离散的成对数据点进行运算的情况下,可将离散数据搬运到连续地址空间中聚合为向量数据再进行向量运算(例如差值运算);在完成向量运算后,可通过离散存储指令将向量数据存储为离散的多个数据点,从而实现整个处理过程。
通过这种方式,可以实现向量数据的离散存储,简化处理过程,减小数据开销。
在一种可能的实现方式中,步骤S11可包括:根据所述处理指令的操作域中的多个数据的源数据基地址及数据尺寸,确定所述多个数据的源数据地址。
举例来说,离散存储指令可具有操作域,用于指示待存储数据的数据参数。操作域中可包括源数据基地址(Source Data Base Address)、目的数据基地址(DestinationData Base Address)、单个数据点的尺寸(Single Point Data Size)、单个数据点的数量(Single Point Data Number)、单个数据点的数据偏移基地址(Offset Vector BaseAddress)以及偏移尺寸(Offset Size)等。
其中,源数据基地址可表示向量数据的多个数据点当前在数据存储空间中的基地址;目的数据基地址可表示多个数据点将被存储到的数据存储空间中的基地址;单个数据点的尺寸可表示向量数据的每个数据点的数据尺寸(例如4位或8位);单个数据点的数量可表示向量数据的数据点的数量N(N为大于1的整数);单个数据点的数据偏移基地址可分别表示向量数据的各个数据点相对于源数据基地址偏移的基地址;偏移尺寸可表示向量数据的各个数据点对应的偏移地址的宽度,例如大于或等于单个数据点的尺寸。本公开对离散存储指令的操作域中具体的参数数量及类型不作限制。
在一种可能的实现方式中,离散存储指令的操作域中可包括源数据基地址(Source Data Base Address)、单个数据点的尺寸(Single Point Data Size)。由于源数据地址为连续的数据地址,因此可直接根据数据点的数据尺寸以及各个数据的序号依次确定各个数据的源数据地址。第n个数据点的源数据地址可表示为:
Single Point Src Addr[n]= Source Data Base Address +n*Single PointData Size (1)
在公式(1)中,Single Point Src Addr[n]表示第n个数据点的源数据地址。在源数据基地址例如为Addr1[0,3],单个数据点的尺寸为4位,n为3时,可确定出第3个数据点的源数据地址为Addr1[12,15]。
通过这种方式,可以分别确定各个数据的源数据地址,以便从源数据地址读取向量的各个数据,并分散存储到各个数据的目的数据地址。
在一种可能的实现方式中,步骤S11可包括:根据所述处理指令的操作域中的多个数据的目的数据基地址及数据偏移地址,分别确定所述多个目的数据地址。
举例来说,离散存储指令的操作域中可包括目的数据基地址(Destination DataBase Address)、单个数据点的数据偏移基地址(Offset Vector Base Address)以及偏移尺寸(Offset Size)等。可根据操作域中的单个数据点的数据偏移基地址以及偏移尺寸,分别确定各个数据点的数据偏移地址(Offset Address),例如,对于第n个数据点(1≤n≤N),该数据点的数据偏移基地址为24,偏移尺寸为4,则该数据点的数据偏移地址OffsetAddress[n]为[24,27]。这样,根据目标数据基地址及数据偏移地址,就可确定出该第n个数据点的目标数据地址。
Single Point Dest Addr[n] = Destination Data Base Address + OffsetAddress[n] (2)
在公式(2)中,Single Point Dest Addr[n]表示第n个数据点的目的数据地址。在目的数据基地址例如为Addr2[15],数据偏移地址为[24,27]时,可确定出第n个数据点的目的数据地址为Addr2[39,42]。
通过这种方式,可以分别确定各个数据的目的数据地址,以便将从源数据地址读取的各个数据存储到目的数据地址。
在一种可能的实现方式中,步骤S12可包括:从所述多个数据中各个数据的源数据地址中分别读取各个数据;将各个数据依次存储到所述目的数据地址中,得到所述多个数据。
举例来说,在确定操作域中各个数据的源数据地址和目的数据地址后,可从各个数据的源数据地址中分别读取各个数据,并将各个数据依次存储到目的数据地址中。例如n为3时,从第3个数据点的源数据地址Addr1[9,12]中读取数据,并将其存储到目的数据地址Addr2[39,42],从而完成该数据点的离散存储。这样,依次对各个数据点进行离散存储,得到N个目的数据地址中存储的N个离散的数据点,实现了向量数据分散存储的过程。
通过这种方式,可以实现离散存储,以便得到处理后的大量离散的数据点。
根据本公开实施例的数据处理方法,能够通过离散存储指令将向量数据的各个数据离散存储到离散的地址空间中,得到离散的多个数据,从而能够在图像识别等应用场景中对大量离散的成对数据点进行向量运算后,将运算后的向量分散存储为离散的数据点,得到离散的处理结果,从而简化处理过程,减小数据开销。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图3示出根据本公开实施例的数据处理装置的框图。如图3所示,所述装置包括:
地址确定模块31,用于在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,所述源数据地址包括连续的数据地址;
数据存储模块32,用于将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据。
在一种可能的实现方式中,所述地址确定模块包括:
源地址确定子模块,用于根据所述处理指令的操作域中的多个数据的源数据基地址及数据尺寸,确定所述多个数据的源数据地址。
在一种可能的实现方式中,所述地址确定模块包括:
目的地址确定子模块,用于根据所述处理指令的操作域中的多个数据的目的数据基地址及数据偏移地址,分别确定所述多个目的数据地址。
在一种可能的实现方式中,所述数据存储模块包括:
读取子模块,用于从所述多个数据中各个数据的源数据地址中分别读取各个数据;
存储子模块,用于将各个数据依次存储到所述目的数据地址中,得到所述多个数据。
在一种可能的实现方式中,所述装置还包括:
解码模块,用于对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行离散存储处理。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如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)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述数据处理装置。
在一种可能的实现方式中,还公开了一种电子设备,所述电子设备包括上述的人工智能芯片。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图4示出根据本公开实施例的板卡的结构框图,参阅图4,上述板卡除了包括上述芯片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.根据A1或A2所述方法,在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,包括:
根据所述处理指令的操作域中的多个数据的目的数据基地址及数据偏移地址,分别确定所述多个目的数据地址。
条款A4.根据A1-A3中任意一项所述方法,将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据,包括:
从所述多个数据中各个数据的源数据地址中分别读取各个数据;
将各个数据依次存储到所述目的数据地址中,得到所述多个数据。
条款A5.根据A1-A4中任意一项所述方法,所述方法还包括:
对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行离散存储处理。
条款A6.一种数据处理装置,包括:
地址确定模块,用于在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,所述源数据地址包括连续的数据地址;
数据存储模块,用于将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据。
条款A7.根据A6所述装置,所述地址确定模块包括:
源地址确定子模块,用于根据所述处理指令的操作域中的多个数据的源数据基地址及数据尺寸,确定所述多个数据的源数据地址。
条款A8.根据A6或A7所述装置,所述地址确定模块包括:
目的地址确定子模块,用于根据所述处理指令的操作域中的多个数据的目的数据基地址及数据偏移地址,分别确定所述多个目的数据地址。
条款A9.根据A6-A8中任意一项所述装置,所述数据存储模块包括:
读取子模块,用于从所述多个数据中各个数据的源数据地址中分别读取各个数据;
存储子模块,用于将各个数据依次存储到所述目的数据地址中,得到所述多个数据。
条款A10.根据A6-A9中任意一项所述装置,所述装置还包括:
解码模块,用于对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行离散存储处理。
条款A11.一种人工智能芯片,所述芯片包括如A6-A10中任意一项所述的数据处理装置。
条款A12.一种电子设备,所述电子设备包括如A11所述的人工智能芯片。
条款A13.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如A11所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

Claims (13)

1.一种数据处理方法,其特征在于,包括:
在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,所述源数据地址包括连续的数据地址;
将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据。
2.根据权利要求1所述方法,其特征在于,在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,包括:
根据所述处理指令的操作域中的多个数据的源数据基地址及数据尺寸,确定所述多个数据的源数据地址。
3.根据权利要求1或2所述方法,其特征在于,在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,包括:
根据所述处理指令的操作域中的多个数据的目的数据基地址及数据偏移地址,分别确定所述多个目的数据地址。
4.根据权利要求1-3中任意一项所述方法,其特征在于,将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据,包括:
从所述多个数据中各个数据的源数据地址中分别读取各个数据;
将各个数据依次存储到所述目的数据地址中,得到所述多个数据。
5.根据权利要求1-4中任意一项所述方法,其特征在于,所述方法还包括:
对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行离散存储处理。
6.一种数据处理装置,其特征在于,包括:
地址确定模块,用于在解码后的处理指令为离散存储指令时,确定与所述处理指令对应的数据的源数据地址以及离散的多个目的数据地址,所述源数据地址包括连续的数据地址;
数据存储模块,用于将从所述源数据地址读取到的数据依次存储到所述多个目的数据地址,得到离散的多个数据。
7.根据权利要求6所述装置,其特征在于,所述地址确定模块包括:
源地址确定子模块,用于根据所述处理指令的操作域中的多个数据的源数据基地址及数据尺寸,确定所述多个数据的源数据地址。
8.根据权利要求6或7所述装置,其特征在于,所述地址确定模块包括:
目的地址确定子模块,用于根据所述处理指令的操作域中的多个数据的目的数据基地址及数据偏移地址,分别确定所述多个目的数据地址。
9.根据权利要求6-8中任意一项所述装置,其特征在于,所述数据存储模块包括:
读取子模块,用于从所述多个数据中各个数据的源数据地址中分别读取各个数据;
存储子模块,用于将各个数据依次存储到所述目的数据地址中,得到所述多个数据。
10.根据权利要求6-9中任意一项所述装置,其特征在于,所述装置还包括:
解码模块,用于对接收到的处理指令进行解码,得到解码后的处理指令,
其中,所述解码后的处理指令包括操作码,所述操作码用于指示进行离散存储处理。
11.一种人工智能芯片,其特征在于,所述芯片包括如权利要求6-10中任意一项所述的数据处理装置。
12.一种电子设备,其特征在于,所述电子设备包括如权利要求11所述的人工智能芯片。
13.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求11所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
CN202010382523.2A 2020-05-08 2020-05-08 数据处理方法及装置以及相关产品 Pending CN113626079A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010382523.2A CN113626079A (zh) 2020-05-08 2020-05-08 数据处理方法及装置以及相关产品
US17/619,774 US20240126548A1 (en) 2020-05-08 2021-04-28 Data processing method and apparatus, and related product
PCT/CN2021/090648 WO2021223642A1 (zh) 2020-05-08 2021-04-28 数据处理方法及装置以及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010382523.2A CN113626079A (zh) 2020-05-08 2020-05-08 数据处理方法及装置以及相关产品

Publications (1)

Publication Number Publication Date
CN113626079A true CN113626079A (zh) 2021-11-09

Family

ID=78377230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010382523.2A Pending CN113626079A (zh) 2020-05-08 2020-05-08 数据处理方法及装置以及相关产品

Country Status (3)

Country Link
US (1) US20240126548A1 (zh)
CN (1) CN113626079A (zh)
WO (1) WO2021223642A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114428630A (zh) * 2022-03-31 2022-05-03 浙江地芯引力科技有限公司 芯片算法升级方法、装置和芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254591A1 (en) * 2011-04-01 2012-10-04 Hughes Christopher J Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements
CN103810125A (zh) * 2012-11-12 2014-05-21 国际商业机器公司 有源存储器件聚集、分散和过滤
CN107301453A (zh) * 2016-04-15 2017-10-27 北京中科寒武纪科技有限公司 支持离散数据表示的人工神经网络正向运算装置和方法
CN108292232A (zh) * 2015-12-21 2018-07-17 英特尔公司 用于加载索引和分散操作的指令和逻辑

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105075A (en) * 1997-08-05 2000-08-15 Adaptec, Inc. Scatter gather memory system for a hardware accelerated command interpreter engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254591A1 (en) * 2011-04-01 2012-10-04 Hughes Christopher J Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements
CN103810125A (zh) * 2012-11-12 2014-05-21 国际商业机器公司 有源存储器件聚集、分散和过滤
CN108292232A (zh) * 2015-12-21 2018-07-17 英特尔公司 用于加载索引和分散操作的指令和逻辑
CN107301453A (zh) * 2016-04-15 2017-10-27 北京中科寒武纪科技有限公司 支持离散数据表示的人工神经网络正向运算装置和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114428630A (zh) * 2022-03-31 2022-05-03 浙江地芯引力科技有限公司 芯片算法升级方法、装置和芯片
CN114428630B (zh) * 2022-03-31 2022-07-01 浙江地芯引力科技有限公司 芯片算法升级方法、装置和芯片

Also Published As

Publication number Publication date
WO2021223642A1 (zh) 2021-11-11
US20240126548A1 (en) 2024-04-18

Similar Documents

Publication Publication Date Title
CN110647722B (zh) 数据处理方法及装置以及相关产品
CN113626079A (zh) 数据处理方法及装置以及相关产品
CN112347186B (zh) 数据同步方法及装置以及相关产品
CN112765540A (zh) 数据处理方法、装置及相关产品
CN111047005A (zh) 运算方法、装置、计算机设备和存储介质
CN113626080B (zh) 数据处理装置以及相关产品
CN112306945B (zh) 数据同步方法及装置以及相关产品
CN113626081A (zh) 数据处理方法及装置以及相关产品
CN113626076A (zh) 数据处理方法及装置以及相关产品
CN113626082A (zh) 数据处理方法及装置以及相关产品
CN113626083B (zh) 数据处理装置以及相关产品
CN112306949B (zh) 数据处理方法及装置以及相关产品
CN112347027A (zh) 数据同步方法及装置以及相关产品
CN111353124A (zh) 运算方法、装置、计算机设备和存储介质
CN113033761A (zh) 数据处理方法、装置、计算机设备和存储介质
CN111061507A (zh) 运算方法、装置、计算机设备和存储介质
CN112347026B (zh) 数据同步方法及装置以及相关产品
CN111339060B (zh) 运算方法、装置、计算机设备和存储介质
CN111353125B (zh) 运算方法、装置、计算机设备和存储介质
CN113296736A (zh) 基于随机数的数据处理方法、随机数生成方法及装置
CN111290788B (zh) 运算方法、装置、计算机设备和存储介质
CN110618866A (zh) 数据处理方法及装置以及相关产品
CN112347185A (zh) 数据同步方法及装置以及相关产品
CN112784207A (zh) 运算方法及相关产品
CN115794026A (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
CB03 Change of inventor or designer information

Inventor after: Request for anonymity

Inventor before: Request for anonymity

CB03 Change of inventor or designer information