CN108846478A - 深度神经网络计算加速的方法和装置 - Google Patents

深度神经网络计算加速的方法和装置 Download PDF

Info

Publication number
CN108846478A
CN108846478A CN201810694240.4A CN201810694240A CN108846478A CN 108846478 A CN108846478 A CN 108846478A CN 201810694240 A CN201810694240 A CN 201810694240A CN 108846478 A CN108846478 A CN 108846478A
Authority
CN
China
Prior art keywords
quantification
input vector
point
matrix
vector
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
CN201810694240.4A
Other languages
English (en)
Other versions
CN108846478B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201810694240.4A priority Critical patent/CN108846478B/zh
Publication of CN108846478A publication Critical patent/CN108846478A/zh
Application granted granted Critical
Publication of CN108846478B publication Critical patent/CN108846478B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

Landscapes

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

Abstract

本发明实施例提出一种深度神经网络计算加速的方法、装置、终端和计算机可读存储介质,方法包括:对需要输入到矩阵模型中的各输入向量进行采样,获得多个采样向量;根据预设的量化参数对各采样向量进行乘积量化,获得多个量化点;根据量化参数将矩阵模型切分为多个矩阵块;各量化点与各矩阵块计算得到多个预计算表;通过各预计算表对各输入向量进行计算,得到矩阵模型的计算结果。本发明实施例中同一个矩阵模型的预计算表只需要建立一次,所有需要通过该矩阵模型进行计算的输入向量均可使用该预计算表进行查表计算,有效节省了输入向量与矩阵模型的计算过程,同时还能够保持矩阵模型原有的计算效果。

Description

深度神经网络计算加速的方法和装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种深度神经网络计算加速的方法、装置、终端和计算机可读存储介质。
背景技术
现有技术中提速深度神经网络的方法包括矩阵运算、pruning(剪支)算法和二值网络。其中,矩阵运算中的矩阵向量乘法是内存受限的,因此在计算过程中限制了深度神经网络的预测速度。而二值网络精度损失较大。pruning剪支算法需要较高的矩阵稀疏程度,重训过程繁杂。因此现有的计算方法均不能够很好的实现神经网络的计算加速。
在背景技术中公开的上述信息仅用于加强对本发明的背景的理解,因此其可能包含没有形成为本领域普通技术人员所知晓的现有技术的信息。
发明内容
本发明实施例提供一种深度神经网络计算加速的方法、装置、终端和计算机可读存储介质,以解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种深度神经网络计算加速的方法,包括:
对需要输入到矩阵模型中的各输入向量进行采样,获得多个采样向量;
根据预设的量化参数对各所述采样向量进行乘积量化,获得多个量化点;
根据所述量化参数将所述矩阵模型切分为多个矩阵块;
各所述量化点与各所述矩阵块计算得到多个预计算表;
通过各所述预计算表对各所述输入向量进行计算,得到所述矩阵模型的计算结果。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,根据预设的量化参数对各所述采样向量进行乘积量化,获得多个量化点,包括:
根据量化维数对各所述采样向量进行切分;
根据量化类数对切分后的各所述采样向量进行聚类,得到多个所述量化点。
结合第一方面,本发明实施例在第一方面的第二种实现方式中,根据所述量化参数将所述矩阵模型切分为多个矩阵块,包括:
根据量化维数将所述矩阵模型切分为多个矩阵块。
结合第一方面,本发明实施例在第一方面的第三种实现方式中,各所述量化点与各所述矩阵块计算得到多个预计算表,包括:
将每一个所述量化点分别与所有的所述矩阵块相乘,得到与所述量化点对应的所述预计算表。
结合第一方面,本发明实施例在第一方面的第四种实现方式中,通过各所述预计算表对各所述输入向量进行计算,得到所述矩阵模型的计算结果,包括:
根据量化维度将各所述输入向量切分为多个输入向量块;
获取各所述输入向量块在所述输入向量中的位置以及对应的所述量化点;
根据各所述输入向量块的位置和对应的所述量化点,在所述预计算表中查找出各所述输入向量块对应的预计算向量;
将各所述预计算向量相加,得到所述矩阵模型与各所述输入向量的计算结果。
结合第一方面的第四种实现方式,本发明实施例在第一方面的第五种实现方式中,获取各所述输入向量块在所述输入向量中的位置以及对应的所述量化点,包括:
将所述输入向量块分别与所有的所述量化点按照预设度量规则进行计算;
根据与各所述量化点的计算结果,选择符合所述预设度量规则的计算结果对应的所述量化点,作为所述输入向量块对应的所述量化点。
第二方面,本发明实施例提供了一种深度神经网络计算加速的装置,包括:
采样模块,用于对需要输入到矩阵模型中的各输入向量进行采样,获得多个采样向量;
乘积量化模块,用于根据预设的量化参数对各所述采样向量进行乘积量化,获得多个量化点;
矩阵切分模块,用于根据所述量化参数将所述矩阵模型切分为多个矩阵块;
预计算表生成模块,用于根据各所述量化点与各所述矩阵块计算得到多个预计算表;
计算模块,用于通过各所述预计算表对各所述输入向量进行计算,得到所述矩阵模型的计算结果。
在一个可能的设计中,所述乘积量化模块包括:
第一切分子模块,用于根据量化维数对各所述采样向量进行切分;
聚类子模块,用于根据量化类数对切分后的各所述采样向量进行聚类,得到多个所述量化点。
在一个可能的设计中,所述矩阵切分模块包括:
第二切分子模块,用于根据量化维数将所述矩阵模型切分为多个矩阵块。
在一个可能的设计中,所述计算模块包括:
第二切分子模块,用于根据量化维度将各所述输入向量切分为多个输入向量块;
获取子模块,用于获取各所述输入向量块在所述输入向量中的位置以及对应的所述量化点;
查表子模块,用于根据各所述输入向量块的位置和对应的所述量化点,在所述预计算表中查找出各所述输入向量块对应的预计算向量;
计算子模块,用于将各所述预计算向量相加,得到所述矩阵模型与各所述输入向量的计算结果。
在一个可能的设计中,所述获取子模块包括:
量化点选择子模块,用于将所述输入向量块分别与所有的所述量化点按照预设度量规则进行计算;根据与各所述量化点的计算结果,选择符合所述预设度量规则的计算结果对应的所述量化点,作为所述输入向量块对应的所述量化点。
第三方面,本发明实施例提供了一种深度神经网络计算加速的终端,包括:
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,深度神经网络计算加速的终端的结构中包括处理器和存储器,所述存储器用于存储支持深度神经网络计算加速的终端执行上述第一方面中深度神经网络计算加速的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。深度神经网络计算加速的终端还可以包括通信接口,用于深度神经网络计算加速的终端与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储深度神经网络计算加速的终端所用的计算机软件指令,其包括用于执行上述第一方面中深度神经网络计算加速的方法为深度神经网络计算加速的终端所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:同一个矩阵模型的预计算表只需要建立一次,所有需要通过该矩阵模型进行计算的输入向量均可使用该预计算表进行查表计算,有效节省了输入向量与矩阵模型的计算过程,同时还能够保持矩阵模型原有的计算效果。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1为本发明实施方式提供的深度神经网络计算加速的方法的流程图。
图2为本发明实施方式提供的采样向量乘积量化的示意图。
图3为本发明另一实施方式提供的采样向量乘积量化的示意图。
图4为本发明实施方式提供的预计算表生成的流程示意图。
图5为本发明实施方式提供的深度神经网络计算加速的具体流程图。
图6为本发明实施方式提供的深度神经网络计算加速的装置结构示意图。
图7为本发明实施方式提供的深度神经网络计算加速的终端结构示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本发明实施例提供了一种深度神经网络计算加速的方法,如图1所示,包括以下步骤:
S100:对需要输入到矩阵模型中的各输入向量进行采样,获得多个采样向量。
S200:根据预设的量化参数对各采样向量进行乘积(product)量化,获得多个量化点。
S300:根据量化参数将矩阵模型切分为多个矩阵块。
S400:各量化点与各矩阵块计算得到多个预计算表。
S500:通过各预计算表对各输入向量进行计算,得到矩阵模型的计算结果。
在一个实施例中,根据预设的量化参数对各采样向量进行乘积量化,获得多个量化点,包括:
根据量化维数对各采样向量进行切分。以及
根据量化类数对切分后的各采样向量进行聚类,得到多个量化点。
在一个具体实施方式中,如图2所示,将各采样向量并排排列,每一行为一个采样向量,按照预设的量化维数对采样向量进行切分。然后按照预设的量化类数按列进行聚类,得到与量化类数相同数量的量化点。例如,每一个采样向量包括256个数,设定量化维数为2,将每一个采样向量切分为128个空间,设定量化类数为1600类,因此对每个空间按列进行聚类,得到1600个量化点。
在一个可变化的实施方式中,如图3所示,将各采样向量并排排列,每一列为一个采样向量,按照预设的量化维数对采样向量进行切分。然后按照预设的量化类数按行进行聚类,得到与量化类数相同数量的量化点。例如,每一个采样向量包括256个数,设定量化维数为2,将每一个采样向量切分为128个空间,设定量化类数为1600类,因此对每个空间按行进行聚类,得到1600个量化点。
在一个实施例中,根据量化参数将矩阵模型切分为多个矩阵块,包括:根据量化维数将矩阵模型切分为多个矩阵块。其中,当采样向量按行进行聚类时,矩阵模型按列切分。当采样向量按列进行聚类时,矩阵模型按行切分。
在一个实施例中,如图4所示,各量化点与各矩阵块计算得到多个预计算表,包括:
将每一个量化点分别与所有的矩阵块相乘,形成与该量化点对应的预计算表。例如,若矩阵模型为256×256的矩阵,量化维数为2,按列进行切分,每两列为一组,则矩阵模型被切分为128个矩阵块。一个量化点分别与各矩阵块相乘,形成一个256×128的预计算表。
需要说明的是,同一个矩阵模型的预计算表只需要建立一次,由于同一个矩阵模型处理的输入向量分布是有规律性的,所以通过采样方式获取采样向量进行乘积量化所建立的预计算表是具备适用性的,可以满足同一个矩阵模型所有输入向量的计算要求。
在一个实施例中,通过各预计算表对各输入向量进行计算,得到矩阵模型的计算结果,包括:
根据量化维度将各输入向量切分为多个输入向量块。
获取各输入向量块在输入向量中的位置以及对应的量化点。
根据各输入向量块的位置和对应的量化点,在预计算表中查找出各输入向量块对应的预计算向量。
将各预计算向量相加,得到矩阵模型与各输入向量的计算结果。
由于量化点的数量远小于输入向量的个数,通过对有限数量的量化点到预计算表中进行查表得到的计算结果,远比所有输入向量分别与未切分的矩阵模型进行乘法运算快很多,有效提高了输入向量与矩阵模型的乘法计算速度,进而提高了深度神经网络的整体数据处理计算速度。
在一个实施例中,获取各输入向量块在输入向量中的位置以及对应的量化点,包括:
将输入向量块分别与所有的量化点按照预设度量规则进行计算。
根据与各量化点的计算结果,选择符合预设度量规则的计算结果对应的量化点,作为输入向量块对应的量化点。
需要说明的是,预设度量规则可根据需要进行选择和设定。例如,度量规则可为量化点的平方与输入向量块的平方差最小距离,或是量化点与输入向量块之间差值的绝对值最小。
在一个具体实施方式中,如图5所示,该深度神经网络计算加速的方法包括以下步骤:
对需要输入到256×256矩阵模型中的各输入向量进行采样,获得多个256×1的采样向量。
设定量化参数的量化维数为2,量化类数为1600。各采样向量并排排列,每一列为一个采样向量。对每一个采样向量按2维进行切分,切分为128个空间,然后按行对每个空间进行聚类,得到1600各量化点。
根据量化维数,按列将矩阵模型切分为多个矩阵块。由于矩阵模型为256×256的矩阵,量化维数为2,按列进行切分,每两列为一组,则矩阵模型被切分为128各矩阵块。
1600个量化点分别与各矩阵块相乘,形成1600个256×128的预计算表。
根据量化维数对每一个256×1的输入向量进行切分,由于量化维数为2,因此每一个输入向量被切分为128个输入向量块。
获取每一个输入向量块在输入向量中的位置,以及根据预设度量规则计算出与每一个输入向量块对应的量化点。
根据各输入向量块的位置和对应的量化点,在预计算表中查找出各输入向量块对应的预计算向量。
最后将所有的预计算向量相加,得到了该矩阵模型与输入向量组(即所有输入向量)乘积运算的最终计算结果。
在一个实施例中,根据度量规则的不同,可以存在多个输入向量块对应相同量化点的情况。
在上述各实施例中,矩阵模型、输入向量、采样向量、量化维数和量化类数的具体数值仅用于举例说明,不应当理解为仅能采用上述具体数值实现本发明实施例的技术方案。具体的数值可根据矩阵模型的不同进行调整。矩阵模型可以是包括但不限于深度神经网络中卷积层、池化层或全连接层中的矩阵。
本发明实施例提供了一种深度神经网络计算加速的装置,如图6所示,包括:
采样模块10,用于对需要输入到矩阵模型中的各输入向量进行采样,获得多个采样向量。
乘积量化模块20,用于根据预设的量化参数对各采样向量进行乘积量化,获得多个量化点。
矩阵切分模块30,用于根据量化参数将矩阵模型切分为多个矩阵块。
预计算表生成模块40,用于根据各量化点与各矩阵块计算得到多个预计算表。
计算模块50,用于通过各预计算表对各输入向量进行计算,得到矩阵模型的计算结果。
在一个实施例中,乘积量化模块20包括:
第一切分子模块,用于根据量化维数对各采样向量进行切分。
聚类子模块,用于根据量化类数对切分后的各采样向量进行聚类,得到多个量化点。
在一个实施例中,矩阵切分模块30包括:
第二切分子模块,用于根据量化维数将矩阵模型切分为多个矩阵块。
在一个实施例中,计算模块50包括:
第二切分子模块,用于根据量化维度将各输入向量切分为多个输入向量块。
获取子模块,用于获取各输入向量块在输入向量中的位置以及对应的量化点。
查表子模块,用于根据各输入向量块的位置和对应的量化点,在预计算表中查找出各输入向量块对应的预计算向量。
计算子模块,用于将各预计算向量相加,得到矩阵模型与各输入向量的计算结果。
在一个实施例中,获取子模块包括:
量化点选择子模块,用于将输入向量块分别与所有的量化点按照预设度量规则进行计算。根据与各量化点的计算结果,选择符合预设度量规则的计算结果对应的量化点,作为输入向量块对应的量化点。
本发明实施例提供了一种深度神经网络计算加速的终端,如图7所示,包括:
存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。处理器920执行计算机程序时实现上述实施例中的深度神经网络计算加速的方法。存储器910和处理器920的数量可以为一个或多个。
通信接口930,用于存储器910和处理器920与外部进行通信。
存储器910可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器910、处理器920、以及通信接口930独立实现,则存储器910、处理器920以及通信接口930可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920以及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现如实施例一包括的任一所述的深度神经网络计算加速的方法。
本发明实施例通过对采样向量进行乘积量化得到量化点,通过量化点与矩阵模型生成预计算表,并通过预计算表对输入向量进行计算的方式,显著提高了输入向量与矩阵模型乘积计算的过程,且能够保持矩阵模型原有的计算效果。
本发明实施例中,同一个矩阵模型的预计算表只需要建立一次,所有需要通过该矩阵模型进行计算的输入向量均可使用该预计算表进行查表计算,有效节省了输入向量与矩阵模型的计算过程。需要说明的是,同一个矩阵模型处理的输入向量分布是有规律性的,所以通过采样方式获取采样向量进行乘积量化所建立的预计算表是具备适用性的,可以满足同一个矩阵模型所有输入向量的计算要求。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行装置、装置或设备(如基于计算机的装置、包括处理器的装置或其他可以从指令执行装置、装置或设备取指令并执行指令的装置)使用,或结合这些指令执行装置、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行装置、装置或设备或结合这些指令执行装置、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种深度神经网络计算加速的方法,其特征在于,包括:
对需要输入到矩阵模型中的各输入向量进行采样,获得多个采样向量;
根据预设的量化参数对各所述采样向量进行乘积量化,获得多个量化点;
根据所述量化参数将所述矩阵模型切分为多个矩阵块;
各所述量化点与各所述矩阵块计算得到多个预计算表;
通过各所述预计算表对各所述输入向量进行计算,得到所述矩阵模型的计算结果。
2.如权利要求1所述的方法,其特征在于,根据预设的量化参数对各所述采样向量进行乘积量化,获得多个量化点,包括:
根据量化维数对各所述采样向量进行切分;
根据量化类数对切分后的各所述采样向量进行聚类,得到多个所述量化点。
3.如权利要求1所述的方法,其特征在于,根据所述量化参数将所述矩阵模型切分为多个矩阵块,包括:
根据量化维数将所述矩阵模型切分为多个矩阵块。
4.如权利要求1所述的方法,其特征在于,各所述量化点与各所述矩阵块计算得到多个预计算表,包括:
将每一个所述量化点分别与所有的所述矩阵块相乘,得到与所述量化点对应的所述预计算表。
5.如权利要求1所述的方法,其特征在于,通过各所述预计算表对各所述输入向量进行计算,得到所述矩阵模型的计算结果,包括:
根据量化维度将各所述输入向量切分为多个输入向量块;
获取各所述输入向量块在所述输入向量中的位置以及对应的所述量化点;
根据各所述输入向量块的位置和对应的所述量化点,在所述预计算表中查找出各所述输入向量块对应的预计算向量;
将各所述预计算向量相加,得到所述矩阵模型与各所述输入向量的计算结果。
6.如权利要求5所述的方法,其特征在于,获取各所述输入向量块在所述输入向量中的位置以及对应的所述量化点,包括:
将所述输入向量块分别与所有的所述量化点按照预设度量规则进行计算;
根据与各所述量化点的计算结果,选择符合所述预设度量规则的计算结果对应的所述量化点,作为所述输入向量块对应的所述量化点。
7.一种深度神经网络计算加速的装置,其特征在于,包括:
采样模块,用于对需要输入到矩阵模型中的各输入向量进行采样,获得多个采样向量;
乘积量化模块,用于根据预设的量化参数对各所述采样向量进行乘积量化,获得多个量化点;
矩阵切分模块,用于根据所述量化参数将所述矩阵模型切分为多个矩阵块;
预计算表生成模块,用于根据各所述量化点与各所述矩阵块计算得到多个预计算表;
计算模块,用于通过各所述预计算表对各所述输入向量进行计算,得到所述矩阵模型的计算结果。
8.如权利要求7所述的装置,其特征在于,所述乘积量化模块包括:
第一切分子模块,用于根据量化维数对各所述采样向量进行切分;
聚类子模块,用于根据量化类数对切分后的各所述采样向量进行聚类,得到多个所述量化点。
9.如权利要求7所述的装置,其特征在于,所述矩阵切分模块包括:
第二切分子模块,用于根据量化维数将所述矩阵模型切分为多个矩阵块。
10.如权利要求7所述的装置,其特征在于,所述计算模块包括:
第二切分子模块,用于根据量化维度将各所述输入向量切分为多个输入向量块;
获取子模块,用于获取各所述输入向量块在所述输入向量中的位置以及对应的所述量化点;
查表子模块,用于根据各所述输入向量块的位置和对应的所述量化点,在所述预计算表中查找出各所述输入向量块对应的预计算向量;
计算子模块,用于将各所述预计算向量相加,得到所述矩阵模型与各所述输入向量的计算结果。
11.如权利要求10所述的装置,其特征在于,所述获取子模块包括:
量化点选择子模块,用于将所述输入向量块分别与所有的所述量化点按照预设度量规则进行计算;根据与各所述量化点的计算结果,选择符合所述预设度量规则的计算结果对应的所述量化点,作为所述输入向量块对应的所述量化点。
12.一种深度神经网络计算加速的终端,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至6中任一项所述的方法。
13.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述的方法。
CN201810694240.4A 2018-06-29 2018-06-29 深度神经网络计算加速的方法和装置 Active CN108846478B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810694240.4A CN108846478B (zh) 2018-06-29 2018-06-29 深度神经网络计算加速的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810694240.4A CN108846478B (zh) 2018-06-29 2018-06-29 深度神经网络计算加速的方法和装置

Publications (2)

Publication Number Publication Date
CN108846478A true CN108846478A (zh) 2018-11-20
CN108846478B CN108846478B (zh) 2021-01-29

Family

ID=64201553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810694240.4A Active CN108846478B (zh) 2018-06-29 2018-06-29 深度神经网络计算加速的方法和装置

Country Status (1)

Country Link
CN (1) CN108846478B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184362A (zh) * 2015-08-21 2015-12-23 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
US20160350645A1 (en) * 2015-05-29 2016-12-01 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
CN107944555A (zh) * 2017-12-07 2018-04-20 广州华多网络科技有限公司 神经网络压缩和加速的方法、存储设备和终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160350645A1 (en) * 2015-05-29 2016-12-01 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
CN105184362A (zh) * 2015-08-21 2015-12-23 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN107944555A (zh) * 2017-12-07 2018-04-20 广州华多网络科技有限公司 神经网络压缩和加速的方法、存储设备和终端

Also Published As

Publication number Publication date
CN108846478B (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
CN108701250B (zh) 数据定点化方法和装置
CN107844828B (zh) 神经网络中的卷积计算方法和电子设备
EP3349153B1 (en) Convolutional neural network (cnn) processing method and apparatus
KR102452953B1 (ko) 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
CN112214726B (zh) 运算加速器
KR20210129031A (ko) 모델 압축 방법, 이미지 처리 방법 및 장치
CN106855952A (zh) 基于神经网络的计算方法及装置
CN109863477A (zh) 具有本地化存储器的矩阵处理器
CN107610146A (zh) 图像场景分割方法、装置、计算设备及计算机存储介质
KR20190107766A (ko) 계산 장치 및 방법
CN112668708B (zh) 一种提高数据利用率的卷积运算装置
CN111428879B (zh) 数据处理方法、装置、芯片以及计算机可读存储介质
Beatson et al. Fast evaluation of radial basis functions: Moment-based methods
CN114078195A (zh) 分类模型的训练方法、超参数的搜索方法以及装置
CN112926808A (zh) 物流路径规划方法、装置、设备和计算机可读存储介质
CN109325530A (zh) 基于少量无标签数据的深度卷积神经网络的压缩方法
CN109002500A (zh) 对话生成方法、装置、设备及计算机可读介质
EP3940603A1 (en) Processing apparatus for performing pointwise convolutions and depthwise convolutions
CN111814983B (zh) 数据处理方法、装置、芯片以及计算机可读存储介质
CN108846478A (zh) 深度神经网络计算加速的方法和装置
CN109902821B (zh) 一种数据处理方法、装置及相关组件
Karsli Approximation results for Urysohn-type nonlinear Bernstein operators
CN111047025B (zh) 一种卷积计算方法及装置
CN104572588A (zh) 矩阵求逆处理方法和装置
WO2023122896A1 (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