CN108647155B - 一种基于深度学习的多级cache共享的方法和装置 - Google Patents

一种基于深度学习的多级cache共享的方法和装置 Download PDF

Info

Publication number
CN108647155B
CN108647155B CN201810453695.7A CN201810453695A CN108647155B CN 108647155 B CN108647155 B CN 108647155B CN 201810453695 A CN201810453695 A CN 201810453695A CN 108647155 B CN108647155 B CN 108647155B
Authority
CN
China
Prior art keywords
neural network
unit
cache
network operation
data
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
CN201810453695.7A
Other languages
English (en)
Other versions
CN108647155A (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.)
Rockchip Electronics Co Ltd
Original Assignee
Rockchip Electronics 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 Rockchip Electronics Co Ltd filed Critical Rockchip Electronics Co Ltd
Priority to CN201810453695.7A priority Critical patent/CN108647155B/zh
Publication of CN108647155A publication Critical patent/CN108647155A/zh
Application granted granted Critical
Publication of CN108647155B publication Critical patent/CN108647155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

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

Abstract

本发明提供了一种基于深度学习的多级cache共享的方法和装置,所述装置包括处理器、高速缓存单元、多个神经网络运算单元,所述高速缓存单元包括多个高速缓存行。处理器通过划分信息来分配各个神经网络运算单元对应的高速缓存行数量,使得有限的高速缓存空间得到更加合理的分配,有效提高了神经网络计算效率。此外,神经网络运算单元在写入数据时,优先将数据写入至其对应的高速缓存行中;在需要读取数据时,优先从高速缓存行中查找待读取数据,使得神经网络大量数据访问都在芯片内部完成,减少了神经网络对外存的数据访问,也减少了对外存的带宽需求,最终达到降低带宽的目的。

Description

一种基于深度学习的多级cache共享的方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种基于深度学习的多级cache共享的方法和装置。
背景技术
随着人工智能技术的快速发展,人们对人工智能设备的性能需求也越来越高。当前,制约深度学习神经网络设备快速发展的一大因素就是终端神经网络芯片对带宽的需求太大,同时访问外存的速度过慢也极大限制了神经网络的运算速度。
神经网络结构和运行方式需要大量的数据搬移,比如神经元、权值、阈值、卷积核数据读取,以及每层神经网络的中间运算结果、反馈训练时的误差计算和回写,大量的数据频繁转移导致已有的SOC芯片的存储结构不堪重负,带宽有限也成为深度学习神经网络的性能瓶颈,使得已有的SOC芯片结构很难满足大规模神经网络电路的训练和使用。
发明内容
为此,需要提供一种基于深度学习的多级cache共享的技术方案,用以解决神经网络结构在使用过程中,由于数据频繁搬移导致芯片存储结构不堪重负,无法满足大规模计算需求的问题。
为实现上述目的,发明人提供了一种基于深度学习的多级cache共享的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括一个以上神经网络运算层,每一神经网络运算层包括多个神经网络运算单元;所述神经网络单元与高速缓存单元连接,所述处理器分别与高速缓存单元、划分信息存储单元连接;
所述处理器用于读取划分信息存储单元中的划分信息,并根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元;所述划分信息记录有各个神经网络运算单元与需要划分给该神经网络运算单元的高速缓存行数量的对应关系;
各个神经网络运算单元在需要写入数据时,优先将数据写入至其对应的高速缓存行中,并在其对应的高速缓存行写满后,再向外部存储单元写入数据;
各个神经网络运算单元在需要读取数据时,先根据待读取数据的逻辑地址从高速缓存行中查找待读取数据,并在高速缓存行中未查找到待读取数据的逻辑地址后,根据所述逻辑地址从外部存储单元中读取数据,以及将从外部存储单元读取到的数据与对应的逻辑地址更新到高速缓存单元中。
进一步地,所述装置还包括多个统计单元,每一神经网络运算单元对应与一个统计单元连接,每一统计单元还与处理器连接;
所述处理器用于接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元;
当神经网络单元工作次数达到第一预设次数后,各个统计单元用于统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;某一神经网络运算单元对应的外存数据访问比例为该神经网络运算单元访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
所述处理器用于根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;而后控制高速缓存单元开始工作,并根据划分信息分配相应比例数量的高速缓存行给对应的神经网络运算单元。
进一步地,当神经网络单元工作次数达到第二预设次数后,所述处理器用于控制高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元中存储的数据;
各个统计单元用于再次统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;所述处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
进一步地,处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息包括:
处理器用于根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络运算单元的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络运算单元。
进一步地,统计单元基于神经网络运算单元的类型,分别统计属于同一类型的所有神经网络运算单元的外存数据访问比例;所述神经网络运算单元的类型包括神经元输入单元、卷积运算单元、激活运算单元、池化单元、全连接单元。
进一步地,各个神经网络运算单元在其对应的高速缓存行写满且向外部存储单元中写入的数据量超过预设写入数据量后,清空神经网络运算单元对应的高速缓存行中的写入数据。
进一步地,根据待读取数据的逻辑地址从高速缓存行中查找待读取数据包括:
根据待读取数据的逻辑地址从当前神经网络运算单元对应的高速缓存行、以及上一神经网络运算单元对应的高速缓存行中查找待读取数据。
进一步地,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元包括:处理器根据划分信息,按照划分信息中各个神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给对应的神经网络运算单元。
发明人还提供了一种基于深度学习的多级cache共享的方法,所述方法应用于基于深度学习的多级cache共享的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括一个以上神经网络运算层,每一神经网络运算层包括多个神经网络运算单元;所述神经网络单元与高速缓存单元连接,所述处理器分别与高速缓存单元、划分信息存储单元连接;所述方法包括以下步骤:
处理器读取划分信息存储单元中的划分信息,并根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元;所述划分信息记录有各个神经网络运算单元与需要划分给该神经网络运算单元的高速缓存行数量的对应关系;
各个神经网络运算单元在需要写入数据时,优先将数据写入至其对应的高速缓存行中,并在其对应的高速缓存行写满后,再向外部存储单元写入数据;
各个神经网络运算单元在需要读取数据时,先根据待读取数据的逻辑地址从高速缓存行中查找待读取数据,并在高速缓存行中未查找到待读取数据的逻辑地址后,根据所述逻辑地址从外部存储单元中读取数据,以及将从外部存储单元读取到的数据与对应的逻辑地址更新到高速缓存单元中。
进一步地,所述装置还包括多个统计单元,每一神经网络运算单元对应与一个统计单元连接,每一统计单元还与处理器连接;所述方法包括:
处理器接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元;
当神经网络单元工作次数达到第一预设次数后,各个统计单元统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;某一神经网络运算单元对应的外存数据访问比例为该神经网络运算单元访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
处理器根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;而后控制高速缓存单元开始工作,并根据划分信息分配相应比例数量的高速缓存行给对应的神经网络运算单元。
进一步地,所述方法包括:
当神经网络单元工作次数达到第二预设次数后,处理器控制高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元中存储的数据;
各个统计单元再次统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
进一步地,处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息包括:
处理器根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络运算单元的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络运算单元。
进一步地,所述方法包括:
统计单元基于神经网络运算单元的类型,分别统计属于同一类型的所有神经网络运算单元的外存数据访问比例;所述神经网络运算单元的类型包括神经元输入单元、卷积运算单元、激活运算单元、池化单元、全连接单元。
进一步地,所述方法包括:
各个神经网络运算单元在其对应的高速缓存行写满且向外部存储单元中写入的数据量超过预设写入数据量后,清空神经网络运算单元对应的高速缓存行中的写入数据。
进一步地,根据待读取数据的逻辑地址从高速缓存行中查找待读取数据包括:
根据待读取数据的逻辑地址从当前神经网络运算单元对应的高速缓存行、以及上一神经网络运算单元对应的高速缓存行中查找待读取数据。
进一步地,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元包括:处理器根据划分信息,按照划分信息中各个神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给对应的神经网络运算单元。
本发明提供了一种基于深度学习的多级cache共享的方法和装置,所述装置包括处理器、高速缓存单元、多个神经网络运算单元,所述高速缓存单元包括多个高速缓存行;处理器通过划分信息来分配各个神经网络运算单元对应的高速缓存行数量,使得有限的高速缓存空间得到更加合理的分配,有效提高了神经网络计算效率。此外,神经网络运算单元在写入数据时,优先将数据写入至其对应的高速缓存行中;在需要读取数据时,优先从高速缓存行中查找待读取数据,使得神经网络大量数据访问都在芯片内部完成,减少了神经网络对外存的数据访问,也减少了对外存的带宽需求,最终达到降低带宽的目的。
附图说明
图1为本发明一实施方式涉及的基于深度学习的多级cache共享的装置的结构示意图;
图2为本发明一实施方式涉及的基于深度学习的多级cache共享的方法的流程图;
图3为本发明另一实施方式涉及的基于深度学习的多级cache共享的方法的流程图。
附图标记说明:
101、处理器;
102、划分信息存储单元;
103、高速缓存单元;113、第一高速缓存行;123、第二高速缓存行。
104、外部存储单元;
105、神经网络单元;
106、统计单元;
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本发明一实施方式涉及的基于深度学习的多级cache共享的装置的结构示意图。所述装置包括处理器101、划分信息存储单元102、高速缓存单元103、外部存储单元104、神经网络单元105。所述高速缓存单元103包括多个高速缓存行;所述神经网络单元105包括一个以上神经网络运算层,每一神经网络运算层包括多个神经网络运算单元;所述神经网络单元105与高速缓存单元103连接,所述处理器101分别与高速缓存单元103、划分信息存储单元102连接;
在本实施方式中,高速缓存单元为cache存储器,即高速缓冲存储器;所述外部存储单元为DDR,即内存,所述处理器为中央处理器,即CPU。高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,是一种规模较小但速度很高的存储器,通常由SRAM(Static Random Access Memory,静态存储器)组成。
由于CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
优选的,cache又分为L1cache(一级缓存,即本发明后面提及的“第一高速缓存行”)和L2cache(二级缓存,即本发明后面提及的“第二高速缓存行”),L1cache主要是集成在CPU内部,而L2cache集成在主板上或是CPU上。L1cache相对于L2cache而言,容量较小但是速度更快。对于cache而言,其通常是以cache line(即高速缓存行)为单位来存储数据,当cache包括不同级缓存时(如L1cache和L2cache),对于cache资源的分配包括对各个不同级的高速缓存行的分配。在另一些实施例中,cache还可以根据实际被设计为只包含一级缓存或者包含多于两级缓存。
所述处理器101用于读取划分信息存储单元102中的划分信息,并根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元;所述划分信息记录有各个神经网络运算单元与需要划分给该神经网络运算单元的高速缓存行数量的对应关系。
各个神经网络运算单元在需要写入数据时,优先将数据写入至其对应的高速缓存行中,并在其对应的高速缓存行写满后,再向外部存储单元写入数据。各个神经网络运算单元在进行神经网络计算过程中,通过伴随着大量的中间数据需要缓存,通过上述方式,可以优先将待写入的数据写入至各个神经网络运算单元对应的高速缓存行中,有效减少各个神经网络运算单元在写入数据时对外部存储单元的访问,有效降低了带宽。
各个神经网络运算单元在需要读取数据时,先根据待读取数据的逻辑地址从高速缓存行中查找待读取数据,并在高速缓存行中未查找到待读取数据的逻辑地址后,根据所述逻辑地址从外部存储单元中读取数据,以及将从外部存储单元读取到的数据与对应的逻辑地址更新到高速缓存单元中。
高速缓存单元中存储数据是以“逻辑地址-数据”的方式进行存储的,即每一逻辑地址对应存储一数据。例如高速缓存单元中存储有数据1至5,对应的逻辑地址为A-E,即逻辑地址A存储有数据1,逻辑地址B存储有数据2,以此类推。当某一神经网络运算单元需要读取逻辑地址为A的数据时,先从高速缓存单元中进行查找,由于能够查找到逻辑地址为A的数据(即数据1),则该神经网络运算单元直接读取数据1。当某一神经网络运算单元需要读取逻辑地址为F的数据时,先从高速缓存单元中进行查找,由于高速缓存单元中未存储有逻辑地址为F的数据,即查找不到逻辑地址F,则该神经网络运算单元会从外部存储单元中读取逻辑地址为F的数据,并将逻辑地址F及其对应的数据更新至高速缓存单元中(即覆盖逻辑地址A-E中任一项),以便后续进一步读取调用。通过上述方式,可以有效减少各个神经网络运算单元读取数据时对外部存储单元的访问,有效减少带宽。
在实际应用过程中,对于待读取数据的查找,既可以是根据待读取数据的逻辑地址在高速缓存单元中的所有高速缓存行中进行查找,也可以是根据待读取数据的逻辑地址在高速缓存单元中的一个或多个神经网络运算单元对应的高速缓存行中进行查找,采用前者的优点在于查找面广,查到相应数据的概率较高,但是存在着查找速度慢的缺点;采用后者的优点在于查找速度快,但是存在着查找范围小,不容易查找到对应数据的缺点。
综合以上两者的优缺点,在本实施方式中,所述根据待读取数据的逻辑地址从高速缓存行中查找待读取数据包括:根据待读取数据的逻辑地址从当前神经网络运算单元对应的高速缓存行、以及上一神经网络运算单元对应的高速缓存行中查找待读取数据。在神经网络计算过程中,某一神经网络运算单元进行计算需要读取的数据一般为该神经网络运算单元计算的中间的数据(存储于当前神经网络运算单元对应的高速缓存行中)、以及上一神经网络运算单元计算的结果数据(存储于上一神经网络运算单元对应的高速缓存行中),将待读取数据的查找范围限缩在当前神经网络运算单元对应的高速缓存行、以及上一神经网络运算单元对应的高速缓存行中,在保证待读取数据查找速度的前提下,又能够保证神经网络运算单元能够读取到所需的数据。例如对于激活运算层而言,卷积运算层为其上一神经网络运算单元,当激活运算层需要进行读取数据时,则从激活运算层对应的高速缓存行、以及卷积运算层对应的高速缓存中查找待读取数据。
划分信息可以预先存储于划分信息存储单元102中,并间隔相应时间随着神经网络运算单元访问外存(即外部存储单元,DDR)的吞吐量变化而更新。在本实施方式中,所述装置还包括多个统计单元106,每一神经网络运算单元对应与一个统计单元106连接,每一统计单元106还与处理器101连接。划分信息的初始值可以采用以下方式进行确定:
所述处理器101用于接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元。
初始化指令可以为所述装置的启动指令。高速缓存单元(以下简称“cache”)设置于神经网络单元与外部存储单元(以下简称“DDR”)之间,当其处于工作状态时,处理器会将DDR中的数据存储于cache,以便神经网络单元直接从cache中读取数据,减少神经网络单元对DDR的数据访问,从而减少对带宽的占用。而在装置初始化阶段,需要统计各个神经网络运算单元对外存的数据访问比例,因而处理器需要先控制cache停止工作,使得各个神经网络运算单元直接访问外部存储单元,进而统计各个神经网络运算单元对应的外存数据访问比例。
当神经网络单元工作次数达到第一预设次数后,各个统计单元106用于统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;某一神经网络运算单元对应的外存数据访问比例为该神经网络运算单元访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例。第一预设次数可以根据需要进行调整设置。
神经网络是以层为单位进行堆叠设置的,包括一个以上神经网络运算层,每一神经网络运算层包括多个神经网络运算单元,每一神经网络运算层所包含的神经网络运算单元根据计算流程进行划分类型,依次可以分为神经元输入层(即神经元输入单元)、卷积运算层(即卷积运算单元)、激活运算层(即激活运算单元)、池化层(即池化单元)、全连接层(即全连接单元)。对于一个神经网络而言,各个类型的神经网络运算单元的数量往往为多个,如果对于相同类型的各个神经网络运算单元(如第一神经网络运算层中的池化层与第二神经网络运算层中的池化层)均设置统计单元,将增加统计的工作量和功耗。因而在某些实施例中,统计单元基于神经网络运算单元的类型,分别统计属于同一类型的所有神经网络运算单元的外存数据访问比例。
例如某一神经网络单元包括100个神经元输入层、200个卷积运算层、100个激活运算层、100个池化层以及500个全连接层,则只需设置5个统计单元,分别用于统计神经元输入层、卷积运算层、激活运算层、池化层、全连接层对DDR数据吞吐量,并计算对应的外存数据访问比例。
例如100个神经元输入层在对外存进行访问时,分别经过同一个统计单元,以便该统计单元统计这100个神经元输入层的数据吞吐量,进而计算出神经元输入层对应的外存数据访问比例。再比如200个卷积运算层在对外存进行访问时,分别经过同一个统计单元,以便该统计单元统计这200个卷积运算层的数据吞吐量,进而计算出卷积运算层对应的外存数据访问比例。神经网络运算单元为其他类型时,方法类似,此处不再赘述。
在本实施方式中,不同类型的神经网络运算单元需要从DDR中读取或写入的数据也是不一样的,具体如下:
对于神经元输入层而言,其需要从外存(即DDR)中读取神经元输入的特征数据;
对于卷积运算层而言,其需要从外存中读取卷积核数据、连接权重数据,并向外存回写卷积运算结果;
对于激活运算层而言,其需要从外存中读取前级卷积运算结果数据、激活函数类型信息(比如sigmoid函数或ReLU函数),并向外存回写激活运算结果;
对于池化层而言,其需要从外存读取激活运算结果、池化处理类型信息(比如是最大池化或者平均池化),并向外存回写池化运算结果;
对于全连接层而言,其需要从外存读取池化运算结果、连接权值,并向外存回写全连接运算结果。
所述处理器101用于根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;而后控制高速缓存单元开始工作,并根据划分信息分配相应比例数量的高速缓存行给对应的神经网络运算单元。
某一类型的神经网络运算单元的外存数据访问比例等于该类型的所有神经网络运算单元在预设时间段内(即神经网络单元工作次数达到第一预设次数)访问外存的数据吞吐量占所有类型的神经网络运算单元在预设时间段内的数据吞吐量的比值。优选的,处理器生成的初始的划分信息基于各个类型的神经网络运算单元的外存数据访问比例。划分信息中记载了各个类型的神经网络运算单元对应的分配比例,例如cache的总大小为2000M,卷积运算层的外存数据访问比例为20%,那么处理器会分配大小为400M的cache缓存空间,即所有卷积运算层共用这400M的cache缓存空间进行卷积运算。在计算过程中,处理器会将外存中的卷积核数据、连接权重数据存储于400M cache空间中,以便卷积运算层调用读取,同时也会将卷积运算结果通过cache回写至外存中。当神经网络运算单元的类型为其他类型时(如池化层、全连接层),cache缓存空间的分配方式同理可得此处不再赘述。
在某些实施例中,当神经网络单元工作次数达到第二预设次数后,所述处理器用于控制高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元中存储的数据;各个统计单元用于再次统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;所述处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
所述第二预设次数的数值可以与第一预设次数相同,也可以不同,优选的,两者数值相同,即每当神经网络单元工作一定次数后,处理器就会控制高速缓存单元停止工作,以便重新确定当前各个类型的神经网络运算单元对外存的数据访问占比,并重新生成划分信息,动态分配高速缓存资源。这样,使得高速缓存行的分配始终处于最合理的状态,有效减少了神经网络单元工作过程中对外存访问的数据量,减少了带宽的占用。
在某些实施例中,处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息包括:处理器用于根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络运算单元的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络运算单元。
优选的,所述预设数量为1,即处理器会将外存数据访问比例最小的1个类型的高速缓存行按照预设梯度分配给外存数据访问比例最大的1个类型的神经网络运算单元。例如在神经网络单元工作预设次数后,统计单元统计到这个时间段,卷积运算层的外存访问比例为最高,数值为35%,激活运算层的外存访问比例最低,数值为10%(此时高速缓存单元处于停止工作状态,神经网络单元直接访问外存获取数据),而当前分配给卷积运算层的高速缓存行占比只有25%,分配给激活运算层的高速缓存行占比为15%,假设预设梯度为10%。那么当处理器恢复高速缓存单元工作后,将从激活运算层的高速缓存资源中挪出10%给卷积运算层,即经过调整后分配占比35%的高速缓存行给卷积运算层,分配占比5%的高速缓存行给激活运算层。
当然,在另一些实施例中,在重新确定各个类型的神经网络运算单元的高速缓存行的分配比例时,也可以根据统计单元重新统计的外存访问比例对划分信息重新进行调整更新。例如统计出当前卷积运算层的外存访问比例为20%,则将划分信息中卷积运算层对应的高速缓存行分配比例调整为20%,依次对各个类型的神经网络运算单元的分别比例进行更新调整,并生成新的划分信息。而后处理器可以读取新生成的划分信息,并根据新生成的划分信息重新分配各个类型的神经网络运算单元对应的高速缓存资源。
在本实施方式中,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例;处理器根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元包括:处理器根据划分信息,按照划分信息中各个神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给对应的神经网络运算单元。
例如高速缓存单元总共有100条L1cache line和2000条L2cache line,激活运算层对外存的数据访问占比是20%,那么处理器将分配20条(100x20%)L1cache line和400条(2000x20%)L2cache line给激活运算层使用。当各类型的神经网络运算单元的高速缓存行均分配完毕后,处理器会将划分信息存储至划分信息存储单元中。
某一神经网络运算单元在写入数据时,该神经网络运算单元会优先将待写入数据写入至该类型的神经网络运算单元对应的第一高速缓存行中,在对应的第一高速缓存行写满的情况下,再将待写入数据写入至该类型的神经网络运算单元对应的第二高速缓存行中,在第二高速缓存行写满的情况下(如果高速缓存行的数量大于两级,则继续写入对应的下一级的高速缓存行中),再将待写入数据写入至外部存储单元中。
某一神经网络运算单元在读取数据时,该神经网络运算单元会根据待读取数据的逻辑地址优先从第一高速缓存行中查找数据,在第一高速缓存行中未查找到该逻辑地址时,则再根据待读取数据的逻辑地址从第二高速缓存行中查找数据,在第二高速缓存行也未查到该逻辑地址的情况下(如果高速缓存行的数量大于两级,则继续根据逻辑地址从下一级的高速缓存行中进行查找),再从外部存储单元中读取该逻辑地址对应的数据。如果在第二高速缓存行查到该逻辑地址,则神经网络运算单元从第二高速缓存行中读取数据,并将读取到的数据和其对应的逻辑地址更新至第一高速缓存行中,以便下一次读取操作能够快速查询到该数据。
在某些实施例中,各个神经网络运算单元在其对应的高速缓存行写满且向外部存储单元中写入的数据量超过预设写入数据量后,清空神经网络运算单元对应的高速缓存行中的写入数据。预设写入数据量的大小可以根据实际需要进行设定。当某一神经网络运算单元在其对应的高速缓存行写满且向外部存储单元中写入的数据量超过预设写入数据量,说明该神经网络运算单元在其对应的高速缓存行的存储的数据再被神经网络运算单元需要的概率较低,为了避免高速缓存行长期写满导致写入效率下降,因而会对神经网络运算单元对应的高速缓存行中的写入数据进行清空,以便新的写入数据能够写入。
如图2所示,图2为本发明一实施方式涉及的基于深度学习的多级cache共享的方法的流程图。所述方法应用于基于深度学习的多级cache共享的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括一个以上神经网络运算层,每一神经网络运算层包括多个神经网络运算单元;所述神经网络单元与高速缓存单元连接,所述处理器分别与高速缓存单元、划分信息存储单元连接;所述方法包括以下步骤:
首先进入步骤S201处理器读取划分信息存储单元中的划分信息,并根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元;所述划分信息记录有各个神经网络运算单元与需要划分给该神经网络运算单元的高速缓存行数量的对应关系;
步骤S201后可以进入步骤S202各个神经网络运算单元在需要写入数据时,优先将数据写入至其对应的高速缓存行中,并在其对应的高速缓存行写满后,再向外部存储单元写入数据;
步骤S201后也可以进入步骤S203各个神经网络运算单元在需要读取数据时,先根据待读取数据的逻辑地址从高速缓存行中查找待读取数据,并在高速缓存行中未查找到待读取数据的逻辑地址后,根据所述逻辑地址从外部存储单元中读取数据,以及将从外部存储单元读取到的数据与对应的逻辑地址更新到高速缓存单元中。
在某些实施例中,所述装置还包括多个统计单元,每一神经网络运算单元对应与一个统计单元连接,每一统计单元还与处理器连接。如图3所示,为本发明一实施方式涉及的基于深度学习的多级cache共享的方法的流程图。所述方法包括:
首先进入步骤S301处理器接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元;
而后进入步骤S302当神经网络单元工作次数达到第一预设次数后,各个统计单元统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;某一神经网络运算单元对应的外存数据访问比例为该神经网络运算单元访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
而后进入步骤S303处理器根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;而后控制高速缓存单元开始工作,并根据划分信息分配相应比例数量的高速缓存行给对应的神经网络运算单元。
在某些实施例中,所述方法包括:
当神经网络单元工作次数达到第二预设次数后,处理器控制高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元中存储的数据;
各个统计单元再次统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
在某些实施例中,处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息包括:
处理器根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络运算单元的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络运算单元。
在某些实施例中,所述方法包括:
统计单元基于神经网络运算单元的类型,分别统计属于同一类型的所有神经网络运算单元的外存数据访问比例;所述神经网络运算单元的类型包括神经元输入单元、卷积运算单元、激活运算单元、池化单元、全连接单元。
在某些实施例中,所述方法包括:
各个神经网络运算单元在其对应的高速缓存行写满且向外部存储单元中写入的数据量超过预设写入数据量后,清空神经网络运算单元对应的高速缓存行中的写入数据。
在某些实施例中,根据待读取数据的逻辑地址从高速缓存行中查找待读取数据包括:
根据待读取数据的逻辑地址从当前神经网络运算单元对应的高速缓存行、以及上一神经网络运算单元对应的高速缓存行中查找待读取数据。
在某些实施例中,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元包括:处理器根据划分信息,按照划分信息中各个神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给对应的神经网络运算单元。
本发明提供了一种基于深度学习的多级cache共享的方法和装置,所述装置包括处理器、高速缓存单元、多个神经网络运算单元,所述高速缓存单元包括多个高速缓存行;处理器通过划分信息来分配各个神经网络运算单元对应的高速缓存行数量,使得有限的高速缓存空间得到更加合理的分配,有效提高了神经网络计算效率。此外,神经网络运算单元在写入数据时,优先将数据写入至其对应的高速缓存行中;在需要读取数据时,优先从高速缓存行中查找待读取数据,使得神经网络大量数据访问都在芯片内部完成,减少了神经网络对外存的数据访问,也减少了对外存的带宽需求,最终达到降低带宽的目的。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

Claims (16)

1.一种基于深度学习的多级cache共享的装置,其特征在于,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括一个以上神经网络运算层,每一神经网络运算层包括多个神经网络运算单元;所述神经网络单元与高速缓存单元连接,所述处理器分别与高速缓存单元、划分信息存储单元连接;
所述处理器用于读取划分信息存储单元中的划分信息,并根据划分信息分配相应数量的高速缓存行给相同类型的所有神经网络运算单元;所述划分信息记录有各个类型的所有神经网络运算单元与需要划分给该类型的神经网络运算单元的高速缓存行数量的对应关系;
各个神经网络运算单元在需要写入数据时,优先将数据写入至其对应的高速缓存行中,并在其对应的高速缓存行写满后,再向外部存储单元写入数据;
各个神经网络运算单元在需要读取数据时,先根据待读取数据的逻辑地址从高速缓存行中查找待读取数据,并在高速缓存行中未查找到待读取数据的逻辑地址后,根据所述逻辑地址从外部存储单元中读取数据,以及将从外部存储单元读取到的数据与对应的逻辑地址更新到高速缓存单元中。
2.如权利要求1所述的基于深度学习的多级cache共享的装置,其特征在于,所述装置还包括多个统计单元,每一神经网络运算单元对应与一个统计单元连接,每一统计单元还与处理器连接;
所述处理器用于接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元;
当神经网络单元工作次数达到第一预设次数后,各个统计单元用于统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;某一神经网络运算单元对应的外存数据访问比例为该神经网络运算单元访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
所述处理器用于根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;而后控制高速缓存单元开始工作,并根据划分信息分配相应比例数量的高速缓存行给对应的神经网络运算单元。
3.如权利要求2所述的基于深度学习的多级cache共享的装置,其特征在于:
当神经网络单元工作次数达到第二预设次数后,所述处理器用于控制高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元中存储的数据;
各个统计单元用于再次统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;所述处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
4.如权利要求3所述的基于深度学习的多级cache共享的装置,其特征在于,处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息包括:
处理器用于根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络运算单元的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络运算单元。
5.如权利要求2所述的基于深度学习的多级cache共享的装置,其特征在于,统计单元基于神经网络运算单元的类型,分别统计属于同一类型的所有神经网络运算单元的外存数据访问比例;所述神经网络运算单元的类型包括神经元输入单元、卷积运算单元、激活运算单元、池化单元、全连接单元。
6.如权利要求1所述的基于深度学习的多级cache共享的装置,其特征在于,各个神经网络运算单元在其对应的高速缓存行写满且向外部存储单元中写入的数据量超过预设写入数据量后,清空神经网络运算单元对应的高速缓存行中的写入数据。
7.如权利要求1所述的基于深度学习的多级cache共享的装置,其特征在于,根据待读取数据的逻辑地址从高速缓存行中查找待读取数据包括:
根据待读取数据的逻辑地址从当前神经网络运算单元对应的高速缓存行、以及上一神经网络运算单元对应的高速缓存行中查找待读取数据。
8.如权利要求1所述的基于深度学习的多级cache共享的装置,其特征在于,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元包括:处理器根据划分信息,按照划分信息中各个神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给对应的神经网络运算单元。
9.一种基于深度学习的多级cache共享的方法,其特征在于,所述方法应用于基于深度学习的多级cache共享的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括一个以上神经网络运算层,每一神经网络运算层包括多个神经网络运算单元;所述神经网络单元与高速缓存单元连接,所述处理器分别与高速缓存单元、划分信息存储单元连接;所述方法包括以下步骤:
处理器读取划分信息存储单元中的划分信息,并根据划分信息分配相应数量的高速缓存行给相同类型的所有神经网络运算单元;所述划分信息记录有各个类型的所有神经网络运算单元与需要划分给该类型的神经网络运算单元的高速缓存行数量的对应关系;
各个神经网络运算单元在需要写入数据时,优先将数据写入至其对应的高速缓存行中,并在其对应的高速缓存行写满后,再向外部存储单元写入数据;
各个神经网络运算单元在需要读取数据时,先根据待读取数据的逻辑地址从高速缓存行中查找待读取数据,并在高速缓存行中未查找到待读取数据的逻辑地址后,根据所述逻辑地址从外部存储单元中读取数据,以及将从外部存储单元读取到的数据与对应的逻辑地址更新到高速缓存单元中。
10.如权利要求9所述的基于深度学习的多级cache共享的方法,其特征在于,所述装置还包括多个统计单元,每一神经网络运算单元对应与一个统计单元连接,每一统计单元还与处理器连接;所述方法包括:
处理器接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元;
当神经网络单元工作次数达到第一预设次数后,各个统计单元统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;某一神经网络运算单元对应的外存数据访问比例为该神经网络运算单元访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
处理器根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;而后控制高速缓存单元开始工作,并根据划分信息分配相应比例数量的高速缓存行给对应的神经网络运算单元。
11.如权利要求10所述的基于深度学习的多级cache共享的方法,其特征在于,所述方法包括:
当神经网络单元工作次数达到第二预设次数后,处理器控制高速缓存单元停止工作,以使得各个神经网络运算单元直接访问外部存储单元中存储的数据;
各个统计单元再次统计对应的神经网络运算单元的外存数据访问比例,并将其发送至处理器;处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
12.如权利要求11所述的基于深度学习的多级cache共享的方法,其特征在于,处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息包括:
处理器根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络运算单元的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络运算单元。
13.如权利要求10所述的基于深度学习的多级cache共享的方法,其特征在于,所述方法包括:
统计单元基于神经网络运算单元的类型,分别统计属于同一类型的所有神经网络运算单元的外存数据访问比例;所述神经网络运算单元的类型包括神经元输入单元、卷积运算单元、激活运算单元、池化单元、全连接单元。
14.如权利要求9所述的基于深度学习的多级cache共享的方法,其特征在于,所述方法包括:
各个神经网络运算单元在其对应的高速缓存行写满且向外部存储单元中写入的数据量超过预设写入数据量后,清空神经网络运算单元对应的高速缓存行中的写入数据。
15.如权利要求9所述的基于深度学习的多级cache共享的方法,其特征在于,根据待读取数据的逻辑地址从高速缓存行中查找待读取数据包括:
根据待读取数据的逻辑地址从当前神经网络运算单元对应的高速缓存行、以及上一神经网络运算单元对应的高速缓存行中查找待读取数据。
16.如权利要求9所述的基于深度学习的多级cache共享的方法,其特征在于,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器根据划分信息分配相应数量的高速缓存行给对应的神经网络运算单元包括:处理器根据划分信息,按照划分信息中各个神经网络运算单元对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给对应的神经网络运算单元。
CN201810453695.7A 2018-05-14 2018-05-14 一种基于深度学习的多级cache共享的方法和装置 Active CN108647155B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810453695.7A CN108647155B (zh) 2018-05-14 2018-05-14 一种基于深度学习的多级cache共享的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810453695.7A CN108647155B (zh) 2018-05-14 2018-05-14 一种基于深度学习的多级cache共享的方法和装置

Publications (2)

Publication Number Publication Date
CN108647155A CN108647155A (zh) 2018-10-12
CN108647155B true CN108647155B (zh) 2020-08-21

Family

ID=63755089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810453695.7A Active CN108647155B (zh) 2018-05-14 2018-05-14 一种基于深度学习的多级cache共享的方法和装置

Country Status (1)

Country Link
CN (1) CN108647155B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112447202A (zh) * 2019-09-03 2021-03-05 芯盟科技有限公司 神经网络智能芯片及其形成方法
CN112860597B (zh) * 2019-11-27 2023-07-21 珠海格力电器股份有限公司 一种神经网络运算的系统、方法、装置及存储介质
CN111078589B (zh) * 2019-12-27 2023-04-11 深圳鲲云信息科技有限公司 一种应用于深度学习计算的数据读取系统、方法及芯片
CN112799726B (zh) * 2021-01-26 2024-01-30 上海寒武纪信息科技有限公司 数据处理装置、方法及相关产品
CN116368475A (zh) * 2021-10-27 2023-06-30 华为技术有限公司 数据处理装置及神经网络处理器
CN115334013B (zh) * 2022-08-12 2024-01-23 北京天融信网络安全技术有限公司 一种流量统计方法、网卡及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法
CN105637541A (zh) * 2013-10-11 2016-06-01 高通股份有限公司 用于神经模拟器的共享存储器架构
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107341544A (zh) * 2017-06-30 2017-11-10 清华大学 一种基于可分割阵列的可重构加速器及其实现方法
CN107783840A (zh) * 2017-10-27 2018-03-09 福州瑞芯微电子股份有限公司 一种分布式多层深度学习资源分配方法和装置
CN107800572A (zh) * 2017-10-27 2018-03-13 福州瑞芯微电子股份有限公司 一种基于神经网络升级设备的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8965819B2 (en) * 2010-08-16 2015-02-24 Oracle International Corporation System and method for effective caching using neural networks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105637541A (zh) * 2013-10-11 2016-06-01 高通股份有限公司 用于神经模拟器的共享存储器架构
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107341544A (zh) * 2017-06-30 2017-11-10 清华大学 一种基于可分割阵列的可重构加速器及其实现方法
CN107783840A (zh) * 2017-10-27 2018-03-09 福州瑞芯微电子股份有限公司 一种分布式多层深度学习资源分配方法和装置
CN107800572A (zh) * 2017-10-27 2018-03-13 福州瑞芯微电子股份有限公司 一种基于神经网络升级设备的方法和装置

Also Published As

Publication number Publication date
CN108647155A (zh) 2018-10-12

Similar Documents

Publication Publication Date Title
CN108647155B (zh) 一种基于深度学习的多级cache共享的方法和装置
US10387315B2 (en) Region migration cache
CN108520296B (zh) 一种基于深度学习芯片动态cache分配的方法和装置
US9104581B2 (en) eDRAM refresh in a high performance cache architecture
US5537635A (en) Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
CN1258146C (zh) 动态分配关联资源的系统和方法
US8244972B2 (en) Optimizing EDRAM refresh rates in a high performance cache architecture
CN105359103A (zh) 一种存储器资源优化方法和装置
CN108845958B (zh) 一种交织器映射和动态内存管理系统及方法
KR20210108749A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
US11222258B2 (en) Load balancing for memory channel controllers
WO2018022175A1 (en) Techniques to allocate regions of a multi level, multitechnology system memory to appropriate memory access initiators
US20190303032A1 (en) Memory system, operating method thereof and computing system inclduing the memory system
US11429299B2 (en) System and method for managing conversion of low-locality data into high-locality data
CN113138851B (zh) 一种数据管理方法、相关装置及系统
US11561834B2 (en) Methods and systems for adaptive memory-resource management
CN113311994A (zh) 一种基于高并发的数据缓存方法
US10339052B2 (en) Massive access request for out-of-core textures by a parallel processor with limited memory
KR20210106635A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
KR20230015334A (ko) 메모리에서의 추론
US20140310461A1 (en) Optimized and parallel processing methods with application to query evaluation
CN110392093A (zh) 具有可定制的软件高速缓存级别的数据中心环境
US11442643B2 (en) System and method for efficiently converting low-locality data into high-locality data
US20220300331A1 (en) Method and apparatus for memory integrated management of cluster system
EP4160423B1 (en) Memory device, memory device operating method, and electronic device including memory device

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Applicant after: Ruixin Microelectronics Co., Ltd

Address before: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Applicant before: Fuzhou Rockchips Electronics Co.,Ltd.

GR01 Patent grant
GR01 Patent grant