CN111124995A - 通过人工智能处理器处理一维复数数组的方法和设备 - Google Patents
通过人工智能处理器处理一维复数数组的方法和设备 Download PDFInfo
- Publication number
- CN111124995A CN111124995A CN201911349768.9A CN201911349768A CN111124995A CN 111124995 A CN111124995 A CN 111124995A CN 201911349768 A CN201911349768 A CN 201911349768A CN 111124995 A CN111124995 A CN 111124995A
- Authority
- CN
- China
- Prior art keywords
- array
- artificial intelligence
- dimensional
- coefficient matrix
- intelligence processor
- 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.)
- Withdrawn
Links
- 238000012545 processing Methods 0.000 title claims abstract description 57
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000011159 matrix material Substances 0.000 claims description 54
- 230000015654 memory Effects 0.000 claims description 37
- 238000010586 diagram Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 230000001131 transforming effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本公开记载了一种通过人工智能处理器处理一维复数数组的方法、电子设备和计算装置,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。
Description
技术领域
本发明涉及数据处理领域,更具体地,涉及人工智能处理器上的矩阵运算领域。
背景技术
离散傅里叶变换和离散傅里叶逆变换在雷达、数字通信、数字图像处理和计算机视觉等领域中有着很广泛的作用,这使得离散傅里叶变换的快速工程实现具有十分重要的意义。但是随着人工智能技术的发展,及更前沿领域的需要,图像处理、雷达信号处理和视频处理等应用系统中对大规模数据的离散傅里叶变换需求越来越高。在雷达领域,随着高分辨大测绘带宽的合成孔径雷达的飞速发展,对大规模数据的离散傅里叶快速实现提出了更高的要求。然而,针对大规模数据的离散傅里叶快速实现对资源的消耗随着数据长度的增加而增加,且对大规模数据的离散傅里叶快速实现的优化效率往往和单个处理器的计算资源开销的程度直接相关,使得单个处理器的计算资源成为实现针对大规模的离散傅里叶变换快速实现的瓶颈。因此,充分应用处理器的计算资源,以及多处理器并行执行时很有必要的。
在CPU上只能进行标量的计算,随着数据规模的增加,计算时间呈指数级增加,所以如果可以直接进行一组数据的计算,即张量的计算,那么计算性能可以显著提升。之前常用快速傅里叶变换进行离散傅里叶变换的计算,通常也是进行的标量的计算。虽然这也可以减少算法复杂度,但是执行快速傅里叶变换的计算量很大,并且和系统的性能有很大关系。
发明内容
本公开的目的在于克服现有技术中无法进行张量计算的缺陷,提供种通过人工智能处理器处理一维复数数组的方法。
根据本公开的第一方面,提供一种通过人工智能处理器处理一维复数数组的方法,其中,所述一维复数数组的长度为N,与所述一维复数数组对应的系数矩阵的尺寸为N×N,所述方法包括:将所述一维复数数组加载至所述人工智能处理器上的片上存储单元的第一存储区;将所述系数矩阵加载至所述人工智能处理器上的片上存储单元的第二存储区;所述人工智能处理器利用利用所述一维复数数组和所述系数矩阵进行傅里叶变换,以得到运算结果;以及所述人工智能处理器将所述运算结果传送至所述片外存储单元以进行存储。
根据本公开的第二方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。
根据本公开的第三方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
本公开的技术方案可以充分利用硬件资源,将数据一次性的加载,然后在片上内存上进行高速计算,在片外内存上进行存储,降低内存间的缓存耗时,从而提升访存效率,总体提升算法的性能。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1a示出了本公开的方法可以应用的一个处理器组的内部结构示意图;
图1b示出了本公开的方法可以应用的人工智能处理器的结构示意图;
图2示出了根据本公开的一个实施方式的一种通过人工智能处理器处理一维复数数组的方法;
图3示出了根据本公开的一个实施方式的一维复数数组的示意图;
图4示出了根据本公开的一个实施方式的将系数矩阵转换为一维数组的示意图;
图5示出了根据本公开一个实施方式的根据所述一维复数数组和列数矩阵来进行傅里叶变换的方法流程图;
图6示出了根据本公开的一个实施方式的对一维复数数组和相应的系数矩阵进行傅里叶变换的示意图;
图7示出了通过多个处理器来对一维复数数组进行并行处理的示意图;
图8示出了根据本公开的组合处理装置的示意图;以及
图9示出了根据本公开的板卡的示意性框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图对本公开的实施方式进行详细描述。
图1a示出了本公开的方法可以应用的一个处理器组的内部结构示意图。
人工智能(AI)芯片加速了数据计算能力,降低了访存延时。AI芯片采用多核处理器架构,支持多达16核并行计算,并加入存储单元核(也可称为片上或片内存储单元)来加速数据读取,解决了AI芯片的处理器核与DDR(也可以称为片外存储单元)的访存瓶颈问题。为用户在处理深度学习、网络计算等场景中,提供更强的运算能力。
AI芯片共有16个处理器核,用于执行计算任务。每4个处理器核组成一个处理器组,即共4个处理器组。每个处理器组内有个存储单元核。存储单元核主要用于处理器组内部的共享存储单元与处理器核的数据交换和处理器组之间的数据交换。当存储器核和处理器核同时访问DDR时,通过多路复用器仲裁后,保证仅一组总线访问DDR。
图1b示出了本公开的方法可以应用的人工智能处理器的结构示意图。
AI芯片的DDR采用非统一内存存取(Non-Uniform Memory Access,NUMA)架构,每个处理器组可以通过NOC0访问不同的DDR通道,但访问不同的DDR通道的延时不同。每个处理器组都对应一个访问延时最低的DDR通道,访问其他通道时延时相对较长。如图1b中处理器组与DDR结构图所示,处理器组0,处理器组1,处理器组2和处理器组3分别访问对应的DDR0,DDR1,DDR2和DDR3时延时最低。也就是每个处理器核访问了各自处理器组访存延时最低的DDR通道。
由于处理器组内部的访存带宽高于处理器核和DDR之间的访问带宽,所以AI芯片可以通过采用处理器组来内部存取共享存储单元,以减少处理器核直接访问DDR,从而提高了数据吞吐量。
当需要4核并行计算时,存储单元核可以通过数据广播方式(通过NOC1),将数据由共享存储单元同时广播到处理器组内的4个处理器核以进行数据计算。相对于所有处理器核通过DDR来读取数据的方式,这种情况下能够降低访存延时,优化计算性能。
当计算需求增大时,16个处理器核可以需要同时处理多个计算任务。处理器核直接访问DDR必然会引起数据访问延时,导致计算速度慢等问题。AI芯片通过处理器组相互之间的数据交换,避免了16个处理器核直接与DDR通信,从而降低了数据访问的延时。
对于大型二维数据矩阵,例如高清图片等,可以充分利用AI芯片的这种结构,来减少与外部存储单元之间的数据交换或数据存取,提升数据处理速度和数据传输的吞吐率。
图2示出了根据本公开的一个实施方式的一种通过人工智能处理器处理一维复数数组的方法,其中,所述一维复数数组的长度为N,与所述一维复数数组对应的系数矩阵的尺寸为N×N,所述方法包括:在操作S210,将所述一维复数数组加载至所述人工智能处理器上的片上存储单元的第一存储区;在操作S220,将所述系数矩阵加载至所述人工智能处理器上的片上存储单元的第二存储区;在操作S230,所述人工智能处理器利用所述一维复数数组和所述系数矩阵进行傅里叶变换,以得到运算结果;以及在操作S240,所述人工智能处理器将所述运算结果传送至所述片外存储单元以进行存储。
需要解释的是,上述的第一存储区和第二存储区可以是处于同一个物理存储器中的两个不同存储区,每个存储区用于存储相应的数组数据或矩阵数据;也可以是两个分离的实体存储器,每个存储器用于存储相应的数组数据或矩阵数据。
在本公开中,所述一维复数数组的尺寸不大于所述第一存储区的容量;和/或所述系数矩阵的尺寸不大于所述第二存储区的容量,使得片上存储单元的第一存储区足以一次性将相应的一维复数数组存储起来,片上存储单元的第二存储区足以一次性将相应的系数矩阵存储起来,从而便于进行后续操作。
本文中的一维复数数组,是一种数学上的表示,在实际的存储中,一维复数数组可以包括两个数组:实部数组和虚部数组。图3示出了根据本公开的一个实施方式的一维复数数组的示意图。
如图3所示,一维复数数组的尺寸示例性地为1×4,其包括4个元素,分别为a00+jb00、a01+jb01、a02+jb02、a03+jb03,其可以拆分为实部数组和虚部数组,实部数组包括了每个复数的实部,分别为a00、a01、a02、a03,虚部数组包括了每个复数的虚部,分别为b00、b01、b02、b03。实部数组和虚部数组的组合,可以表达该一维复数数组。
一维复数数组的离散傅里叶变换的系数矩阵和该一维复数数组的长度相关,在计算一维复数数组的离散傅里叶变换之前只需要知道一维数组的长度即可;根据一维复数数组的长度进行傅里叶变换的系数矩阵的计算如下:
其中frr表示输入实部,输出实部的过程;fri表示输入实部,输出虚部的过程;fir表示输入虚部,输出实部的过程;fii表示输入虚部,输出虚部的过程,N表示一维复数数组的长度;j和k的取值范围分别为0≤j<N,0≤k<N。
由此,对于尺寸为1×N的一维复数数组,其系数矩阵的尺寸为N×N,并且系数矩阵包括第一系数矩阵,用于存放实部到实部转换的第一系数frr;第二系数矩阵,用于存放实部到虚部转换的第二系数fri;第三系数矩阵,用于存放虚部到实部转换的第三系数fir;以及第四系数矩阵,用于存放虚部到虚部转换的第四系数fii。
类似地,傅里叶逆变换的系数通过如下等式来计算:
其中brr表示逆变换对应的输入实部,输出实部的过程;b ri表示逆变换对应的输入实部,输出虚部的过程;bir表示逆变换对应的输入虚部,输出实部的过程;bii表示逆变换输入虚部,输出虚部的过程。
根据本公开的一个实施方式,可以通过所述人工智能处理器将所述系数矩阵转换为一维数组以加载至所述人工智能处理器上的片上存储单元的第二存储区。
图4示出了根据本公开的一个实施方式的将系数矩阵转换为一维数组的示意图。
如图4所示,设一个系数矩阵的尺寸为4×4,则可以将该系数矩阵转换为1×16的一维数组。将二维矩阵转换为一维数组来存储便于进行数据的访问与进行变换计算操作。
对于一维数组而言,为了进行张量计算,可以将此一维数组变换成1×1×1×N的多维矩阵方式存储在所述第一存储单元中,其中数据组数为1,高为1,宽为1,深度为N。
图5示出了根据本公开一个实施方式的根据所述一维复数数组和列数矩阵来进行傅里叶变换的方法流程图。
如图5所示,进行傅里叶变换的方法包括:在操作S510,将所述一维复数数组与所述系数矩阵中的每一行进行卷积运算,以得到中间结果;在操作S520,将所述中间结果的同一行元素相加,以得到运算结果。
首先,介绍进行对复数进行傅里叶变换的基本概念。对于输入为复数,通过傅里叶变换后,输出的也是复数;实现复数相乘的通用计算公式:
(A1+jB1)*(A2+jB2)=(A1*A2-B1*B2)+j(A1B2+B1A2)
其中A1、A2为两个复数数据的实部,B1、B2为两个复数数据的虚部;
基于以上通用计算公式,根据一维复数数组与系数矩阵来计算傅里叶变换可以通过如下等式来进行:
RR=inpreal*frr
IR=inpimag*fir
RI=inpreal*fri
II=inpimag*fii
Real=RR+IR
Imag=RI+II
其中inpreal、inpimag分别为输入数据的实部和虚部,RR表示对应输入实部输出也是实部,RI表示对应输入实部输出是虚部,IR表示输入是虚部输出是实部,II表示输入时虚部输出也是虚部;Real表示傅里叶变换之后的实部,Imag表示傅里叶变换之后的虚部。
图6示出了根据本公开的一个实施方式的对一维复数数组和相应的系数矩阵进行傅里叶变换的示意图。
如图6所示,一维复数数组为1×4,其中该一维复数数组的数据示例性地为a1,b1,c1和d1;系数矩阵为4×4,其第一行的数据示例性地为a2,b2,c2和d2。将一维复数数组的数据与该系数矩阵进行卷积操作,得到中间结果,其中a1与a2进行卷积操作的值为a3,b1与b2进行卷积操作的值为b3,c1与c2进行卷积操作的值为c3,d1与d2进行卷积操作的值为d3。在运算结果中,结果A=a3+b3+c3+d3,即将所述中间结果的同一行元素相加而得到。
根据本公开的一个实施方式,所述傅里叶变换是并行进行的。
根据图1a和图1b所示,可以存在多个处理器核以及多个处理器组,由此当从片外存储单元中读取到数据后,可以对这些数据进行并行处理,以加快数据的处理速度。
根据本公开的一个实施方式,其中所述人工智能处理器利用所述一维复数数组和所述系数矩阵进行傅里叶变换包括:通过多个人工智能处理器分别对每个一维复数数组中的不同元素以及与所述元素相对应的系数矩阵中的系数元素进行傅里叶变换。
这里所述的不同元素,是指一维复数数组中位于不同位置的元素,根据本公开的一个实施方式,可以是每一个处理器都负责固定位置处的元素,例如,对于一维复数数组中第0,2,4个元素,由第零个处理器核来执行,对于一维复数数组中第1,3,5个元素,可以由第一个处理器核来执行等等。
图7示出了通过多个处理器来对一维复数数组进行并行处理的示意图。
在图7中,一维复数数组例如可以是1×4,处理器0负责第0列的处理,处理器1负责第1列的处理,处理器2负责第2列的处理,以及处理器3负责第3列的处理。在此情况下,每个处理器从片上存储单元中读取相应的元素并进行并行处理,从而能够提升处理速度。
需要理解的是,这里所述的处理器,仅仅还是一个统称,其可以是处理器核,也可以是处理器组。本公开不对处理器的类型做任何限定。
本公开的技术方案可以充分利用硬件资源,将数据一次性的加载,然后在片上内存上进行高速计算,在片外内存上进行存储,降低内存间的缓存耗时,从而提升访存效率,总体提升算法的性能。
此外,还需要理解的是,尽管上文中仅以傅里叶变换为例来进行描述和说明,但本公开的方案也同样适用于傅里叶逆变换操作,其区别仅在于系数矩阵中元素的不同,但在整体的操作方面,傅里叶变换和傅里叶逆变换是等同的,因此本公开的保护范围也同样包含了傅里叶逆变换的情形。
本公开还提供了一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。
本公开还提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
本公开的技术方案可应用于人工智能领域,实现为或者实现在人工智能芯片中。该芯片可以单独存在,也可以包含在计算装置中。
图8示出了一种组合处理装置800,其包括上述的计算装置802,通用互联接口804,和其他处理装置806。根据本公开的计算装置与其他处理装置进行交互,共同完成用户指定的操作。图8为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在计算装置(包括例如机器学习运算装置)与其他处理装置间传输数据和控制指令。该计算装置从其他处理装置中获取所需的输入数据,写入该计算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入计算装置片上的控制缓存;也可以读取计算装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构还可以包括存储装置808,存储装置分别与所述计算装置和所述其他处理装置连接。存储装置用于保存在所述计算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本计算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片封装结构。参阅图9,其提供了一种示例性的板卡,上述板卡除了包括上述芯片902以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件904、接口装置906和控制器件908。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元910。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备912(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡。
电子设备或装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本披露各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
Claims (10)
1.一种通过人工智能处理器处理一维复数数组的方法,其中,所述一维复数数组的长度为N,与所述一维复数数组对应的系数矩阵的尺寸为N×N,所述方法包括:
将所述一维复数数组加载至所述人工智能处理器上的片上存储单元的第一存储区;
将所述系数矩阵加载至所述人工智能处理器上的片上存储单元的第二存储区;
所述人工智能处理器利用利用所述一维复数数组和所述系数矩阵进行傅里叶变换,以得到运算结果;以及
所述人工智能处理器将所述运算结果传送至所述片外存储单元以进行存储。
2.根据权利要求1所述的方法,其中,将所述系数矩阵加载至所述人工智能处理器上的片上存储单元的第二存储区包括:
通过所述人工智能处理器将所述系数矩阵转换为一维数组以加载至所述人工智能处理器上的片上存储单元的第二存储区。
3.根据权利要求1所述的方法,其中,所述一维复数数组包括实部数组和虚部数组。
4.根据权利要求3所述的方法,其中,所述系数矩阵包括:
第一系数矩阵,用于存放实部到实部转换的第一系数;
第二系数矩阵,用于存放实部到虚部转换的第二系数;
第三系数矩阵,用于存放虚部到实部转换的第三系数;以及
第四系数矩阵,用于存放虚部到虚部转换的第四系数。
5.根据权利要求1-4中任意一项所述的方法,其中,
所述一维复数数组的尺寸不大于所述第一存储区的容量;和/或
所述系数矩阵的尺寸不大于所述第二存储区的容量。
6.根据权利要求1-5中任意一项所述的方法,其中,所述人工智能处理器利用所述一维复数数组和系数矩阵进行傅里叶变换包括:
将所述一维复数数组与所述系数矩阵中的每一行进行卷积运算,以得到中间结果;
将所述中间结果的同一行元素相加,以得到运算结果。
7.根据权利要求1-6中任意一项所述的方法,其中,所述一维复数数组按照1×1×1×N的多维矩阵方式存储在所述第一存储单元中。
8.根据权利要求1-7中任意一项所述的方法,其中,所述人工智能处理器利用所述一维复数数组和所述系数矩阵进行傅里叶变换包括:
通过多个人工智能处理器分别对每个一维复数数组中的不同元素以及与所述元素相对应的系数矩阵中的系数元素进行傅里叶变换。
9.一种电子设备,包括:
一个或多个处理器;以及
存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如权利要求1-8中任意一项所述的方法。
10.一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如权利要求1-8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911349768.9A CN111124995A (zh) | 2019-12-24 | 2019-12-24 | 通过人工智能处理器处理一维复数数组的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911349768.9A CN111124995A (zh) | 2019-12-24 | 2019-12-24 | 通过人工智能处理器处理一维复数数组的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111124995A true CN111124995A (zh) | 2020-05-08 |
Family
ID=70502036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911349768.9A Withdrawn CN111124995A (zh) | 2019-12-24 | 2019-12-24 | 通过人工智能处理器处理一维复数数组的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124995A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111626412A (zh) * | 2020-05-12 | 2020-09-04 | 浙江大学 | 复数神经网络的一维卷积加速装置及方法 |
CN112965663A (zh) * | 2021-03-05 | 2021-06-15 | 上海寒武纪信息科技有限公司 | 对数据块的存储空间进行复用的方法和相关产品 |
CN115525795A (zh) * | 2021-06-25 | 2022-12-27 | 中科寒武纪科技股份有限公司 | 一种在多核处理器中对数据进行排序的方法 |
-
2019
- 2019-12-24 CN CN201911349768.9A patent/CN111124995A/zh not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111626412A (zh) * | 2020-05-12 | 2020-09-04 | 浙江大学 | 复数神经网络的一维卷积加速装置及方法 |
CN111626412B (zh) * | 2020-05-12 | 2023-10-31 | 浙江大学 | 复数神经网络的一维卷积加速装置及方法 |
CN112965663A (zh) * | 2021-03-05 | 2021-06-15 | 上海寒武纪信息科技有限公司 | 对数据块的存储空间进行复用的方法和相关产品 |
CN115525795A (zh) * | 2021-06-25 | 2022-12-27 | 中科寒武纪科技股份有限公司 | 一种在多核处理器中对数据进行排序的方法 |
CN115525795B (zh) * | 2021-06-25 | 2024-01-30 | 中科寒武纪科技股份有限公司 | 一种在多核处理器中对数据进行排序的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522052B (zh) | 一种计算装置及板卡 | |
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111258935B (zh) | 数据传输装置和方法 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111028136B (zh) | 一种人工智能处理器处理二维复数矩阵的方法和设备 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN112686379B (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN111125628A (zh) | 人工智能处理器处理二维数据矩阵的方法和设备 | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
US20200242468A1 (en) | Neural network computation device, neural network computation method and related products | |
CN111143766A (zh) | 人工智能处理器处理二维复数矩阵的方法和设备 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN112084023A (zh) | 数据并行处理的方法、电子设备及计算机可读存储介质 | |
CN111258769B (zh) | 数据传输装置和方法 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111382852B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111382853B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111124996A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
CN114661634A (zh) | 数据缓存装置、方法、集成电路芯片、计算装置和板卡 | |
CN214504452U (zh) | 一种用于神经网络推理的异构系统 | |
CN112232498B (zh) | 一种数据处理装置、集成电路芯片、电子设备、板卡和方法 | |
CN111061507A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111382856A (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN113807489B (zh) | 用于执行反卷积操作的方法、板卡及其计算装置 | |
US20230305840A1 (en) | Computing apparatus, integrated circuit chip, board card, device and computing method |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200508 |