CN107203807B - 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 - Google Patents

神经网络加速器的片上缓存带宽均衡方法、系统及其装置 Download PDF

Info

Publication number
CN107203807B
CN107203807B CN201610149920.9A CN201610149920A CN107203807B CN 107203807 B CN107203807 B CN 107203807B CN 201610149920 A CN201610149920 A CN 201610149920A CN 107203807 B CN107203807 B CN 107203807B
Authority
CN
China
Prior art keywords
neural network
subnet
chip
module
dividing
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
CN201610149920.9A
Other languages
English (en)
Other versions
CN107203807A (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201610149920.9A priority Critical patent/CN107203807B/zh
Priority to US16/071,402 priority patent/US20210103818A1/en
Priority to PCT/CN2016/094199 priority patent/WO2017156968A1/zh
Publication of CN107203807A publication Critical patent/CN107203807A/zh
Application granted granted Critical
Publication of CN107203807B publication Critical patent/CN107203807B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明适用于计算机技术领域,提供了一种神经网络加速器的片上缓存带宽均衡方法、系统及其装置,包括如下步骤:A、将神经网络划分为多个内部数据特征一致的子网;B、对每个所述子网进行计算,获得每个所述子网的第一计算结果;C、根据每个所述子网的第一计算结果计算所述神经网络的总计算结果,借此,本发明提升了神经网络的计算效率。

Description

神经网络加速器的片上缓存带宽均衡方法、系统及其装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种神经网络加速器的片上缓存带宽均衡方法、系统及其装置。
背景技术
在大数据时代,越来越多的设备需要对于真实世界的实时输入进行越来越复杂的处理,如工业机器人、自动驾驶无人汽车以及移动设备等等。这些任务大多数偏向于机器学习领域,其中大部分运算为向量运算或者矩阵运算,具有极高的并行度。相较于传统通用的GPU/CPU加速方案,硬件ASIC加速器是目前最受欢迎的加速方案,一方面可以提供极高的并行度以实现极高的性能,另外一方面具有极高的能效性。
然而,这其中带宽成为限制加速器性能的一大瓶颈,常见的解决方案是通过放置在片上的缓存来平衡带宽的不均衡性。这些常见的解决方一方面数据量极其庞大,于硬件来说,资源十分有限,庞大的网络无法一次计算案并没有对数据读写进行优化,从而不能很好的利用数据的特性使得片上存储开销过大,数据读写开销过大。对于目前常见的机器学习类算法,完成;另一方面其数据大多具有重用性,也即同样的数据会被多次使用,从而数据具有相同的特征。
综上可知,现有的神经网络的计算技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种神经网络加速器的片上缓存带宽均衡方法、系统及其装置,以提升神经网络的计算效率。
为了实现上述目的,本发明提供一种神经网络加速器的片上缓存带宽均衡方法,所述计算方法包括如下步骤:
A、将神经网络划分为多个内部数据特征一致的子网;
B、对每个所述子网进行计算,获得每个所述子网的第一计算结果;
C、根据每个所述子网的第一计算结果计算所述神经网络的总计算结果。
根据所述的计算方法,所述步骤A包括:
A1、根据所述神经网络的输出神经元,将所述神经网络划分为多个内部数据特征一致的子网;
A2、根据所述神经网络的输入神经元,将所述神经网络划分为多个内部数据特征一致的子网;
A3、根据所述神经网络的神经元权值,将所述神经网络划分为多个内部数据特征一致的子网。
根据所述的计算方法,所述步骤A3包括:
根据所述神经网络的神经元权值的分布,将所述神经网络划分为多个内部数据特征一致的子网;或者
根据所述神经网络的神经元权值的正负,将所述神经网络划分为多个内部数据特征一致的子网。
根据所述的计算方法,在所述步骤C中,对每个所述子网的第一计算结果进行拼接或者加权的方式计算所述神经网络的总计算结果。
根据上述任一项所述的计算方法,所述神经网络的数据存储于片外存储介质,所述子网的数据存储于片上存储介质。
为了实现本发明的另一发明目的,本发明还提供了一种神经网络的计算系统,所述计算系统包括:
划分模块,用于将神经网络划分为多个内部数据特征一致的子网;
第一计算模块,用于对每个所述子网进行计算,获得每个所述子网的第一计算结果;
第二计算模块,用于根据每个所述子网的第一计算结果计算所述神经网络的总计算结果。
根据所述的计算系统,所述划分模块包括:
第一划分子模块,用于根据所述神经网络的输出神经元,将所述神经网络划分为多个内部数据特征一致的子网;
第二划分子模块,用于根据所述神经网络的输入神经元,将所述神经网络划分为多个内部数据特征一致的子网;
第三划分子模块,用于根据所述神经网络的神经元权值,将所述神经网络划分为多个内部数据特征一致的子网。
根据所述的计算系统,所述第三划分子模块根据所述神经网络的神经元权值的分布,将所述神经网络划分为多个内部数据特征一致的子网;或者
根据所述神经网络的神经元权值的正负,将所述神经网络划分为多个内部数据特征一致的子网。
根据所述的计算系统,所述第二计算模块对每个所述子网的第一计算结果进行拼接或者加权的方式计算所述神经网络的总计算结果;
所述神经网络的数据存储于片外存储介质,所述子网的数据存储于片上存储介质。
为了实现本发明的另一发明目的,本发明还提供了一种用于上述任一项所述的计算系统的装置,所述装置包括:
片上存储模块以及寻址模块,设置于片上存储介质,且连接于片上地址索引模块和片上计算模块,用于存储所述子网的数据;
片上地址索引模块,用于索引所述片上存储模块以及寻址模块存储的数据;
片上计算模块,用于计算所述子网的第一计算结果。
本发明通过将神经网络划分为多个内部数据特征一致的子网;对每个所述子网进行计算,获得每个所述子网的第一计算结果;根据每个所述子网的第一计算结果计算所述神经网络的总计算结果。由此,可以通过合理调度数据,缩减片上缓存开销,从而可以提供更加高效的加速器设计支持。由于针对大规模数据进行有效划分,从而降低硬件资源需求如访存带宽需求,同时提供良好的灵活性,解决了对重复数据进行高效读写的问题,提升神经网络的计算效率。
附图说明
图1是本发明实施例提供的神经网络的计算系统的结构示意图;
图2是本发明实施例提供的神经网络的计算系统的结构示意图;
图3是本发明实施例提供的根据输出神经元划分子网的示意图;
图4是本发明实施例提供的根据输入神经元划分子网的示意图;
图5是本发明实施例提供的根据权值连接划分子网的示意图;
图6A是本发明实施例提供的根据权值正负划分子网的示意图;
图6B是本发明实施例提供的根据权值分布划分子网的示意图;
图7是本发明实施例提供的根据按照正负进行权值划分子网及其可能的均值优化表示的示意图;
图8A是本发明实施例提供的神经网络的计算装置的结构示意图;
图8B是本发明实施例提供的神经网络的计算的总体结构的框图;
图9是本发明实施例提供的神经网络加速器的片上缓存带宽均衡方法流程图;
图10是本发明实施例提供的神经网络加速器的片上缓存带宽均衡方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,在本发明的第一实施例中,提供了一种神经网络的计算系统100,所述计算系统100包括:
划分模块10,用于将神经网络划分为多个内部数据特征一致的子网;
第一计算模块20,用于对每个所述子网进行计算,获得每个所述子网的第一计算结果;
第二计算模块30,用于根据每个所述子网的第一计算结果计算所述神经网络的总计算结果。
在该实施例中,提供了神经网络的计算系统100,通过该计算系统100首先将神经网络的划分为多个子网,根据不同的划分原则,神经网络可以被划分成为不同的子网,而不同的划分方法使得子网具有不同的特征。其中,所述神经网络的数据存储于片外存储介质,所述子网的数据存储于片上存储介质。具体的,划分模块10根据不同的划分原则划分神经网络成为不同的子网,该划分原则是使得同一子网内部的数据特征具有一致性,不同子网间的数据可能具有不同特质,以及不同的子网可能被存储在不同的介质中,如片内(即片上)片外,从而在不同的时刻被硬件调度进行计算。第一计算模块20进行子网计算,对每个所述子网进行计算,获得每个所述子网的第一计算结果。通常情况下,片上有限的资源限制了所有数据同时进行计算的可能性,所以数据被进行划分,大存储介质(廉价,速度稍慢)放在片外,小存储介质(昂贵,速度快)集成在片上,数据按照子网存储在片外介质,在不同的时刻被搬运至计算模块进行子网相关操作。尽管神经网络本身有可能为复杂的庞大网络,但是每个子网的计算与原本网络本身一致。最后,第二计算模块30对每个所述子网的第一计算结果进行拼接或者加权的方式计算所述神经网络的总计算结果;对于不同的子网根据不同的划分原则,需要进行不同的操作,如第二计算模块30简单拼接或者计算得到最终的总网的计算结果。由此,提高了神经网络的计算效率。
参见图2,在本发明的第二实施例中,划分模块10包括:
第一划分子模块11,用于根据所述神经网络的输出神经元,将所述神经网络划分为多个内部数据特征一致的子网;
第二划分子模块12,用于根据所述神经网络的输入神经元,将所述神经网络划分为多个内部数据特征一致的子网;
第三划分子模块13,用于根据所述神经网络的神经元权值,将所述神经网络划分为多个内部数据特征一致的子网。
在该实施例中,本发明中的子网划分原则包括根据输出神经元划分,根据输入神经元划分,以及根据权值划分,第一划分子模块11、第二划分子模块12以及第三划分子模块13根据不同的划分原则进行划分。如图3所示的子网划分方式,其原则为根据输出神经元划分。不同的输出神经元需要根据所有的输入神经元计算输出结果,神经元间具有不同权值的连接。在图3中输入为4个神经元,输出为2个神经元,输入输出神经元之间为全连接,根据神经网络的输出神经元,两个子网分别计算一个输出神经元。图4为一个神经网络(同图3中的规模)根据输入神经元划分子网,每个子网都只包含2个输入神经元。图3和图4所示的根据输入输出神经元划分的原则不局限于全连接情况,也是适用于非全连接状况。图5则是根据权值进行划分子网的例子,其中每个子网只计算一份的连接,子网加和在一起即是总的网络。
此外,第三划分子模块13根据所述神经网络的神经元权值的分布,将所述神经网络划分为多个内部数据特征一致的子网;或者
根据所述神经网络的神经元权值的正负,将所述神经网络划分为多个内部数据特征一致的子网。
如图5所示的子网划分,其原则为根据神经元权值连接划分。权值具有不同的属性,从而可以根据不同的划分原则将网络划分成为不同的子网。这里根据权值将网络划分成为两个子网。此外,图5所示的子网划分,还根据权值划分的原则包括正负——将整个网络划分成为正子网和负子网,阈值——大于x的子网和小于等于x的子网,分段——权值在不同区间形成的不同子网等等。以及根据权值进行子网划分,还包括复杂的划分原则,如根据权值分布划分。在本发明的一个实施方式中,图6A所示子网划分,其根据权值划分的原则为权值正负,根据权值正负将网络划分成为正负两个子网。如图6B所示的子网划分,其根据权值分布进行划分,将一个权值符合正态分布的网络划分成为两个权值符合正态分布的子网。图6B所示一个实施例的子网划分原则的一个优点,即可以通过划分将每个子网的权值分布的范围缩减,从而每个子网中的权值可以表示为均值和偏差。从硬件角度上看,均值可以复用,偏差可以直接存储,或者进行聚类,或者进行压缩,从而降低硬件资源需求,降低硬件开销。此外,子网划分原则还包括根据连接划分,这种划分原则可以自然的被归入根据输入或者输出神经元进行划分,本发明故不特别分为一类。子网计算与原始神经网络并无而异,子网划分在每个子网中并不引入额外的操作。
在本发明的一个实施例中,如图7所示一个实施例的子网划分原则,根据权值的分布将数值进行变换表示,也即将单个数值分解成为a+b的形式,其中a是均值,b为相对均值该数值的偏差(b可为正也可为负)。图7所示的实施例的划分原则的一个优点在于,b此时相对0点对称分布,可以采用最少bit的数据表示,a对于所有数值一样,则子网划分成为两个网络,一个为均值子网,另外一个为偏差子网。从硬件资源上来说,均值子网所有权值一致,大大的减少了该子网的权值数据读取次数,如存在片上寄存器则只需要读取一次即够无限次使用;偏差子网中权值的表示一方面有效的降低了每个数值的表示位宽从而降低了带宽需求,一方面偏差权值可以聚类或者压缩从而使得带宽不成为计算的瓶颈。
在上述多个实施例中,神经网络的计算系统100的多个模块可以为软件单元,硬件单元或软硬件结合单元。
参见图8A和图8B,在本发明第三实施例中,还提供了一种用于上述多个计算系统的装置101,该装置101包括:
片上存储模块以及寻址模块1011,设置于片上存储介质,且连接于片上地址索引模块1012和片上计算模块1013,用于存储所述子网的数据;
片上地址索引模块1012,用于索引所述片上存储模块以及寻址模块1011存储的数据;
片上计算模块1013,用于计算所述子网的第一计算结果。
在该实施例中,神经网络的计算系统的装置101包含片上存储模块以及寻址模块1011、片上地址索引模块1012和片上计算模块1013。片上地址索引模块1012索引片上存储的数据;片上存储模块以及寻址模块1011数据读出接口则是已索引到数据的输出出口;片上存储模块以及寻址模块1011数据写入接口则是存储单元数据根据写入地址写入相应存储位置。该片上存储模块以及寻址模块1011采用读写端口分离设计,从而使得数据的读出和写入相互独立,可以同时进行。由此,可以高效的进行片上地址空间内的重复寻址,也可以进行片外地址寻址;具体的,具有片上存储介质,片外存储介质,地址索引单元,片内片外数据通路,片内数据通路。片上存储介质包含静态随机存储器(Static Random AccessMemory,SRAM),动态随机存储器(Dynamic RandomAccess Memory,DRAM),增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,eDRAM),寄存器堆(Register file,RF)等常见存储介质也可以是新型的存储期间,如非易失存储器(Non-Volatile Memory,NVM)或者3D存储器件等等。对于片上存储介质不局限存储介质。片外存储介质包含静态随机存储器(Static Random Access Memory,SRAM),动态随机存储器(DynamicRandomAccess Memory,DRAM),增强动态随机存取存储器(Enhanced Dynamic RandomAccess Memory,eDRAM),寄存器堆(Register file,RF)等常见存储介质也可以是新型的存储期间,如非易失存储器(Non-Volatile Memory,NVM)或者3D存储器件等等。地址空间划分成为片外数据空间和片内数据空间。地址空间划分具有较强的灵活性,不局限地址空间的大小。片内片外数据通路,包含PCI、PCIE、HT等互联技术。片内片外数据通路,不局限互联技术。片内数据通路,包含FATTREE、HTREE等互联技术。片内数据通路,不局限互联技术。神经网络与子网的数据可以被一次或者多次读写。数据可以被读至一个或者多个片上运算单元。片上存储介质可以被一次或者多次从外部进行读写。片上存储介质可以被一次或者多次从内部读写。片外存储介质数据可以被一次或者多次读写。片外存储介质的数据可以被读至一个或者多个片上运算单元。片外存储介质可以被一次或者多次从外部进行读写。片外存储介质可以被一次或者多次从内部读写。片上存储介质包含一次或者多次替换。片上存储介质的数据替换策略包含顺序替换,逆序替换,随机替换等。
参见图9,在本发明的第四实施例中,提供了一种神经网络加速器的片上缓存带宽均衡方法,所述计算方法包括如下步骤:
步骤S901中,划分模块10将神经网络划分为多个内部数据特征一致的子网;
步骤S902中,第一计算模块20对每个所述子网进行计算,获得每个所述子网的第一计算结果;
步骤S903中,第二计算模块30根据每个所述子网的第一计算结果计算所述神经网络的总计算结果。
在该实施例中,通过划分模块10对神经网络进行子网划分从而通过分别加速单个子网,使得子网可以被芯片快速高效的完成计算,从而使得总网络的计算快速高效,根据不同的划分原则,神经网络被划分成为不同的子网由第一计算模块20、第二计算模块30进行组织计算。此外,所述神经网络的数据存储于片外存储介质,所述子网的数据存储于片上存储介质。对每个所述子网的第一计算结果进行拼接或者加权的方式计算所述神经网络的总计算结果。可以有效的提供数据的复用性和其灵活寻址的需求,高效的满足硬件资源需求如带宽,能够适用于不同场景。
在本发明的另一实施例中,所述步骤S901包括:
第一划分子模块11根据所述神经网络的输出神经元,将所述神经网络划分为多个内部数据特征一致的子网;
第二划分子模块12根据所述神经网络的输入神经元,将所述神经网络划分为多个内部数据特征一致的子网;
第三划分子模块13根据所述神经网络的神经元权值,将所述神经网络划分为多个内部数据特征一致的子网。
其中,第三划分子模块13根据所述神经网络的神经元权值的分布,将所述神经网络划分为多个内部数据特征一致的子网;或者
根据所述神经网络的神经元权值的正负,将所述神经网络划分为多个内部数据特征一致的子网。
对于异构平台来说,加速器的片上能够存储的数据十分有限,而如今的神经网络通常具有较大规模,需要将整个神经网络划分成为不同的子网进行计算,通过片外大存储介质和片内小存储介质上的数据交互将所需数据块读入或者写出。最后,根据不同的子网计算结果计算总网结果。图8B所示的片内片外数据连接并不局限于PCIE总线连接,也包含多芯片互联结构如片上网络等。图8B所示的片上计算单元与片上存储介质的数据通路不局限于H-TREE,或者FAT-TREE等互联技术。
在本发明的一个实施例中,图10所示神经网络的计算流程,以聚类了权值的一层神经网络为例,即图6A,具体描述如下:
步骤S1001中,神经网络子网的划分,此例中网络划分方式见步骤S1011。步骤S1011中其中这里假设权值聚类成为356类,而片上资源只能存放256个,根据存储限制,网络被划分成为两个子网,即子网1和子网2;
步骤S1002中,LOAD 256个权值至片上,为子网1计算做数据准备;
步骤S1003中,寻址特定权值的连接;
步骤S1004中,计算特定权值的连接;
步骤S1005中,判断子网1是否已经完成计算,这里也即所有256个权值已经使用完毕,如果使用完毕则进入S1012确定子网1的计算结果和S1006进入子网2的计算;如果没有则进入步骤S1003继续进行子网1的计算;
步骤S1006中,寻址特定权值的连接;
步骤S1007中,计算特定权值的连接;
步骤S1008中,判断子网2是否已经完成计算,这里也即所有100个权值已经使用完毕,如果使用完毕则进入S1013确定子网2的计算结果和S1009进入总网的计算;如果没有则进入步骤S1006继续进行子网2的计算;
步骤S1009中,计算总网为子网1和子网2;
步骤S1012中,子网1的结果确定;
步骤S1013中,子网2的结果确定。
在该实施例中,选对神经网络子网划分,神经网络权值聚类成为356类,也即356个权值,此处假设片上的权值缓存只能存下256个数,这样自然而然的将神经网络划归成为两类,一类是使用前256个权值的连接的网络,即子网1;另一类则是使用剩下100个权值连接的网络,即子网2。这样最终的神经元结果只需要将子网1和子网2的累加结果相加就可以得到最后的总网的结果。开始计算后,前256个权值载入片上,所有输出神经元根据输入神经元进行一一寻址然后计算直到所有权值使用完毕,子网1的计算完成;类似的子网2计算完成。将子网1和子网2的结果相加,得到最后总网络的结果。需要注意的是,本发明各实施例中的存储装置并不限定存储所用介质,可以是静态随机存储器(Static Random AccessMemory,SRAM),动态随机存储器(Dynamic Random Access Memory,DRAM),增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,eDRAM),寄存器堆(Register file,RF)等常见存储介质,也可以是新型的存储器件,如非易失存储器(Non-Volatile Memory,NVM)或者3D存储器件等等。
综上所述,本发明通过将神经网络划分为多个内部数据特征一致的子网;对每个所述子网进行计算,获得每个所述子网的第一计算结果;根据每个所述子网的第一计算结果计算所述神经网络的总计算结果。由此,可以通过合理调度数据,缩减片上缓存开销,从而可以提供更加高效的加速器设计支持。由于针对大规模数据进行有效划分,从而降低硬件资源需求如访存带宽需求,同时提供良好的灵活性,解决了对重复数据进行高效读写的问题。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (5)

1.一种神经网络加速器的片上缓存带宽均衡方法,其特征在于,包括如下步骤:
步骤A、从神经网络加速器的片外存储介质获取神经网络的数据,并根据划分原则,将神经网络划分为多个内部数据特征一致的子网,将所述子网的数据存储于神经网络加速器的片上存储介质;
步骤B、通过索引片上存储介质的数据,以对每个所述子网进行计算,获得每个所述子网的第一计算结果;
步骤C、将每个所述子网的第一计算结果进行拼接或者加权,得到所述神经网络加速器的加速结果;
所述步骤A包括:
步骤A1,根据所述神经网络的输出神经元,将所述神经网络划分为多个子网,每个子网分别计算预设数量的输出神经元;或
步骤A2,根据所述神经网络的输入神经元,将所述神经网络划分为多个子网,每个子网只包含预设数量的输入神经元;或
步骤A3,根据所述神经网络的神经元权值,将所述神经网络划分为多个子网,每个子网只计算一份的连接。
2.根据权利要求1所述的神经网络加速器的片上缓存带宽均衡方法,其特征在于,所述步骤A3包括:
根据所述神经网络的神经元权值的分布,将所述神经网络划分为多个内部数据特征一致的子网;或者
根据所述神经网络的神经元权值的正负,将所述神经网络划分为多个内部数据特征一致的子网。
3.一种神经网络的神经网络加速器的片上缓存带宽均衡系统,其特征在于,包括:
划分模块,从神经网络加速器的片外存储介质获取神经网络的数据,并根据划分原则,用于将神经网络划分为多个内部数据特征一致的子网,将所述子网的数据存储于神经网络加速器的片上存储介质;
第一计算模块,用于索引片上存储介质的数据,对每个所述子网进行计算,获得每个所述子网的第一计算结果;
第二计算模块,将每个所述子网的第一计算结果进行拼接或者加权,得到所述神经网络加速器的加速结果;
所述划分模块包括:
第三划分子模块,根据所述神经网络的输出神经元,将所述神经网络划分为多个子网,每个子网分别计算预设数量的输出神经元;或
第三划分子模块,根据所述神经网络的输入神经元,将所述神经网络划分为多个子网,每个子网只包含预设数量的输入神经元;或
第三划分子模块,根据所述神经网络的神经元权值,将所述神经网络划分为多个子网,每个子网只计算一份的连接;
其中,所述神经网络的数据存储于片外存储介质,所述子网的数据存储于片上存储介质。
4.根据权利要求3所述的神经网络加速器的片上缓存带宽均衡系统,其特征在于,所述第三划分子模块根据所述神经网络的神经元权值的分布,将所述神经网络划分为多个内部数据特征一致的子网;或者
根据所述神经网络的神经元权值的正负,将所述神经网络划分为多个内部数据特征一致的子网。
5.一种用于权利要求3或4所述的片上缓存带宽均衡系统的装置,其特征在于,所述装置包括:
片上存储模块以及寻址模块,设置于片上存储介质,且连接于片上地址索引模块和片上计算模块,用于存储所述子网的数据;
片上地址索引模块,用于索引所述片上存储模块以及寻址模块存储的数据;
片上计算模块,用于计算所述子网的第一计算结果。
CN201610149920.9A 2016-03-16 2016-03-16 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 Active CN107203807B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610149920.9A CN107203807B (zh) 2016-03-16 2016-03-16 神经网络加速器的片上缓存带宽均衡方法、系统及其装置
US16/071,402 US20210103818A1 (en) 2016-03-16 2016-08-09 Neural network computing method, system and device therefor
PCT/CN2016/094199 WO2017156968A1 (zh) 2016-03-16 2016-08-09 神经网络的计算方法、系统及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610149920.9A CN107203807B (zh) 2016-03-16 2016-03-16 神经网络加速器的片上缓存带宽均衡方法、系统及其装置

Publications (2)

Publication Number Publication Date
CN107203807A CN107203807A (zh) 2017-09-26
CN107203807B true CN107203807B (zh) 2020-10-02

Family

ID=59851848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610149920.9A Active CN107203807B (zh) 2016-03-16 2016-03-16 神经网络加速器的片上缓存带宽均衡方法、系统及其装置

Country Status (3)

Country Link
US (1) US20210103818A1 (zh)
CN (1) CN107203807B (zh)
WO (1) WO2017156968A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664722B1 (en) * 2016-10-05 2020-05-26 Digimarc Corporation Image processing arrangements
CN108595211B (zh) * 2018-01-05 2021-11-26 百度在线网络技术(北京)有限公司 用于输出数据的方法和装置
CN110321064A (zh) * 2018-03-30 2019-10-11 北京深鉴智能科技有限公司 用于神经网络的计算平台实现方法及系统
CN110321999B (zh) * 2018-03-30 2021-10-01 赛灵思电子科技(北京)有限公司 神经网络计算图优化方法
EP3788558A1 (en) * 2018-05-02 2021-03-10 Telefonaktiebolaget LM Ericsson (publ) Placement-aware acceleration of parameter optimization in a predictive model
WO2020062284A1 (zh) * 2018-09-30 2020-04-02 深圳市大疆创新科技有限公司 基于卷积神经网络的图像处理方法和设备,以及无人机
CN111667046A (zh) * 2019-03-08 2020-09-15 富泰华工业(深圳)有限公司 深度学习加速方法及用户终端
CN109919315B (zh) * 2019-03-13 2021-10-01 科大讯飞股份有限公司 一种神经网络的前向推理方法、装置、设备及存储介质
CN110490302B (zh) * 2019-08-12 2022-06-07 中科寒武纪科技股份有限公司 一种神经网络编译优化方法、装置以及相关产品
CN110569588B (zh) * 2019-08-29 2021-04-20 华中科技大学 一种基于前馈神经网络的工业机器人整机性能预估方法
CN111695685B (zh) * 2020-05-12 2023-09-26 中国科学院计算技术研究所 一种面向图神经网络应用的片上存储系统及方法
CN114501353B (zh) * 2020-10-23 2024-01-05 维沃移动通信有限公司 通信信息的发送、接收方法及通信设备
CN114531355B (zh) * 2020-11-23 2023-07-18 维沃移动通信有限公司 通信方法、装置及通信设备
CN112488305B (zh) * 2020-12-22 2023-04-18 西北工业大学 一种神经网络存储装置及其可配置管理方法
JP2024508234A (ja) * 2021-02-10 2024-02-26 アタッシェ・ホールディングズ・エルエルシー 個人用保護具ネットワーク(ppe-n)
CN114202067A (zh) * 2021-11-30 2022-03-18 山东产研鲲云人工智能研究院有限公司 面向卷积神经网络加速器的带宽优化方法及相关设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102636742A (zh) * 2012-05-15 2012-08-15 长沙河野电气科技有限公司 基于小波神经网络的大规模模拟电路故障诊断方法
CN102662040A (zh) * 2012-04-20 2012-09-12 辽宁工程技术大学 一种动态模块化神经网络的氨氮在线软测量方法
CN102789593A (zh) * 2012-06-18 2012-11-21 北京大学 基于增量式ghsom神经网络的入侵检测方法
CN102856910A (zh) * 2012-07-31 2013-01-02 上海交通大学 基于多模型模糊神经网络pi的statcom控制方法
CN103403724A (zh) * 2011-03-04 2013-11-20 东京毅力科创株式会社 用于基于库的临界尺寸(cd)计量的精确和快速的神经网络训练
CN104145281A (zh) * 2012-02-03 2014-11-12 安秉益 神经网络计算装置和系统及其方法
CN104503232A (zh) * 2014-11-27 2015-04-08 中国人民解放军军械工程学院 具有仿生抗扰特性的简并电路及其设计方法
CN104866904A (zh) * 2015-06-16 2015-08-26 中电科软件信息服务有限公司 一种基于spark的遗传算法优化的BP神经网络并行化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69722612D1 (de) * 1997-09-04 2003-07-10 Univ Groningen Methode zur Modellierung und/oder Steuerung eines Herstellungsverfahrens, die ein neuronales Netz anwendet und Regler für ein Herstellungsverfahren
US9404895B2 (en) * 2011-10-20 2016-08-02 Nalco Company Method for early warning chatter detection and asset protection management
CN102647292B (zh) * 2012-03-20 2014-07-23 北京大学 一种基于半监督神经网络模型的入侵检测方法
US10832120B2 (en) * 2015-12-11 2020-11-10 Baidu Usa Llc Systems and methods for a multi-core optimized recurrent neural network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103403724A (zh) * 2011-03-04 2013-11-20 东京毅力科创株式会社 用于基于库的临界尺寸(cd)计量的精确和快速的神经网络训练
CN104145281A (zh) * 2012-02-03 2014-11-12 安秉益 神经网络计算装置和系统及其方法
CN102662040A (zh) * 2012-04-20 2012-09-12 辽宁工程技术大学 一种动态模块化神经网络的氨氮在线软测量方法
CN102636742A (zh) * 2012-05-15 2012-08-15 长沙河野电气科技有限公司 基于小波神经网络的大规模模拟电路故障诊断方法
CN102789593A (zh) * 2012-06-18 2012-11-21 北京大学 基于增量式ghsom神经网络的入侵检测方法
CN102856910A (zh) * 2012-07-31 2013-01-02 上海交通大学 基于多模型模糊神经网络pi的statcom控制方法
CN104503232A (zh) * 2014-11-27 2015-04-08 中国人民解放军军械工程学院 具有仿生抗扰特性的简并电路及其设计方法
CN104866904A (zh) * 2015-06-16 2015-08-26 中电科软件信息服务有限公司 一种基于spark的遗传算法优化的BP神经网络并行化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卷积神经网络的FPGA并行加速方案设计;方睿 等;《计算机工程与应用》;20150415;第51卷(第8期);第32-36页 *

Also Published As

Publication number Publication date
US20210103818A1 (en) 2021-04-08
WO2017156968A1 (zh) 2017-09-21
CN107203807A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
CN107203807B (zh) 神经网络加速器的片上缓存带宽均衡方法、系统及其装置
US10496597B2 (en) On-chip data partitioning read-write method, system, and device
US11720523B2 (en) Performing concurrent operations in a processing element
CN107301455B (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
WO2017173754A1 (zh) 片上重复寻址的方法及装置
JP2018116469A (ja) 演算システムおよびニューラルネットワークの演算方法
CN112668708B (zh) 一种提高数据利用率的卷积运算装置
US10755772B1 (en) Storage device and methods with fault tolerance capability for neural networks
CN111723900A (zh) 一种基于众核处理器的神经网络的映射方法及计算设备
CN113313247B (zh) 基于数据流架构的稀疏神经网络的运算方法
CN112686379B (zh) 集成电路装置、电子设备、板卡和计算方法
CN113261015A (zh) 神经网络系统及数据处理技术
Chen et al. Towards efficient allocation of graph convolutional networks on hybrid computation-in-memory architecture
CN115394336A (zh) 一种存算fpga架构
CN115087991A (zh) 具有并行加载-存储的共享便笺式存储器
CN111886605B (zh) 针对多个输入数据集的处理
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
US11467973B1 (en) Fine-grained access memory controller
KR20210081663A (ko) 인터커넥트 장치, 인터커넥트 장치의 동작 방법 및 인터커넥트 장치를 포함하는 AI(Artificial Intelligence) 가속기 시스템
Crafton et al. Breaking barriers: Maximizing array utilization for compute in-memory fabrics
CN115238879A (zh) 深度神经网络的架构搜索方法及硬件加速器
CN113988277A (zh) 用于存算一体芯片的神经网络映射方法、装置、设备
Qiu et al. An FPGA‐Based Convolutional Neural Network Coprocessor
US20230376562A1 (en) Integrated circuit apparatus for matrix multiplication operation, computing device, system, and method
CN113505825B (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