CN108734279B - 一种运算装置和方法 - Google Patents

一种运算装置和方法 Download PDF

Info

Publication number
CN108734279B
CN108734279B CN201710261742.3A CN201710261742A CN108734279B CN 108734279 B CN108734279 B CN 108734279B CN 201710261742 A CN201710261742 A CN 201710261742A CN 108734279 B CN108734279 B CN 108734279B
Authority
CN
China
Prior art keywords
data
sparse
unit
neuron
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.)
Active
Application number
CN201710261742.3A
Other languages
English (en)
Other versions
CN108734279A (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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to CN201710261742.3A priority Critical patent/CN108734279B/zh
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to US16/476,261 priority patent/US11977968B2/en
Priority to CN201880000808.6A priority patent/CN109104876B/zh
Priority to CN201811011596.XA priority patent/CN109284823B/zh
Priority to EP18787049.8A priority patent/EP3579152B1/en
Priority to PCT/CN2018/083379 priority patent/WO2018192492A1/zh
Priority to EP19199531.5A priority patent/EP3699826A1/en
Publication of CN108734279A publication Critical patent/CN108734279A/zh
Priority to US16/537,820 priority patent/US10789531B2/en
Application granted granted Critical
Publication of CN108734279B publication Critical patent/CN108734279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供了一种运算装置,包括:存储装置,用于存储数据和指令;数据控制单元,与所述存储装置连接;运算单元,根据运算指令对数据执行运算。本公开还提供了一种运算方法。本公开提供的运算装置和方法,有效节省了存储和运算资源。

Description

一种运算装置和方法
技术领域
本公开涉及人工智能技术领域,尤其涉及一种神经网络运算装置和方法。
背景技术
目前,深度学习技术已被广泛应用于各种分类及识别任务中。相对于传统的技术方法,深度学习能够达到更高的识别率和可并行度,受到学术界及工业界的广泛关注。然而,现有的深度学习***通常需要占用大量的存储资源及运算资源,这对深度学习***的推广使用是一个很大的阻碍。因此,设计一种节省存储资源和运算资源的神经网络运算装置及方法具有重要的意义。
发明内容
(一)要解决的技术问题
鉴于上述技术问题,本公开提供了一种神经网络运算装置和方法,支持神经网络的稀疏,可采用多种神经网络数据表示,达到了节省存储资源和运算资源的效果。
(二)技术方案
根据本公开的一个方面,提供了一种神经网络运算装置,包括:
存储装置,用于存储数据和指令;
数据控制单元,与所述存储装置连接;
配置解析单元,与所述存储装置连接,接收其发送的神经网络配置数据;
指令缓存单元,与所述数据控制单元连接,用于接收所述数据控制单元发送的指令;
指令译码单元,与所述指令缓存单元连接,用于从指令缓存中读取指令,并将其译码成运算指令;
第一数据传输单元,与所述数据控制单元连接,根据映射关系从数据控制单元获取相应的输入神经元数据及权值数据,并分发给运算单元;
运算单元,同时与所述指令译码单元、第一数据传输单元连接,根据运算指令对输入的神经元数据及权值数据执行相应的运算,并输出运算后的数据;以及
第二数据传输单元,与所述运算单元连接,用于将运算输出的数据发送至数据控制单元或执行稀疏处理后再发送至所述数据控制单元;其中,
所述数据控制单元用于控制所述存储装置与所述指令缓存单元及第一数据传输单元之间的数据和指令交互。
优选地,所述第一数据传输单元包括:
映射单元,与所述数据控制单元连接,根据相应的映射模式对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对,所述映射模式由所述配置解析单元根据神经网络配置数据来设定;
输入神经元缓存单元,与所述映射单元连接,根据映射单元的映射关系从数据控制单元获取相应的输入神经元数据并分发给运算单元;以及
权值缓存单元,与所述映射单元连接,根据映射单元的映射关系从数据控制单元获取相应的权值数据并分发给运算单元。
优选地,所述第二数据传输单元包括:
输出神经元缓存单元,与所述运算单元连接,用于接收所述运算单元输出的运算后的数据;以及
稀疏单元,与所述输出神经元缓存单元连接;该稀疏单元直接将经该输出神经元缓存单元输出的神经元数据发送至数据控制单元或执行稀疏处理后再发送至数据控制单元。
优选地,所述存储装置用于接收并存储从外部地址空间输入的数据,该数据包括神经元数据、神经网络权值数据以及神经网络的配置数据。
优选地,所述神经网络的配置数据包括:数据的表示参数和稀疏参数;其中,该数据的表示参数,包括:浮点型数据、定点型数据和/或数据表示的长度。
优选地,所述稀疏参数包括至少以下其中之一:稀疏标志,稀疏率,稀疏模式;其中,所述稀疏标志用于确定神经网络是否做稀疏处理;所述稀疏率用于确定每次稀疏的比例;所述稀疏模式包括:仅权值数据稀疏、仅神经元数据稀疏、及权值和神经元数据同时稀疏。
根据本公开的一个方面,提供了一种神经网络运算方法,包括:
存储装置接收并读取输入数据;
配置解析单元接收并读取所述存储装置发送的神经网络的配置数据,并根据该神经网络的配置数据设置映射单元的映射模式;
映射单元根据设定的映射模式执行相应的映射操作,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对;
指令缓存单元接收数据控制单元的指令,并将其发送至指令译码单元,经由该指令译码单元读取并译码成各运算指令后发送至运算单元;
输入神经元缓存单元和权值缓存单元分别根据映射单元的对应映射关系,从数据控制单元获取相应的输入神经元或权值数据,并分发给运算单元;
运算单元接收运算指令、神经元数据及权值数据后执行对应的神经网络运算操作。
优选地,本发明神经网络运算方法,在运算单元接收运算指令、神经元数据及权值数据并执行对应的神经网络运算操作之后还包括:输出神经元缓存单元接收运算单元执行神经网络运算操作得到的数据,并将其发送至稀疏单元;稀疏单元接收输出神经元缓存单元发送的神经元数据,并根据稀疏模式确定是否需要对神经元数据执行稀疏操作;若需要,则在稀疏操作之后再将稀疏后的数据发送至数据控制单元,反之,则直接将数据发送至数据控制单元。
优选地,本公开神经网络运算方法,所述映射单元对神经元和权值数据执行映射操作,包括:
当处于仅权值数据稀疏模式时,所述映射单元根据权值稀疏选择神经元数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对;
当处于仅神经元数据稀疏模式时,映射单元根据输入神经元稀疏选择权值数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对;
当处于权值和神经元数据同时稀疏模式时,映射单元根据输入神经元稀疏和权值稀疏选择输入神经元和权值数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对。
优选地,本公开神经网络运算方法,所述稀疏单元对神经元数据执行稀疏操作,包括:
方法一:
首先,对神经元数据绝对值进行排序,根据稀疏率计算获得需要稀疏的数据个数;然后,根据需要稀疏的数据个数对神经元数据绝对值小的数据做稀疏,即置其值为0;最后,将稀疏后的稀疏神经元数据和神经元稀疏序列发送至数据控制单元;和/或,
方法二:
神经元数据为0的数据保持0值不变,神经元数据在某个取值区间内的数据置为0值,其中,所述取值区间为事先设定值,可由配置解析单元进行配置。
(三)有益效果
从上述技术方案可以看出,本公开神经网络运算装置和方法至少具有以下有益效果其中之一:
(1)本公开神经网络运算装置和方法,支持神经网络的映射处理,可根据不同的实际运用情况,采用不同的映射处理模式,能够节省存储资源和运算资源的效果。
(2)本公开神经网络运算装置和方法,支持神经网络的稀疏处理及多种数据表示形式的神经网络,可根据不同的实际运用情况,采用不同的数据表示形式和稀疏处理,能够进一步节省在神经网络性能与运算和存储资源上提高性能,达到最优效果。
(3)本公开神经网络运算装置和方法,支持神经网络的映射,对数据做映射,减小运算单元的运算负荷,加快运算速度。
附图说明
通过附图所示,本公开的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本公开的主旨。
图1为依据本公开实施例神经网络运算装置的示意图。
图2为依据本公开实施例神经网络运算装置的另一示意图。
图3为依据本公开实施例神经网络运算装置的另一示意图。
图4为依据本公开实施例神经网络运算方法的流程图。
图5为依据本公开实施例仅权值稀疏时映射单元处理模式示意图。
图6为依据本公开实施例仅神经元数据稀疏时映射单元处理模式示意图。
图7为依据本公开实施例神经元和权值同时稀疏时映射单元处理模式示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本公开的保护范围。
本公开提供了一种神经网络运算装置。图1为依据本公开实施例神经网络运算装置的示意图。请参照图1,本实施例神经网络运算装置,包括:
存储装置1,用于存储数据和指令;
其中,所述存储装置用于接收并存储从外部地址空间输入的数据,该数据包括神经元数据、神经网络权值、神经网络的配置数据及其他相关数据。
数据控制单元2,与所述存储装置连接;
配置解析单元11,与所述存储装置连接,接收经由所述存储装置输入的神经网络配置数据。
指令缓存单元3,与所述数据控制单元连接,用于接收所述数据控制单元发送的指令;
指令译码单元4,与所述指令缓存单元连接,用于从指令缓存中读取指令,并将其译码成各运算指令;
第一数据传输单元X,与所述数据控制单元连接,根据映射关系从数据控制单元获取相应的输入神经元数据及权值数据,并分发给运算单元;
运算单元7,同时与所述指令译码单元、第一数据传输单元连接,根据运算指令对输入的神经元数据及权值数据执行相应的运算,并输出运算后的数据;以及
第二数据传输单元Y,与所述运算单元连接,用于将运算输出的神经元数据发送至数据控制单元或执行稀疏处理后再发送至所述数据控制单元;其中,
所述数据控制单元用于控制所述存储装置与所述指令缓存单元及第一数据传输单元之间的数据和指令交互。
请进一步参考图2,具体的,所述第一数据传输单元X包括:
映射单元10,与所述数据控制单元连接,根据相应的映射模式对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对;
输入神经元缓存单元5,与所述映射单元连接,根据映射单元的映射关系从数据控制单元获取相应的输入神经元数据并分发给运算单元;以及
权值缓存单元6,与所述映射单元连接,根据映射单元的映射关系从数据控制单元获取相应的权值数据并分发给运算单元。
其中,所述运算单元同时与所述指令译码单元、第一数据传输单元的输入神经元缓存单元以及权值缓存单元连接,根据运算指令对输入的神经元数据和权值数据执行相应的运算,并输出运算后的数据。
有利的,所述运算单元支持多种数据类型的运算,根据指令要求选择相应的运算器完成对应运算。例如16位定点数据的运算,32位浮点数据的运算等。
所述映射单元与所述配置解析单元连接,由所述配置解析单元根据输入的神经网络配置数据,设置映射单元的映射模式。
请进一步参考图3,更具体而言,所述第二数据传输单元Y包括:
输出神经元缓存单元8,与所述运算单元连接,用于接收所述运算单元输出的运算后的数据;以及
稀疏单元9,与所述输出神经元缓存单元连接;该稀疏单元直接将经该输出神经元缓存单元输出的神经元数据发送至数据控制单元或执行稀疏处理后再发送至数据控制单元。
其中,所述稀疏单元也与所述配置解析单元连接,由所述配置解析单元根据输入的神经网络配置数据,设置稀疏单元的稀疏模式。
另外,本公开实施例还提供了一种神经网络运算方法,
图4为本公开实施例神经网络运算方法的流程图。请参照图4,本实施例神经网络运算方法,包括:
步骤1,存储装置接收并读取输入数据;其中,该输入数据包括神经元数据、神经网络权值、神经网络的配置数据及其他相关数据。
其中,所述神经网络的配置数据包括:
(1)数据的表示参数,其包括:浮点型数据和定点型数据和/或数据表示的长度,例如16位长度浮点数据,32位长度定点数据等;该数据的表示参数确定了输入数据的神经元数据、权值和偏置数据的数据表示方法。
(2)稀疏参数,其包括至少以下其中之一:稀疏标志,稀疏率,稀疏模式等。
其中,稀疏标志用于确定神经网络是否做稀疏处理;在做稀疏处理的情况下,稀疏率用于确定每次稀疏的比例;稀疏模式用于确定稀疏处理的具体模式;稀疏模式主要包括3种:模式1,仅权值数据稀疏;模式2,仅神经元数据稀疏;模式3,权值和神经元数据都稀疏。另外,为便于后续说明理解,在未做稀疏处理的情况下记为模式0。
步骤2,配置解析单元接收并读取所述存储装置发送的神经网络的配置数据,并根据该神经网络的配置数据设置映射单元的处理模式。
其中,所述配置解析单元由该神经网络的配置数据解析获得的稀疏模式进而设置映射单元的处理模式,即根据不同的稀疏模式相应的设置映射模式。
步骤3,映射单元根据设定的映射模式执行相应的映射操作,根据对应的映射模式对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对。具体的,
当稀疏模式处于模式0时,映射单元对输入神经元和权值做全映射,映射后的对应关系为输入神经元-权值对;稀疏单元直接将经所述输出神经元缓存单元输出的数据传送到数据控制单元。
当稀疏模式处于模式1时,映射单元根据权值稀疏选择神经元数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对;稀疏单元直接将经所述输出神经元缓存单元输出的数据传送到数据控制单元。
如图5所示,图5为本公开实施例提供的仅权值稀疏时映射单元处理模式示例图。其中,稀疏权值数据只存储权值中非零的数据,如图5中只存储w1,w5,w8,w9的权值数据,权值稀疏序列用于索引稀疏权值,如权值稀疏序列为100010011表示w1,w5,w8,w9的权值为非零值,而w2,w3,w4,w6,w7为零值。应当认识到,稀疏序列的表示方式并不唯一,可以使用0表示非稀疏,即数值非零,用1表示稀疏,即数值为零,也可以采用其他可行方式。根据权值稀疏序列,选择对应的输入神经元数据,如图5中选择d1,d5,d8,d9神经元数据,通过对输入神经元和权值数据的映射,获得对应的输入神经元-权值对映射关系。
当稀疏模式处于模式2时,映射单元根据输入神经元稀疏选择权值数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对。稀疏单元对输出神经元数据做稀疏处理并传送到数据控制单元。
如图6所示,图6为本公开实施例提供的仅神经元数据稀疏时映射单元处理模式示例图,其中稀疏神经元数据只存储神经元中非零的数据,如图6中只存储d1,d3,d5,d8的神经元数据,神经元稀疏序列用于索引稀疏神经元,如神经元稀疏序列101010010表示d1,d3,d5,d8的神经元为非零值,而d2,d4,d6,d7,d9为零值。应当认识到,稀疏序列的表示方式并不唯一,可以使用0表示非稀疏,即数值非零,用1表示稀疏,即数值为零,也可以采用其他可行方式。根据神经元稀疏序列,选择对应的权值数据,如图6中选择w1,w3,w5,w8权值数据,通过对输入神经元和权值数据的映射,获得对应的输入神经元-权值对映射关系。
稀疏单元对神经元数据执行稀疏操作方法,包括:
方法一:
首先对输出神经元数据绝对值进行排序,根据稀疏率计算获得需要稀疏的数据个数,然后对输出神经元绝对值小的数据做稀疏,即置其值为0,最后根据稀疏后的输出神经元获得稀疏神经元数据和神经元稀疏序列传送至数据控制单元;和/或,
方法二:
神经元数据为0的数据保持0值不变,神经元数据在某个取值区间内的数据置为0值,其中,所述取值区间为事先设定值,可由配置解析单元进行配置。
所述方法一与方法二相互独立,即可单独选择一种方法使用,也可多种方法一同使用。
当稀疏模式处于模式3时,映射单元根据输入神经元稀疏和权值稀疏选择输入神经元和权值数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对。稀疏单元对输出神经元做稀疏处理传送到数据控制单元,稀疏单元的稀疏处理与模式2一致,此处不再赘述。
如图7所示,图7为本公开实施例提供的神经元和权值都稀疏时映射单元处理模式示例图,根据神经元稀疏序列和权值稀疏序列,选择都为非零值的输入神经元数据和权值数据,如图7所示,选择神经元数据d1,d5,d8和权值数据w1,w5,w8,通过对输入神经元和权值数据的映射,获得对应的输入神经元-权值对映射关系。
步骤4,指令缓存单元接收数据控制单元的指令,并将其发送至指令译码单元,经由指令译码单元读取并译码成各运算指令后发送至运算单元。
步骤5,输入神经元缓存单元和权值缓存单元分别根据映射单元的对应映射关系,从数据控制单元获取相应的输入神经元或权值数据,并分发给运算单元。
步骤6,运算单元接收运算指令、神经元数据及权值数据并执行对应的神经网络运算操作。
所述运算单元支持多种数据类型的运算,根据指令要求选择相应的运算器完成对应运算。
步骤7,输出神经元缓存单元接收运算单元执行神经网络运算操作得到的数据,并将其发送至稀疏单元。
步骤8,稀疏单元接收输出神经元缓存单元发送的数据执行稀疏处理后发送至数据控制单元或直接发送至数据控制单元。
其中,稀疏单元根据稀疏模式确定是否需要对接收到的神经元数据做稀疏操作,若需要,则对接收到的神经元数据做稀疏再发送至数据控制单元,反之,则直接发送至数据控制单元。具体的,所述稀疏单元与所述配置解析单元连接,由所述配置解析单元根据输入的神经网络配置数据,设置稀疏单元的稀疏模式。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (15)

1.一种神经网络运算装置,其特征在于,包括:
第一数据传输单元,用于根据映射关系获取相应的输入神经元数据及权值数据;
运算单元,与所述第一数据传输单元连接,用于根据运算指令对输入的神经元数据及权值数据执行相应的运算,并输出运算后的数据;
第二数据传输单元,与所述运算单元连接,用于将所述运算单元输出的数据输出或执行稀疏处理后再输出;以及
映射单元,根据相应的映射模式对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对,所述映射模式根据神经网络配置数据来设定;
所述神经网络的配置数据包括:数据的表示参数和稀疏参数;其中,该数据的表示参数,包括:浮点型数据、定点型数据和/或数据表示的长度。
2.根据权利要求1所述的神经网络运算装置,其特征在于,还包括:
存储装置,用于存储数据和指令;
数据控制单元,与所述存储装置连接;
配置解析单元,与所述存储装置连接,接收其发送的神经网络配置数据;
指令缓存单元,与所述数据控制单元连接,用于接收所述数据控制单元发送的指令;
指令译码单元,与所述指令缓存单元连接,用于从指令缓存中读取指令,并将其译码成运算指令。
3.根据权利要求2所述的神经网络运算装置,其特征在于,
所述第一数据传输单元与所述数据控制单元连接,用于根据映射关系从所述数据控制单元获取相应的输入神经元数据及权值数据,并分发给运算单元;
所述运算单元同时与所述指令译码单元、第一数据传输单元连接,用于根据运算指令对输入的神经元数据及权值数据执行相应的运算,并输出运算后的数据;
第二数据传输单元,与所述运算单元连接,用于将所述运算单元输出的数据发送至数据控制单元或执行稀疏处理后再发送至所述数据控制单元;
所述数据控制单元用于控制所述存储装置与所述指令缓存单元及第一数据传输单元之间的数据和指令交互。
4.根据权利要求3所述的神经网络运算装置,其特征在于,所述第一数据传输单元包括:
输入神经元缓存单元,与所述映射单元连接,根据映射单元的映射关系从数据控制单元获取相应的输入神经元数据并分发给运算单元;以及
权值缓存单元,与所述映射单元连接,根据映射单元的映射关系从数据控制单元获取相应的权值数据并分发给运算单元;
其中所述映射单元与所述数据控制单元连接,所述映射模式由所述配置解析单元根据神经网络配置数据来设定。
5.根据权利要求3所述的神经网络运算装置,其特征在于,所述第二数据传输单元包括:
输出神经元缓存单元,与所述运算单元连接,用于接收所述运算单元输出的运算后的数据;以及
稀疏单元,与所述输出神经元缓存单元连接;该稀疏单元直接将经该输出神经元缓存单元输出的神经元数据发送至数据控制单元或执行稀疏处理后再发送至数据控制单元。
6.根据权利要求5所述的神经网络运算装置,其特征在于,所述存储装置用于接收并存储从外部地址空间输入的数据,该数据包括神经元数据、神经网络权值数据以及神经网络的配置数据。
7.根据权利要求6所述的神经网络运算装置,其特征在于,所述稀疏参数包括至少以下其中之一:稀疏标志,稀疏率,稀疏模式;其中,
所述稀疏标志用于确定神经网络是否做稀疏处理;
所述稀疏率用于确定每次稀疏的比例;
所述稀疏模式包括:仅权值数据稀疏、仅神经元数据稀疏、及权值和神经元数据同时稀疏。
8.一种神经网络运算方法,其特征在于,包括:
根据映射关系获取相应的输入神经元数据及权值数据;
利用运算指令对输入神经元数据及权值数据执行相应的运算,并输出运算后的数据;以及
将运算后数据输出或执行稀疏处理后再输出;
其中,根据映射关系获取相应的输入神经元数据及权值数据,包括:根据相应的映射模式对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对,所述映射模式根据神经网络配置数据来设定;
所述神经网络的配置数据包括:数据的表示参数和稀疏参数;其中,该数据的表示参数,包括:浮点型数据、定点型数据和/或数据表示的长度。
9.根据权利要求8所述的神经网络运算方法,其特征在于,根据映射关系获取相应的输入神经元数据及权值数据,还包括:
读取神经网络的配置数据,并根据该神经网络的配置数据设置映射模式。
10.根据权利要求9所述的神经网络运算方法,其特征在于,利用运算指令对输入神经元数据及权值数据执行相应的运算,并输出运算后的数据,包括:
读取输入的指令并译码成运算指令;
利用所述运算指令、神经元数据及权值数据执行对应的神经网络运算操作。
11.根据权利要求10所述的神经网络运算方法,其特征在于,将运算后数据输出或执行稀疏处理后再输出,包括:
根据稀疏模式确定是否需要对神经元数据执行稀疏操作;若需要,则在稀疏操作之后再将稀疏后的数据输出,反之,则直接将数据输出。
12.根据权利要求9所述的神经网络运算方法,其特征在于,对神经元和权值数据执行映射操作,包括:
当处于仅权值数据稀疏模式时,根据权值稀疏选择神经元数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对;
当处于仅神经元数据稀疏模式时,根据输入神经元稀疏选择权值数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对;
当处于权值和神经元数据同时稀疏模式时,根据输入神经元稀疏和权值稀疏选择输入神经元和权值数据,对输入神经元和权值做映射,映射后的神经元和权值的对应关系为输入神经元-权值对。
13.根据权利要求12所述的神经网络运算方法,还包括:接收并存储从外部地址空间输入的数据,该数据包括神经元数据、神经网络权值数据以及神经网络的配置数据。
14.根据权利要求8-13中任一项所述的神经网络运算方法,其特征在于,所述稀疏参数包括至少以下其中之一:稀疏标志,稀疏率,稀疏模式;其中,
所述稀疏标志用于确定神经网络是否做稀疏处理;
所述稀疏率用于确定每次稀疏的比例;
所述稀疏模式包括:仅权值数据稀疏、仅神经元数据稀疏、及权值和神经元数据同时稀疏。
15.根据权利要求14所述的神经网络运算方法,其特征在于,所述对神经元数据执行稀疏操作,包括:
方法一:
首先,对神经元数据绝对值进行排序,根据稀疏率计算获得需要稀疏的数据个数;然后,根据需要稀疏的数据个数对神经元数据绝对值小的数据做稀疏,即置其值为0;和/或,
方法二:
神经元数据为0的数据保持0值不变,神经元数据在某个取值区间内的数据置为0值,其中,所述取值区间为事先设定值。
CN201710261742.3A 2017-04-20 2017-04-20 一种运算装置和方法 Active CN108734279B (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN201710261742.3A CN108734279B (zh) 2017-04-20 2017-04-20 一种运算装置和方法
CN201880000808.6A CN109104876B (zh) 2017-04-20 2018-04-17 一种运算装置及相关产品
CN201811011596.XA CN109284823B (zh) 2017-04-20 2018-04-17 一种运算装置及相关产品
EP18787049.8A EP3579152B1 (en) 2017-04-20 2018-04-17 Computing apparatus and related product
US16/476,261 US11977968B2 (en) 2017-04-20 2018-04-17 Sparse processing in neural network processors
PCT/CN2018/083379 WO2018192492A1 (zh) 2017-04-20 2018-04-17 一种运算装置及相关产品
EP19199531.5A EP3699826A1 (en) 2017-04-20 2018-04-17 Operation device and related products
US16/537,820 US10789531B2 (en) 2017-04-20 2019-08-12 Operation device and related products

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710261742.3A CN108734279B (zh) 2017-04-20 2017-04-20 一种运算装置和方法

Publications (2)

Publication Number Publication Date
CN108734279A CN108734279A (zh) 2018-11-02
CN108734279B true CN108734279B (zh) 2021-04-23

Family

ID=63933178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710261742.3A Active CN108734279B (zh) 2017-04-20 2017-04-20 一种运算装置和方法

Country Status (1)

Country Link
CN (1) CN108734279B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902811B (zh) * 2017-12-11 2020-03-10 中科寒武纪科技股份有限公司 神经网络运算设备和方法
CN109697500B (zh) * 2018-12-29 2020-06-09 中科寒武纪科技股份有限公司 数据处理方法、装置、电子设备及存储介质
CN111523655B (zh) * 2019-02-03 2024-03-29 上海寒武纪信息科技有限公司 处理装置及方法
CN110363168A (zh) * 2019-07-19 2019-10-22 山东浪潮人工智能研究院有限公司 一种基于卷积神经网络的三维立体图识别***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100580698C (zh) * 2007-09-10 2010-01-13 东北大学 稀疏数据过程建模方法
JP5376920B2 (ja) * 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
US10339447B2 (en) * 2014-01-23 2019-07-02 Qualcomm Incorporated Configuring sparse neuronal networks
CN107578099B (zh) * 2016-01-20 2021-06-11 中科寒武纪科技股份有限公司 计算装置和方法
CN106447034B (zh) * 2016-10-27 2019-07-30 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片

Also Published As

Publication number Publication date
CN108734279A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN108734279B (zh) 一种运算装置和方法
CN109104876B (zh) 一种运算装置及相关产品
CN109657782B (zh) 运算方法、装置及相关产品
CN107506828B (zh) 用于稀疏连接的人工神经网络计算装置和方法
CN109543832B (zh) 一种计算装置及板卡
US20200050918A1 (en) Processing apparatus and processing method
CN109726806A (zh) 信息处理方法及终端设备
CN110097172A (zh) 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置
CN109726822B (zh) 运算方法、装置及相关产品
CN111160547B (zh) 一种人工神经网络运算的装置及方法
CN113449859A (zh) 一种数据处理方法及其装置
CN110909870A (zh) 训练装置及方法
CA3131487A1 (en) Rapid detection of gene fusions
CN109740729B (zh) 运算方法、装置及相关产品
WO2024007873A1 (zh) 一种图处理方法及相关装置
CN109711538B (zh) 运算方法、装置及相关产品
CN109740730B (zh) 运算方法、装置及相关产品
CN108733739B (zh) 支持集束搜索的运算装置和方法
CN115909009A (zh) 图像识别方法、装置、存储介质及电子设备
CN112766475B (zh) 处理部件及人工智能处理器
WO2022228060A1 (zh) 数据处理方法、装置及***
JP2000004164A (ja) ベクトル量子化装置および方法、記録媒体
CN113011577B (zh) 处理单元、处理器核、神经网络训练机及方法
CN110874627B (zh) 数据处理方法、数据处理装置及计算机可读介质
CN111078280B (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