CN111415003A - 面向神经网络加速芯片的三维堆叠存储优化方法及装置 - Google Patents
面向神经网络加速芯片的三维堆叠存储优化方法及装置 Download PDFInfo
- Publication number
- CN111415003A CN111415003A CN202010105871.5A CN202010105871A CN111415003A CN 111415003 A CN111415003 A CN 111415003A CN 202010105871 A CN202010105871 A CN 202010105871A CN 111415003 A CN111415003 A CN 111415003A
- Authority
- CN
- China
- Prior art keywords
- physical
- data
- partition
- partitions
- mapping
- 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
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供一种面向神经网络加速芯片的三维堆叠存储优化方法及装置,其中,该方法包括:采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间;根据各种数据的生存时间,将数据映射到逻辑分区上;根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;根据各个物理分区的温度,优化各个物理分区的刷新频率。上述技术方案实现了考虑数据的生存时间和物理分区的温度优化各个物理分区的刷新频率,减少了用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低了该存储器的刷新功耗和最高温度,提高了其寿命和稳定性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种面向神经网络加速芯片的三维堆叠存储优化方法及装置。
背景技术
随着人工智能时代的到来,图像分类、语音识别、自然语言处理等智能任务在生活中无处不在。神经网络是当前实现人工智能任务的核心算法,已经在各类人工智能任务上取得世界顶尖的分类和识别精度。神经网络同时具有大计算量和大数据量的特点,传统的通用处理器如CPU和GPU在执行神经网络计算任务时无法同时达到足够的性能和能效,因此学术界和工业界纷纷研究了各种神经网络计算芯片,来处理神经网络计算任务。
相对于前向推断,神经网络训练由于需要同时处理大量的输入样本来计算误差、梯度以及更新权重,其需要的数据量大幅度增加,这导致神经网络训练陷入了“存储墙”问题。这里的“存储墙”指的是当神经网络计算芯片的计算能力得到足够的提升以后,数据在计算单元和存储单元之间的传输效率成为了限制性能和能效的瓶颈。为了解决“存储墙”问题,一种方式是采用具有高存储容量和高带宽的三维堆叠存储器。三维堆叠存储器一般使用硅通孔技术(Through-silicon-via,TSV),将多块带有宽输入输出接口(Wide I/OInterface)的存储裸片在垂直方向上堆叠起来,以获得巨大的存储容量和带宽。相比于传统的多片存储模块,三维集成的封装代价和功耗代价要小得多,但其散热性能则有所下降。
目前主流的三维堆叠存储器的存储单元还是采用普通的动态随机存储器(DRAM)单元。DRAM单元通过给其中的电容充电来保存数据,而这些电容会随着时间而漏电,导致保存的数据失效。因此,DRAM单元需要定期刷新来保持数据的正确性。对于现有的三维堆叠存储器,默认的刷新方式是刷新所有的DRAM单元,并且总是按照32ms的周期。这种刷新方式过于保守,会带来严重的刷新功耗上的浪费。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种面向神经网络加速芯片的三维堆叠存储优化方法,用以减少用于神经网络训练加速芯片的三维堆叠存储器的刷新次数,该方法包括:
采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间;所述数据的生存时间为数据保存在三维堆叠存储器内且没有被读取或者修改的最长时间;
根据各种数据的生存时间,将数据映射到逻辑分区上;计算各个逻辑分区的平均功耗;
根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;
根据各个物理分区的温度,优化刷新频率。
本发明实施例还提供了一种面向神经网络加速芯片的三维堆叠存储优化装置,用以减少用于神经网络训练加速芯片的三维堆叠存储器的刷新次数,该装置包括:
调整单元,用于采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间;所述数据的生存时间为数据保存在三维堆叠存储器内且没有被读取或者修改的最长时间;
第一映射单元,用于根据各种数据的生存时间,将数据映射到逻辑分区上;计算各个逻辑分区的平均功耗;
第二映射单元,用于根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;
优化单元,用于根据各个物理分区的温度,优化刷新频率。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述面向神经网络加速芯片的三维堆叠存储优化方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述面向神经网络加速芯片的三维堆叠存储优化方法的计算机程序。
与现有技术中按照相同刷新周期刷新三维堆叠存储器所有的单元,导致一些不必要的刷新次数的方案相比较,本发明实施例提供的技术方案通过:首先,采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间,该步骤得到了一个优化的数据生存时间,为后续以最优的方式将数据映射到逻辑分区上奠定了基础;其次,根据各种数据的生存时间,将数据映射到逻辑分区上;计算各个逻辑分区的平均功耗;接着,根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;最后,根据各个物理分区的温度,优化各个物理分区的刷新频率,实现了考虑数据的生存时间和物理分区的温度,优化各个物理分区的刷新频率,减少了用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低了该存储器的刷新功耗和最高温度,提高了其寿命和稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中面向神经网络加速芯片的三维堆叠存储优化方法的流程示意图;
图2(a)是本发明实施例中一个AlexNet神经网络的基本训练过程示意图;
图2(b)是本发明实施例中各种数据从三维堆叠存储器进行读取和写入的时间图;
图2(c)是本发明实施例中各种数据存在于存储器内的时间图;
图3(a)是现有小批量训练方法的原理示意图;
图3(b)是本发明实施例中小批量拆分训练方法的原理示意图;
图4是本发明实施例中数据映射到逻辑分区的示意图;
图5是本发明实施例中三维堆叠存储器结构的示意图;
图6是本发明实施例中面向神经网络加速芯片的三维堆叠存储优化装置的结构示意图;
图7是本发明实施例中计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人发现现有面向神经网络训练加速芯片的三维堆叠存储器刷新方式存在如下技术问题:
研究表明,在三维堆叠存储器总功耗中,刷新功耗所占比例是可观的。一方面,随着存储器容量的增加,刷新功耗几乎是成比例地增加。另一方面,刷新周期的大小也是影响刷新功耗的一个重要因素。
DRAM单元的刷新周期主要取决于数据保持时间,也就是一次充电之后能保持数据有效的时间。而数据保持时间又和温度有关,温度越高,DRAM单元中的电容漏电就越快,数据保持时间就越短,也就导致需要更加频繁的刷新。对于二维集成的存储器,典型的工作温度和刷新时间分别是85℃以下和64ms。三维堆叠存储器的散热条件更差,所以工作温度范围的设定更加保守,其典型的工作温度和刷新时间分别是95℃以下和32ms。
背景技术中提到过对于现有的三维堆叠存储器,默认的刷新方式是刷新所有的DRAM单元,并且总是按照32ms的周期。这种刷新方式过于保守,会带来严重的刷新功耗上的浪费。其具体原因是:一方面,当存储单元所存数据的生存时间小于数据保持时间时,默认的刷新方式也对其进行刷新。这里“数据的生存时间”指的是数据从写入存储器到下一次需要被读取或者重写的最长时间。如果数据在漏电到无法识别的程度之前就通过读取或者重写来重新充电,显然它就不需要被刷新。另一方面,当存储单元所处的温度较低,默认的刷新方式仍然以32ms的周期来刷新。温度越低,数据的保持时间就越长,比如研究表明,在45℃时,数据能保持128ms以上,也就是说按照128ms的刷新周期来刷新也是安全的,所以没必要按照32ms进行频繁刷新。从已有的文献来看,还没有工作针对这两方面,对三维堆叠存储器的刷新进行优化。
由于发明人考虑到了上述技术问题,提出了一种面向神经网络加速芯片的三维堆叠存储优化,即面向神经网络训练加速芯片的三维堆叠存储器刷新优化方案,该方案通过数据流优化、逻辑分区映射、物理分区映射、刷新频率优化的一系列方法,来降低神经网络计算中三维堆叠存储器的刷新功耗和峰值温度。下面对该面向神经网络加速芯片的三维堆叠存储优化方案进行详细介绍。
图1是本发明实施例中面向神经网络加速芯片的三维堆叠存储优化方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间;所述数据的生存时间为数据保存在三维堆叠存储器内且没有被读取或者修改的最长时间;
步骤102:根据各种数据的生存时间,将数据映射到逻辑分区上;计算各个逻辑分区的平均功耗;
步骤103:根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;
步骤104:根据各个物理分区的温度,优化各个物理分区的刷新频率。
与现有技术中按照相同刷新周期刷新三维堆叠存储器所有的单元(物理分区),导致一些不必要的刷新次数的方案相比较,本发明实施例提供的面向神经网络加速芯片的三维堆叠存储优化方法实现了考虑数据的生存时间和物理分区的温度,优化各个物理分区的刷新频率,减少了用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低了该存储器的刷新功耗和最高温度,提高了其寿命和稳定性。
具体实施时,在本发明实施例中,分区是bank,是存储器内已有的划分物理分区,是实实在在的存储器bank,逻辑分区指的是在概念上设置的和物理bank一样大数量一样多的容器,先把数据装进去(逻辑映射),然后再把这些逻辑分区放到合适的物理位置上(物理映射)。
下面结合附图2(a)至图5,对本发明实施例涉及的各个步骤进行详细介绍。
一、首先,为了方便理解,将步骤101和步骤102一同介绍。
发明人还发现了一个技术问题:在神经网络训练的过程中,各类数据的生存时间和访存方式以及各个阶段的执行时间有关。各类数据的访存方式和各个阶段的执行时间与数据流有关。在训练的过程中,前向推断、误差计算和反向传播、梯度计算、权重更新这些阶段的数据依赖比较紧密,所以它们的先后顺序的调整空间不大。目前训练往往以小批量(mini-batch)的形式进行,也就是几个样本一起完成一次训练过程。这个小批量的训练过程中,各个样本的执行顺序是可以调整的。从已有的文献来看,还没有工作对小批量训练中样本的执行顺序进行调整,来达到改变数据生存时间的目的。
因此,考虑到上述技术问题,发明人提出了如下调整各种数据的生存时间,得到了一个优化的数据生存时间,为后续以最优的方式将数据映射到逻辑分区上奠定了基础,进而有助于减少了用于神经网络训练加速芯片的三维堆叠存储器的刷新次数的方案。
在一个实施例中,采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间,可以包括:
根据各种数据从三维堆叠存储器进行读取和写入的时间,以及各种数据存在于三维堆叠存储器内的时间,确定各种数据的生存时间;
采用小批量拆分技术,将小批量内原本一起执行的输入样本分成多次来执行,根据数据生存时间和数据复用度之间的关系,确定多种小批量拆分方案及每一方案对应的各种数据的生存时间;
根据各种数据的生存时间,将数据映射到逻辑分区上,可以包括:根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,将数据映射到逻辑分区上。
具体实施时,上述根据数据生存时间和数据复用度之间的关系,确定多种小批量拆分方案及每一方案对应的各种数据的生存时间,以及根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,将数据映射到逻辑分区上的实施方式,即对小批量训练中样本的执行顺序进行调整,来达到改变数据生存时间,保证了以合理的方式,将数据映射到逻辑分区上,利于减少用于神经网络训练加速芯片的三维堆叠存储器的刷新次数,进而降低刷新功耗和峰值温度。
在一个实施例中,确定多种小批量拆分方案及每一方案对应的各种数据的生存时间,可以包括:
确定多种小批量拆分方案及每一方案对应的各种数据的生存时间,各种数据的大小及各种数据的带宽需求信息;
根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,将数据映射到逻辑分区上,可以包括:
以在不超过逻辑分区的可用容量和带宽的约束条件下,使得需要刷新的逻辑分区数量最小为目的,根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,各种数据的大小及各种数据的带宽需求信息,将数据映射到逻辑分区上。
具体实施时,在确定多种小批量拆分方案及每一方案对应的各种数据的生存时间的同时,还确定了各种数据的大小及各种数据的带宽需求信息,后续在进行将数据映射到逻辑分区上的步骤时,以在不超过逻辑分区的可用容量和带宽的约束条件下,使得需要刷新的逻辑分区数量最小为目的,根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,各种数据的大小及各种数据的带宽需求信息,将数据映射到逻辑分区上,进一步提高了分区及数据映射的合理性,实现最小化需要刷新的分区数量,利于进一步减少用于神经网络训练加速芯片的三维堆叠存储器的刷新次数。
为了便于理解上述步骤101和步骤102的实施,下面再针对这两个步骤整体介绍。
1、在上述步骤101中:
首先,图2(a)是一个AlexNet神经网络的基本训练过程(为了简洁只画出其中三层),其中包含前向传播、误差计算、梯度计算、权重更新这几个执行过程。对于神经网络中的每一层i,都需要涉及到以下几种数据:输入特征图Fi、权重Wi、误差dFi、梯度dWi。本发明实施例根据训练的前向传播、误差计算、梯度计算、权重更新这几个执行过程,构建各种数据从三维堆叠存储器进行读取和写入的时间图(图2(b))和存在于存储器内的时间图(图2(c)),由此统计出各种数据的生存时间。其中,一种数据的生存时间指的是其保存在三维堆叠存储器内且没有被读取或者修改的最长时间。
其次,小批量(mini-batch)训练是目前比较流行的一种训练方法。如图3(a)所示,多个输入样本被打包成一批,一并完成前向传播、误差计算、梯度计算、权重更新这几个训练过程。本发明实施例采用小批量拆分(mini-batch striping)技术,将小批量内原本一起执行的输入样本分成多次来执行,使得每个样本的执行时间变短,从而减小各个数据的生存时间,如图3(b)所示。但这样做的一个副作用是使得权重复用度降低。由于这里的数据生存时间和数据复用程度之间存在权衡关系,所以需要生成多种小批量拆分方案,供后续步骤进行评估,选择其中最优的方案。在本步骤中,各种数据的生存时间、数据大小、带宽需求等信息会被统计出来,供后续步骤102将数据映射到逻辑分区上时使用,其中,生存时间较小的数据可以不需要刷新,如果一个分区里都是这种数据,这个分区就可以不刷新,所以排序后再映射等于把这种数据集中起来,形成尽可能多的不用刷新的分区,避免生存时间较小的数据和其他数据混到一起使得分区需要刷新;数据大小和带宽需求是用于约束,映射数据的大小和带宽需求不能超过分区所能提供的最大值。
2、在上述步骤102中:
首先,如图4右上角所示,根据上述步骤101中的统计结果,将各种数据按生存时间从大到小进行排序,进行排序的优点是:进一步减小刷新次数,进而降低存储器的刷新功耗和最高温度,提高其寿命和稳定性,具体原因详见上述步骤101的介绍。
其次,将排好序的数据依次装入逻辑分区,在不超过逻辑分区的可用容量和带宽的约束条件下,使得需要刷新的逻辑分区数量最小,然后使得各个逻辑分区内数据的生存时间尽可能接近一生存时间预设值。图4所示的例子中,三维堆叠存储器是以库(vault)为带宽共享单位的,所以在根据带宽约束分配数据时,也是以库为单位进行分配。对于容量约束,需要考虑各数据时间上的关系,一方面要允许多种数据对同一分区进行时分复用,另一方面要避免同一时刻保存在某一分区内的数据大小超过该分区的可用容量,即在将数据映射到逻辑分区上的过程中,考虑了从上述步骤101中得到的多种小批量拆分方案(该些拆分方案中考虑了数据生存时间和数据复用度之间的关系)中选择优选的方案进行映射,实现合理映射,使得需要刷新的逻辑分区数量最小,进而降低面向神经网络训练加速芯片的三维堆叠存储器刷的刷新功耗。
接着,计算各个逻辑分区的最大生存时间,即该逻辑分区中所有数据的生存时间的最大值;计算各个逻辑分区的平均功耗,平均功耗是指一个逻辑分区的功耗,即执行一个mini-batch的神经网络训练的总能耗除以相应的执行时间。
二、接着,介绍上述步骤103。
在一个实施例中,根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上,可以包括:
将各个逻辑分区按所述平均功耗从大到小的顺序进行排序;
评估三维堆叠存储器的各个物理分区的散热能力,将各个物理分区按所述散热能力从易散热到不易散热的顺序进行排序;
根据逻辑分区的排序结果和物理分区的排序结果,进行逻辑分区和物理分区的映射。
具体实施时,上述逻辑分区和物理分区的映射实施方案,利于减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低刷新功耗和峰值温度,从而提高三维堆叠存储器的寿命和稳定性。
在一个实施例中,根据逻辑分区的排序结果和物理分区的排序结果,进行逻辑分区和物理分区的映射,可以包括:
将平均功耗高于预设值的逻辑分区以预设概率映射到易散热的物理分区。
具体实施时,易散热的物理分区可以是散热能力高于预设温度档位的物理分区。上述逻辑分区和物理分区的映射实施方案,利于进一步减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低刷新功耗和峰值温度,从而提高三维堆叠存储器的寿命和稳定性。
在一个实施例中,根据逻辑分区的排序结果和物理分区的排序结果,进行逻辑分区和物理分区的映射,可以包括:
在确定物理分区的峰值温度处于预设安全范围内时,根据各个物理分区的散热潜力,将平均功耗低于预设值的部分逻辑分区映射到易散热的物理分区。
具体实施时,上述逻辑分区和物理分区的映射实施方案,利于进一步减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低刷新功耗和峰值温度,从而提高三维堆叠存储器的寿命和稳定性。
在一个实施例中,计算各个逻辑分区的平均功耗,可以包括:
根据执行一个mini-batch的神经网络训练的时间,计算各个逻辑分区的平均功耗。
具体实施时,上述算各个逻辑分区的平均功耗的实施方式,利于进一步减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低刷新功耗和峰值温度,从而提高三维堆叠存储器的寿命和稳定性。
在一个实施例中,根据映射结果,得到三维堆叠存储器各个物理分区的温度,可以包括:
根据映射结果,生成三维堆叠存储器的功耗迹;
根据所述功耗迹,通过热学仿真工具,仿真出三维堆叠存储器各物理分区的温度。
具体实施时,上述得到各个物理分区的温度的实施方式,保证各物理分区的温度的准确性,进而利于进一步减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低刷新功耗和峰值温度,从而提高三维堆叠存储器的寿命和稳定性。
为了便于理解上述步骤103的实施,下面再针对这个步骤整体介绍。
在步骤103中:
首先,将各个逻辑分区按上述步骤102得出的平均功耗从大到小进行排序。
其次,利用热学仿真工具Hotspot,评估各个三维堆叠存储器的物理分区的散热条件,将物理分区按易散热到不易散热的顺序进行排序。具体地,给各个物理分区分配相等的功耗,并设定合理的工作环境等参数,通过热学仿真工具Hotspot模拟出各个物理分区的温度,以此判断各个物理分区的散热能力。
接着,将排好序的逻辑分区和物理分区进行映射,宏观上让平均功耗更高的逻辑分区以更大概率映射到更易散热的物理分区,以控制各物理分区的峰值温度。当峰值温度处于比较安全的范围内时,考虑各个物理分区的散热潜力,适当地允许一些反常映射,即将部分平均功耗更低的逻辑分区映射到更易散热的物理分区,以使得它们的工作温度可以降低到下一档刷新阈值温度以下。
最后,根据映射结果,生成三维堆叠存储器的功耗迹(power trace),通过热学仿真工具Hotspot仿真出三维堆叠存储器各物理分区的温度。
具体实施时,关于功耗迹的举例如下:
比如每预设间隔例如10ms输出一行该时间段内各个部件的功耗:
为了便于理解上述步骤103,下面举一例进行说明。
刷新是为了在数据丢失之前给DRAM单元充电,不同温度下数据保持时间不同,如下表1所示,该表中Temperature是温度,Retention Time是数据保持时间。
表1
现有三维存储器总是按照32ms来刷新的,而实际上如果温度较低,可以刷得慢一点;如果数据生存时间比保持时间还要短,就可以直接不刷新。这就是本发明实施例降低刷新功耗的思路。
因此上述步骤103的详细过程是:
1.将逻辑bank按照平均功耗排序。
2.用hotspot按后面说明的方法仿真出各个物理bank的散热能力,然后将物理bank按照散热能力排序。
3.将排好序的逻辑bank一一映射到物理bank上,基本规则是:让功耗越高的逻辑bank映射到散热越好的物理bank上。目的是为了降低整个存储器的最高峰值温度。
4.在最高峰值温度处于安全范围内的前提下,考虑各个物理分区的散热潜力,适当地调整一些映射,以使得它们的工作温度可以降低到下一档刷新阈值温度以下。
例如:按照上述“3”映射后,bankA的温度是86度,需要按95度的档位每32ms刷新一次;bankB的温度是86度,也是按95度的档位。本来bankB的功耗比bankA大,被放在更易散热的地方。现在把bankA和bankB的物理位置交换,让bankA放到更易散热的地方。结果bankA的温度降低到了80度,可以降低到85度的档位,每64ms刷新一次,刷新功耗减半;而bankB的温度提高到了93度,仍然按照原来档位不变。这样总体来看,刷新功耗就降低了。
三、接着,介绍上述步骤104。
在一个实施例中,根据各个物理分区的温度,优化各个物理分区的刷新频率,可以包括:
根据各物理分区的温度,得到各物理分区的保持时间;
根据各物理分区的保持时间,优化各个物理分区的刷新频率。保持时间是一次充电之后能保持数据有效的时间。
具体实施时,上述优化各个物理分区的刷新频率的实施方式,利于减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数。
在一个实施例中,根据各物理分区的保持时间,优化各个物理分区的刷新频率,可以包括:
如果一个物理分区的最大生存时间小于保持时间,则不需要刷新;物理分区的最大生存时间为物理分区中所有数据的生存时间的最大值。
具体实施时,上述优化各个物理分区的刷新频率的实施方式,利于进一步减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数。
在一个实施例中,根据各物理分区的保持时间,优化各个物理分区的刷新频率,可以包括:
如果一个物理分区的最大生存时间大于或等于保持时间,则根据其保持时间选取对应的刷新频率;物理分区的最大生存时间为物理分区中所有数据的生存时间的最大值。
具体实施时,各个保持时间及其对应的刷新频率可以存在一张表格中。上述优化各个物理分区的刷新频率的实施方式,利于进一步减少用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数。
为了便于理解上述步骤104的实施,下面再针对这个步骤整体介绍。
在步骤104中:
首先,根据步骤103仿真出的各物理分区的温度,换算成各物理分区的保持时间(retention time)。
接着,优化各个物理分区的刷新频率,规则如下:如果一个物理分区的最大生存时间小于保持时间,则不需要刷新;如果一个物理分区的最大生存时间大于等于保持时间,则根据其保持时间选取对应的刷新频率,即针对每一物理分区的实际工作情况选取刷新还是不刷新,如果刷新,刷新频率是多少合适。将这些规则可以写入存储器控制器,以实现刷新优化。
为了验证本申请的面向神经网络训练加速芯片的三维堆叠存储器刷新优化方法,选择了开源的CACTI能耗仿真工具和HOTSPOT热学仿真工具,以及自主开发的三维堆叠存储器仿真工具,来进行实验。CACTI能耗仿真工具用于生成单次访存、刷新等各种子操作的能耗,输入到三维堆叠存储器仿真工具,进而生成三维堆叠存储器各个部件的功耗迹。这些功耗迹输入到HOTSPOT热学仿真工具,用于生成三维堆叠存储器的温度分布。这些温度分布再回传给三维堆叠存储器仿真工具,再次进行刷新优化,得出最终的各项指标。为了展示出面向神经网络训练加速芯片的三维堆叠存储器刷新优化方法的具体过程,本申请以在一个带有HMC1.1三维堆叠存储器的神经网络加速器上执行AlexNet神经网络为例。这里的HMC1.1三维堆叠存储器的结构如图5所示,其具有4GB总容量,共有8层,每层32个分区(bank),每个分区大小为16MB。共分为16个库(vault),每个库包含各层的2个分区,即每个库共包含16个分区。总带宽160GBps,每个库各占10GBps,库中的分区共享带宽。AlexNet具有5个卷积层和3个全连接层,其参数如下表2所示:
Layer | N | Group | M | H | K | R | S |
CONV1 | 3 | 1 | 96 | 227 | 1 | 55 | 4 |
CONV2 | 48 | 2 | 256 | 27 | 5 | 27 | 1 |
CONV3 | 256 | 1 | 384 | 13 | 3 | 13 | 1 |
CONV4 | 192 | 2 | 384 | 13 | 3 | 13 | 1 |
CONV5 | 192 | 2 | 256 | 13 | 3 | 13 | 1 |
FC1 | 9216 | -- | 4096 | -- | -- | -- | -- |
FC2 | 4096 | -- | 4096 | -- | -- | -- | -- |
FC3 | 4096 | -- | 1000 | -- | -- | -- | -- |
表2
步骤1:采用小批量拆分(mini-batch striping)技术,优化神经网络训练的数据流,调整训练中各个数据的生存时间。以拆分后批量大小为1为例,通过分析训练过程中各种数据的访存行为(如图2(a)所示,为了简洁只画出其中三层),可以得到它们的生存时间(ms)如下表3所示:
Layer | W | F | dW | dF |
image | -- | 517.0197 | -- | -- |
CONV1 | 517.0197 | 285.4867 | 224.4603 | 224.7028 |
POOL1 | 285.7291 | 260.7264 | 224.7028 | 24.63902 |
CONV2 | 285.3655 | 233.2912 | 268.0042 | 43.30142 |
POOL2 | 268.1755 | 197.9964 | 268.1755 | 35.20908 |
CONV3 | 303.3845 | 138.7515 | 322.0746 | 53.89913 |
CONV4 | 348.4737 | 107.5155 | 355.4824 | 33.40786 |
CONV5 | 373.0899 | 98.39064 | 377.7624 | 22.27996 |
POOL3 | 377.8015 | 93.6525 | 377.8015 | 4.718592 |
FC1 | 382.5201 | 32.93614 | 438.78 | 60.97851 |
FC2 | 440.8772 | 6.369456 | 465.8833 | 27.10326 |
FC3 | 466.3953 | 0.262144 | 472.5026 | 6.619312 |
表3
步骤2:根据生存时间将数据映射到逻辑分区(logical bank)上,最小化需要刷新的分区数量,如图4所示。计算各个逻辑分区的最大生存时间,即该逻辑分区中所有数据的生存时间的最大值;计算各个逻辑分区的平均功耗。在本实施例中,得到各逻辑分区的生存时间分布是如下表4所示:
生存时间(ms) | 逻辑分区数量 |
0 | 152 |
233.291 | 13 |
382.52 | 32 |
438.78 | 32 |
440.877 | 8 |
465.883 | 3 |
472.503 | 4 |
517.02 | 12 |
表4
将逻辑分区的平均功耗按逻辑库来分别统计,得到的结果是如下表5所示:
逻辑库 | 平均功耗(W) |
C0 | 0.246769 |
C1 | 0.237894 |
C2 | 0.237236 |
C3 | 0.251101 |
C4 | 0.250624 |
C5 | 0.235443 |
C6 | 0.233962 |
C7 | 0.228998 |
C8 | 0.23654 |
C9 | 0.238686 |
C10 | 0.238532 |
C11 | 0.239221 |
C12 | 0.229333 |
C13 | 0.218203 |
C14 | 0.237321 |
C15 | 0.235701 |
表5
步骤3:根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上。根据步映射结果,生成三维堆叠存储器的功耗迹(power trace),通过热学仿真工具Hotspot仿真出三维堆叠存储器各物理分区的温度。在本实施例中,得到各物理分区的温度分布是如下表6所示:
温度范围(K) | 物理分区数量 |
[334,335) | 15 |
[335,336) | 70 |
[336,337) | 113 |
[337,338) | 56 |
[338,339) | 2 |
表6
步骤4:根据步骤3仿真出的各物理分区的温度,换算成各物理分区的保持时间(retention time)。优化各个物理分区的刷新频率,规则如下:如果一个物理分区的最大生存时间小于保持时间,则不需要刷新;如果一个物理分区的最大生存时间大于等于保持时间,则根据其保持时间选取对应的刷新频率。在本实施例中,得到各物理分区的保持时间、数据生存时间和刷新周期的分布是如下表7所示:
保持时间(ms) | 数据生存时间(ms) | 刷新周期(ms) | 物理分区数量 |
96 | >=96 | 96 | 102 |
96 | <96 | -- | 152 |
64 | >=64 | 64 | 2 |
表7
将这些规则写入存储器控制器,以实现刷新优化。相比起默认配置需要以32ms的刷新周期刷新所有物理分区,本实施例可以节省86.3%的刷新功耗。
基于同一发明构思,本发明实施例中还提供了一种面向神经网络加速芯片的三维堆叠存储优化装置,如下面的实施例所述。由于面向神经网络加速芯片的三维堆叠存储优化装置解决问题的原理与面向神经网络加速芯片的三维堆叠存储优化方法相似,因此面向神经网络加速芯片的三维堆叠存储优化装置的实施可以参见面向神经网络加速芯片的三维堆叠存储优化方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本发明实施例中面向神经网络加速芯片的三维堆叠存储优化装置的结构示意图,如图6所示,该装置包括:
调整单元02,用于采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间;所述数据的生存时间为数据保存在三维堆叠存储器内且没有被读取或者修改的最长时间;
第一映射单元04,用于根据各种数据的生存时间,将数据映射到逻辑分区上;计算各个逻辑分区的平均功耗;
第二映射单元06,用于根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;
优化单元08,用于根据各个物理分区的温度,优化各个物理分区的刷新频率。
在一个实施例中,所述调整单元具体可以用于:
根据各种数据从三维堆叠存储器进行读取和写入的时间,以及各种数据存在于三维堆叠存储器内的时间,确定各种数据的生存时间;
采用小批量拆分技术,将小批量内原本一起执行的输入样本分成多次来执行,根据数据生存时间和数据复用度之间的关系,确定多种小批量拆分方案及每一方案对应的各种数据的生存时间;
所述第一映射单元具体可以用于:根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,将数据映射到逻辑分区上。
在一个实施例中,确定多种小批量拆分方案及每一方案对应的各种数据的生存时间,可以包括:
确定多种小批量拆分方案及每一方案对应的各种数据的生存时间,各种数据的大小及各种数据的带宽需求信息;
所述第一映射单元具体可以用于:
以在不超过逻辑分区的可用容量和带宽的约束条件下,使得需要刷新的逻辑分区数量最小为目的,根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,各种数据的大小及各种数据的带宽需求信息,将数据映射到逻辑分区上。
在一个实施例中,所述第二映射单元具体可以用于:
将各个逻辑分区按所述平均功耗从大到小的顺序进行排序;
评估三维堆叠存储器的各个物理分区的散热能力,将各个物理分区按所述散热能力从易散热到不易散热的顺序进行排序;
根据逻辑分区的排序结果和物理分区的排序结果,进行逻辑分区和物理分区的映射。
在一个实施例中,所述优化单元具体可以用于:
根据各物理分区的温度,得到各物理分区的保持时间;
根据各物理分区的保持时间,优化各个物理分区的刷新频率。
在一个实施例中,根据各物理分区的保持时间,优化各个物理分区的刷新频率,可以包括:
如果一个物理分区的最大生存时间小于保持时间,则不需要刷新;物理分区的最大生存时间为物理分区中所有数据的生存时间的最大值。
在一个实施例中,根据各物理分区的保持时间,优化各个物理分区的刷新频率,可以包括:
如果一个物理分区的最大生存时间大于或等于保持时间,则根据其保持时间选取对应的刷新频率;物理分区的最大生存时间为物理分区中所有数据的生存时间的最大值。
本发明实施例还提供了一种计算机设备,如图7所示,包括存储器302、处理器304及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的面向神经网络加速芯片的三维堆叠存储优化方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的面向神经网络加速芯片的三维堆叠存储优化方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例提供的面向神经网络训练加速芯片的三维堆叠存储器刷新优化技术方案的有益技术效果是:
与现有技术中按照相同刷新周期刷新三维堆叠存储器所有的单元,导致一些不必要的刷新次数的方案相比较,本发明实施例提供的技术方案实现了考虑数据的生存时间和物理分区的温度,优化各个物理分区的刷新频率,减少了用于神经网络训练加速芯片的三维堆叠存储器的一些不必要的刷新次数,进而降低了该存储器的刷新功耗和最高温度,提高了其寿命和稳定性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向神经网络加速芯片的三维堆叠存储优化方法,其特征在于,包括:
采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间;所述数据的生存时间为数据保存在三维堆叠存储器内且没有被读取或者修改的最长时间;
根据各种数据的生存时间,将数据映射到逻辑分区上;计算各个逻辑分区的平均功耗;
根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;
根据各个物理分区的温度,优化各个物理分区的刷新频率。
2.如权利要求1所述的面向神经网络加速芯片的三维堆叠存储优化方法,其特征在于,采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间,包括:
根据各种数据从三维堆叠存储器进行读取和写入的时间,以及各种数据存在于三维堆叠存储器内的时间,确定各种数据的生存时间;
采用小批量拆分技术,将小批量内原本一起执行的输入样本分成多次来执行,根据数据生存时间和数据复用度之间的关系,确定多种小批量拆分方案及每一方案对应的各种数据的生存时间;
根据各种数据的生存时间,将数据映射到逻辑分区上,包括:根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,将数据映射到逻辑分区上。
3.如权利要求2所述的面向神经网络加速芯片的三维堆叠存储优化方法,其特征在于,确定多种小批量拆分方案及每一方案对应的各种数据的生存时间,包括:
确定多种小批量拆分方案及每一方案对应的各种数据的生存时间,各种数据的大小及各种数据的带宽需求信息;
根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,将数据映射到逻辑分区上,包括:
以在不超过逻辑分区的可用容量和带宽的约束条件下,使得需要刷新的逻辑分区数量最小为目的,根据多种小批量拆分方案及每一方案对应的各种数据的生存时间,各种数据的大小及各种数据的带宽需求信息,将数据映射到逻辑分区上。
4.如权利要求1所述的面向神经网络加速芯片的三维堆叠存储优化方法,其特征在于,根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上,包括:
将各个逻辑分区按所述平均功耗从大到小的顺序进行排序;
评估三维堆叠存储器的各个物理分区的散热能力,将各个物理分区按所述散热能力从易散热到不易散热的顺序进行排序;
根据逻辑分区的排序结果和物理分区的排序结果,进行逻辑分区和物理分区的映射。
5.如权利要求4所述的面向神经网络加速芯片的三维堆叠存储优化方法,其特征在于,根据逻辑分区的排序结果和物理分区的排序结果,进行逻辑分区和物理分区的映射,包括:
将平均功耗高于预设值的逻辑分区以预设概率映射到易散热的物理分区;
或,在确定物理分区的峰值温度处于预设安全范围内时,根据各个物理分区的散热潜力,将平均功耗低于预设值的部分逻辑分区映射到易散热的物理分区。
6.如权利要求1所述的面向神经网络加速芯片的三维堆叠存储优化方法,其特征在于,根据各个物理分区的温度,优化各个物理分区的刷新频率,包括:
根据各物理分区的温度,得到各物理分区的保持时间;
根据各物理分区的保持时间,优化各个物理分区的刷新频率。
7.如权利要求6所述的面向神经网络加速芯片的三维堆叠存储优化方法,其特征在于,根据各物理分区的保持时间,优化各个物理分区的刷新频率,包括:
如果一个物理分区的最大生存时间小于保持时间,则不需要刷新;如果一个物理分区的最大生存时间大于或等于保持时间,则根据其保持时间选取对应的刷新频率;其中,物理分区的最大生存时间为物理分区中所有数据的生存时间的最大值。
8.一种面向神经网络加速芯片的三维堆叠存储优化装置,其特征在于,包括:
调整单元,用于采用小批量拆分技术,优化神经网络训练的数据流,调整训练中各种数据的生存时间;所述数据的生存时间为数据保存在三维堆叠存储器内且没有被读取或者修改的最长时间;
第一映射单元,用于根据各种数据的生存时间,将数据映射到逻辑分区上;计算各个逻辑分区的平均功耗;
第二映射单元,用于根据逻辑分区的平均功耗和物理分区的热学特性,将逻辑分区映射到物理分区上;根据映射结果,得到三维堆叠存储器各个物理分区的温度;
优化单元,用于根据各个物理分区的温度,优化各个物理分区的刷新频率。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105871.5A CN111415003B (zh) | 2020-02-20 | 2020-02-20 | 面向神经网络加速芯片的三维堆叠存储优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105871.5A CN111415003B (zh) | 2020-02-20 | 2020-02-20 | 面向神经网络加速芯片的三维堆叠存储优化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111415003A true CN111415003A (zh) | 2020-07-14 |
CN111415003B CN111415003B (zh) | 2023-09-22 |
Family
ID=71494133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010105871.5A Active CN111415003B (zh) | 2020-02-20 | 2020-02-20 | 面向神经网络加速芯片的三维堆叠存储优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111415003B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505825A (zh) * | 2021-07-06 | 2021-10-15 | 中国科学院计算技术研究所 | 一种图计算装置 |
WO2022041198A1 (zh) * | 2020-08-31 | 2022-03-03 | 深圳大学 | 一种三维堆叠存储芯片的温度变化计算方法 |
WO2022070204A1 (en) * | 2020-09-30 | 2022-04-07 | US Technology International Private Limited | Method and system for image processing through an artificial neural network implemented in an adapter card in a host-computing system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103890850A (zh) * | 2011-09-30 | 2014-06-25 | 英特尔公司 | 使用热数据对3d栈式存储器的动态操作 |
US20150006835A1 (en) * | 2013-06-27 | 2015-01-01 | International Business Machines Corporation | Backup Management for a Plurality of Logical Partitions |
CN108647782A (zh) * | 2018-05-21 | 2018-10-12 | 清华大学 | 一种降低神经网络芯片中eDRAM刷新能耗的方法及系统 |
-
2020
- 2020-02-20 CN CN202010105871.5A patent/CN111415003B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103890850A (zh) * | 2011-09-30 | 2014-06-25 | 英特尔公司 | 使用热数据对3d栈式存储器的动态操作 |
US20150006835A1 (en) * | 2013-06-27 | 2015-01-01 | International Business Machines Corporation | Backup Management for a Plurality of Logical Partitions |
CN108647782A (zh) * | 2018-05-21 | 2018-10-12 | 清华大学 | 一种降低神经网络芯片中eDRAM刷新能耗的方法及系统 |
Non-Patent Citations (4)
Title |
---|
SHOUYI YIN ET AL.: "Parana: A Parallel Neural Architecture Considering Thermal Problem of 3D Stacked Memory", vol. 30, no. 01, pages 4 - 5 * |
孟超;严冰;林殷茵;: "一种交错并行隐式刷新增益单元eDRAM设计", no. 06 * |
崔泽汉;陈明宇;: "大容量DRAM的刷新开销问题及优化技术综述", no. 02 * |
王振升;张刚;: "基于FPGA的可堆叠存储阵列设计与优化", no. 11 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022041198A1 (zh) * | 2020-08-31 | 2022-03-03 | 深圳大学 | 一种三维堆叠存储芯片的温度变化计算方法 |
WO2022070204A1 (en) * | 2020-09-30 | 2022-04-07 | US Technology International Private Limited | Method and system for image processing through an artificial neural network implemented in an adapter card in a host-computing system |
CN113505825A (zh) * | 2021-07-06 | 2021-10-15 | 中国科学院计算技术研究所 | 一种图计算装置 |
CN113505825B (zh) * | 2021-07-06 | 2023-07-21 | 中国科学院计算技术研究所 | 一种图计算装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111415003B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111415003B (zh) | 面向神经网络加速芯片的三维堆叠存储优化方法及装置 | |
CN107203807B (zh) | 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 | |
CN107437110B (zh) | 卷积神经网络的分块卷积优化方法及装置 | |
EP3149595B1 (en) | Systems and methods for segmenting data structures in a memory system | |
US8984085B2 (en) | Apparatus and method for controlling distributed memory cluster | |
JP7078758B2 (ja) | 機械学習モデルを改良して局所性を改善させること | |
CN107122490B (zh) | 一种分组查询中聚合函数的数据处理方法及系统 | |
CN108647155B (zh) | 一种基于深度学习的多级cache共享的方法和装置 | |
US10684946B2 (en) | Method and device for on-chip repetitive addressing | |
CN108520296B (zh) | 一种基于深度学习芯片动态cache分配的方法和装置 | |
CN105786619A (zh) | 虚拟机分配方法及装置 | |
CN106844288A (zh) | 一种随机字符串生成方法及装置 | |
CN116720549A (zh) | 一种基于cnn输入全缓存的fpga多核二维卷积加速优化方法 | |
CN104268146A (zh) | 一种适合分析型应用的静态b+树索引方法 | |
CN113988277A (zh) | 用于存算一体芯片的神经网络映射方法、装置、设备 | |
CN108920097A (zh) | 一种基于交织存储的三维数据处理方法 | |
CN110390392B (zh) | 基于fpga的卷积参数加速装置、数据读写方法 | |
CN112989270A (zh) | 一种基于混合并行的卷积计算装置 | |
CN112308762A (zh) | 一种数据处理方法及装置 | |
CN112905239B (zh) | 一种基于fpga的点云预处理加速方法、加速器及电子设备 | |
CN114090470B (zh) | 数据预加载装置及其预加载方法、存储介质和计算机设备 | |
CN113505825A (zh) | 一种图计算装置 | |
CN109976810B (zh) | 一种基于OpenCL的稠密矩阵乘GPU加速方法 | |
CN111984510B (zh) | 调度系统的性能测试方法及装置 | |
CN113325999B (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 |