CN116821019A - 数据处理方法、计算机设备及芯片 - Google Patents
数据处理方法、计算机设备及芯片 Download PDFInfo
- Publication number
- CN116821019A CN116821019A CN202311105673.9A CN202311105673A CN116821019A CN 116821019 A CN116821019 A CN 116821019A CN 202311105673 A CN202311105673 A CN 202311105673A CN 116821019 A CN116821019 A CN 116821019A
- Authority
- CN
- China
- Prior art keywords
- tensor
- initial
- processing
- target
- data
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 226
- 230000005540 biological transmission Effects 0.000 claims abstract description 94
- 238000000034 method Methods 0.000 claims abstract description 86
- 230000009466 transformation Effects 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 47
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 abstract description 15
- 238000013528 artificial neural network Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 16
- 238000012549 training Methods 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法、计算机设备及芯片,属于计算机技术领域。该方法由传输器件执行,所述传输器件和存储器件之间建立有总线连接,所述方法包括:获取张量获取请求,所述张量获取请求是指示所述传输器件向处理器件提供目标张量的请求信息;根据所述张量获取请求携带的地址信息,获取命令描述符,所述命令描述符用于指示在所述存储器件中对所述目标张量的获取方式;基于所述命令描述符,在所述存储器件中读取初始张量,以及基于所述命令描述符对所述初始张量进行编辑处理,得到所述目标张量,所述初始张量中包括有所述目标张量;向所述处理器件发送所述目标张量。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据处理方法、计算机设备及芯片。
背景技术
直接内存访问(Direct Memory Access,DMA)是计算机总线架构提供的功能,将数据从磁盘驱动器等设备直接发送到计算机主板的内存上。
在相关技术中,通过直接内存访问以串行方式获取数据,将硬盘上保存的数据搬移到片内的存储器上,供片内的处理器或处理核心进行编辑处理,实现数据的读取和使用。
然而,在相关技术中,在数据搬移过程中,片内的存储器上的数据和硬盘内的数据一致,需要在数据搬移之后再进行处理,处理效率较为低下。
发明内容
本申请提供了一种数据处理方法、计算机设备及芯片,所述技术方案如下:
根据本申请的一方面,提供了一种数据处理方法,所述方法由传输器件执行,所述传输器件和存储器件之间建立有总线连接,所述方法包括:
获取张量获取请求,所述张量获取请求是指示所述传输器件向处理器件提供目标张量的请求信息;
根据所述张量获取请求携带的地址信息,获取命令描述符,所述命令描述符用于指示在所述存储器件中对所述目标张量的获取方式;
基于所述命令描述符,在所述存储器件中读取初始张量,以及基于所述命令描述符对所述初始张量进行编辑处理,得到所述目标张量,所述初始张量中包括有所述目标张量;
向所述处理器件发送所述目标张量。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括:处理器件、传输器件和存储器件,所述处理器件和所述传输器件之间相连,所述传输器件和所述存储器件之间建立有总线连接;
所述传输器件,用于获取所述处理器件发送的张量获取请求,所述张量获取请求是指示所述传输器件向处理器件提供目标张量的请求信息;
所述传输器件,还用于根据所述张量获取请求携带的地址信息,从所述存储器件中获取命令描述符,所述命令描述符用于指示在所述存储器件中对所述目标张量的获取方式;
所述传输器件,还用于基于所述命令描述符,在所述存储器件中读取初始张量,以及基于所述命令描述符对所述初始张量进行编辑处理,得到所述目标张量,所述初始张量中包括有所述目标张量;
所述传输器件,还用于向所述处理器件发送所述目标张量。
根据本申请实施例的另一个方面,提供了一种芯片,所述芯片包括可编程逻辑电路和程序指令中的至少之一,当所述芯片运行时,用于实现上述数据处理方法。
本申请提供的技术方案带来的有益效果至少包括:
通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取,能够实现在处理器件获取张量数据之前进行数据的预先处理,降低了对处理器件的计算能力要求以及节省了处理时间;基于传输器件进行初始张量的编辑处理,节省了对处理器件的内存占用,提高了处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机系统的一种示意图;
图2是本申请一个示例性实施例提供的计算机系统的另一种示意图;
图3是本申请一个示例性实施例提供的数据处理方法的示意图;
图4是本申请一个示例性实施例提供的数据处理方法的一种流程图;
图5是本申请一个示例性实施例提供的数据处理方法的另一种流程图;
图6是本申请一个示例性实施例提供的初始张量和目标张量的示意图;
图7是本申请一个示例性实施例提供的初始张量的示意图;
图8是本申请一个示例性实施例提供的数据处理方法的又一种流程图;
图9是本申请一个示例性实施例提供的传输器件的一种结构框图;
图10是本申请一个示例性实施例提供的传输器件的另一种结构框图;
图11是本申请一个示例性实施例提供的数据处理方法的再一种流程图;
图12是本申请一个示例性实施例提供的传输装置的结构框图;
图13是本申请一个示例性实施例提供的计算机设备的结构框图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的张量获取请求、初始张量等信息都是在充分授权的情况下获取的。
应当理解,尽管在本公开可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一参数也可以被称为第二参数,类似地,第二参数也可以被称为第一参数。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1示出了本申请一个实施例提供的计算机系统的一种示意图。该计算机系统可以实现成为数据处理方法的系统架构。该计算机系统可以包括:处理器件110、传输器件120和存储器件130。
处理器件110可以是包括有一个或多个处理核心的处理器,比如4核心处理器、8核心处理器等。处理器可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。示例性的,处理器件110可以是中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、人工智能(Artificial Intelligence,AI)处理器中的至少之一,也可以是具有数据处理能力的其他设备,本申请不进行限制。
传输器件120可以是包括有一个或多个处理核心的处理器;进一步的,处理器件110和传输器件120可以是不同的设备,也可以是同一设备上的不同部分;示例性的,处理器件110和传输器件120是一个图像处理器上的不同部分;比如,对应于不同的处理核心。在一个示例中,处理器件110和传输器件120之间具有相互独立的内存空间。
存储器件130是具有数据存储能力的电子设备,存储器件130可以是高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。存储器件130可以是独立于处理器的存储设备,也可以是集成在处理器内部的存储器,比如高速缓冲存储器(Cache)。存储器件130和传输器件120之间建立有总线连接。
图2示出了本申请一个实施例提供的计算机系统的另一种示意图。在一种实现方式中,处理器件包括L1缓存112、矩阵计算引擎114、矢量计算引擎116和控制单元118;传输器件可以实现为数据传输引擎(Data Transfer Engine,DTE)120a;存储器件可以实现为L2/L3缓存130a;数据传输引擎120a和L2/L3缓存130a之间通过总线接口单元122建立有总线连接。
数据传输引擎120a将张量数据从片外的L2/L3缓存130a搬移到片内的L1缓存(L1MEM)112或控制单元118内的共享内存(SMEM)118a。示例性的,片上部署的矩阵计算引擎114用于对矩阵数据进行计算,矢量计算引擎116用于对矢量数据进行计算,通过矩阵计算引擎114和矢量计算引擎116对获取的张量数据进行处理。
图3提供了本申请一个示例性实施例提供的数据处理方法的示意图。
在本实施例中,传输器件获取张量获取请求310,张量获取请求310是指示传输器件向处理器件提供目标张量的请求信息,目标张量是需要处理器件进行数据处理的张量数据。
根据张量获取请求310携带的地址信息312,获取命令描述符320,命令描述符320用于指示在存储器件中对目标张量的获取方式。
命令描述符320包括读取子命令322和操作子命令324。
根据读取子命令322携带的数据位置和数据尺寸,在存储器件130中读取得到初始张量332,数据位置用于指示初始张量332在存储器件130中的存储位置,数据尺寸用于指示初始张量332的数据大小。
根据操作子命令324携带的操作类型和操作位置,对初始张量进行编辑处理,得到目标张量334,操作类型用于指示对初始张量的编辑处理方式,操作位置用于指示在初始张量中进行编辑处理的位置。
在一种实现方式中,操作子命令324携带的操作类型包括切片操作324a。操作子命令324还携带有操作数量和操作位置,操作数量用于指示切片处理的处理次数;具体的,响应于操作类型为切片操作,对初始张量进行n次切片处理,将n次切片处理一一对应的n个子张量确定为目标张量,操作位置指示有对初始张量进行首次切片处理的处理位置,处理次数用于指示在至少一个维度上进行连续切片的次数。以三维张量为例,处理次数使用向量表示为(1,3,1)指示,在第一维度上仅切片一次,在第二维度上以相同大小连续切片三次,在第三维度上仅切片一次。
在另一种实现方式中,操作子命令324携带的操作类型包括反切片操作324b。操作子命令324还携带有变换信息和操作位置,变换信息用于指示对张量的维度的调换方式;具体的,响应于操作类型为反切片操作和布局变换操作,根据变换信息对第一张量的至少两个维度进行交换处理,得到变换张量,比如将第一张量的维度顺序由高度-宽度-通道(Height-width-channel,HWC)格式转换为通道-高度-宽度(Channel-height-width,CHW)格式;将变换张量填充至第二张量中的操作位置,得到目标张量。传输器件向处理器件发送目标张量334。
接下来,对本申请中的数据处理方法进行介绍。
图4示出了本申请一个示例性实施例提供的数据处理方法的一种流程图。该方法可以由传输器件执行。该方法包括:
步骤510:获取张量获取请求;
示例性的,张量获取请求是指示传输器件向处理器件提供目标张量的请求信息。示例性的,张量获取请求可以是其他设备向传输器件发送的,也可以是传输器件生成的;具体的,处理器件向传输器件发送张量获取请求;或存储器件根据预设周期向传输器件发送张量获取请求;或传输器件根据预设周期生成张量获取请求。进一步的,预设周期是传输器件、处理器件、存储器件中的任意之一确定的,或上述至少两个设备协商确定的,本申请对此不进行限制。示例性的,张量是一维或多维的数组;示例性的,张量的维度和张量中元素的索引数量相同,比如,二维张量可以表示为矩阵,二维张量中的元素有两个索引(比如:行和列),以确定元素在二维张量中的位置。
步骤520:根据张量获取请求携带的地址信息,获取命令描述符;
示例性的,张量获取请求中携带有命令描述符的地址信息,所述命令描述符的地址信息是根据处理器件需要进行的处理的目标张量在命令描述符中添加的。
示例性的,在生成张量获取请求时,目标张量存在有对应的命令描述符,在张量获取请求中添加目标张量对应的命令描述符的地址信息。地址信息用于指示命令描述符的存储位置,命令描述符通常存储在处理器件中,相应的,地址信息指示的存储位置对应处理器件的内存空间;但也不排除命令描述符存储在存储器件或传输器件中的情况,相应的,地址信息指示的存储位置对应存储器件或传输器件的内存空间。示例性的,命令描述符用于指示在存储器件中获取目标张量;具体的,通过命令描述符指示的读取操作和编辑处理在存储器件中得到处理器件需要的目标张量。
步骤530:基于命令描述符,在存储器件中读取初始张量,以及基于命令描述符对初始张量进行编辑处理,得到目标张量;
在本实施例中,初始张量和目标张量可以是一维张量,也可以是一维以上的高维张量,比如二维张量、四维张量等,本申请对比不进行限制。初始张量和目标张量的维度可以是相同或不同的。示例性的,初始张量中包括有目标张量;具体的,目标张量可以是初始张量中的一个子部分,目标张量也可以是对初始张量进行组合、布局变换等处理得到的,本申请对此不进行限制。
步骤540:向处理器件发送目标张量;
示例性的,传输器件将编辑处理得到的目标张量发送给处理器件。示例性的,处理器件能够通过数据传输连接向处理器件发送目标张量,由处理器件进行接收和写入内存空间;也可以由传输器件直接将目标张量写入处理器件的内存空间。在一种实现方式中,传输器件和处理器件具有相互独立的内存空间。
综上所述,本实施例提供的方法,通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取,能够实现在处理器件获取张量数据之前进行数据的预先处理,降低了对处理器件的计算能力要求以及节省了处理时间;基于传输器件进行初始张量的编辑处理,节省了对处理器件的内存占用,提高了处理效率。
图5示出了本申请一个示例性实施例提供的数据处理方法的另一种流程图。该方法可以由传输器件执行。即在图4示出的实施例中,步骤530可以实现为步骤532、步骤534:
步骤532:根据读取子命令携带的数据位置和数据尺寸,在存储器件中读取得到初始张量;
在本实施例中,命令描述符包括操作子命令和读取子命令,以下将通过本实施例中的两个步骤分别进行介绍。
示例性的,针对命令描述符中的读取子命令,读取子命令携带有数据位置和数据尺寸;其中,操作子命令携带的数据位置用于指示初始张量在存储器件中的存储位置,数据位置可以是存储器件中的存储地址,也可以是在存储器件中的相对位置。数据尺寸用于指示初始张量的数据大小;示例性的,以一个三维张量为例,数据尺寸包括张量数据的宽度、高度和深度信息;示例性的,可以通过张量数据的元素数量指示数据尺寸,也可以通过张量数据占用的比特长度指示数据尺寸。
示例性的,通过读取子命令中携带的数据位置和数据尺寸,指示了在存储器件中需要进行读取处理的起始位置,以及进行读取操作获取的初始张量的数据大小,实现了在存储器件中确定以及读取初始张量。
需要说明的是,本实施例仅仅示出了步骤532和步骤534组合实施的示例;在一种实现方式中,命令描述符包括读取子命令,步骤532可以实现为:根据读取子命令携带的数据位置和数据尺寸,在存储器件中读取得到初始张量;以及基于命令描述符对初始张量进行编辑处理,得到目标张量;上述步骤可以和图4的实施例中的步骤510、步骤520和步骤540组合成为新的实施例单独实施,本申请对此不进行限制。
步骤534:根据操作子命令携带的操作类型和操作位置,对初始张量进行编辑处理,得到目标张量;
示例性的,针对命令描述符中的操作子命令,操作子命令携带有操作类型和操作位置;其中,操作子命令携带的操作类型用于指示对初始张量的编辑处理方式;示例性的,对初始张量的编辑处理方式指示对初始张量的处理方式包括但不限于裁剪切片、修改元素内容、进行布局变换中的至少之一。示例性的,操作位置用于指示在初始张量中进行编辑处理的位置,操作位置可以是直接指示初始张量中的位置,比如:一维初始张量中的第n个元素;也可以指示初始张量中的相对位置,比如:二维张量中从左至右的最后一列张量。
示例性的,通过操作子命令中携带的操作类型和操作位置,指示了编辑处理初始张量的位置,以及编辑处理初始张量的方式,能够实现对初始张量进行裁剪切片、修改元素内容、进行布局变换等编辑处理。
需要说明的是,本实施例仅示出了步骤532和步骤534组合实施的示例;在一种实现方式中,命令描述符包括操作子命令,步骤534可以实现为:基于命令描述符,在存储器件中读取初始张量;以及根据操作子命令携带的操作类型和操作位置,对初始张量进行编辑处理,得到目标张量;上述步骤可以和图4的实施例中的步骤510、步骤520和步骤540组合成为新的实施例单独实施,本申请对此不进行限制。
综上所述,本实施例提供的方法,通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取,读取子命令携带的数据位置和数据尺寸指示了在存储器件中读取初始张量的方式,操作子命令携带的操作类型和操作位置指示了对初始张量的编辑处理方式,能够实现在处理器件获取张量数据之前进行数据的预先处理,降低了对处理器件的计算能力要求以及节省了处理时间;基于传输器件进行初始张量的编辑处理,得到了处理器件需要的目标张量,节省了对处理器件的内存占用,提高了处理效率。
在一种可选的实现方式中,图5中的步骤532能够实现为子步骤32,步骤534能够实现为子步骤34:
子步骤32:基于读取子命令携带的数据位置和数据尺寸,调用传输器件中部署的第二执行引擎对存储器件进行数据读取,得到初始张量;
示例性的,第二执行引擎是传输器件连接存储器件的读取接口(ReadInterface),读取接口可以用于读取本地存储器(Local Memory)中的数据,也可以用于通过总线(Bus)读取数据;在一个示例中,读取接口中包括并行设置的本地存储器读取请求引擎(Local Memory Read Request Engine)和总线读取请求引擎(Bus Read RequestEngine)。
子步骤34:基于操作子命令携带的操作类型和操作位置,调用传输器件中部署的第一执行引擎对初始张量进行编辑处理,得到目标张量;
示例性的,第一执行引擎是传输器件中的处理单元,处理单元能够对读取得到的初始张量进行编辑处理。在一个示例中,第一执行引擎用于对初始张量进行布局转换操作,第一执行引擎为张量布局转换引擎(Tensor Layout Trans Engine)。
在本实施例中,传输器件中部署有第一执行引擎和第二执行引擎;在另一种实现方式中,子步骤32和子步骤34能够拆分单独实施,具体实施方式可以参考上文中步骤532和步骤534的拆分方式,本申请对子步骤32和子步骤34单独实施的实现方式不进行限制。
综上所述,本实施例提供的方法,通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取,基于读取子命令调用第二执行引擎进行初始张量的读取,基于操作子命令调用第一执行引擎编辑得到目标张量,能够实现在处理器件获取张量数据之前进行数据的预先处理,降低了对处理器件的计算能力要求以及节省了处理时间;基于传输器件进行初始张量的编辑处理,得到了处理器件需要的目标张量,节省了对处理器件的内存占用,提高了处理效率。
接下来,对本申请中的操作子命令进行进一步介绍,对于操作子命令中携带的操作类型,至少能够实现为如下两种实现方式中的任意之一。
实现方式一:操作子命令携带的操作类型为切片(Slice)操作。
实现方式二:操作子命令携带的操作类型为反切片(Deslice)操作。
以下,将对两种实现方式分别进行介绍。
实现方式一:操作子命令携带的操作类型为切片操作;
相应的,上文图5中的步骤534能够实现为子步骤36:
子步骤36:响应于操作类型为切片操作,根据操作位置对初始张量进行切片处理,得到目标张量;
示例性的,切片操作用于指示在初始张量中提取子部分,操作位置指示有对初始张量进行的切片处理的起始位置和结束位置。操作位置指示了目标张量在初始张量中的位置信息。在本实施例中,目标张量是初始张量中的子部分。
图6示出了本申请一个示例性实施例提供的初始张量和目标张量的示意图。示例性的,初始张量412是一个三维张量,初始张量412在第一维度402(Dimensionality 1,dim1)、第二维度404(Dimensionality 2,dim2)和第三维度406(Dimensionality 3,dim3)的元素数量比例为4:3:3。
在一个示例中,以初始张量412在第一维度402至第三维度406的元素数量分别为4个、3个、3个为例进行介绍。操作子命令中的操作位置指示了对初始张量412进行的切片处理的起始位置和结束位置,切片处理得到的目标张量可以是一个元素,也可以是由多个元素组成的张量;可以理解的,目标张量的维度不超过初始张量412的维度。
示例性的,第一目标张量416是初始张量412中的一个元素,是在第一维度402上从上至下的第一个元素,在第二维度404上从前至后的第一个元素,在第三维度406上从左至右的第三个元素。
第二目标张量417是初始张量412中的两个元素组成的一维张量,包括在第一维度402上从上至下的第一个元素,在第二维度404上从前至后的第一个元素和第二个元素,在第三维度406上从左至右的第一个元素。
第三目标张量418是初始张量412中的六个元素组成的二维张量,包括在第一维度402上从上至下的第二个元素和第三个元素,在第二维度404上从前至后的第一个元素,在第三维度406上从左至右的第一个元素至第三个元素。
第四目标张量419是初始张量412中的八个元素组成的三维张量,包括在第一维度402上从上至下的第一个元素和第二个元素,在第二维度404上从前至后的第三个元素和第四个元素,在第三维度406上从左至右的第二个元素和第三个元素。
进一步的,在一种可选实现方式中,操作子命令还携带有操作数量,操作数量用于指示切片处理的处理次数。
子步骤36能够实现为:响应于操作类型为切片操作,对初始张量进行n次切片处理,将n次切片处理一一对应的n个子张量确定为目标张量。
示例性的,操作子命令还携带的操作数量用于指示在至少一个维度上进行连续切片的次数。操作位置指示有对初始张量进行首次切片处理的处理位置。示例性的,操作数量也称为重复参数(Repeat Parameter)。
在一种实现方式中,操作数量是一个向量信息。比如,操作数量为(1,3,1),操作数量用于指示三个维度上的切片次数;具体的,在第一维度上仅切片一次,在第二维度上以相同大小连续切片三次,在第三维度上仅切片一次。以图6中的第一目标张量416为例,操作数量为(1,3,1),切片操作得到的三个子张量包括在第一维度402上从上至下的第一个元素,在第二维度404上从前至后的第一个元素至第三个元素,在第三维度406上从左至右的第三个元素。三个子张量的大小和第一目标张量416相同。
进一步的,在一种可选实现方式中,操作子命令还携带有变换信息,变换信息用于指示对张量的维度的调换方式。
子步骤36能够实现为:响应于操作类型为切片操作和布局变换操作,根据操作位置对初始张量进行切片处理,得到子张量;根据变换信息对子张量的至少两个维度进行交换处理,得到目标张量。
示例性的,变换信息用于指示对子张量的至少两个维度进行调换。示例性的,通过调整子张量中各个元素的位置,对子张量中各个元素进行了重新排列,实现对子张量的布局变换。
以图6中的初始张量412为例,在一个示例中,初始张量412在第一维度402的含义为商品的型号信息,在第二维度404的含义是商品的售价,在第三维度406的含义是商品的产地地区。切片处理得到的子张量对应第二目标张量417在初始张量412中的位置,变换信息用于指示对子张量的第二维度404和第三维度406进行调换,即变换得到的目标张量的第二维度404的含义是商品的产地地区,第三维度406的含义商品的售价。相应的,子张量中的各个元素进行了重新排列,由尺寸为(1,2,1)的子张量变换为尺寸为(1,1,2)的目标张量。
综上所述,本实施例提供的方法,通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取,能够实现在处理器件获取张量数据之前进行针对初始张量的单次切片处理、连续切片处理和布局变换处理中的至少一种,降低了对处理器件的计算能力要求以及节省了处理时间;基于传输器件进行初始张量的编辑处理,节省了对处理器件的内存占用,提高了处理效率。
实现方式二:操作子命令携带的操作类型为反切片操作;
相应的,上文图5中的步骤534能够实现为子步骤37:
子步骤37:响应于操作类型为反切片操作,将初始张量中的第一张量填充至第二张量中的操作位置,得到目标张量;
示例性的,反切片操作用于指示根据第一张量替换第二张量中的部分内容,操作位置指示有对第二张量中的内容进行替换时的位置信息。在本实施例中,经过编辑处理得到的目标张量是初始张量中的至少两个张量的组合张量。
图7示出了本申请一个示例性实施例提供的初始张量的示意图。示例性的,第二张量424是一个三维张量,第二张量424在第一维度402、第二维度404和第三维度406的元素数量比例为4:3:3。
在本实施例中,以第二张量424在第一维度402至第三维度406的元素数量分别为4个、3个、3个为例进行介绍,第一张量422是一个元素。在另一个实现方式中,在第二张量424在第一维度402至第三维度406的元素数量分别为4个、3个、3个的n倍情况下,第一张量422是三个维度上的元素数量均为n个的三维张量,n为大于1的整数。
示例性的,操作位置指示了第一张量在第二张量中的填充位置,在图7中,第一张量422在第二张量424中的填充位置为第二张量424在第一维度402上从上至下的第一个元素,在第二维度404上从前至后的第二个元素,在第三维度406上从左至右的第三个元素。
进一步的,在一种可选实现方式中,操作子命令还携带有变换信息,变换信息用于指示对张量的维度的调换方式。
子步骤37能够实现为:响应于操作类型为反切片操作和布局变换操作,根据变换信息对第一张量的至少两个维度进行交换处理,得到变换张量;将变换张量填充至第二张量中的操作位置,得到目标张量。
示例性的,首先由布局变换操作对第一张量进行布局变换,再由反切片操作将布局变化的得到的变换张量填充至第二张量中的操作位置,得到目标张量。对第一张量进行布局变换的介绍请参考上文中对子张量进行布局变换的介绍,在这里不再重复赘述。
综上所述,本实施例提供的方法,通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取,能够实现在处理器件获取张量数据之前进行针对初始张量的反切片处理和/或布局变换处理,降低了对处理器件的计算能力要求以及节省了处理时间;基于传输器件进行初始张量的编辑处理,节省了对处理器件的内存占用,提高了处理效率。
图8示出了本申请一个示例性实施例提供的数据处理方法的又一种流程图。该方法可以由传输器件执行。即在图4示出的实施例中,步骤540可以实现为步骤542,还包括步骤525:
步骤525:对命令描述符进行解码处理,得到命令译码;
示例性的,由传输器件对命令描述符解码得到的命令译码是传输器件的内部命令。进一步的,传输器件中部署的引擎是基于命令译码控制的。示例性的,本实施例中的初始张量和目标张量的确定是基于命令译码得到的,命令译码是用于指示对初始张量的提取方式和对初始张量的编辑处理方式的译码信息。
进一步的,对命令描述符进行解码处理是由传输器件中部署的第三执行引擎执行的,第三执行引擎是传输器件中的命令解码器(Command Decoder,CMD Decoder),对命令描述符进行接收和解码处理。可选的,第三执行引擎还包括微操作引擎(Uop Engine),用于将解码得到的命令译码分配给传输器件中部署的其他执行引擎,比如:第一执行引擎和第二执行引擎,关于第一执行引擎和第二执行引擎的介绍请参考上文中的子步骤32和子步骤34,在这里不再赘述。
需要说明的是,本实施例可以和上文中的实施例结合,组合成为新的实施例。在一种实现方式中,命令译码包括第一子码和第二子码;第一子码对应命令描述符中的操作子命令,第一子码是操作子命令的译码信息;具体的,根据第一子码中包括的操作类型和操作位置的译码信息,指示传输器件中部署的第一执行引擎对初始张量进行编辑处理。第二子码对应命令描述符中的读取子命令。第二子码是读取子命令的译码信息;具体的,根据第一子码中包括的数据位置和数据尺寸的译码信息,指示传输器件中部署的第二执行引擎对对存储器件进行数据读取。
步骤542:根据写入子命令指示的写入位置,向处理器件的内存空间写入目标张量;
示例性的,命令描述符包括写入子命令;写入子命令携带的写入位置用于指示在处理器件的内存空间中写入目标张量的位置。示例性的,写入子命令还可以携带有目标张量的数据尺寸;示例性的,以一个三维张量为例,数据尺寸包括张量数据的宽度、高度和深度信息;示例性的,可以通过张量数据的元素数量指示数据尺寸,也可以通过张量数据占用的比特长度指示数据尺寸。
进一步的,向处理器件的内存空间写入目标张量是通过调用传输器件中的第四执行引擎执行的;比如:基于写入子命令携带的写入位置,调用传输器件中部署的第四执行引擎向处理器件的内存空间写入目标张量。
示例性的,第四执行引擎是传输器件中的写入接口(Write Interface),写入接口可以用于向本地存储器(Local Memory)中写入数据,也可以用于通过总线(Bus)写入数据;在一个示例中,向接口中包括并行设置的本地存储器写入请求引擎(Local Memory WriteRequest Engine)和总线写入请求引擎(Bus Write Request Engine)。
需要说明的是,本实施例中的步骤525可以和图4中的步骤510至步骤540组合成为新的实施例单独实施;本实施例中的步骤542可以和图4中的步骤510至步骤530组合成为新的实施例单独实施;本申请对此不进行限制。
综上所述,本实施例提供的方法,通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取,能够实现在处理器件获取张量数据之前进行数据的预先处理;通过解码处理在传输器件中对命令描述符进行了统一解码,避免了对命令描述符的拆分和分配,降低了命令描述符的解码复杂程度;传输器件直接向处理器件的内存空间写入目标张量降低了对处理器件的计算能力要求,提高了处理效率。
图9示出了本申请一个示例性实施例提供的传输器件的一种结构框图。
示例性的,传输器件中部署有命令解码器(CMD Decoder)460、微指令引擎(MicroOperations Engine,uop Engine)465、读取接口(Read Interface)470、布局转换引擎(Tensor Layout Trans Engine)475、写入接口(Write Interface)480。
命令解码器460中的请求缓存器462保存有接收的张量获取请求461,在请求缓存器462按照先入先出队列(First In First Out,FIFO)方式进行缓存。张量获取请求461中携带有命令描述符的存储地址,命令描述符保存在描述符内存(Describe Memory,descmem)462a中,命令描述(Command Description,CMD desp)464对命令描述符进行解析处理,得到对应的命令译码,将命令译码传输至微指令引擎465。微指令引擎465中按照张量的维度对应有一维引擎(1D engine)466a、二维引擎(2D engine)466b、四维引擎(4D engine)466c,可以理解的微指令引擎465中可以部署有更多的引擎,用于对不同维度的张量数据对应的命令译码进行拆分,得到微指令并缓存在微指令缓存器468中。微指令缓存器468向传输器件中的读取接口470、布局转换引擎475和写入接口480发送对应的需要执行的微指令。
示例性的,读取接口470中包括本地存储器读取请求引擎472和总线读取请求引擎474;本地存储器读取请求引擎472用于处理对应于本地存储471a的读取请求,总线读取请求引擎474用于处理对应于总线471b的读取请求。通过本地存储471a或总线471b读取得到初始张量,初始张量保存在数据写入缓存器(Data in FIFO)475a中,布局转换引擎475对数据写入缓存器475a中的张量数据进行布局转换处理,得到目标张量,将目标张量保存在数据写入缓存器475b中,写入接口480将数据写入缓存器(Data out FIFO)475b中的目标张量进行写入处理;具体的,可以通过本地存储器写入请求引擎482将目标张量写入本地存储器,也可以通过总线写入请求引擎484将目标张量通过总线写入处理器件的内存空间。
示例性的,关于本实施例中的命令解码器460、微指令引擎465、读取接口470、布局转换引擎475、写入接口480的介绍,可以参考上文中的第一执行引擎至第四执行引擎。需要说明的是,本实施例中的读取接口470、布局转换引擎475、写入接口480可以组合成为引擎组,在传输器件中可以部署有多组并行排列的引擎组。示例性的,图10示出了本申请一个示例性实施例提供的传输器件的另一种结构框图。命令描述464从请求缓存器462中获取张量获取请求461对应的命令描述符,以及对命令描述符进行解析处理;在本实施例中,传输器件部署有三个并行排列的引擎组:第一执行引擎组490a、第二执行引擎组490b和第三执行引擎组490c;每个引擎组包括有读取接口、布局转换引擎、写入接口;还可以包括有微指令引擎,本申请不进行限制。可以理解的,在另一个示例中,传输器件中还可以部署有更多数量的并行排列的引擎组。
在一个具体的示例中,处理器件对应于数字信号处理(Digital SignalProcessing,DSP)或图像处理器(Graphics Processing Unit,GPU)等具有数据处理能力的电子设备,用于对人工神经网络(Artificial Neural Network, ANN)的训练过程或应用过程进行处理。示例性的,目标张量是电子设备对人工神经网络进行处理的过程中需要使用的张量数据,比如目标张量包括但不限于人工神经网络的模型参数、人工神经网络模型的训练样本、人工神经网络模型的输入参数等中的至少之一;可以理解的,张量数据可以是数字组成的一维向量或高维矩阵,对应于人工神经网络的模型参数或音频数据、视频数据、图片数据等多媒体信息;张量数据也可以是由字符组成的一维或高维张量,该张量中可以包括数字、字母、符号、汉字等信息中的至少之一。
示例性的,传输器件是数字信号处理或图像处理器中的部分处理核心,称为数据传输核心;数据传输核心接收数字信号处理或图像处理器中用于对目标张量进行处理的数据处理核心发送的张量获取请求。
在一种实现方式中,目标张量是人工神经网络训练过程中使用的网路参数和/或训练样本。根据张量获取请求携带的地址信息,获取传输网路参数和/或训练样本对应的命令描述符。
基于命令描述符,在硬盘中读取初始张量,以及基于命令描述符对初始张量进行编辑处理,得到人工神经网络训练过程中使用的网路参数和/或训练样本;数据传输核心向数据处理核心发送网路参数和/或训练样本。
以目标张量是网路参数为例,人工神经网络模型包括并行和/或串行部署的多个子模型,目标张量是部分子模型对应的网络参数。初始张量中包括人工神经网络模型中的全部网络参数,通过对人工神经网络模型中的全部网络参数进行切片处理,得到目标张量,即部分子模型对应的网络参数。
以目标张量是训练样本为例,人工神经网络模型进行单次训练需要样本图像和样本标签,比如将样本图像输入人工神经网络模型,预测得到预测标签,通过比较预测标签和样本标签之间的区别进行人工神经网络模型的训练。初始张量中包括多个样本图像组成的图像组,以及多个样本标签组成的标签组;通过对标签组进行反切片处理,将标签填充至对应的样本图像的尾部,组成了包括样本图像和对应的样本标签的样本组张量,即目标张量。
在另一种实现方式中,目标张量是人工神经网络应用过程中使用的输入参数。根据张量获取请求携带的地址信息,获取传输输入参数对应的命令描述符;以人工神经网络模型用于预测图片包含的物体类型为例,初始张量为向人工神经网络模型的输入图像,对输入图像进行切片处理,截取输入图像中的子区域,以实现向人工神经网络模型中的子模型提供不同区域的图片区域,即目标张量为切片处理得到的输入图像中的多个子区域。
示例性的,通过在人工神经网络模型的训练过程或应用过程中进行目标张量的获取和传输能够提高人工神经网络模型的训练过程或应用过程的处理效率,节省调用人工神经网络模型的数据处理时间。
图11示出了本申请一个示例性实施例提供的数据处理方法的再一种流程图。该方法可以由传输器件执行。即在图4示出的实施例的基础上,还包括步骤526:
步骤526:根据张量维度信息确定元素排列位置;
示例性的,元素排列位置用于指示单次读取存储器件得到的至少两个元素在初始张量中的排列方式。示例性的,单次读取存储器件的元素数量是根据总线宽度确定的,具体的,单次读取存储器件的元素数量和总线宽度呈正相关关系。张量维度信息用于指示需要进行读取的初始张量的数据维度数量。
示例性的,至少两个元素的排列方式可以是一维张量,也可以是多维张量;可以理解的,元素排列位置指示的维度数量小于或等于张量维度信息。示例性的,初始张量是通过对存储器件的至少一次读取处理构建得到的。
在一种可选实现方式中,本实施例中的步骤526能够实现为:
将张量维度信息携带的至少一个维度上的元素数量的因数确定为维度排列位置。
基于维度排列位置构建得到元素排列位置。
示例性的,张量维度信息携带有初始张量的数据维度数量,还携带有至少一个维度上的元素数量,以图6为例,张量维度信息携带有初始张量的数据维度数量,即初始张量是一个三维张量;张量维度信息还携带有至少一个维度上的元素数量,比如初始张量在第一维度至第三维度的元素数量分别为4个、3个、3个。
示例性的,将元素数量的因数确定为维度排列位置能够实现通过整数次数的读取处理获取初始张量,且每次读取的张量中元素和数量相同,且每次读取的多个元素具有相同的相对位置,简化了在读取之后组合得到初始张量复杂程度。示例性的,维度排列位置用于指示单次读取存储器件得到的至少两个元素在至少一个维度上的元素数量。
综上所述,本实施例提供的方法,通过传输器件在存储器件和处理器件之间进行数据传输,避免了占用处理器件的总线进程直接进行数据获取;根据张量维度信息确定元素排列位置,针对不同维度的张量数据确定单次读取的元素排列方式,降低拼接得到初始张量的复杂程度,降低了对传输器件的计算能力要求。
本领域普通技术人员可以理解,上述实施例可以独立实施,也可以将上述实施例进行自由组合,组合出新的实施例实现本申请的数据处理方法。
图12示出了本申请一个示例性实施例提供的传输装置的结构框图。所述传输装置和存储装置之间建立有总线连接,所述传输装置包括:
获取模块810,用于获取张量获取请求,所述张量获取请求是指示所述传输装置向处理装置提供目标张量的请求信息;
所述获取模块810,还用于根据所述张量获取请求携带的地址信息,获取命令描述符,所述命令描述符用于指示在所述存储装置中对所述目标张量的获取方式;
处理模块820,用于基于所述命令描述符,在所述存储装置中读取初始张量,以及基于所述命令描述符对所述初始张量进行编辑处理,得到所述目标张量,所述初始张量中包括有所述目标张量;
发送模块830,用于向所述处理装置发送所述目标张量。
在本实施例的一个可选实现方式中,所述命令描述符包括操作子命令;所述处理模块820还用于:
根据所述操作子命令携带的操作类型和操作位置,对所述初始张量进行编辑处理,得到所述目标张量,所述操作类型用于指示对所述初始张量的编辑处理方式,所述操作位置用于指示在所述初始张量中进行编辑处理的位置。
在本实施例的一个可选实现方式中,所述处理模块820还用于:
基于所述操作子命令携带的所述操作类型和所述操作位置,调用所述传输装置中部署的第一执行引擎对所述初始张量进行编辑处理,得到所述目标张量,所述第一执行引擎是所述传输装置中的处理单元。
在本实施例的一个可选实现方式中,所述处理模块820还用于:
响应于所述操作类型为切片操作,根据所述操作位置对所述初始张量进行切片处理,得到所述目标张量,所述目标张量是所述初始张量中的子部分。
在本实施例的一个可选实现方式中,所述操作子命令还携带有操作数量,所述操作数量用于指示切片处理的处理次数;
所述处理模块820还用于:响应于所述操作类型为切片操作,对所述初始张量进行n次切片处理,将所述n次切片处理一一对应的n个子张量确定为所述目标张量,所述操作位置指示有对所述初始张量进行首次切片处理的处理位置,所述处理次数用于指示在至少一个维度上进行连续切片的次数。
在本实施例的一个可选实现方式中,所述操作子命令还携带有变换信息,所述变换信息用于指示对张量的维度的调换方式;
所述处理模块820还用于:响应于所述操作类型为切片操作和布局变换操作,根据所述操作位置对所述初始张量进行切片处理,得到子张量;
根据所述变换信息对所述子张量的至少两个维度进行交换处理,得到所述目标张量。
在本实施例的一个可选实现方式中,所述处理模块820还用于:
响应于所述操作类型为反切片操作,将初始张量中的第一张量填充至第二张量中的所述操作位置,得到所述目标张量,所述目标张量是所述初始张量中的至少两个张量的组合张量。
在本实施例的一个可选实现方式中,所述操作子命令还携带有变换信息,所述变换信息用于指示对张量的维度的调换方式;
所述处理模块820还用于:响应于所述操作类型为反切片操作和布局变换操作,根据所述变换信息对所述第一张量的至少两个维度进行交换处理,得到变换张量;将所述变换张量填充至所述第二张量中的所述操作位置,得到所述目标张量。
在本实施例的一个可选实现方式中,所述命令描述符包括读取子命令;所述处理模块820还用于:
根据所述读取子命令携带的数据位置和数据尺寸,在所述存储装置中读取得到所述初始张量,所述数据位置用于指示所述初始张量在所述存储装置中的存储位置,所述数据尺寸用于指示所述初始张量的数据大小。
在本实施例的一个可选实现方式中,所述处理模块820还用于:
基于所述读取子命令携带的所述数据位置和所述数据尺寸,调用所述传输装置中部署的第二执行引擎对所述存储装置进行数据读取,得到所述初始张量,所述第二执行引擎是所述传输装置连接所述存储装置的读取接口。
在本实施例的一个可选实现方式中,所述处理模块820还用于:
对所述命令描述符进行解码处理,得到命令译码,所述初始张量和所述目标张量的确定是基于所述命令译码得到的,所述命令译码是用于指示对所述初始张量的提取方式和对所述初始张量的编辑处理方式的译码信息。
在本实施例的一个可选实现方式中,所述命令描述符包括写入子命令;所述发送模块830还用于:根据所述写入子命令指示的写入位置,向所述处理装置的内存空间写入所述目标张量。
在本实施例的一个可选实现方式中,所述命令描述符包括张量维度信息,所述张量维度信息用于指示需要进行读取的所述初始张量的数据维度数量;所述处理模块820还用于:根据所述张量维度信息确定元素排列位置,所述元素排列位置用于指示单次读取所述存储装置得到的至少两个元素在所述初始张量中的排列方式,所述初始张量是通过对所述存储装置的至少一次读取处理构建得到的,所述元素排列位置指示的维度数量小于或等于所述张量维度信息。
在本实施例的一个可选实现方式中,所述张量维度信息携带有所述初始张量在至少一个维度上的元素数量;
所述处理模块820还用于:将所述张量维度信息携带的所述至少一个维度上的所述元素数量的因数确定为维度排列位置;
基于所述维度排列位置构建得到所述元素排列位置,所述维度排列位置用于指示单次读取所述存储装置得到的至少两个元素在所述至少一个维度上的元素数量。
需要说明的一点是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述;各个模块执行操作取得的技术效果与有关该方法的实施例中的技术效果相同,此处将不做详细阐述说明。
本申请实施例还提供了一种计算机设备,图13是本申请一个示例性实施例提供的计算机设备的结构框图。该计算机设备包括:处理器件110、传输器件120和存储器件130,处理器件110和传输器件120之间相连,传输器件120和存储器件130之间建立有总线连接;
传输器件120,用于获取处理器件110发送的张量获取请求;
示例性的,张量获取请求是指示传输器件120向处理器件110提供目标张量的请求信息;关于张量获取请求的具体介绍请参考上文中的步骤510。
传输器件120,还用于根据张量获取请求携带的地址信息,从存储器件130中获取命令描述符;
示例性的,命令描述符用于指示在存储器件130中对目标张量的获取方式;关于命令描述符的具体介绍请参考上文中的步骤520。示例性的,传输器件120和存储器件130之间通过总线接口单元建立有总线连接。示例性的,传输器件120和存储器件130之间建立有数据总线连接。
传输器件120,还用于基于命令描述符,在存储器件130中读取初始张量,以及基于命令描述符对初始张量进行编辑处理,得到目标张量;
示例性的,初始张量中包括有目标张量;关于初始张量和目标张量的具体介绍请参考上文中的步骤530。
传输器件120,还用于向处理器件110发送目标张量;
示例性的,关于发送目标张量的介绍请参考上文中的步骤540。
在一种可选实现方式中,处理器件110包括控制单元110c、缓存单元110a和张量计算单元110b;
控制单元110c,用于向传输器件120发送张量获取请求;
缓存单元110a,用于存储处理器件110发送目标张量;
张量计算单元110b,用于对目标张量进行数据处理。
示例性的,对目标张量进行数据处理包括但不限于矩阵计算和矢量计算;示例性的,张量计算单元110b中的第一子单元部署有矩阵计算引擎,用于对目标张量进行矩阵计算;张量计算单元110b中的第二子单元部署有矢量计算引擎,用于对目标张量进行矢量计算。
关于处理器件110和传输器件120,在一种可选实现方式中,处理器件110和传输器件120是处理器上的不同处理核心;示例性的,处理器可以是中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、人工智能(Artificial Intelligence,AI)处理器中的至少之一,也可以是具有数据处理能力的其他设备。
在另一种可选实现方式中,处理器件110是主处理器,传输器件120是协处理器,主处理器和协处理器之间建立有控制传输连接。示例性的,主处理器和协处理器之间通过控制总线进行命令字传输,以实现主处理器和协处理器之间进行控制传输。
关于存储器件130和处理器件110中的缓存单元,在一种可选实现方式中,缓存单元是一级缓存(First-level Cache Memory,L1/L1MEM);
所述存储器件130是二级缓存(Second-level Cache Memory,L2/L2MEM)或三级缓存(Third-level Cache Memory,L3/L3MEM)。
在一个示例中,存储器件130是随机存取存储器(Random Access Memory,RAM)。
关于上述实施例中的计算机设备,其中各个部分执行操作的具体方式已经在有关该方法的实施例中进行了详细描述;取得的技术效果与有关该方法的实施例中的技术效果相同,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种芯片,所述芯片包括可编程逻辑电路和程序指令中的至少之一(也可以称为可编程逻辑电路和/或程序指令),当所述芯片在计算机设备上运行时,用于实现上述方面所述的数据处理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (19)
1.一种数据处理方法,其特征在于,所述方法由传输器件执行,所述传输器件和存储器件之间建立有总线连接,所述方法包括:
获取张量获取请求,所述张量获取请求是指示所述传输器件向处理器件提供目标张量的请求信息;
根据所述张量获取请求携带的地址信息,获取命令描述符,所述命令描述符用于指示在所述存储器件中对所述目标张量的获取方式;
基于所述命令描述符,在所述存储器件中读取初始张量,以及基于所述命令描述符对所述初始张量进行编辑处理,得到所述目标张量,所述初始张量中包括有所述目标张量;
向所述处理器件发送所述目标张量。
2.根据权利要求1所述的方法,其特征在于,所述命令描述符包括操作子命令;
所述基于所述命令描述符对所述初始张量进行编辑处理,得到所述目标张量,包括:
根据所述操作子命令携带的操作类型和操作位置,对所述初始张量进行编辑处理,得到所述目标张量,所述操作类型用于指示对所述初始张量的编辑处理方式,所述操作位置用于指示在所述初始张量中进行编辑处理的位置。
3.根据权利要求2所述的方法,其特征在于,所述根据所述操作子命令携带的操作类型和操作位置,对所述初始张量进行编辑处理,得到所述目标张量,包括:
基于所述操作子命令携带的所述操作类型和所述操作位置,调用所述传输器件中部署的第一执行引擎对所述初始张量进行编辑处理,得到所述目标张量,所述第一执行引擎是所述传输器件中的处理单元。
4.根据权利要求2所述的方法,其特征在于,所述根据所述操作子命令携带的操作类型和操作位置,对所述初始张量进行编辑处理,得到所述目标张量,包括:
响应于所述操作类型为切片操作,根据所述操作位置对所述初始张量进行切片处理,得到所述目标张量,所述目标张量是所述初始张量中的子部分。
5.根据权利要求4所述的方法,其特征在于,所述操作子命令还携带有操作数量,所述操作数量用于指示切片处理的处理次数;
所述响应于所述操作类型为切片操作,根据所述操作位置对所述初始张量进行切片处理,得到所述目标张量,包括:
响应于所述操作类型为切片操作,对所述初始张量进行n次切片处理,将所述n次切片处理一一对应的n个子张量确定为所述目标张量,所述操作位置指示有对所述初始张量进行首次切片处理的处理位置,所述处理次数用于指示在至少一个维度上进行连续切片的次数。
6.根据权利要求4所述的方法,其特征在于,所述操作子命令还携带有变换信息,所述变换信息用于指示对张量的维度的调换方式;
所述响应于所述操作类型为切片操作,根据所述操作位置对所述初始张量进行切片处理,得到所述目标张量,包括:
响应于所述操作类型为切片操作和布局变换操作,根据所述操作位置对所述初始张量进行切片处理,得到子张量;
根据所述变换信息对所述子张量的至少两个维度进行交换处理,得到所述目标张量。
7.根据权利要求2所述的方法,其特征在于,所述根据所述操作子命令携带的操作类型和操作位置,对所述初始张量进行编辑处理,得到所述目标张量,包括:
响应于所述操作类型为反切片操作,将初始张量中的第一张量填充至第二张量中的所述操作位置,得到所述目标张量,所述目标张量是所述初始张量中的至少两个张量的组合张量。
8.根据权利要求7所述的方法,其特征在于,所述操作子命令还携带有变换信息,所述变换信息用于指示对张量的维度的调换方式;
所述响应于所述操作类型为反切片操作,将初始张量中的第一张量填充至第二张量中的所述操作位置,得到所述目标张量,包括:
响应于所述操作类型为反切片操作和布局变换操作,根据所述变换信息对所述第一张量的至少两个维度进行交换处理,得到变换张量;
将所述变换张量填充至所述第二张量中的所述操作位置,得到所述目标张量。
9.根据权利要求1至8任一所述的方法,其特征在于,所述命令描述符包括读取子命令;
所述基于所述命令描述符,在所述存储器件中读取初始张量,包括:
根据所述读取子命令携带的数据位置和数据尺寸,在所述存储器件中读取得到所述初始张量,所述数据位置用于指示所述初始张量在所述存储器件中的存储位置,所述数据尺寸用于指示所述初始张量的数据大小。
10.根据权利要求9所述的方法,其特征在于,所述根据所述读取子命令携带的数据位置和数据尺寸,在所述存储器件中读取得到所述初始张量,包括:
基于所述读取子命令携带的所述数据位置和所述数据尺寸,调用所述传输器件中部署的第二执行引擎对所述存储器件进行数据读取,得到所述初始张量,所述第二执行引擎是所述传输器件连接所述存储器件的读取接口。
11.根据权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
对所述命令描述符进行解码处理,得到命令译码,所述初始张量和所述目标张量的确定是基于所述命令译码得到的,所述命令译码是用于指示对所述初始张量的提取方式和对所述初始张量的编辑处理方式的译码信息。
12.根据权利要求1至8任一所述的方法,其特征在于,所述命令描述符包括写入子命令;
所述向所述处理器件发送所述目标张量,包括:
根据所述写入子命令指示的写入位置,向所述处理器件的内存空间写入所述目标张量。
13.根据权利要求1至8任一所述的方法,其特征在于,所述命令描述符包括张量维度信息,所述张量维度信息用于指示需要进行读取的所述初始张量的数据维度数量;所述方法还包括:
根据所述张量维度信息确定元素排列位置,所述元素排列位置用于指示单次读取所述存储器件得到的至少两个元素在所述初始张量中的排列方式,所述初始张量是通过对所述存储器件的至少一次读取处理构建得到的,所述元素排列位置指示的维度数量小于或等于所述张量维度信息。
14.根据权利要求13所述的方法,其特征在于,所述张量维度信息携带有所述初始张量在至少一个维度上的元素数量;
所述根据所述张量维度信息确定元素排列位置,包括:
将所述张量维度信息携带的所述至少一个维度上的所述元素数量的因数确定为维度排列位置;
基于所述维度排列位置构建得到所述元素排列位置,所述维度排列位置用于指示单次读取所述存储器件得到的至少两个元素在所述至少一个维度上的元素数量。
15.一种计算机设备,其特征在于,所述计算机设备包括:处理器件、传输器件和存储器件,所述处理器件和所述传输器件之间相连,所述传输器件和所述存储器件之间建立有总线连接;
所述传输器件,用于获取所述处理器件发送的张量获取请求,所述张量获取请求是指示所述传输器件向处理器件提供目标张量的请求信息;
所述传输器件,还用于根据所述张量获取请求携带的地址信息,从所述存储器件中获取命令描述符,所述命令描述符用于指示在所述存储器件中对所述目标张量的获取方式;
所述传输器件,还用于基于所述命令描述符,在所述存储器件中读取初始张量,以及基于所述命令描述符对所述初始张量进行编辑处理,得到所述目标张量,所述初始张量中包括有所述目标张量;
所述传输器件,还用于向所述处理器件发送所述目标张量。
16.根据权利要求15所述的设备,其特征在于,所述处理器件包括控制单元、缓存单元和计算单元;
所述控制单元,用于向所述传输器件发送所述张量获取请求;
所述缓存单元,用于存储所述处理器件发送所述目标张量;
所述计算单元,用于对所述目标张量进行数据处理。
17.根据权利要求15所述的设备,其特征在于,
所述处理器件和所述传输器件是处理器上的不同处理核心;
或,所述处理器件是主处理器,所述传输器件是协处理器,所述主处理器和所述协处理器之间建立有控制传输连接。
18.根据权利要求16所述的设备,其特征在于,
所述缓存单元是一级缓存L1;
所述存储器件是二级缓存L2或三级缓存L3。
19.一种芯片,其特征在于,所述芯片包括可编程逻辑电路和程序指令中的至少之一,当所述芯片运行时,用于实现上述权利要求1至14任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311105673.9A CN116821019B (zh) | 2023-08-30 | 2023-08-30 | 数据处理方法、计算机设备及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311105673.9A CN116821019B (zh) | 2023-08-30 | 2023-08-30 | 数据处理方法、计算机设备及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116821019A true CN116821019A (zh) | 2023-09-29 |
CN116821019B CN116821019B (zh) | 2023-11-14 |
Family
ID=88127789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311105673.9A Active CN116821019B (zh) | 2023-08-30 | 2023-08-30 | 数据处理方法、计算机设备及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821019B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817664A (zh) * | 2021-04-19 | 2021-05-18 | 北京燧原智能科技有限公司 | 一种数据处理系统、方法及芯片 |
US20210255976A1 (en) * | 2020-02-14 | 2021-08-19 | Google Llc | Direct memory access architecture with multi-level multi-striding |
CN113688982A (zh) * | 2020-05-19 | 2021-11-23 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和方法 |
CN114491399A (zh) * | 2021-12-30 | 2022-05-13 | 深圳云天励飞技术股份有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
CN114691353A (zh) * | 2020-12-30 | 2022-07-01 | 上海寒武纪信息科技有限公司 | 一种张量的读取方法、装置以及相关产品 |
CN114968612A (zh) * | 2021-07-14 | 2022-08-30 | 华为技术有限公司 | 一种数据处理方法、系统及相关设备 |
CN115136115A (zh) * | 2020-02-26 | 2022-09-30 | 谷歌有限责任公司 | 使用共享便笺式存储器的向量简化 |
CN115658146A (zh) * | 2022-12-14 | 2023-01-31 | 成都登临科技有限公司 | 一种ai芯片、张量处理方法及电子设备 |
-
2023
- 2023-08-30 CN CN202311105673.9A patent/CN116821019B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210255976A1 (en) * | 2020-02-14 | 2021-08-19 | Google Llc | Direct memory access architecture with multi-level multi-striding |
CN115136115A (zh) * | 2020-02-26 | 2022-09-30 | 谷歌有限责任公司 | 使用共享便笺式存储器的向量简化 |
CN113688982A (zh) * | 2020-05-19 | 2021-11-23 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和方法 |
CN114691353A (zh) * | 2020-12-30 | 2022-07-01 | 上海寒武纪信息科技有限公司 | 一种张量的读取方法、装置以及相关产品 |
CN112817664A (zh) * | 2021-04-19 | 2021-05-18 | 北京燧原智能科技有限公司 | 一种数据处理系统、方法及芯片 |
CN114968612A (zh) * | 2021-07-14 | 2022-08-30 | 华为技术有限公司 | 一种数据处理方法、系统及相关设备 |
CN114491399A (zh) * | 2021-12-30 | 2022-05-13 | 深圳云天励飞技术股份有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
CN115658146A (zh) * | 2022-12-14 | 2023-01-31 | 成都登临科技有限公司 | 一种ai芯片、张量处理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116821019B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
US5325493A (en) | System for distributing command/data packets tagged by their unit identifier for parallel processing by a ready processing unit and recombination | |
US6393545B1 (en) | Method apparatus and system for managing virtual memory with virtual-physical mapping | |
US20190197656A1 (en) | Processor, information processing apparatus, and operation method of processor | |
US10831693B1 (en) | Multicast master | |
CN109408450B (zh) | 一种数据处理的方法、系统、协处理装置和主处理装置 | |
US20060161720A1 (en) | Image data transmission method and system with DMAC | |
CN115033184A (zh) | 访存处理装置、方法、处理器、芯片、板卡及电子设备 | |
US11138106B1 (en) | Target port with distributed transactions | |
CN111324294B (zh) | 存取张量数据的方法和装置 | |
CN110223216B (zh) | 一种基于并行plb的数据处理方法、装置及计算机存储介质 | |
CN114880259B (zh) | 数据处理方法、装置、系统、电子设备及存储介质 | |
US20230214338A1 (en) | Data moving method, direct memory access apparatus and computer system | |
CN116821019B (zh) | 数据处理方法、计算机设备及芯片 | |
EP3663938B1 (en) | Signal processing method and apparatus | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
CN103765888A (zh) | 分析辅助编码 | |
CN115587076A (zh) | 数据解压系统、图形处理系统、组件、设备及解压方法 | |
CN104025026B (zh) | 访问用于配置空间的配置和状态寄存器 | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
WO2022213073A1 (en) | Sparse machine learning acceleration | |
CN116415100A (zh) | 业务处理方法、装置、处理器及计算设备 | |
CN110674934B (zh) | 一种神经网络池化层及其运算方法 | |
CN111788552B (zh) | 用于低等待时间硬件存储器的系统和方法 | |
US6715061B1 (en) | Multimedia-instruction acceleration device for increasing efficiency and method for the same |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40094506 Country of ref document: HK |