CN112784207A - 运算方法及相关产品 - Google Patents

运算方法及相关产品 Download PDF

Info

Publication number
CN112784207A
CN112784207A CN201911061118.4A CN201911061118A CN112784207A CN 112784207 A CN112784207 A CN 112784207A CN 201911061118 A CN201911061118 A CN 201911061118A CN 112784207 A CN112784207 A CN 112784207A
Authority
CN
China
Prior art keywords
result
transformation
tensor
sub
weight
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
CN201911061118.4A
Other languages
English (en)
Other versions
CN112784207B (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201911061118.4A priority Critical patent/CN112784207B/zh
Priority to PCT/CN2020/113166 priority patent/WO2021082724A1/zh
Publication of CN112784207A publication Critical patent/CN112784207A/zh
Application granted granted Critical
Publication of CN112784207B publication Critical patent/CN112784207B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/156Correlation function computation including computation of convolution operations using a domain transform, e.g. Fourier transform, polynomial transform, number theoretic transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供的运算方法及相关产品,包括:处理器和存储器;其中,所述存储器,用于存储程序代码;所述处理器,用于调用所述存储器中所存储的程度代码,执行运算方法。本申请提供的运算方法及相关产品能够提高神经网络训练的运算效率,降低训练过程所占用的运算资源。

Description

运算方法及相关产品
技术领域
本申请涉及深度学习技术领域,尤其涉及一种基于神经网络的运算方法及相关产品。
背景技术
近年来,深度学习技术得到了飞速发展,特别是在图像识别、语音识别、自然语 言分析、智能机器人、大数据分析等领域得到了广泛引用,成为了研究重点。
神经网络模型是深度学习技术中的运算模型,通过利用多层架构以对输入的数据进行处理,并输出相应的运算结果。在现有技术中,对于神经网络模型进行训练是使 用神经网络模型进行运算的必要步骤,在训练过程中,待训练的神经网络需要对海量 训练数据重复进行迭代运算以得到训练完毕的神经网络模型。
但是,传统的对海量训练数据进行重复迭代运算的方式将占用大量的运算资源,且由于对数据进行运算的效率较低,其使得训练所需时间较长,运算功耗较大。
发明内容
基于此,有必要针对上述技术问题,提供一种能够用于提高神经网络模型训练效率,降低训练运算损耗资源的运算方法及相关产品。
第一方面,本申请提供了一种运算方法,包括:
获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变换的特征变换 矩阵;
根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述 特征数据的变换运算拆解为求和运算,并根据所述求和运算确定所述特征变换结果;
获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变 换结果进行对位乘法运算,得到乘法运算结果;
获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运算结果的变换运算拆 解为求和运算,并根据所述求和运算确定所述运算结果;
将所述运算结果输出至下层卷积网络。
第二方面,本申请提供了一种运算装置,包括:
获取模块,用于获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变 换的特征变换矩阵;
特征变换模块,用于根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算确 定所述特征变换结果;
对位乘模块,用于获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变换结果进行对位乘法运算,得到乘法运算结果;
逆变换模块,用于获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运算 结果的变换运算拆解为求和运算,并根据所述求和运算确定所述运算结果;
传输模块,用于将所述运算结果输出至下层卷积网络。
第三方面,本申请提供了一种人工智能芯片,所述芯片包括如前任意一项所述的运算装置。
第四方面,本申请提供了一种电子设备,所述电子设备包括如前所述的人工智能芯片。
第五方面,本申请提供了一种板卡,所述板卡包括:存储器件、接口装置和控制 器件以及如前所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
本申请提供的运算方法及相关产品,包括获取上层卷积网络输出的特征数据以及用 于对该特征数据进行正变换的特征变换矩阵;根据特征变换矩阵对特征数据进行变换得到特征变换结果;其中,将特征数据的变换运算拆解为求和运算,并根据求和运算 确定特征变换结果;获取本层卷积网络经过正变换的权值变换结果,对特征变换结果和 权值变换结果进行对位乘法运算,得到乘法运算结果;获取用于对乘法运算结果进行逆 变换的逆变换矩阵,根据逆变换矩阵对乘法运算结果进行变换得到运算结果;其中, 将乘法运算结果的变换运算拆解为求和运算,并根据求和运算确定运算结果;将运算 结果输出至下层卷积网络。在对特征数据进行卷积处理时,采用winograd算法,该算 法能够将乘法转换为加法,同时,将该算法中的数据变换运算转换为求和运算,能够 进一步的降低乘法次数,从而降低计算机系统的性能损耗,提高运算速度。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1为一示例性实施例示出的处理系统的结构图;
图2为本发明一示例性实施例示出的运算方法的流程图;
图3为本发明一示例性实施例示出的运算方法的流程图;
图4为本发明一示例性实施例示出的主从处理架构示意图;
图5为本发明一示例性实施例示出的运算装置示意图;
图6为本发明一示例性实施例示出的板卡的结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地 描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开 中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都 属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三” 和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要 求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/ 或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或 其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的, 而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清 楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应 当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的 项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为 “当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确 定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定” 或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件 或事件]”。
为了清楚理解本申请的技术方案,下面对现有技术和本申请实施例中涉及的技术术语 进行解释:
卷积运算:卷积运算是指从图像的左上角开始,开一个与模板同样大小的活动窗口, 活动窗口对应一个窗口图像,该窗口图像为卷积核,窗口图像与图像中的像素对应起来相 乘再相加,并用计算结果作为卷积运算后新图像的第一个像素值。然后,活动窗口向右移 动一列,并作同样的运算。以此类推,从左到右、从上到下,即可得到一幅新图像。
Winograd卷积运算:Winograd卷积运算是一种基于多项式插值算法的卷积加速实现 方式。它通过对卷积操作的两个输入:第一目标矩阵和第二目标矩阵分别进行Winograd卷积正变换,再将正变换后的第一目标矩阵和第二目标矩阵进行对位乘法,最后对对位乘法结果再次进行Winograd卷积逆变换,得到与原卷积操作等价的卷积结果。
卷积神经网络:卷积神经网络技术是一类包含卷积计算且具有深度结构的前馈神经网 络,是深度学习的代表算法之一。在卷积神经网络技术中的卷积层,全连接层等网络层中 均需要神经元与卷积核进行卷积运算,得到特征数据,其被广泛用于图像分类、图像识别 等。
根据本公开实施例的运算方法可应用于包括多个处理器(多核)的处理系统(例如人工智能芯片)的任意一个处理器中。该处理器可以是通用处理器,例如CPU (CentralProcessing Unit,中央处理器),也可以是用于执行人工智能运算的人工智 能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学 习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可 例如包括GPU(GraphicsProcessing 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存储空间和寄存器堆,又可同时拥有各自的存储空间。
处理系统基于神经网络实现人工智能的功能时,处理系统可以根据一个卷积层的权值 对输入该层的特征数据进行卷积运算,并得到卷积结果,再将卷积结果作为下一个卷积层 的输入数据,下一个卷积层继续使用本层权值数据对输入的特征数据进行卷积计算。通过 卷积方式能够提取原始数据中的特征,例如提取图片特征,从而根据这些特征输出需要的 结果。
为了解决前述提到的技术问题,本实施例提供的运算方法中,在根据卷积层的权值数 据对输入的特征数据进行卷积运算时,采用winograd算法,并将变换运算拆分为求和运 算,以减少乘法处理量,进而降低运算系统的性能损耗,提高运算效率。
图2为本发明一示例性实施例示出的运算方法的流程图。
如图2所示,本实施例提供的运算方法包括:
步骤201,获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变换的 特征变换矩阵。
其中,用于执行本实施例方案的计算机系统可以与一终端设备连接。终端设备可以向 计算机系统发送原始数据,计算机系统可以采用本实施例提供的方法对原始数据进行处理, 提取原始数据中的特征,进而可以根据这些特征向终端设备反馈识别结果,例如反馈原始 数据对应的信息。
具体的,原始数据例如可以是图片数据,可以由终端设备向计算机系统上传原始图片, 由计算机系统提取该图片中包括的特征,并根据特征确定一识别结果,再向终端设备反馈 识别结果。
其中,一层卷积网络可以将卷积得到的运算结果输出至下一层卷积网络,从而使得该 卷积网络获取上层卷积网络输出的特征数据。
该层卷积网络可以根据本层的权值对特征数据进行卷积计算,从而得到运算结果。本 实施例提供的方法中,可以采用winograd算法对特征数据进行变换。
其中,通过winograd算法进行卷积运算时,可以采用下式进行计算:
Y=AT[(GgGT)⊙(BTdB)]A
其中,Y用于表示卷积矩阵,即使用特征数据与权值数据进行卷积运算得到的结果矩 阵;d用于表示输入的特征数据;g用于表示神经网络中的权值数据;B用于表示将特征数据从原域转换至winograd域的特征变换矩阵;BT用于表示将特征数据从winograd域转换至原域的特征逆变换矩阵;G用于表示将权值数据从原域转换至winograd域的权值变 换矩阵;GT用于表示将权值数据从转换winograd域至原域的权值逆变换矩阵;A用于表 示将对位乘后的运算结果从原域转换至winograd域的逆变换运算的变换矩阵;AT用于表 示将对位乘后的运算结果从转换winograd域至原域的逆变换运算的逆变换矩阵。
需要说明的是,上述的原域是指未经过winograd变换的域,而winograd域是指经过 winograd变换的域。
具体的,还可以获取用于对特征数据d进行正变换的特征变换矩阵B以及BT
进一步的,传统的卷积运算中乘法运算次数较多,通过采用winograd算法进行卷积 处理,能够降低乘法次数,从而降低运算带来的性能损耗。
实际应用时,在winograd算法中,需要对特征数据进行正变换,因此,本实施例提供的方法可以获取用于对特征数据进行正变换的特征变换矩阵。
winograd算法中,若d、g的尺寸固定,则A、AT、B、BT、G、GT矩阵也是固定的。 具体可以根据需要的输出结果Y的尺寸、权值数据g以及卷积过程的滑动步长,确定d 的尺寸,进而根据这些数据的尺寸确定对应的A、AT、B、BT、G、GT
步骤202,根据特征变换矩阵对特征数据进行变换得到特征变换结果;其中,将特征数据的变换运算拆解为求和运算,并根据求和运算确定特征变换结果。
其中,可以使用特征变换矩阵B、BT对特征数据d进行变换,得到特征变化结果, 即确定BTdB的结果。
进一步的,为了进一步的降低乘法次数,降低运算带来的性能损耗,本实施例提供的 方法中,将特征数据的变换运算拆解为求和运算,并根据求和运算确定特征变换结果。
实际应用时,可以将特征数据的变换运算拆解为多个子变换结果,再将子变换结果的求和结果确定为特征变换结果。
其中,以BTdB进行举例来说,假设特征数据是4×4的矩阵,则可以预先设置d中每个元素对应的替换矩阵,例如d00对应一矩阵D00,d01对应一D01……d33对应一D33。替换 矩阵可以是包括0、1、﹣1的矩阵。
在对d进行变换时,可以直接读取与d对应的替换矩阵,并提取d中的每个元素,用该元素与相应的替换矩阵相乘再相加,得到变换结果。具体可以根据特征数据的尺寸、特征转换矩阵B、特征逆变换矩阵BT确定替换矩阵,在对特征数据进行变换时,可以直接 读取预先存储的特征转换替换矩阵。
具体的,通过单个元素与替换矩阵进行相乘的运算,能够降低乘法次数。尤其在替换 矩阵由0、1、﹣1组成的时候,更能够大幅的降低运算量。例如,特征数据是4×4的矩阵,共包括d00、d01……d33这个16个元素,此时,可以具有与这些元素对应的16个替换矩阵 D01、D01……D33。具体运算时,
BTdB=d00×D01+d01×D01…d33×D33
当替换矩阵由0、1、﹣1组成时,元素与替换矩阵的乘法被改变为直接写入数据的过程,例如替换矩阵中的1与d00相乘,实际结果为直接写入d00。因此,基于本实施例提供 的方法,能够将winograd算法中的变换过程转换为加法算法,从而进一步的降低卷积过 程的运算量。
步骤203,获取本层卷积网络经过正变换的权值变换结果,对特征变换结果和权值变换结果进行对位乘法运算,得到乘法运算结果。
在一种实施方式中,可以与步骤201、202类似,获取本层卷积网络的权值数据g,以及用于对权值数据进行变换的权值变换矩阵GT、G。再利用权值变换矩阵对权值数据进行变换,得到权值变换结果。
即确定GTgG的结果。在确定的过程中,也可以按照上述方式将其拆解为求和运算,从而降低运算过程的性能损耗。例如,可以预先存储与g中每个元素对应的替换矩阵,进 而可以通过这些替换矩阵将权值的正变换运算转换为求和运算。
在另一种实施方式中,由于使用神经网络进行数据处理时,每个卷积层中的权值数据 是固定不变的,因此,可以预先确定与权值数据对应的权值变换矩阵,并根据权值数据及 其对应的权值变换矩阵预先确定权值变换结果。在需要对特征数据进行卷积计算时,可以 直接读取预先确定的权值变化结果。例如,可以将预先确定的权值变换结果存储在存储单 元中,在需要的时候可以直接读取该权值变换结果。从而更进一步的降低对权值数据进行 正变换引起的性能损耗。
可选的,获取权值变化结果以及确定过特征变换结果的时序不做限制。
其中,在确定了特征变换结果,并获取了权值变换结果之后,可以对这两个结果进行 对位乘运算。即得到了BTdB以及GTgG之后,可以对这两个矩阵进行对位乘运算,即确 定(GgGT)⊙(BTdB)的结果。
实际应用时,可以将两个变换结果相应位置的数值相乘,从而得到新的矩阵作为乘法 运算结果。例如特征数据变换结果为:
Figure BDA0002257974860000081
权值变换结果为:
Figure BDA0002257974860000082
则乘法运算结果为:
Figure BDA0002257974860000083
步骤204,获取用于对乘法运算结果进行逆变换的逆变换矩阵,根据逆变换矩阵对乘法运算结果进行变换得到运算结果;其中,将乘法运算结果的变换运算拆解为求 和运算,并根据求和运算确定运算结果。
具体的,还可以获取用于对乘法运算结果进行逆变换的逆变换矩阵A、AT。如上 所述,可以根据运算结果的尺寸确定逆变换矩阵。
进一步的,可以使用逆变换矩阵对乘法运算结果进行逆变换,即确定
Y=AT[(GgGT)⊙(BTdB)]A。
实际应用时,可以预先确定与乘法运算中包括的每个元素对应的替换矩阵,从而可以 根据这些替换矩阵对逆变换运算拆解为求和运算,并根据求和运算确定运算结果。
其中,具体的拆解方式与对特征变换运算的拆解方式类似,进而通过更少的乘法方式 就能够得到卷积运算结果。
步骤205,将运算结果输出至下层卷积网络。
具体的,本实施例提供的方法中,本层卷积网络可以将确定的运算结果输出至下层卷 积网络,从而将其作为下层卷积网络的输入特征,下层卷积网络可以根据该层的权重数据 对输入的数据进行卷积计算。
进一步的,此时,下层卷积网络进行过卷积运算时,也可以采用上述的计算方式,即 采用winograd算法,并将算法中的变化运算转换为求和运算。
本实施例提供的方法用于进行卷积运算,该方法由设置有本实施例提供的方法的设备 执行,该设备通常以硬件和/或软件的方式来实现。
本实施例提供的运算方法,包括获取上层卷积网络输出的特征数据以及用于对该特 征数据进行正变换的特征变换矩阵;根据特征变换矩阵对特征数据进行变换得到特征变换结果;其中,将特征数据的变换运算拆解为求和运算,并根据求和运算确定特征 变换结果;获取本层卷积网络经过正变换的权值变换结果,对特征变换结果和权值变换 结果进行对位乘法运算,得到乘法运算结果;获取用于对乘法运算结果进行逆变换的逆 变换矩阵,根据逆变换矩阵对乘法运算结果进行变换得到运算结果;其中,将乘法运 算结果的变换运算拆解为求和运算,并根据求和运算确定运算结果;将运算结果输出 至下层卷积网络。本实施例提供的方法中,计算机系统在对特征数据进行卷积处理时,采 用winograd算法,该算法能够将乘法转换为加法,并且将该算法中的变化过程转换为求 和运算,从而更进一步的降低数据处理过程中的乘法运算,能够降低计算机系统的性能损 耗,提高运算速度。
图3为本发明一示例性实施例示出的运算方法的流程图。
如图3所示,本实施例提供的运算方法包括:
步骤301,获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变换的 特征变换矩阵。
步骤301与步骤201的实现原理、方式类似,不再赘述。
步骤302,将特征数据拆解为多个特征子张量。
其中,本实施例提供的方法中,可以将特征数据的正变换拆解为求和运算,从而降低 乘法的运算次数。在拆解过程中,可以将特征数据拆解为多个特征子张量。
具体的,多个特征子张量之和为特征数据,多个特征子张量的个数与特征数据中非0 元素的个数相同,每个特征子张量中有单个非0元素,且在特征子张量中的非0元素与在 特征数据中对应位置的非0元素相同。
进一步的,例如特征数据d为:
Figure BDA0002257974860000091
则可以根据上述规定,将特征数据拆分为16个(假设特征数据中的元素均为非0时), 特征子张量,分别为:
Figure BDA0002257974860000101
步骤303,根据特征变换矩阵对多个特征子张量进行变换运算并求和,得到特征变换结果。
实际应用时,将特征数据拆分为特征子张量之后,可以使用特征变换矩阵对每个特征子张量进行变换,再将特征子张量的变换结果相加,得到特征变换结果。
其中,由于特征子张量之和与特征数据等同,那么对特征子数据进行变换,再将变换结果相加得到的结果,与特征数据的变换结果相同。
例如,对于其中的一个特征子张量,可以基于下式对其进行转换:
Figure BDA0002257974860000102
针对每个特征子张量,都可以进行如上的变换,再将各个特征子张量的变换结果相加, 得到特征变换结果。
为了进一步的减少运算过程中的乘法运算,在对特征子张量进行变换运算并求和, 得到特征变换结果时,还可以:
根据特征子张量确定对应的特征元子张量,其中,特征元子张量是将特征子张量的非 0元素置为1的张量;
根据特征变换矩阵、特征元子张量及其对应的非0元素,确定特征子张量的变换结果;
对特征子张量的变换结果进行求和,得到特征变换结果。
其中,可以识别特征子张量中的非0元素,并将非0元素对应的位置设置为1, 得到特征元子张量,例如对于特征子张量
Figure BDA0002257974860000111
来说,对应的特征元子张量是:
Figure BDA0002257974860000112
针对每个特征子张量都可以确定其对应的特征元子张量。
在对特征子张量进行变换时,可以根据特征变换矩阵、特征元子张量及其对应的非0 元素,确定特征子张量的变换结果。
具体可以对特征元子张量左边乘以特征变换矩阵中的左乘矩阵、右边乘以特征变换矩 阵中的右乘矩阵,并将结果与特征元子张量对应的非0元素相乘,得到特征子张量的变换 结果;其中,特征元子张量中的左乘矩阵和右乘矩阵都是由特征子张量的规模确定的
例如对于
Figure BDA0002257974860000113
来说,可以转换为
Figure BDA0002257974860000114
由于矩阵中的元素除了0就是1,因此,对于上式的运算过程引起的性能损耗较小。
进一步的,由于根据特征数据的尺寸可以确定BT、B,并且,特征元子张量也是预先可以根据特征数据确定的。因此,还可以预先根据BT、B、特征元子张量确定与特征数据 中每个元素位置对应的替换矩阵。
例如,对于第一行第一列的元素位置,替换矩阵为:
Figure BDA0002257974860000115
基于上式可以得知,特征子张量
Figure BDA0002257974860000121
的变换结果变为:
d00×D00
针对特征数据中每个元素位置都可以确定对应的替换矩阵,可以在对特征数据进行变 换时,直接根据数据尺寸,确定对应的替换矩阵集合,再根据替换矩阵集合确定特征变换 结果。
基于上式可以得到特征变化结果为:
BTdB=d00×D01+d01×D01…d33×D33
步骤304,获取本层卷积网络的权值数据以及用于对该权值数据进行正变换的权值变换矩阵。
步骤305,根据权值变换矩阵对权值数据进行变换得到权值变换结果;其中,将权值数据的变换运算拆解为求和运算,并根据求和运算确定权值变换结果。
其中,在本实施例提供的方法中,可以根据权值变换矩阵对权值数据进行变换,得到权值变换结果。
具体的,在变换过程中,为了减少乘法运算,可以将权值数据的变换运算拆解为求和运算,并根据求和运算确定权值变换结果。
进一步的,可以基于下式对权值数据进行变换:
GTgG
其中,GT、G是权值变换矩阵,g是权值数据。在将该变换过程拆解为求和运算时,可以将权值数据拆解为多个权值子张量;再根据权值变换矩阵对多个权值子张量进行变换运算并求和,得到权值变换结果。
具体的,多个权值子张量之和为权值数据,多个权值子张量的个数与权值数据中非0 元素的个数相同,每个权值子张量中有单个非0元素,且在权值子张量中的非0元素与在 权值数据中对应位置的非0元素相同。
进一步的,例如权值数据g为:
Figure BDA0002257974860000122
与拆分特征数据相似,也可以将权值数据拆分为16个权值子张量,分别为:
Figure BDA0002257974860000131
实际应用时,将权值数据拆分为权值子张量之后,可以使用权值变换矩阵对每个权值子张量进行变换,再将权值子张量的变换结果相加,得到权值变换结果。
例如,对于其中的一个权值子张量,可以基于下式对其进行转换:
Figure BDA0002257974860000132
针对每个权值子张量,都可以进行如上的变换,再将各个权值子张量的变换结果相加, 得到权值变换结果。
为了进一步的减少运算过程中的乘法运算,在对权值子张量进行变换运算并求和, 得到权值变换结果时,还可以:
根据权值子张量确定对应的权值元子张量,其中,权值元子张量是将权值子张量的非 0元素置为1的张量;
根据权值变换矩阵、权值元子张量及其对应的非0元素,确定权值子张量的变换结果;
对权值子张量的变换结果进行求和,得到权值变换结果。
与特征数据的变换过程类似,可以识别权值子张量中的非0元素,并将非0元素 对应的位置设置为1,得到权值元子张量,例如对于权值子张量
Figure BDA0002257974860000133
来说,对应的权值元子张量是:
Figure BDA0002257974860000141
针对每个权值子张量都可以确定其对应的权值元子张量。
在对权值子张量进行变换时,可以根据权值变换矩阵、权值元子张量及其对应的非0 元素,确定权值子张量的变换结果。
具体可以对对权值元子张量左边乘以权值变换矩阵中的左乘矩阵、右边乘以权值变换 矩阵中的右乘矩阵,并将结果与权值元子张量对应的非0元素相乘,得到权值子张量的变 换结果;其中,权值元子张量中的左乘矩阵和右乘矩阵都是由权值子张量的规模确定的。
例如对于
Figure BDA0002257974860000142
来说,可以转换为
Figure BDA0002257974860000143
进一步的,由于根据权值数据的尺寸可以确定GT、G,并且,权值元子张量也是预先可以根据权值数据确定的。因此,还可以预先根据GT、G、权值元子张量确定与权值数据 中每个元素位置对应的替换矩阵。
例如,对于第一行第一列的元素位置,替换矩阵为:
Figure BDA0002257974860000144
基于上式可以得知,权值子张量
Figure BDA0002257974860000145
的变换结果变为:
g00×D′00
针对权值数据中每个元素位置都可以确定对应的替换矩阵,可以在对权值数据进行变 换时,直接根据数据尺寸,确定对应的替换矩阵集合,再根据替换矩阵集合确定权值变换 结果。
基于上式可以得到权值变化结果为:
GTgG=g00×D'01+g01×D'01…g33×D'33
步骤306,对特征变换结果和权值变换结果进行对位乘法运算,得到乘法运算结果。
步骤306与步骤203中对特征变换结果和权值变换结果进行对位乘法运算的实现原理、 方式类似,不再赘述。
步骤307,将乘法运算结果拆解为多个结果子张量。
步骤308,根据逆变换矩阵对多个结果子张量进行变换运算并求和,得到运算结果。
其中,在本实施例提供的方法中,可以根据逆变换矩阵对乘法运算结果数据进行变换,得到运算结果。
具体的,在变换过程中,为了减少乘法运算,可以将乘法运算结果的变换运算拆解为求和运算,并根据求和运算确定运算结果。
进一步的,可以基于下式对乘法运算结果进行变换:
ApAT
其中,AT、A是逆变换矩阵,p是乘法运算结果。在将该变换过程拆解为求和运算时,可以将乘法运算结果拆解为多个结果子张量;再根据逆变换矩阵对多个结果子张量进行变换运算并求和,得到运算结果。
具体的,多个结果子张量之和为乘法运算结果,多个结果子张量的个数与乘法运算结 果中非0元素的个数相同,每个结果子张量中有单个非0元素,且在结果子张量中的非0 元素与在乘法运算结果中对应位置的非0元素相同。
进一步的,例如乘法运算结果p为:
Figure BDA0002257974860000151
与拆分特征数据相似,也可以将乘法运算结果拆分为16个结果子张量,分别为:
Figure BDA0002257974860000152
Figure BDA0002257974860000161
实际应用时,将乘法运算结果拆分为结果子张量之后,可以使用逆变换矩阵对每个结果子张量进行变换,再将结果子张量的变换结果相加,得到运算结果。
例如,对于其中的一个结果子张量,可以基于下式对其进行转换:
Figure BDA0002257974860000162
针对每个结果子张量,都可以进行如上的变换,再将各个结果子张量的变换结果相加, 得到运算结果。
为了进一步的减少运算过程中的乘法运算,在对结果子张量进行变换运算并求和, 得到运算结果时,还可以:
根据结果子张量确定对应的结果元子张量,其中,结果元子张量是将结果子张量的非 0元素置为1的张量;
根据逆变换矩阵、结果元子张量及其对应的非0元素,确定结果子张量的变换结果;
对结果子张量的变换结果进行求和,得到运算结果。
与特征数据的变换过程类似,可以识别结果子张量中的非0元素,并将非0元素 对应的位置设置为1,得到结果元子张量,例如对于结果子张量
Figure BDA0002257974860000163
来说,对应的结果元子张量是:
Figure BDA0002257974860000164
针对每个结果子张量都可以确定其对应的结果元子张量。
在对结果子张量进行变换时,可以根据逆变换矩阵、结果元子张量及其对应的非0元 素,确定运算结果。
具体可以对结果元子张量左边乘以逆变换矩阵中的左乘矩阵、右边乘以逆变换矩阵中 的右乘矩阵,并将结果与结果元子张量对应的非0元素相乘,得到结果子张量的变换结果; 其中,结果元子张量中的左乘矩阵和右乘矩阵都是由结果子张量的规模确定的。
例如对于
Figure BDA0002257974860000171
来说,可以转换为
Figure BDA0002257974860000172
进一步的,由于根据运算结果的尺寸可以确定AT、A,并且,结果元子张量也是预先可以根据运算结果的尺寸确定的。因此,还可以预先根据AT、A、结果元子张量确定与乘 法运算数据中每个元素位置对应的替换矩阵。
例如,对于第一行第一列的元素位置,替换矩阵为:
Figure BDA0002257974860000173
基于上式可以得知,结果子张量
Figure BDA0002257974860000174
的变换结果变为:
p00×D″00
针对乘法运算结果中每个元素位置都可以确定对应的替换矩阵,可以在对乘法运算结 果进行变换时,直接根据该结果或最终运算结果尺寸,确定对应的替换矩阵集合,再根据 替换矩阵集合确定运算结果。
基于上式可以得到运算结果为:
ApAT=p00×D″00+p01×D″01…p33×D″33
步骤309,将运算结果输出至下层卷积网络。
步骤309与步骤205的实现原理、方式类似,不再赘述
图4为本发明一示例性实施例示出的主从处理架构示意图。
如图4所示,本实施例的方案还提供一种主从处理架构,可以用来实现本实施例提供 的运算方法。
主从处理结构包括主功能单元41,以及至少一个从功能单元42。
其中,主功能单元41根据特征变换矩阵对特征数据进行变换得到特征变换结果;其中,将特征数据的变换运算拆解为求和运算,并根据求和运算确定特征变换结果。
可选的,还可以设置一主存储单元(图中未示出),该主存储单元可以与主功能单元 41连接。可以由一主控制单元(图中未示出)分别向主存储单元以及主功能单元41发送指令,使得主存储单元能够向主功能单元发送特征数据。
从功能单元获取本层卷积网络经过正变换的权值变换结果,对特征变换结果和权值 变换结果进行对位乘法运算,得到乘法运算结果;
从功能单元获取用于对乘法运算结果进行逆变换的逆变换矩阵,根据逆变换矩阵对乘法运算结果进行变换得到运算结果;其中,将乘法运算结果的变换运算拆解为求 和运算,并根据求和运算确定运算结果。
从功能单元42对对特征数据变换结果和权值变换结果进行对位乘法运算,得到乘法 运算结果。
其中,从功能单元42可以对接收到的特征数据变换结果和权值变换结果进行对位乘 法运算,从而得到乘法运算结果。
本实施例提供的方法中,对数据的处理过程与上述实施例相似,不再赘述。
具体的,一个主功能单元41可以连接多个从功能单元42,可以预设分配规则,用于向从功能单元42分配特征数据变换结果。
进一步的,主功能单元41和从功能单元42的运算过程为并行运算,在主功能单 元41对特征数据中各元素位置的变换结果值计算完成之前,从功能单元42针对已计 算出的特征变换结果值的元素位置,执行元素位置下特征变换结果与权值变换结果的 对位乘法运算,直至计算出各元素位置的对位乘法运算值,获得乘法运算结果。
实际应用时,通过将主功能单元41确定的特征变化结果发送给从功能单元42, 且从功能单元42并行执行对位乘运算,能够提高系统的运算效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的 动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为 依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知 悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开 所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些 步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执 行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部 分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执 行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进 行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执 行。
图5为本发明一示例性实施例示出的运算装置示意图。
如图5所示,本实施例提供的运算装置包括:
获取模块51,用于获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变换的特征变换矩阵;
特征变换模块52,用于根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算 确定所述特征变换结果;
对位乘模块53,用于获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变换结果进行对位乘法运算,得到乘法运算结果;
逆变换模块54,用于获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运 算结果的变换运算拆解为求和运算,并根据所述求和运算确定所述运算结果;
传输模块55,用于将所述运算结果输出至下层卷积网络。
本实施例提供的运算装置的具体原理、实现方式及效果与图2所示实施例相似,不再 赘述。
在图5所示的运算装置基础上,本实施例提供的运算装置中,所述特征变换模块52具体用于:
将所述特征数据拆解为多个特征子张量;
根据所述特征变换矩阵对所述多个特征子张量进行变换运算并求和,得到所述特征变换结果;
所述逆变换模块54具体用于:
将所述乘法运算结果拆解为多个结果子张量;
根据所述逆变换矩阵对所述多个结果子张量进行变换运算并求和,得到所述运算结果。
多个所述特征子张量之和为所述特征数据;多个所述结果子张量之和为所述乘法运算 结果;
所述多个特征子张量的个数与所述特征数据中非0元素的个数相同,每个所述特征子 张量中有单个非0元素,且在所述特征子张量中的非0元素与在所述特征数据中对应位置 的非0元素相同;
所述多个结果子张量的个数与所述乘法运算结果中非0元素的个数相同,每个所述结果子张量中有单个非0元素,且在所述结果子张量中的非0元素与在所述乘法运 算结果中对应位置的非0元素相同。
所述特征变换模块52具体用于:
根据所述特征子张量确定对应的特征元子张量,其中,所述特征元子张量是将所述特 征子张量的非0元素置为1的张量;
根据所述特征变换矩阵、所述特征元子张量及其对应的非0元素,确定所述特征子张 量的变换结果;
对所述特征子张量的变换结果进行求和,得到所述特征变换结果;
所述逆变换模块54具体用于:
根据所述结果子张量确定对应的结果元子张量,其中,所述结果元子张量是将所述结 果子张量的非0元素置为1的张量;
根据所述逆变换矩阵、所述结果元子张量及其对应的非0元素,确定所述结果子张量 的变换结果;
对所述结果子张量的变换结果进行求和,得到所述运算结果。
所述特征变换模块52具体用于:
对所述特征元子张量左边乘以所述特征变换矩阵中的左乘矩阵、右边乘以所述特征变 换矩阵中的右乘矩阵,并将结果与所述特征元子张量对应的非0元素相乘,得到所述特征 子张量的变换结果;
其中,所述特征元子张量中的左乘矩阵和所述右乘矩阵都是由所述特征子张量的规模 确定的;
所述逆变换模块54具体用于:
对所述结果元子张量左边乘以所述逆变换矩阵中的左乘矩阵、右边乘以所述逆变换矩 阵中的右乘矩阵,并将结果与所述结果元子张量对应的非0元素相乘,得到所述结果子张 量的变换结果;
其中,所述结果元子张量中的左乘矩阵和所述右乘矩阵都是由所述结果子张量的规模 确定的。
所述对位乘模块53具体用于:
获取本层卷积网络的权值数据以及用于对该权值数据进行正变换的权值变换矩阵;
根据所述权值变换矩阵对所述权值数据进行变换得到权值变换结果;其中,将所述 权值数据的变换运算拆解为求和运算,并根据所述求和运算确定所述权值变换结果。
所述对位乘模块53具体用于:
将所述权值数据拆解为多个权值子张量;
根据所述权值变换矩阵对所述多个权值子张量进行变换运算并求和,得到所述权值变 换结果。
所述对位乘模块53具体用于:
根据所述权值子张量确定对应的权值元子张量,其中,所述权值元子张量是将所述权 值子张量的非0元素置为1的张量;
根据所述权值变换矩阵、所述权值元子张量及其对应的非0元素,确定所述权值子张 量的变换结果;
对所述权值子张量的变换结果进行求和,得到所述权值变换结果。
所述对位乘模块53具体用于:
对所述权值元子张量左边乘以所述权值变换矩阵中的左乘矩阵、右边乘以所述权值变 换矩阵中的右乘矩阵,并将结果与所述权值元子张量对应的非0元素相乘,得到所述权值 子张量的变换结果;
其中,所述权值元子张量中的左乘矩阵和所述右乘矩阵都是由所述权值子张量的规模 确定的。
本实施例提供的运算装置的具体原理、实现方式及效果与图3、4所示实施例相似,不再赘述。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。 例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以 有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统, 或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单 元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成 在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的 形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路 等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等 等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如, 阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM (DynamicRandom Access Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、 高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube) 等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式 体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设 备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或 部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随 机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以 存储程序代码的介质。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述运算装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器 件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及 所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图6为本发明一示例性实施例示出的板卡的结构框图,参阅图6,上述板卡除了包括 上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件 可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可 以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双 倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上 升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存 储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。 在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位 DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储 单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存 储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器, 用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片 与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装 置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到 16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上 述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智 能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的 状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所 述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包 括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子 设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、 行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、 手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、 B超仪和/或心电图仪。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分, 可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描 述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些 技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
A1、一种运算方法,所述方法包括:
获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变换的特征变换矩 阵;
根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述特 征数据的变换运算拆解为求和运算,并根据所述求和运算确定所述特征变换结果;
获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变换 结果进行对位乘法运算,得到乘法运算结果;
获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述 乘法运算结果进行变换得到运算结果;其中,将所述乘法运算结果的变换运算拆解为求和 运算,并根据所述求和运算确定所述运算结果;
将所述运算结果输出至下层卷积网络
A2、根据条款A1所述的方法,所述将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算确定所述特征变换结果,包括:
将所述特征数据拆解为多个特征子张量;
根据所述特征变换矩阵对所述多个特征子张量进行变换运算并求和,得到所述特征变 换结果;
所述将所述乘法运算结果的变换运算拆解为求和运算,并根据所述求和运算确定所述 运算结果,包括:
将所述乘法运算结果拆解为多个结果子张量;
根据所述逆变换矩阵对所述多个结果子张量进行变换运算并求和,得到所述运算结果
A3、根据条款A2所述的方法,多个所述特征子张量之和为所述特征数据;多个所述结果子张量之和为所述乘法运算结果;
所述多个特征子张量的个数与所述特征数据中非0元素的个数相同,每个所述特征子 张量中有单个非0元素,且在所述特征子张量中的非0元素与在所述特征数据中对应位置 的非0元素相同;
所述多个结果子张量的个数与所述乘法运算结果中非0元素的个数相同,每个所述结 果子张量中有单个非0元素,且在所述结果子张量中的非0元素与在所述乘法运算结果中 对应位置的非0元素相同
A4、根据条款A2所述的方法,所述根据所述特征变换矩阵对所述多个特征子张量进 行变换运算并求和,得到所述特征变换结果,包括:
根据所述特征子张量确定对应的特征元子张量,其中,所述特征元子张量是将所述特 征子张量的非0元素置为1的张量;
根据所述特征变换矩阵、所述特征元子张量及其对应的非0元素,确定所述特征子张 量的变换结果;
对所述特征子张量的变换结果进行求和,得到所述特征变换结果;
所述根据所述逆变换矩阵对所述多个结果征子张量进行变换运算并求和,得到所述运 算结果,包括:
根据所述结果子张量确定对应的结果元子张量,其中,所述结果元子张量是将所述结 果子张量的非0元素置为1的张量;
根据所述逆变换矩阵、所述结果元子张量及其对应的非0元素,确定所述结果子张量 的变换结果;
对所述结果子张量的变换结果进行求和,得到所述运算结果。
A5、根据条款A4所述的方法,所述根据所述特征变换矩阵、所述特征元子张量及其对应的非0元素,确定所述特征子张量的变换结果,包括:
对所述特征元子张量左边乘以所述特征变换矩阵中的左乘矩阵、右边乘以所述特征变 换矩阵中的右乘矩阵,并将结果与所述特征元子张量对应的非0元素相乘,得到所述特征 子张量的变换结果;
其中,所述特征元子张量中的左乘矩阵和所述右乘矩阵都是由所述特征子张量的规模 确定的;
所述根据所述逆变换矩阵、所述结果元子张量及其对应的非0元素,确定所述结果子 张量的变换结果,包括:
对所述结果元子张量左边乘以所述逆变换矩阵中的左乘矩阵、右边乘以所述逆变换矩 阵中的右乘矩阵,并将结果与所述结果元子张量对应的非0元素相乘,得到所述结果子张 量的变换结果;
其中,所述结果元子张量中的左乘矩阵和所述右乘矩阵都是由所述结果子张量的规模 确定的。
A6、根据条款A1所述的方法,所述获取本层卷积网络经过正变换的权值变换结果,包括:
获取本层卷积网络的权值数据以及用于对该权值数据进行正变换的权值变换矩阵;
根据所述权值变换矩阵对所述权值数据进行变换得到权值变换结果;其中,将所述权 值数据的变换运算拆解为求和运算,并根据所述求和运算确定所述权值变换结果。
A7、根据条款A6所述的方法,所述将所述权值数据的变换运算拆解为求和运算,并根据所述求和运算确定所述权值变换结果,包括:
将所述权值数据拆解为多个权值子张量;
根据所述权值变换矩阵对所述多个权值子张量进行变换运算并求和,得到所述权值变 换结果。
A8、根据条款A7所述的方法,所述根据所述权值变换矩阵对所述多个权值子张量进 行变换运算并求和,得到所述权值变换结果,包括:
根据所述权值子张量确定对应的权值元子张量,其中,所述权值元子张量是将所述权 值子张量的非0元素置为1的张量;
根据所述权值变换矩阵、所述权值元子张量及其对应的非0元素,确定所述权值子张 量的变换结果;
对所述权值子张量的变换结果进行求和,得到所述权值变换结果。
A9、根据条款A8所述的方法,所述根据所述权值变换矩阵、所述权值元子张量及其对应的非0元素,确定所述权值子张量的变换结果,包括:
对所述权值元子张量左边乘以所述权值变换矩阵中的左乘矩阵、右边乘以所述权值变 换矩阵中的右乘矩阵,并将结果与所述权值元子张量对应的非0元素相乘,得到所述权值 子张量的变换结果;
其中,所述权值元子张量中的左乘矩阵和所述右乘矩阵都是由所述权值子张量的规模 确定的。
A10、根据条款A1-A9任一项所述的方法,所述方法应用于主从处理架构;所述主从处理架构包括:主功能单元以及至少一个从功能单元。
A11、根据条款A10所述的方法,所述主功能单元根据所述特征变换矩阵对所述特征 数据进行变换得到特征变换结果;其中,将所述特征数据的变换运算拆解为求和运算,并 根据所述求和运算确定所述特征变换结果;
所述从功能单元获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果 和所述权值变换结果进行对位乘法运算,得到乘法运算结果;
所述从功能单元获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆 变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运算结果的变换 运算拆解为求和运算,并根据所述求和运算确定所述运算结果。
A12、根据条款A11所述的方法,所述主功能单元和所述从功能单元的运算过程为并 行运算,在所述主功能单元对特征数据中各元素位置的变换结果值计算完成之前,所述从 功能单元针对已计算出的特征变换结果值的元素位置,执行所述元素位置下特征变换结果 与权值变换结果的对位乘法运算,直至计算出各元素位置的对位乘法运算值,获得乘法运 算结果。
A13、一种运算装置,包括:
获取模块,用于获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变 换的特征变换矩阵;
特征变换模块,用于根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算确 定所述特征变换结果;
对位乘模块,用于获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变换结果进行对位乘法运算,得到乘法运算结果;
逆变换模块,用于获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运算 结果的变换运算拆解为求和运算,并根据所述求和运算确定所述运算结果;
传输模块,用于将所述运算结果输出至下层卷积网络。
A14,根据条款A13所述的装置,所述特征变换模块具体用于:
将所述特征数据拆解为多个特征子张量;
根据所述特征变换矩阵对所述多个特征子张量进行变换运算并求和,得到所述特征变换结果;
所述逆变换模块具体用于:
将所述乘法运算结果拆解为多个结果子张量;
根据所述逆变换矩阵对所述多个结果子张量进行变换运算并求和,得到所述运算结果。
A15,根据条款A14所述的装置,多个所述特征子张量之和为所述特征数据;多个所述结果子张量之和为所述乘法运算结果;
所述多个特征子张量的个数与所述特征数据中非0元素的个数相同,每个所述特征子 张量中有单个非0元素,且在所述特征子张量中的非0元素与在所述特征数据中对应位置 的非0元素相同;
所述多个结果子张量的个数与所述乘法运算结果中非0元素的个数相同,每个所述结果子张量中有单个非0元素,且在所述结果子张量中的非0元素与在所述乘法运 算结果中对应位置的非0元素相同。
A16,根据条款A14所述的装置,所述特征变换模块具体用于:
根据所述特征子张量确定对应的特征元子张量,其中,所述特征元子张量是将所述特 征子张量的非0元素置为1的张量;
根据所述特征变换矩阵、所述特征元子张量及其对应的非0元素,确定所述特征子张 量的变换结果;
对所述特征子张量的变换结果进行求和,得到所述特征变换结果;
所述逆变换模块具体用于:
根据所述结果子张量确定对应的结果元子张量,其中,所述结果元子张量是将所述结 果子张量的非0元素置为1的张量;
根据所述逆变换矩阵、所述结果元子张量及其对应的非0元素,确定所述结果子张量 的变换结果;
对所述结果子张量的变换结果进行求和,得到所述运算结果。
A17,根据条款A16所述的装置,所述特征变换模块具体用于:
对所述特征元子张量左边乘以所述特征变换矩阵中的左乘矩阵、右边乘以所述特征变 换矩阵中的右乘矩阵,并将结果与所述特征元子张量对应的非0元素相乘,得到所述特征 子张量的变换结果;
其中,所述特征元子张量中的左乘矩阵和所述右乘矩阵都是由所述特征子张量的规模 确定的;
所述逆变换模块具体用于:
对所述结果元子张量左边乘以所述逆变换矩阵中的左乘矩阵、右边乘以所述逆变换矩 阵中的右乘矩阵,并将结果与所述结果元子张量对应的非0元素相乘,得到所述结果子张 量的变换结果;
其中,所述结果元子张量中的左乘矩阵和所述右乘矩阵都是由所述结果子张量的规模 确定的。
A18,根据条款A13所述的装置,所述对位乘模块具体用于:
获取本层卷积网络的权值数据以及用于对该权值数据进行正变换的权值变换矩阵;
根据所述权值变换矩阵对所述权值数据进行变换得到权值变换结果;其中,将所述 权值数据的变换运算拆解为求和运算,并根据所述求和运算确定所述权值变换结果。
A19,根据条款A18所述的装置,所述对位乘模块具体用于:
将所述权值数据拆解为多个权值子张量;
根据所述权值变换矩阵对所述多个权值子张量进行变换运算并求和,得到所述权值变 换结果。
A20,根据条款A19所述的装置,所述对位乘模块具体用于:
根据所述权值子张量确定对应的权值元子张量,其中,所述权值元子张量是将所述权 值子张量的非0元素置为1的张量;
根据所述权值变换矩阵、所述权值元子张量及其对应的非0元素,确定所述权值子张 量的变换结果;
对所述权值子张量的变换结果进行求和,得到所述权值变换结果。
A21,根据条款A20所述的装置,所述对位乘模块具体用于:
对所述权值元子张量左边乘以所述权值变换矩阵中的左乘矩阵、右边乘以所述权值变 换矩阵中的右乘矩阵,并将结果与所述权值元子张量对应的非0元素相乘,得到所述权值 子张量的变换结果;
其中,所述权值元子张量中的左乘矩阵和所述右乘矩阵都是由所述权值子张量的规模 确定的。
A22,一种人工智能芯片,所述芯片包括如条款A13-A21中任意一项所述的运算装置。
A23,一种电子设备,所述电子设备包括如条款A22所述的人工智能芯片。
A24,一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A22所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
A25,根据条款A24所述的板卡,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原 理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其 核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方 式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述, 本说明书内容不应理解为对本公开的限制。

Claims (25)

1.一种运算方法,其特征在于,包括:
获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变换的特征变换矩阵;
根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算确定所述特征变换结果;
获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变换结果进行对位乘法运算,得到乘法运算结果;
获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运算结果的变换运算拆解为求和运算,并根据所述求和运算确定所述运算结果;
将所述运算结果输出至下层卷积网络。
2.根据权利要求1所述的方法,其特征在于,所述将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算确定所述特征变换结果,包括:
将所述特征数据拆解为多个特征子张量;
根据所述特征变换矩阵对所述多个特征子张量进行变换运算并求和,得到所述特征变换结果;
所述将所述乘法运算结果的变换运算拆解为求和运算,并根据所述求和运算确定所述运算结果,包括:
将所述乘法运算结果拆解为多个结果子张量;
根据所述逆变换矩阵对所述多个结果子张量进行变换运算并求和,得到所述运算结果。
3.根据权利要求2所述的方法,其特征在于,多个所述特征子张量之和为所述特征数据;多个所述结果子张量之和为所述乘法运算结果;
所述多个特征子张量的个数与所述特征数据中非0元素的个数相同,每个所述特征子张量中有单个非0元素,且在所述特征子张量中的非0元素与在所述特征数据中对应位置的非0元素相同;
所述多个结果子张量的个数与所述乘法运算结果中非0元素的个数相同,每个所述结果子张量中有单个非0元素,且在所述结果子张量中的非0元素与在所述乘法运算结果中对应位置的非0元素相同。
4.根据权利要求2所述的方法,其特征在于,所述根据所述特征变换矩阵对所述多个特征子张量进行变换运算并求和,得到所述特征变换结果,包括:
根据所述特征子张量确定对应的特征元子张量,其中,所述特征元子张量是将所述特征子张量的非0元素置为1的张量;
根据所述特征变换矩阵、所述特征元子张量及其对应的非0元素,确定所述特征子张量的变换结果;
对所述特征子张量的变换结果进行求和,得到所述特征变换结果;
所述根据所述逆变换矩阵对所述多个结果征子张量进行变换运算并求和,得到所述运算结果,包括:
根据所述结果子张量确定对应的结果元子张量,其中,所述结果元子张量是将所述结果子张量的非0元素置为1的张量;
根据所述逆变换矩阵、所述结果元子张量及其对应的非0元素,确定所述结果子张量的变换结果;
对所述结果子张量的变换结果进行求和,得到所述运算结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述特征变换矩阵、所述特征元子张量及其对应的非0元素,确定所述特征子张量的变换结果,包括:
对所述特征元子张量左边乘以所述特征变换矩阵中的左乘矩阵、右边乘以所述特征变换矩阵中的右乘矩阵,并将结果与所述特征元子张量对应的非0元素相乘,得到所述特征子张量的变换结果;
其中,所述特征元子张量中的左乘矩阵和所述右乘矩阵都是由所述特征子张量的规模确定的;
所述根据所述逆变换矩阵、所述结果元子张量及其对应的非0元素,确定所述结果子张量的变换结果,包括:
对所述结果元子张量左边乘以所述逆变换矩阵中的左乘矩阵、右边乘以所述逆变换矩阵中的右乘矩阵,并将结果与所述结果元子张量对应的非0元素相乘,得到所述结果子张量的变换结果;
其中,所述结果元子张量中的左乘矩阵和所述右乘矩阵都是由所述结果子张量的规模确定的。
6.根据权利要求1所述的方法,其特征在于,所述获取本层卷积网络经过正变换的权值变换结果,包括:
获取本层卷积网络的权值数据以及用于对该权值数据进行正变换的权值变换矩阵;
根据所述权值变换矩阵对所述权值数据进行变换得到权值变换结果;其中,将所述权值数据的变换运算拆解为求和运算,并根据所述求和运算确定所述权值变换结果。
7.根据权利要求6所述的方法,其特征在于,所述将所述权值数据的变换运算拆解为求和运算,并根据所述求和运算确定所述权值变换结果,包括:
将所述权值数据拆解为多个权值子张量;
根据所述权值变换矩阵对所述多个权值子张量进行变换运算并求和,得到所述权值变换结果。
8.根据权利要求7所述的方法,其特征在于,所述根据所述权值变换矩阵对所述多个权值子张量进行变换运算并求和,得到所述权值变换结果,包括:
根据所述权值子张量确定对应的权值元子张量,其中,所述权值元子张量是将所述权值子张量的非0元素置为1的张量;
根据所述权值变换矩阵、所述权值元子张量及其对应的非0元素,确定所述权值子张量的变换结果;
对所述权值子张量的变换结果进行求和,得到所述权值变换结果。
9.根据权利要求8所述的方法,其特征在于,所述根据所述权值变换矩阵、所述权值元子张量及其对应的非0元素,确定所述权值子张量的变换结果,包括:
对所述权值元子张量左边乘以所述权值变换矩阵中的左乘矩阵、右边乘以所述权值变换矩阵中的右乘矩阵,并将结果与所述权值元子张量对应的非0元素相乘,得到所述权值子张量的变换结果;
其中,所述权值元子张量中的左乘矩阵和所述右乘矩阵都是由所述权值子张量的规模确定的。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法应用于主从处理架构;所述主从处理架构包括:主功能单元以及至少一个从功能单元。
11.根据权利要求10所述的方法,其特征在于,所述主功能单元根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算确定所述特征变换结果;
所述从功能单元获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变换结果进行对位乘法运算,得到乘法运算结果;
所述从功能单元获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运算结果的变换运算拆解为求和运算,并根据所述求和运算确定所述运算结果。
12.根据权利要求11所述的方法,其特征在于,所述主功能单元和所述从功能单元的运算过程为并行运算,在所述主功能单元对特征数据中各元素位置的变换结果值计算完成之前,所述从功能单元针对已计算出的特征变换结果值的元素位置,执行所述元素位置下特征变换结果与权值变换结果的对位乘法运算,直至计算出各元素位置的对位乘法运算值,获得乘法运算结果。
13.一种运算装置,其特征在于,包括:
获取模块,用于获取上层卷积网络输出的特征数据以及用于对该特征数据进行正变换的特征变换矩阵;
特征变换模块,用于根据所述特征变换矩阵对所述特征数据进行变换得到特征变换结果;其中,将所述特征数据的变换运算拆解为求和运算,并根据所述求和运算确定所述特征变换结果;
对位乘模块,用于获取本层卷积网络经过正变换的权值变换结果,对所述特征变换结果和所述权值变换结果进行对位乘法运算,得到乘法运算结果;
逆变换模块,用于获取用于对所述乘法运算结果进行逆变换的逆变换矩阵,根据所述逆变换矩阵对所述乘法运算结果进行变换得到运算结果;其中,将所述乘法运算结果的变换运算拆解为求和运算,并根据所述求和运算确定所述运算结果;
传输模块,用于将所述运算结果输出至下层卷积网络。
14.根据权利要求13所述的装置,其特征在于,
所述特征变换模块具体用于:
将所述特征数据拆解为多个特征子张量;
根据所述特征变换矩阵对所述多个特征子张量进行变换运算并求和,得到所述特征变换结果;
所述逆变换模块具体用于:
将所述乘法运算结果拆解为多个结果子张量;
根据所述逆变换矩阵对所述多个结果子张量进行变换运算并求和,得到所述运算结果。
15.根据权利要求14所述的装置,其特征在于,多个所述特征子张量之和为所述特征数据;多个所述结果子张量之和为所述乘法运算结果;
所述多个特征子张量的个数与所述特征数据中非0元素的个数相同,每个所述特征子张量中有单个非0元素,且在所述特征子张量中的非0元素与在所述特征数据中对应位置的非0元素相同;
所述多个结果子张量的个数与所述乘法运算结果中非0元素的个数相同,每个所述结果子张量中有单个非0元素,且在所述结果子张量中的非0元素与在所述乘法运算结果中对应位置的非0元素相同。
16.根据权利要求14所述的装置,其特征在于,所述特征变换模块具体用于:
根据所述特征子张量确定对应的特征元子张量,其中,所述特征元子张量是将所述特征子张量的非0元素置为1的张量;
根据所述特征变换矩阵、所述特征元子张量及其对应的非0元素,确定所述特征子张量的变换结果;
对所述特征子张量的变换结果进行求和,得到所述特征变换结果;
所述逆变换模块具体用于:
根据所述结果子张量确定对应的结果元子张量,其中,所述结果元子张量是将所述结果子张量的非0元素置为1的张量;
根据所述逆变换矩阵、所述结果元子张量及其对应的非0元素,确定所述结果子张量的变换结果;
对所述结果子张量的变换结果进行求和,得到所述运算结果。
17.根据权利要求16所述的装置,其特征在于,所述特征变换模块具体用于:
对所述特征元子张量左边乘以所述特征变换矩阵中的左乘矩阵、右边乘以所述特征变换矩阵中的右乘矩阵,并将结果与所述特征元子张量对应的非0元素相乘,得到所述特征子张量的变换结果;
其中,所述特征元子张量中的左乘矩阵和所述右乘矩阵都是由所述特征子张量的规模确定的;
所述逆变换模块具体用于:
对所述结果元子张量左边乘以所述逆变换矩阵中的左乘矩阵、右边乘以所述逆变换矩阵中的右乘矩阵,并将结果与所述结果元子张量对应的非0元素相乘,得到所述结果子张量的变换结果;
其中,所述结果元子张量中的左乘矩阵和所述右乘矩阵都是由所述结果子张量的规模确定的。
18.根据权利要求13所述的装置,其特征在于,所述对位乘模块具体用于:
获取本层卷积网络的权值数据以及用于对该权值数据进行正变换的权值变换矩阵;
根据所述权值变换矩阵对所述权值数据进行变换得到权值变换结果;其中,将所述权值数据的变换运算拆解为求和运算,并根据所述求和运算确定所述权值变换结果。
19.根据权利要求18所述的装置,其特征在于,所述对位乘模块具体用于:
将所述权值数据拆解为多个权值子张量;
根据所述权值变换矩阵对所述多个权值子张量进行变换运算并求和,得到所述权值变换结果。
20.根据权利要求19所述的装置,其特征在于,所述对位乘模块具体用于:
根据所述权值子张量确定对应的权值元子张量,其中,所述权值元子张量是将所述权值子张量的非0元素置为1的张量;
根据所述权值变换矩阵、所述权值元子张量及其对应的非0元素,确定所述权值子张量的变换结果;
对所述权值子张量的变换结果进行求和,得到所述权值变换结果。
21.根据权利要求20所述的装置,其特征在于,所述对位乘模块具体用于:
对所述权值元子张量左边乘以所述权值变换矩阵中的左乘矩阵、右边乘以所述权值变换矩阵中的右乘矩阵,并将结果与所述权值元子张量对应的非0元素相乘,得到所述权值子张量的变换结果;
其中,所述权值元子张量中的左乘矩阵和所述右乘矩阵都是由所述权值子张量的规模确定的。
22.一种人工智能芯片,其特征在于,所述芯片包括如权利要求13-21中任意一项所述的运算装置。
23.一种电子设备,其特征在于,所述电子设备包括如权利要求22所述的人工智能芯片。
24.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求22所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
25.根据权利要求24所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
CN201911061118.4A 2019-11-01 2019-11-01 运算方法及相关产品 Active CN112784207B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911061118.4A CN112784207B (zh) 2019-11-01 2019-11-01 运算方法及相关产品
PCT/CN2020/113166 WO2021082724A1 (zh) 2019-11-01 2020-09-03 运算方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911061118.4A CN112784207B (zh) 2019-11-01 2019-11-01 运算方法及相关产品

Publications (2)

Publication Number Publication Date
CN112784207A true CN112784207A (zh) 2021-05-11
CN112784207B CN112784207B (zh) 2024-02-02

Family

ID=75715766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911061118.4A Active CN112784207B (zh) 2019-11-01 2019-11-01 运算方法及相关产品

Country Status (2)

Country Link
CN (1) CN112784207B (zh)
WO (1) WO2021082724A1 (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170316312A1 (en) * 2016-05-02 2017-11-02 Cavium, Inc. Systems and methods for deep learning processor
US20170344876A1 (en) * 2016-05-31 2017-11-30 Samsung Electronics Co., Ltd. Efficient sparse parallel winograd-based convolution scheme
WO2018107383A1 (zh) * 2016-12-14 2018-06-21 上海寒武纪信息科技有限公司 神经网络的卷积运算方法、装置及计算机可读存储介质
CN108229654A (zh) * 2016-12-14 2018-06-29 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
US20180189237A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Winograd algorithm on a matrix processing architecture
CN109062609A (zh) * 2018-02-05 2018-12-21 上海寒武纪信息科技有限公司 神经网络处理装置及其执行运算指令的方法
US20190042923A1 (en) * 2017-08-07 2019-02-07 Intel Corporation System and method for an optimized winograd convolution accelerator
CN109325591A (zh) * 2018-09-26 2019-02-12 中国科学院计算技术研究所 面向Winograd卷积的神经网络处理器
CN109685201A (zh) * 2018-12-14 2019-04-26 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
US20190179869A1 (en) * 2017-12-12 2019-06-13 Facebook, Inc. Hardware accelerator pre-configured with coefficients for matrix-transform operations
CN110097172A (zh) * 2019-03-18 2019-08-06 中国科学院计算技术研究所 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置
CN110188869A (zh) * 2019-05-05 2019-08-30 北京中科汇成科技有限公司 一种基于卷积神经网络算法的集成电路加速计算的方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360497B2 (en) * 2014-07-16 2019-07-23 Qualcomm Incorporated Decomposing convolution operation in neural networks
CN108229656A (zh) * 2016-12-14 2018-06-29 上海寒武纪信息科技有限公司 神经网络运算装置及方法
CN107832844A (zh) * 2017-10-30 2018-03-23 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
KR20190051697A (ko) * 2017-11-07 2019-05-15 삼성전자주식회사 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
CN108549931A (zh) * 2018-04-25 2018-09-18 济南浪潮高新科技投资发展有限公司 一种卷积神经网络的加速装置及方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170316312A1 (en) * 2016-05-02 2017-11-02 Cavium, Inc. Systems and methods for deep learning processor
US20170344876A1 (en) * 2016-05-31 2017-11-30 Samsung Electronics Co., Ltd. Efficient sparse parallel winograd-based convolution scheme
WO2018107383A1 (zh) * 2016-12-14 2018-06-21 上海寒武纪信息科技有限公司 神经网络的卷积运算方法、装置及计算机可读存储介质
CN108229654A (zh) * 2016-12-14 2018-06-29 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
US20180189237A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Winograd algorithm on a matrix processing architecture
US20190042923A1 (en) * 2017-08-07 2019-02-07 Intel Corporation System and method for an optimized winograd convolution accelerator
US20190179869A1 (en) * 2017-12-12 2019-06-13 Facebook, Inc. Hardware accelerator pre-configured with coefficients for matrix-transform operations
CN109062609A (zh) * 2018-02-05 2018-12-21 上海寒武纪信息科技有限公司 神经网络处理装置及其执行运算指令的方法
CN109325591A (zh) * 2018-09-26 2019-02-12 中国科学院计算技术研究所 面向Winograd卷积的神经网络处理器
CN109685201A (zh) * 2018-12-14 2019-04-26 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
CN110097172A (zh) * 2019-03-18 2019-08-06 中国科学院计算技术研究所 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置
CN110188869A (zh) * 2019-05-05 2019-08-30 北京中科汇成科技有限公司 一种基于卷积神经网络算法的集成电路加速计算的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
肖皓;祝永新;汪宁;田犁;汪辉;: "面向卷积神经网络的FPGA硬件加速器设计", 工业控制计算机, no. 06, pages 99 - 101 *

Also Published As

Publication number Publication date
CN112784207B (zh) 2024-02-02
WO2021082724A1 (zh) 2021-05-06

Similar Documents

Publication Publication Date Title
CN109685201B (zh) 运算方法、装置及相关产品
JP2020126597A (ja) 計算装置と計算方法
US20220108150A1 (en) Method and apparatus for processing data, and related products
CN111047022A (zh) 一种计算装置及相关产品
CN111125617A (zh) 数据处理方法、装置、计算机设备和存储介质
WO2021082725A1 (zh) Winograd卷积运算方法及相关产品
WO2021083101A1 (zh) 数据处理方法、装置及相关产品
CN109740730B (zh) 运算方法、装置及相关产品
WO2021082746A1 (zh) 运算装置及相关产品
US20220121908A1 (en) Method and apparatus for processing data, and related product
US20220414183A1 (en) Winograd convolution operation method, apparatus, and device, and storage medium
WO2021082723A1 (zh) 运算装置
CN112784207B (zh) 运算方法及相关产品
CN113112009B (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN112766473B (zh) 运算装置及相关产品
CN111047024A (zh) 一种计算装置及相关产品
CN112765539B (zh) 运算装置、方法及相关产品
CN113807489B (zh) 用于执行反卷积操作的方法、板卡及其计算装置
US20240126553A1 (en) Data processing method and apparatus, and related product
CN113112008B (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
US20230091541A1 (en) Data quantization processing method and apparatus, electronic device and storage medium
WO2021223644A1 (zh) 数据处理方法及装置以及相关产品
CN114282162A (zh) 矩阵乘运算方法、电子设备及存储介质
CN111047023A (zh) 一种计算装置及相关产品
CN112446496A (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