CN108520296B - 一种基于深度学习芯片动态cache分配的方法和装置 - Google Patents
一种基于深度学习芯片动态cache分配的方法和装置 Download PDFInfo
- Publication number
- CN108520296B CN108520296B CN201810229026.1A CN201810229026A CN108520296B CN 108520296 B CN108520296 B CN 108520296B CN 201810229026 A CN201810229026 A CN 201810229026A CN 108520296 B CN108520296 B CN 108520296B
- Authority
- CN
- China
- Prior art keywords
- neural network
- unit
- cache
- processor
- external memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于深度学习芯片动态cache分配的方法和装置,所述装置通过设计高速缓存单元,使得神经网络大量数据访问都在芯片内部完成,减少了神经网络对外存的数据访问,也减少了对外存的带宽需求,最终达到降低带宽的目的。同时,对于高速缓存单元占比的分配根据各个神经网络子层对外存的数据吞吐量决定,使得有限的高速缓存空间得到更加合理的分配,有效提高了神经网络计算效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于深度学习芯片动态cache分配的方法和装置。
背景技术
随着人工智能技术的快速发展,人们对人工智能设备的性能需求也越来越高。当前,制约深度学习神经网络设备快速发展的一大因素就是终端神经网络芯片对带宽的需求太大,同时访问外存的速度过慢也极大限制了神经网络的运算速度。
神经网络结构和运行方式需要大量的数据搬移,比如神经元、权值、阈值、卷积核数据读取,以及每层神经网络的中间运算结果、反馈训练时的误差计算和回写,大量的数据频繁转移导致已有的SOC芯片的存储结构不堪重负,带宽有限也成为深度学习神经网络的性能瓶颈,使得已有的SOC芯片结构很难满足大规模神经网络电路的训练和使用。
发明内容
为此,需要提供一种基于深度学习芯片动态cache分配的技术方案,用以解决神经网络结构在使用过程中,由于数据频繁搬移导致芯片存储结构不堪重负,无法满足大规模计算需求的问题。
为实现上述目的,发明人提供了一种基于深度学习芯片动态cache分配的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元、统计单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括多个神经网络子层,每一神经网络子层对应一个统计单元;所述神经网络单元与高速缓存单元连接,所述高速缓存单元分别与处理器、统计单元连接;所述处理器分别与划分信息存储单元、统计单元连接,所述统计单元与外部存储单元连接;
所述处理器用于接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
当神经网络单元工作次数达到第一预设次数后,各个统计单元用于统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;某一神经网络子层对应的外存数据访问比例为该神经网络子层访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
所述处理器用于根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;以及控制高速缓存单元开始工作,并根据划分信息分配高速缓存行给对应的神经网络子层,以使得各个神经网络子层通过其对应的高速缓存行读取数据。
进一步地,当神经网络单元工作次数达到第二预设次数后,所述处理器用于控制高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
各个统计单元用于再次统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;所述处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
进一步地,“处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息”包括:
处理器用于根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络子层的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络子层。
进一步地,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器用于根据划分信息分配高速缓存行给对应的神经网络子层包括:处理器用于根据划分信息,按照划分信息中神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给神经网络子层。
进一步地,统计单元用于基于神经网络子层的类型,分别统计属于同一类型的神经网络子层的外存数据访问比例;所述神经网络子层的类型包括神经元输入层、卷积运算层、激活运算层、池化层、全连接层。
发明人还提供了一种基于深度学习芯片动态cache分配的方法,所述方法应用于基于深度学习芯片动态cache分配的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元、统计单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括多个神经网络子层,每一神经网络子层对应一个统计单元;所述神经网络单元与高速缓存单元连接,所述高速缓存单元分别与处理器、统计单元连接;所述处理器分别与划分信息存储单元、统计单元连接,所述统计单元与外部存储单元连接;所述方法包括以下步骤:
处理器接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
当神经网络单元工作次数达到第一预设次数后,各个统计单元统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;某一神经网络子层对应的外存数据访问比例为该神经网络子层访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
处理器根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;以及控制高速缓存单元开始工作,并根据划分信息分配高速缓存行给对应的神经网络子层,以使得各个神经网络子层通过其对应的高速缓存行读取数据。
进一步地,所述方法还包括:
当神经网络单元工作次数达到第二预设次数后,处理器控制高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
各个统计单元再次统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
进一步地,“处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息”包括:
处理器根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络子层的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络子层。
进一步地,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器根据划分信息分配高速缓存行给对应的神经网络子层包括:
处理器根据划分信息,按照划分信息中神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给神经网络子层。
进一步地,所述方法包括:
统计单元基于神经网络子层的类型,分别统计属于同一类型的神经网络子层的外存数据访问比例;所述神经网络子层的类型包括神经元输入层、卷积运算层、激活运算层、池化层、全连接层。
本发明提供了一种基于深度学习芯片动态cache分配的方法和装置,所述装置通过设计高速缓存单元,使得神经网络大量数据访问都在芯片内部完成,减少了神经网络对外存的数据访问,也减少了对外存的带宽需求,最终达到降低带宽的目的。同时,对于高速缓存单元占比的分配根据各个神经网络子层对外存的数据吞吐量决定,使得有限的高速缓存空间得到更加合理的分配,有效提高了神经网络计算效率。
附图说明
图1为本发明一实施方式涉及的基于深度学习芯片动态cache分配的装置的结构示意图;
图2为本发明一实施方式涉及的基于深度学习芯片动态cache分配的方法的流程图。
附图标记说明:
101、处理器;
102、划分信息存储单元;
103、高速缓存单元;113、第一高速缓存行;123、第二高速缓存行。
104、外部存储单元;
105、神经网络单元;
106、统计单元;
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本发明一实施方式涉及的基于深度学习芯片动态cache分配的装置的结构示意图。所述装置包括处理器101、划分信息存储单元102、高速缓存单元103、外部存储单元104、神经网络单元105、统计单元106;所述高速缓存单元103包括多个高速缓存行;所述神经网络单元105包括多个神经网络子层,每一神经网络子层对应一个统计单元106;所述神经网络单元105与高速缓存单元103连接,所述高速缓存单元103分别与处理器101、统计单元106连接;所述处理器101分别与划分信息存储单元102、统计单元106连接,所述统计单元106与外部存储单元104连接。
在本实施方式中,高速缓存单元为Cache存储器,即高速缓冲存储器;所述外部存储单元为DDR,即内存,所述处理器为中央处理器,即CPU。高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,是一种规模较小但速度很高的存储器,通常由SRAM(Static Random Access Memory,静态存储器)组成。
由于CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
优选的,Cache又分为L1Cache(一级缓存,即本发明后面提及的“第一高速缓存行”)和L2 Cache(二级缓存,即本发明后面提及的“第二高速缓存行”),L1Cache主要是集成在CPU内部,而L2 Cache集成在主板上或是CPU上。L1Cache相对于L2 Cache而言,容量较小但是速度更快。对于cache而言,其通常是以cache line(即高速缓存行)为单位来存储数据,当cache包括不同级缓存时(如L1Cache和L2 Cache),对于cache资源的分配包括对各个不同级的高速缓存行的分配。在另一些实施例中,cache还可以根据实际被设计为只包含一级缓存或者包含多于两级缓存。
所述处理器用于接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据。
初始化指令可以为所述装置的启动指令。高速缓存单元(以下简称“cache”)设置于神经网络单元与外部存储单元(以下简称“DDR”)之间,当其处于工作状态时,处理器会将DDR中的数据存储于cache,以便神经网络单元直接从cache中读取数据,减少神经网络单元对DDR的数据访问,从而减少对带宽的占用。而在装置初始化阶段,需要统计各个神经网络子层对外存的数据访问比例,因而处理器需要先控制cache停止工作,使得各个神经网络子层直接访问外部存储单元中存储的数据。
当神经网络单元工作次数达到第一预设次数后,各个统计单元用于统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;某一神经网络子层对应的外存数据访问比例为该神经网络子层访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例。第一预设次数可以根据需要进行调整设置。
神经网络是以层为单位进行堆叠设置的,在本实施方式中,所述神经网络子层的类型包括神经元输入层、卷积运算层、激活运算层、池化层、全连接层。对于一个神经网络而言,每一种类型的神经网络子层数量往往为多个,如果对于每一层神经网络子层均设置统计单元,将增加统计的工作量和功耗。因而在某些实施例中,统计单元用于基于神经网络子层的类型,分别统计属于同一类型的神经网络子层的外存数据访问比例。例如某一神经网络单元包括100个神经元输入层、200个卷积运算层、100个激活运算层、100个池化层以及500个全连接层,则只需设置5个统计单元,分别用于统计神经元输入层、卷积运算层、激活运算层、池化层、全连接层对DDR数据吞吐量,并计算对应的外存数据访问比例。
例如100个神经元输入层在对外存进行访问时,分别经过同一个统计单元,以便该统计单元统计这100个神经元输入层的数据吞吐量,进而计算出神经元输入层对应的外存数据访问比例。再比如200个卷积运算层在对外存进行访问时,分别经过同一个统计单元,以便该统计单元统计这200个卷积运算层的数据吞吐量,进而计算出卷积运算层对应的外存数据访问比例。神经网络子层为其他类型时,方法类似,此处不再赘述。
在本实施方式中,不同类型的神经网络子层需要从DDR中获取或写入的数据也是不一样的,具体如下:
对于神经元输入层而言,其需要从外存(即DDR)中读取神经元输入的特征数据;
对于卷积运算层而言,其需要从外存中读取卷积核数据、连接权重数据,并向外存回写卷积运算结果;
对于激活运算层而言,其需要从外存中读取前级卷积运算结果数据、激活函数类型信息(比如sigmoid函数或ReLU函数),并向外存回写激活运算结果;
对于池化层而言,其需要从外存读取激活运算结果、池化处理类型信息(比如是最大池化或者平均池化),并向外存回写池化运算结果;
对于全连接层而言,其需要从外存读取池化运算结果、连接权值,并向外存回写全连接运算结果。
所述处理器用于根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;以及控制高速缓存单元开始工作,并根据划分信息分配高速缓存行给对应的神经网络子层,以使得各个神经网络子层通过其对应的高速缓存行读取数据。
某一类型的神经网络子层的外存数据访问比例等于该类型的所有神经网络子层在预设时间段内(即神经网络单元工作次数达到第一预设次数)访问外存的数据吞吐量占所有类型的神经网络子层在预设时间段内的数据吞吐量的比值。优选的,处理器生成的初始的划分信息基于各个类型的神经网络子层的外存数据访问比例。划分信息中记载了各个类型的神经网络子层对应的分配比例,例如cache的总大小为2000M,卷积运算层的外存数据访问比例为20%,那么处理器会分配大小为400M的cache缓存空间,即所有卷积运算层共用这400M的cache缓存空间进行卷积运算。在计算过程中,处理器会将外存中的卷积核数据、连接权重数据存储于400M cache空间中,以便卷积运算层调用读取,同时也会将卷积运算结果通过cache回写至外存中。当神经网络子层的类型为其他类型时(如池化层、全连接层),cache缓存空间的分配方式同理可得此处不再赘述。
进一步地,所述高速缓存行包括第一高速缓存行113和第二高速缓存行123,所述划分信息包括神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例;处理器用于根据划分信息分配高速缓存行给对应的神经网络子层包括:处理器用于根据划分信息,按照划分信息中神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给神经网络子层。
例如高速缓存单元总共有100条L1 cache line和2000条L2 cache line,激活运算层对外存的数据访问占比是20%,那么处理器将分配20条(100x20%)L1 cache line和400条(2000x20%)L2 cache line给激活运算层使用。当各类型的神经网络子层的高速缓存行均分配完毕后,处理器会将划分信息存储至划分信息存储单元中
在某些实施例中,当神经网络单元工作次数达到第二预设次数后,所述处理器用于控制高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;各个统计单元用于再次统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;所述处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
所述第二预设次数的数值可以与第一预设次数相同,也可以不同,优选的,两者数值相同,即每当神经网络单元工作一定次数后,处理器就会控制高速缓存单元停止工作,以便重新确定当前各个类型的神经网络子层对外存的数据访问占比,并重新生成划分信息,动态分配高速缓存资源。这样,使得高速缓存行的分配始终处于最合理的状态,有效减少了神经网络单元工作过程中对外存访问的数据量,减少了带宽的占用。
在某些实施例中,“处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息”包括:处理器用于根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络子层的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络子层。优选的,所述预设数量为1,即处理器会将外存数据访问比例最小的1个类型的高速缓存行按照预设梯度分配给外存数据访问比例最大的1个类型的神经网络子层。例如在神经网络单元工作预设次数后,统计单元统计到这个时间段,卷积运算层的外存访问比例为最高,数值为35%,激活运算层的外存访问比例最低,数值为10%(此时高速缓存单元处于停止工作状态,神经网络单元直接访问外存获取数据),而当前分配给卷积运算层的高速缓存行占比只有25%,分配给激活运算层的高速缓存行占比为15%,假设预设梯度为10%。那么当处理器恢复高速缓存单元工作后,将从激活运算层的高速缓存资源中挪出10%给卷积运算层,即经过调整后分配占比35%的高速缓存行给卷积运算层,分配占比5%的高速缓存行给激活运算层。
当然,在另一些实施例中,在重新确定各个类型的神经网络子层的高速缓存行的分配比例时,也可以根据统计单元重新统计的外存访问比例对划分信息重新进行调整更新。例如统计出当前卷积运算层的外存访问比例为20%,则将划分信息中卷积运算层对应的高速缓存行分配比例调整为20%,依次对各个类型的神经网络子层的分别比例进行更新调整,并生成新的划分信息。而后处理器可以读取新生成的划分信息,并根据新生成的划分信息重新分配各个类型的神经网络子层对应的高速缓存资源。
请参阅图2,为本发明一实施方式涉及的基于深度学习芯片动态cache分配的方法的流程图。
所述方法应用于基于深度学习芯片动态cache分配的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元、统计单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括多个神经网络子层,每一神经网络子层对应一个统计单元;所述神经网络单元与高速缓存单元连接,所述高速缓存单元分别与处理器、统计单元连接;所述处理器分别与划分信息存储单元、统计单元连接,所述统计单元与外部存储单元连接;所述方法包括以下步骤:
首先进入步骤S201处理器接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
而后进入步骤S202当神经网络单元工作次数达到第一预设次数后,各个统计单元统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;某一神经网络子层对应的外存数据访问比例为该神经网络子层访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
而后进入步骤S203处理器根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;以及控制高速缓存单元开始工作,并根据划分信息分配高速缓存行给对应的神经网络子层,以使得各个神经网络子层通过其对应的高速缓存行读取数据。
在某些实施例中,所述方法还包括:当神经网络单元工作次数达到第二预设次数后,处理器控制高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;各个统计单元再次统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。这样,可以实现对各个类型的神经网络子层的高速缓存资源的动态调整,有利于进一步减少神经网络单元运算过程中对外存数据的访问。
在某些实施例中,“处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息”包括:处理器根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络子层的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络子层。这样,可以使得高速缓存资源的分配更加合理,提高神经网络运算效率的同时,也减少了对外存的进一步访问。
在某些实施例中,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例。步骤处理器根据划分信息分配高速缓存行给对应的神经网络子层包括:处理器根据划分信息,按照划分信息中神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给神经网络子层。
在某些实施例中,所述方法包括:统计单元基于神经网络子层的类型,分别统计属于同一类型的神经网络子层的外存数据访问比例;所述神经网络子层的类型包括神经元输入层、卷积运算层、激活运算层、池化层、全连接层。
本发明提供了一种基于深度学习芯片动态cache分配的方法和装置,所述装置通过设计高速缓存单元,使得神经网络大量数据访问都在芯片内部完成,减少了神经网络对外存的数据访问,也减少了对外存的带宽需求,最终达到降低带宽的目的。同时,对于高速缓存单元占比的分配根据各个神经网络子层对外存的数据吞吐量决定,使得有限的高速缓存空间得到更加合理的分配,有效提高了神经网络计算效率。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
Claims (10)
1.一种基于深度学习芯片动态cache分配的装置,其特征在于,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元、统计单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括多个神经网络子层,每一神经网络子层对应一个统计单元;所述神经网络单元与高速缓存单元连接,所述高速缓存单元分别与处理器、统计单元连接;所述处理器分别与划分信息存储单元、统计单元连接,所述统计单元与外部存储单元连接;
所述处理器用于接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
当神经网络单元工作次数达到第一预设次数后,各个统计单元用于统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;某一神经网络子层对应的外存数据访问比例为该神经网络子层访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
所述处理器用于根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;以及控制高速缓存单元开始工作,并根据划分信息分配高速缓存行给对应的神经网络子层,以使得各个神经网络子层通过其对应的高速缓存行读取数据。
2.如权利要求1所述的基于深度学习芯片动态cache分配的装置,其特征在于:
当神经网络单元工作次数达到第二预设次数后,所述处理器用于控制高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
各个统计单元用于再次统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;所述处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
3.如权利要求1所述的基于深度学习芯片动态cache分配的装置,其特征在于,“处理器用于根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息”包括:
处理器用于根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络子层的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络子层。
4.如权利要求1所述的基于深度学习芯片动态cache分配的装置,其特征在于,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例;
处理器用于根据划分信息分配高速缓存行给对应的神经网络子层包括:处理器用于根据划分信息,按照划分信息中神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给神经网络子层。
5.如权利要求1所述的基于深度学习芯片动态cache分配的装置,其特征在于:
统计单元用于基于神经网络子层的类型,分别统计属于同一类型的神经网络子层的外存数据访问比例;所述神经网络子层的类型包括神经元输入层、卷积运算层、激活运算层、池化层、全连接层。
6.一种基于深度学习芯片动态cache分配的方法,其特征在于,所述方法应用于基于深度学习芯片动态cache分配的装置,所述装置包括处理器、划分信息存储单元、高速缓存单元、外部存储单元、神经网络单元、统计单元;所述高速缓存单元包括多个高速缓存行;所述神经网络单元包括多个神经网络子层,每一神经网络子层对应一个统计单元;所述神经网络单元与高速缓存单元连接,所述高速缓存单元分别与处理器、统计单元连接;所述处理器分别与划分信息存储单元、统计单元连接,所述统计单元与外部存储单元连接;所述方法包括以下步骤:
处理器接收初始化指令,控制所述高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
当神经网络单元工作次数达到第一预设次数后,各个统计单元统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;某一神经网络子层对应的外存数据访问比例为该神经网络子层访问外部存储单元的数据吞吐量占整个神经网络单元访问外部存储单元的数据吞吐量的比例;
处理器根据各个统计单元统计得到的外存数据访问比例,生成划分信息,并将所述划分信息存储于划分信息存储单元中;以及控制高速缓存单元开始工作,并根据划分信息分配高速缓存行给对应的神经网络子层,以使得各个神经网络子层通过其对应的高速缓存行读取数据。
7.如权利要求6所述的基于深度学习芯片动态cache分配的方法,其特征在于,所述方法还包括:
当神经网络单元工作次数达到第二预设次数后,处理器控制高速缓存单元停止工作,以使得各个神经网络子层直接访问外部存储单元中存储的数据;
各个统计单元再次统计对应的神经网络子层的外存数据访问比例,并将其发送至处理器;处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息,并将新的划分信息更新存储至划分信息存储单元中。
8.如权利要求6所述的基于深度学习芯片动态cache分配的方法,其特征在于,“处理器根据当前各个统计单元统计得到的外存数据访问比例,生成新的划分信息”包括:
处理器根据各个统计单元统计得到的外存数据访问比例的大小,将外存数据访问比例最小的预设数量个神经网络子层的高速缓存行按照预设梯度分配给外存数据访问比例最大的预设数量个神经网络子层。
9.如权利要求6所述的基于深度学习芯片动态cache分配的方法,其特征在于,所述高速缓存行包括第一高速缓存行和第二高速缓存行,所述划分信息包括神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例;
步骤处理器根据划分信息分配高速缓存行给对应的神经网络子层包括:
处理器根据划分信息,按照划分信息中神经网络子层对应的第一高速缓存行以及第二高速缓存行的分配比例,分别分配相应数量的第一高速缓存行以及第二高速缓存行给神经网络子层。
10.如权利要求6所述的基于深度学习芯片动态cache分配的方法,其特征在于,所述方法包括:
统计单元基于神经网络子层的类型,分别统计属于同一类型的神经网络子层的外存数据访问比例;所述神经网络子层的类型包括神经元输入层、卷积运算层、激活运算层、池化层、全连接层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810229026.1A CN108520296B (zh) | 2018-03-20 | 2018-03-20 | 一种基于深度学习芯片动态cache分配的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810229026.1A CN108520296B (zh) | 2018-03-20 | 2018-03-20 | 一种基于深度学习芯片动态cache分配的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108520296A CN108520296A (zh) | 2018-09-11 |
CN108520296B true CN108520296B (zh) | 2020-05-15 |
Family
ID=63434023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810229026.1A Active CN108520296B (zh) | 2018-03-20 | 2018-03-20 | 一种基于深度学习芯片动态cache分配的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108520296B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955380B (zh) * | 2018-09-21 | 2021-01-12 | 中科寒武纪科技股份有限公司 | 访存数据生成方法、存储介质、计算机设备和装置 |
CN109447253B (zh) * | 2018-10-26 | 2021-04-27 | 杭州比智科技有限公司 | 显存分配的方法、装置、计算设备及计算机存储介质 |
WO2021026768A1 (zh) * | 2019-08-13 | 2021-02-18 | 深圳鲲云信息科技有限公司 | 基于数据流的自动驾驶方法、装置、电子设备及存储介质 |
CN115462079A (zh) * | 2019-08-13 | 2022-12-09 | 深圳鲲云信息科技有限公司 | 神经网络数据流加速方法、装置、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106817256A (zh) * | 2017-01-10 | 2017-06-09 | 北京国电通网络技术有限公司 | 一种分布式系统网络资源运维管理可靠性提升方法 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
WO2017218937A1 (en) * | 2016-06-16 | 2017-12-21 | Sri International | Systems and methods for optimizing operations of computing devices using deep neural networks |
CN107729989A (zh) * | 2017-07-20 | 2018-02-23 | 上海寒武纪信息科技有限公司 | 一种用于执行人工神经网络正向运算的装置及方法 |
CN107783840A (zh) * | 2017-10-27 | 2018-03-09 | 福州瑞芯微电子股份有限公司 | 一种分布式多层深度学习资源分配方法和装置 |
CN107800572A (zh) * | 2017-10-27 | 2018-03-13 | 福州瑞芯微电子股份有限公司 | 一种基于神经网络升级设备的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10497089B2 (en) * | 2016-01-29 | 2019-12-03 | Fotonation Limited | Convolutional neural network |
-
2018
- 2018-03-20 CN CN201810229026.1A patent/CN108520296B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
WO2017218937A1 (en) * | 2016-06-16 | 2017-12-21 | Sri International | Systems and methods for optimizing operations of computing devices using deep neural networks |
CN106817256A (zh) * | 2017-01-10 | 2017-06-09 | 北京国电通网络技术有限公司 | 一种分布式系统网络资源运维管理可靠性提升方法 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN107729989A (zh) * | 2017-07-20 | 2018-02-23 | 上海寒武纪信息科技有限公司 | 一种用于执行人工神经网络正向运算的装置及方法 |
CN107783840A (zh) * | 2017-10-27 | 2018-03-09 | 福州瑞芯微电子股份有限公司 | 一种分布式多层深度学习资源分配方法和装置 |
CN107800572A (zh) * | 2017-10-27 | 2018-03-13 | 福州瑞芯微电子股份有限公司 | 一种基于神经网络升级设备的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108520296A (zh) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647155B (zh) | 一种基于深度学习的多级cache共享的方法和装置 | |
CN108520296B (zh) | 一种基于深度学习芯片动态cache分配的方法和装置 | |
CN105205014B (zh) | 一种数据存储方法和装置 | |
US8244972B2 (en) | Optimizing EDRAM refresh rates in a high performance cache architecture | |
Kal et al. | Space: locality-aware processing in heterogeneous memory for personalized recommendations | |
US11222258B2 (en) | Load balancing for memory channel controllers | |
KR20210108749A (ko) | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 | |
CN113590508B (zh) | 动态可重构的内存地址映射方法及装置 | |
US11656981B2 (en) | Memory reduction in a system by oversubscribing physical memory shared by compute entities supported by the system | |
CN115421924A (zh) | 一种内存分配方法、装置及设备 | |
CN117015767A (zh) | 存储器信道控制器的芯片上互连 | |
US11429299B2 (en) | System and method for managing conversion of low-locality data into high-locality data | |
US11561834B2 (en) | Methods and systems for adaptive memory-resource management | |
CN116382599B (zh) | 一种面向分布式集群的任务执行方法、装置、介质及设备 | |
US20230100573A1 (en) | Memory device, memory device operating method, and electronic device including memory device | |
CN115640098A (zh) | 一种虚拟机异构内存池化方法和系统 | |
KR20210106635A (ko) | 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템 | |
CN110392093A (zh) | 具有可定制的软件高速缓存级别的数据中心环境 | |
US11442643B2 (en) | System and method for efficiently converting low-locality data into high-locality data | |
EP4160423B1 (en) | Memory device, memory device operating method, and electronic device including memory device | |
CN114500551B (zh) | 边缘计算传输负载均衡方法、装置、设备及存储介质 | |
EP4158485A1 (en) | Inference in memory | |
US20240202526A1 (en) | Memory device performing pruning, method of operating the same, and electronic device performing pruning | |
TWI843934B (zh) | 用於處理無結構源資料的方法及系統 | |
EP4372563A1 (en) | Systems, methods, and apparatus for operating computational devices |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee after: Ruixin Microelectronics Co., Ltd Address before: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee before: Fuzhou Rockchips Electronics Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |