CN114761972A - 基于人工神经网络数据局部性的人工神经网络存储器系统 - Google Patents
基于人工神经网络数据局部性的人工神经网络存储器系统 Download PDFInfo
- Publication number
- CN114761972A CN114761972A CN202080027581.1A CN202080027581A CN114761972A CN 114761972 A CN114761972 A CN 114761972A CN 202080027581 A CN202080027581 A CN 202080027581A CN 114761972 A CN114761972 A CN 114761972A
- Authority
- CN
- China
- Prior art keywords
- neural network
- artificial neural
- memory
- data
- access request
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 1631
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 1544
- 238000012545 processing Methods 0.000 claims description 88
- 238000000034 method Methods 0.000 claims description 71
- 230000006870 function Effects 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 29
- 230000008859 change Effects 0.000 description 13
- 210000004027 cell Anatomy 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009499 grossing Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000010977 unit operation Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003252 repetitive effect Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 235000003642 hunger Nutrition 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000011112 process operation Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000037351 starvation Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 206010041349 Somnolence Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Analysis (AREA)
Abstract
一种人工神经网络存储器系统包括:至少一个处理器,其被配置为生成与人工神经网络操作对应的数据访问请求;以及至少一个人工神经网络存储器控制器,其被配置为依次记录数据访问请求,以生成人工神经网络操作的人工神经网络数据局部性模式,并且基于人工神经网络数据局部性模式生成预测由至少一个处理器生成的数据访问请求的下一数据访问请求的提前数据访问请求。
Description
技术领域
本公开涉及一种基于人工神经网络的数据局部性的人工神经网络存储器系统,更具体地,涉及一种人工神经网络存储器系统,其中基于以数据访问请求为单位处理的人工神经网络模型的人工神经网络数据局部性,存储器有效地提供处理器所需的数据,以提高人工神经网络的操作速度。
背景技术
随着人工智能推理能力的发展,例如声音识别、语音识别、图像识别、物体检测、驾驶员睡意检测、危险时刻检测和手势检测之类的各种推理服务被搭载在例如人工智能扬声器、智能手机、智能冰箱、VR设备、AR设备、人工智能闭路电视、人工智能机器人清洁器、平板电脑、笔记本电脑、自动驾驶汽车、双足机器人、四足机器人和工业机器人之类的各种电子设备中。
最近,随着深度学习技术的发展,基于大数据学习的人工神经网络推理服务的性能得到了发展。人工神经网络的学习和推理服务以海量的学习数据反复训练人工神经网络,并借助训练好的人工神经网络模型对各种复杂的数据进行推理。因此,通过利用人工神经网络技术向上述电子设备提供各种服务。
然而,利用人工神经网络的推理服务所需的功能和精度正在逐渐增加。相应地,人工神经网络模型的大小、计算量和学习数据的大小呈指数增长。能够处理人工神经网络模型的推理操作的处理器和存储器所需的性能逐渐提高。此外,人工神经网络推理服务被主动提供给基于云计算的可以轻松处理大数据的服务器。
同时,正在积极研究利用人工神经网络模型技术的边缘计算。边缘计算是指进行计算的边缘或外围部分。边缘计算是指直接产生数据的终端或与终端相邻的各种电子设备。边缘计算也称为边缘设备。边缘设备可用于立即可靠地执行必要的任务,例如需要在1/100秒内处理大量数据的自动无人机、自动机器人或自动车辆。因此,边缘设备适用的领域正在迅速增加。
发明内容
本公开的发明人已经认识到,相关技术的人工神经网络模型的操作存在功耗高、发热、以及由存储器带宽较低和存储器延迟导致的处理器操作的瓶颈现象等问题。因此,发明人认识到提高人工神经网络模型的操作处理性能存在各种困难,也认识到需要开发一种能够改善这些问题的人工神经网络存储器系统。
因此,本公开的发明人研究了一种适用于服务器系统和/或边缘计算的人工神经网络存储器系统。此外,本公开的发明人还研究了一种神经网络处理单元(NPU),它是为处理人工神经网络模型而优化的人工神经网络存储器系统的处理器。
首先,本公开的发明人认识到,为了提高人工神经网络的计算处理速度,关键是在人工神经网络模型的计算过程中有效控制存储器。本公开的发明人已经认识到,当人工神经网络模型被训练或推理时,如果没有适当地控制存储器,则没有提前准备必要的数据,从而存储器有效带宽的降低和/或存储器的数据的供应延迟可能经常发生。进一步地,本公开的发明人已经认识到,在这种情况下,会造成没有向处理器提供待处理数据的饥饿(starvation)或空闲(idle)状态,使得无法执行实际操作,从而导致操作性能的下降。
其次,本公开的发明人已经认识到人工神经网络模型的操作处理方法在相关技术的算法层面上的局限性。例如,相关技术的预取算法是一种以概念层单元分析人工神经网络模型以便处理器以每一层单元从存储器读取数据的技术。然而,预取算法无法识别存在于处理器-存储器级别(即硬件级别)的人工神经网络模型的字单元或存储器访问请求单元中的人工神经网络数据局部性。本公开的发明人已经认识到,仅通过预取技术难以在处理器-存储器级别优化数据发送/接收操作。
第三,本公开的发明人已经认识到“人工神经网络数据局部性”,其是人工神经网络模型的独特特征。本公开的发明人已经认识到在处理器-存储器级别的字单元或存储器访问请求单元中存在人工神经网络数据局部性,并且有效存储器带宽被最大化并且提供给处理器的数据的延迟通过利用人工神经网络数据局部性最小化,从而提高处理器的人工神经网络学习/推理操作处理性能。
具体地,本公开的发明人所认知的人工神经网络模型的“人工神经网络数据局部性”是指处理器对人工神经网络进行计算处理所需的数据的字单元的序列信息,其是在处理器处理特定的人工神经网络模型时,按照人工神经网络模型的结构和操作算法执行。此外,本公开的发明人已经认识到,在人工神经网络模型的操作处理序列中,为被提供给处理器的人工神经网络模型的迭代学习和/或推理的操作保持人工神经网络数据局部性。相应地,本公开的发明人认识到,在保持人工神经网络数据局部性时,处理器处理的人工神经网络操作所需的数据的处理序列保持在字单元中,并且提供或分析待用于人工神经网络操作的信息。换言之,处理器的字单元可以指作为待由处理器处理的基本单元的元件单元。例如,当神经网络处理单元处理N位输入数据与M位核权重相乘时,处理器的输入数据字单位可以是N位,并且权重数据的字单位可以是M位。此外,本公开的发明人已经认识到,处理器的字单元可以根据人工神经网络模型的层、特征图、内核、激活函数等分别设置为不同的。相应地,本公开的发明人也认识到精确的存储器控制技术对于以字单元进行的操作是必要的。
本公开的发明人注意到,当人工神经网络模型由编译器编译以在特定处理器中执行时,人工神经网络数据局部性被构建。此外,发明人已经认识到可以根据应用于编译器和人工神经网络模型以及处理器的算法的操作特性来构建人工神经网络数据局部性。另外,本公开的发明人已经认识到,即使在相同的人工神经网络模型中,待处理的人工神经网络模型的人工神经网络数据局部性也可以以各种形式构建,具体取决于处理器的人工神经网络模型的计算方法,例如特征图平铺,处理元件的平稳技术,处理器的处理元件数量,处理器中的特征图,例如权重之类的高速缓冲存储器容量,处理器中的存储器分层结构,确定处理器的计算操作的序列以计算人工神经网络模型的编译器的算法特征。这是因为即使计算相同的人工神经网络模型,由于上述因素,处理器也会确定时钟单元中每个时刻所需的数据序列是不同的。也就是说,本公开的发明人已经认识到,人工神经网络模型的计算所必需的数据的序列在概念上是人工神经网络的层、单位卷积和/或矩阵乘法的计算序列。而且,本公开的发明人已经认识到,在物理计算所需的数据序列中,人工神经网络模型的人工神经网络数据局部性是在处理器-存储器级别(即硬件级别)以字单元构建的。此外,本公开的发明人已经认识到人工神经网络数据局部性取决于处理器和用于处理器的编译器。
第四,本公开的发明人已经认识到,当提供被构造成被提供人工神经网络数据局部性信息以利用人工神经网络数据局部性的人工神经网络存储器系统时,人工神经网络模型的处理性能可以在处理器-存储器级别最大化。
本公开的发明人认识到,当人工神经网络存储器系统精确地计算出人工神经网络模型的人工神经网络数据局部性的字单元时,处理器还发现字单元的操作处理序列信息是处理器处理人工神经网络模型的最小单元。也就是说,本公开的发明人已经认识到,当提供利用人工神经网络数据局部性的人工神经网络存储器系统时,人工神经网络存储器系统可以精确地预测是否在特定时间从存储器中读取特定数据以将特定数据提供给处理器或特定数据是否要由处理器计算以在特定时间以字单元将特定数据存储在存储器中。因此,本公开的发明人已经认识到,提供人工神经网络系统以预先准备待由处理器以字单元请求的数据。
换句话说,本公开的发明人已经认识到,如果人工神经网络存储器系统知道人工神经网络数据局部性,则当处理器使用诸如特征图平铺之类的技术计算特定输入数据和特定内核的卷积时,在内核向特定方向移动时所处理的卷积的操作处理序列在字单元中也是已知的。
也就是说,认识到,人工神经网络存储器系统通过利用人工神经网络数据局部性来预测哪些数据对于处理器是必要的,从而预测待由处理器请求的存储器读/写入操作,并且待由处理器处理的数据是预先准备好的,以最小化或消除存储器有效带宽的增加和/或存储器的数据供应延迟。此外,发明人已经认识到,当人工神经网络存储器系统提供待由处理器以必要的时序处理的数据时,可以最小化处理器的饥饿或空闲状态。因此,本公开的发明人已经认识到通过人工神经网络存储器系统可以提高操作处理性能并且可以降低功耗。
第五,本公开的发明人已经认识到,即使没有向人工神经网络存储器控制器提供人工神经网络数据局部性信息,在将人工神经网络存储器控制器设置在对人工神经网络模型进行处理的处理器和存储器之间的通信通道中之后,当处理器处理特定人工神经网络模型的操作时,分析对存储器的数据访问请求,以推理在处理器和存储器之间的数据访问请求单元中正在被处理器处理的人工神经网络模型的人工神经网络数据局部性。也就是说,本公开的发明人已经认识到每个人工神经网络模型都具有唯一的人工神经网络数据局部性,从而处理器在处理器-存储器级别根据人工神经网络数据局部性产生特定序列的数据访问请求。此外,本公开的发明人已经认识到,基于在处理器迭代地处理人工神经网络模型的学习/推理操作的同时保持人工神经网络数据局部性的事实,存储器中存储的数据的访问队列用于处理器和存储器之间的数据请求。
因此,本公开的发明人将人工神经网络存储器控制器设置在操作人工神经网络模型和存储器的处理器的通信通道中。进一步地,发明人观察处理器和存储器之间的数据访问请求以进行一个或多个学习和推理操作,而认识到人工神经网络存储器控制器可以推理数据访问请求单元中的人工神经网络数据局部性。因此,本公开的发明人已经认识到,即使没有提供人工神经网络数据局部性信息,人工神经网络数据局部性也可以由人工神经网络存储器控制器推理。
因此,本公开的发明人已经认识到,基于在数据访问请求单元中重构的人工神经网络数据局部性,待由处理器请求的存储器读/写入操作可以被预测,并且可以通过预先准备要由处理器处理的数据,最小化或基本消除存储器有效带宽的增加和/或存储器数据供应的延迟。进一步地,本公开的发明人已经认识到,当人工神经网络存储器系统以必要的时序提供待由处理器处理的数据时,可以最小化处理器的饥饿或空闲状态发生率。
因此,本公开要实现的目的是提供一种人工神经网络存储器系统,该系统通过利用在处理器-存储器级别操作的人工神经网络模型的人工神经网络数据局部性来优化处理器的人工神经网络操作。
因此,本公开要实现的一个目的是提供一种包括人工神经网络存储器控制器的人工神经网络存储器系统,该人工神经网络存储器控制器检测由处理器生成的数据访问请求以生成由处理器正在处理的人工神经网络模型的数据局部性模式,从而通过预先准备待由处理器请求的数据访问请求来改善存储器的延迟问题。然而,本公开不限于此,本领域技术人员可以根据以下描述明显地理解其他目的。
提供了根据本公开的示例性实施方案的人工神经网络存储器系统。该系统可以被配置为包括:至少一个处理器,其被配置为产生对应于人工神经网络操作的数据访问请求;和至少一个人工神经网络存储器控制器,其被配置为依次记录所述数据访问请求以生成所述人工神经网络操作的人工神经网络数据局部性模式,以及基于人工神经网络数据局部性模式,生成预测由所述至少一个处理器生成的所述数据访问请求的下一数据访问请求的提前数据访问请求。
根据本公开的示例性实施方案的人工神经网络存储器系统可以被配置为包括被配置为处理人工神经网络模型的至少一个处理器和被配置为存储人工神经网络模型的人工神经网络数据局部性信息的至少一个人工神经网络存储器控制器,并且根据人工神经网络数据局部性信息预测待由至少一个处理器请求的数据,以生成提前数据访问请求。
人工神经网络存储器系统可以被配置为进一步包括至少一个存储器和系统总线,该系统总线被配置为控制人工神经网络存储器控制器、至少一个处理器和至少一个存储器的通信。
根据本公开的示例性实施方案,人工神经网络存储器系统包括处理器、存储器和高速缓冲存储器,并且可以被配置为基于人工神经网络数据局部性信息生成包括待由处理器请求的数据的提前数据访问请求,并且在处理器的请求之前将与来自存储器的提前数据访问请求对应的数据存储在高速缓冲存储器中。
根据本公开的示例性实施方案,人工神经网络存储器系统可以以第一模式和第二模式中的任一种操作以预测人工神经网络数据局部性信息,其中第一模式被配置为通过接收人工神经网络数据局部性信息来操作,而第二模式被配置为通过观察由处理器产生的数据访问请求来操作。
这里,人工神经网络数据局部性可以是在处理器-存储器级别重构的人工神经网络数据局部性。
至少一个人工神经网络存储器控制器可以被配置为基于人工神经网络数据局部性模式依次进一步生成提前数据访问请求。
至少一个人工神经网络存储器控制器可以被配置为在生成下一数据访问请求之前生成提前数据访问请求。
至少一个处理器可以被配置为向至少一个人工神经网络存储器控制器发送数据访问请求。
至少一个人工神经网络存储器控制器可以被配置为响应于数据访问请求而输出提前数据访问请求。
数据访问请求可以被配置为进一步包括存储器地址。
数据访问请求可以被配置为进一步包括存储器的起始地址和/或结束地址。
至少一个人工神经网络存储器控制器可以被配置为基于由至少一个处理器生成的数据访问请求和由人工神经网络存储器控制器生成的提前数据访问请求中的一者来生成存储器访问请求。
数据访问请求可以被配置为进一步包括存储器的起始地址和连续数据读取(或突发读取)触发器。
数据访问请求可以被配置为进一步包括存储器的起始地址和连续数据的数量信息。
数据访问请求和高级数据访问可以被配置为还包括相同匹配存储器地址的数据访问请求令牌。
数据访问请求可以被配置为进一步包括识别信息以识别它是存储器读命令还是写命令。
数据访问请求可以被配置为进一步包括识别信息以识别其是否为存储器覆盖命令。
数据访问请求可以被配置为进一步包括识别信息,以识别其是推理数据、权重数据还是特征图数据。
数据访问请求可以被配置为进一步包括识别信息,以识别其是学习数据还是评估数据。
数据访问请求可以被配置为进一步包括识别信息,以识别人工神经网络操作是用于学习的操作还是用于推理的操作。
当至少一个处理器生成下一数据访问请求时,至少一个人工神经网络存储器控制器可被配置为确定提前数据访问请求和下一数据访问请求是否是相同的请求。
当提前数据访问请求和下一数据访问请求是相同的请求时,至少一个人工神经网络存储器控制器可以被配置为维护人工神经网络数据局部性模式。
当提前数据访问请求和下一数据访问请求不同时,至少一个人工神经网络存储器控制器可以被配置为更新人工神经网络数据局部性模式。
人工神经网络数据局部性模式可以被配置为进一步包括其中顺序记录数据访问请求的存储器地址的数据。
至少一个人工神经网络存储器控制器可以被配置为通过检测包括在数据访问请求中的存储器地址的重复模式来生成人工神经网络数据局部性模式。
人工神经网络数据局部性模式可以由具有重复循环特性的存储器地址配置。
人工神经网络数据局部性模式可以被配置为进一步包括用于识别人工神经网络模型的操作的开始和结束的识别信息。
至少一个处理器可以被配置为被提供与来自人工神经网络存储器控制器的数据访问请求相对应的数据。
至少一个人工神经网络存储器控制器可以被配置为进一步包括人工神经网络模型,该人工神经网络模型被配置为机器学习人工神经网络数据局部性模式。
至少一个人工神经网络存储器控制器可以被配置为存储人工神经网络数据局部性模式的更新模式和先前模式以确定人工神经网络模型是否改变。
至少一个人工神经网络存储器控制器可以被配置为确定数据访问请求是一种人工神经网络模型的请求还是多种人工神经网络模型的请求的混合。
当存在多个人工神经网络模型时,至少一个人工神经网络存储器控制器可以被配置为进一步生成与人工神经网络模型的数量对应的人工神经网络数据局部性模式。
至少一个人工神经网络存储器控制器可以被配置为基于人工神经网络数据局部性模式单独地生成相应的提前数据访问请求。
至少一个人工神经网络存储器控制器可以被配置为进一步生成与数据访问请求相对应的存储器访问请求。
至少一个人工神经网络存储器控制器可以被配置为进一步生成对应于提前数据访问请求的存储器访问请求。
数据访问请求、提前数据访问请求和存储器访问请求中的每一个可以被配置为分别包括对应的存储器地址值和操作模式。
至少一个人工神经网络存储器控制器可以被配置为进一步生成存储器访问请求,该存储器访问请求包括包括在数据访问请求和提前数据访问请求中的信息的至少一部分。
至少一个存储器可以被配置为与至少一个人工神经网络存储器控制器通信,并且至少一个存储器可以被配置为响应于从至少一个人工神经网络存储器控制器输出的存储器访问请求而操作。
至少一个存储器可以被配置为存储推理数据、权重数据和特征图数据中的至少一种。
至少一个人工神经网络存储器控制器可以被配置为进一步包括高速缓冲存储器,该高速缓冲存储器被配置为存储响应于存储器访问请求而从至少一个存储器传输的数据。
当至少一个处理器输出下一数据访问请求时,至少一个人工神经网络存储器控制器确定该提前数据访问请求和下一数据访问请求是否是相同的请求。如果提前数据访问请求和下一数据访问请求相同,则至少一个人工神经网络存储器控制器将高速缓冲存储器中存储的数据提供给至少一个处理器,如果提前数据访问请求和下一数据访问请求是不一样的,则至少一个人工神经网络存储器控制器根据下一数据访问请求生成新的存储器访问请求。
至少一个人工神经网络存储器控制器基于高速缓冲存储器的剩余容量顺序地产生至少一个存储器访问请求以最小化高速缓冲存储器的剩余容量。
至少一个人工神经网络存储器控制器可以被配置为测量响应于存储器访问请求的至少一个存储器的有效带宽。
至少一个人工神经网络存储器控制器可以被配置为被提供响应于存储器访问请求的至少一个存储器的必要带宽。
至少一个人工神经网络存储器控制器可以被配置为通过计算人工神经网络数据局部性模式在特定时间内的重复次数来测量人工神经网络操作的每秒推理(IPS)次数。
至少一个人工神经网络存储器控制器可以被配置为计算将人工神经网络数据局部性模式重复一次所花费的时间和用于计算人工神经网络操作所需的有效带宽的数据大小。
至少一个存储器可以进一步包括DRAM,该DRAM包括更新存储器单元的电压的刷新功能,并且至少一个人工神经网络存储器控制器可以被配置为对应于与提前数据访问请求所对应的存储器访问请求,选择性地控制至少一个存储器的存储器地址区域的刷新。
至少一个存储器还可以包括预充电功能,以用特定电压对存储器的全局位线充电,并且至少一个人工神经网络存储器控制器可以被配置为对应于与提前数据访问请求所对应的存储器访问请求,选择性地向至少一个存储器的存储器地址区域提供预充电。
至少一个存储器还可以包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为分别测量多个存储器的有效带宽。
至少一个存储器还可以包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为分别测量多个存储器的延迟。
至少一个存储器还可以包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为基于多个存储器中的每个存储器的有效带宽和延迟来划分和存储待存储在多个存储器中的数据。
数据由L位的位组构成,多个存储器包括第一存储器和第二存储器。第一存储器被配置为基于第一有效带宽或第一延迟从L位的位组中划分并存储M位的数据,并且第二存储器被配置为基于第二有效带宽或第二延迟从L位的位组中划分和存储N位的数据。M位和N位的总和可以被配置为小于或等于L位。
多个存储器还可以包括第三存储器,并且第三存储器可以被配置为基于第三有效带宽或第三延迟存储来自L位的位组的O位数据。M位、N位和O位的总和可以被配置为等于L位。
至少一个人工神经网络存储器控制器可以被配置为进一步包括高速缓冲存储器,其被配置为合并和存储被划分以存储在多个存储器中的数据。
数据由P个数据包构成,多个存储器包括第一存储器和第二存储器。第一存储器被配置为基于第一有效带宽或第一延迟存储P个数据包中的R个数据包,第二存储器被配置为基于第二有效带宽或第二延迟存储P个数据包中的S个数据包。R和S的和可以被配置为小于或等于P。
多个存储器还可以包括第三存储器,并且第三存储器可以被配置为基于第三有效带宽或第三延迟来存储来自P个数据包的T个数据包。R、S和T的总和可以配置为等于P。
至少一个存储器可以进一步包括多个存储器,并且至少一个人工神经网络存储器控制器可以进一步包括高速缓冲存储器,并且可以被配置为合并被分布待以存储在多个存储器中的数据以在高速缓冲存储器中存储合并的数据。
至少一个存储器可以进一步包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为存储被划分以存储在多个存储器中的数据的划分信息。
至少一个人工神经网络存储器控制器可以被配置为基于提前数据访问请求和至少一个存储器的延迟值在高速缓冲存储器中存储与延迟一样多的数据的一部分。
至少一个人工神经网络存储器控制器可以被配置为基于提前数据访问请求和至少一个存储器的所需数据带宽将数据的一部分存储在高速缓冲存储器中。
当至少一个处理器产生下一数据访问请求时,至少一个人工神经网络存储器控制器首先提供存储在高速缓冲存储器中的数据,并以读取突发模式控制来自至少一个存储器的剩余数据,以减少至少一个存储器的延迟。
当至少一个处理器基于提前数据访问请求和至少一个存储器的延迟值生成下一数据访问请求时,至少一个人工神经网络存储器控制器以至少一个存储器的读取突发模式开始以减少至少一个存储器的延迟。
可以进一步包括被配置为控制人工神经网络存储器控制器、至少一个处理器和至少一个存储器的通信的系统总线。
至少一个人工神经网络存储器控制器可以被配置为具有系统总线的主控权。
至少一个人工神经网络存储器控制器还可以包括人工神经网络模型。当产生提前数据访问请求时,可以对人工神经网络模型进行机器训练,以将系统总线的控制权限提高到高于未产生提前数据访问请求的情况。
至少一个人工神经网络存储器控制器可以被配置为确保系统总线的有效带宽,直到至少一个存储器完成存储器访问请求。
至少一个人工神经网络存储器控制器可以被配置为基于人工神经网络数据局部性模式计算系统总线处理特定存储器访问请求所需的特定带宽,并且至少一个人工神经网络存储器控制器可以被配置为基于特定带宽控制系统总线的有效带宽。
至少一个人工神经网络存储器控制器可以设置在系统总线中,并且系统总线可以被配置为基于在系统总线中生成的人工神经网络数据局部性模式动态地改变系统总线的带宽。
至少一个人工神经网络存储器控制器可以操作以在存储器访问请求的处理时间优先处理人工神经网络操作,并在其他时间处理人工神经网络操作以外的操作。
至少一个人工神经网络存储器控制器和至少一个处理器可以被配置为彼此直接通信。
人工神经网络存储器控制器可以被配置为进一步包括第一访问队列和第二访问队列,第一访问队列是专用于人工神经网络操作的访问队列,第二访问队列是除了人工神经网络操作之外的访问队列,并且人工神经网络存储器控制器可以被配置为根据优先级设置选择访问队列以提供数据。
至少一个人工神经网络存储器控制器可以进一步包括多个分层的高速缓冲存储器,并且至少一个人工神经网络存储器控制器可以被配置为进一步包括人工神经网络模型,该人工神经网络模型被配置为执行多个分层高速缓冲存储器的层之间的数据访问请求的机器学习。
至少一个人工神经网络存储器控制器可以被配置为进一步被提供多个分层高速缓冲存储器的每一层的有效带宽、功耗和延迟信息中的至少一个。
至少一种人工神经网络存储器系统包括:至少一个处理器,其被配置为产生对应于人工神经网络操作的数据访问请求;至少一个人工神经网络存储器控制器,其被配置为存储从编译器生成的人工神经网络操作的人工神经网络数据局部性模式,以及基于人工神经网络数据局部性模式,生成预测由至少一个处理器生成的所述数据访问请求的下一数据访问请求的提前数据访问请求;以及至少一个存储器,其被配置为与至少一个人工神经网络存储器控制器通信。至少一个存储器可以被配置为根据从至少一个人工神经网络存储器控制器输出的存储器访问请求来操作。
至少一个人工神经网络存储器系统可以被配置为进一步包括至少一个存储器和系统总线,该系统总线被配置为控制人工神经网络存储器控制器、至少一个处理器和至少一个存储器的通信。
至少一个人工神经网络存储器控制器可以设置在系统总线中,并且至少一个人工神经网络存储器控制器可以被配置为将系统总线的控制权限提高到高于没有存储器访问请求时的控制权限,直到至少一个存储器完成对存储器访问请求的响应。
至少一个人工神经网络存储器控制器包括被配置为被包括在DRAM中的一个或多个人工神经网络存储器控制器。
至少一个人工神经网络存储器控制器包括被配置为被包括在至少一个处理器中的一个或多个人工神经网络存储器控制器。
至少一个存储器还可以包括DRAM或者至少一个存储器可以是DRAM,并且至少一个人工神经网络存储器控制器可以被配置为重新调整存储器访问请求的访问队列。
人工神经网络存储器控制器可以被配置为生成至少一个访问队列。
至少一个存储器可以包括人工神经网络存储器控制器,并且人工神经网络存储器控制器可以被配置为单独生成专用于人工神经网络操作的访问队列。
至少一个人工神经网络存储器控制器可以被配置为重新调整存储器访问请求的访问队列。
至少一个存储器还可以包括读取突发功能,并且至少一个人工神经网络存储器控制器可以被配置为考虑到读取突发功能来设置至少一个存储器的存储区域。
至少一个存储器可以进一步包括读取突发功能,并且至少一个人工神经网络存储器控制器可以被配置为考虑到读取突发功能来处理在至少一个存储器的存储区域中的写入操作。
至少一个处理器可以包括多个处理器,并且至少一个人工神经网络存储器控制器可以被配置为设置多个处理器中处理人工神经网络操作的处理器的数据访问请求的优先级高于处理人工神经网络操作以外的操作的处理器的数据访问请求。
根据本公开的示例性实施方案,在处理人工神经网络的系统中,可以通过人工神经网络数据局部性基本上消除或减少存储器向处理器提供数据的延迟。
根据本公开的示例性实施方案,人工神经网络存储器控制器可以准备在被处理器请求之前在处理器-存储器级别进行处理的人工神经网络模型的数据。
根据本公开的示例性实施方案,缩短了由处理器处理的人工神经网络模型的学习和推理操作处理时间,以提高处理器的操作处理性能,并提高系统级别的操作处理的功率效率。
根据本公开的效果不限于以上举例说明的内容,并且本说明书中包括更多的各种效果。
附图说明
图1A是根据本公开的示例性实施方案用于解释基于人工神经网络数据局部性的人工神经网络存储器系统的处理器和人工神经网络存储器控制器的示意性框图。
图1B是图示用于解释可应用于本公开的各种示例性实施方案的人工神经网络数据局部性模式的重构的示例性神经网络处理单元的示例的示意图。
图2是根据本公开示例性实施方案用于解释人工神经网络数据局部性模式的示意图。
图3是图示用于解释可应用于本公开的各种示例性实施方案的人工神经网络数据局部性模式的示例性人工神经网络模型的示意图。
图4是根据本公开的示例性实施方案用于解释通过人工神经网络存储器控制器经由分析图3A的人工神经网络模型而产生的人工神经网络数据局部性模式的示意图。
图5是解释与图4的人工神经网络数据局部性模式对应的令牌和识别信息的示意图。
图6是根据本公开的示例性实施方案用于解释通过人工神经网络存储器控制器基于人工神经网络数据局部性模式生成的提前数据访问请求和下一数据访问请求的示意图。
图7是根据本公开的示例性实施方案用于示意性地解释人工神经网络存储器控制器的操作的流程图。
图8是根据本公开的另一示例性实施方案用于解释人工神经网络存储器系统的示意性框图。
图9是根据本公开的比较实施方案用于解释存储器系统的操作的示意图。
图10是根据本公开的另一示例性实施方案用于解释存储器系统的示意图。
图11是根据本公开的又一示例性实施方案用于解释人工神经网络存储器系统的示意性框图。
图12是用于解释数据访问请求的示例性识别信息的示意图。
图13是用于解释人工神经网络存储器系统的每单位操作的能量消耗的示意图。
图14是根据本公开的各种示例性实施方案用于解释人工神经网络存储器系统的示意图。
具体实施方式
通过参考下面详细描述的各种示例性实施方案以及附图,本公开的优点和特征以及实现这些优点和特征的方法将变得清楚。然而,本发明不限于这里公开的示例性实施方案,而是将以各种形式实现。提供示例性实施方案是为了使本发明能够被完整地公开并且本发明的范围能够被本领域技术人员容易地理解。因此,本发明将仅由所附权利要求的范围限定。
为了描述的方便,可以利用具体的示例性实施方案参考附图来描述本公开的详细描述,通过具体示例性实施方案可以实施本公开作为示例。尽管本公开的各种示例性实施方案的部件彼此不同,但是在特定示例性实施方案中描述的制造方法、操作方法、算法、形状、工艺、结构和特征可以与其他实施方案组合或包括在其他实施方案中。此外,应当理解,在不脱离本公开的精神和范围的情况下,可以改变每个公开的示例性实施方案中的各个组成元件的位置或布置。本公开的各个实施方案的特征可以部分地或全部地彼此结合或组合,并且可以以本领域技术人员可以理解的技术上的各种方式互锁和操作,并且实施方案可以彼此独立地执行或者相互关联地执行。
在附图中示出的用于描述本公开的示例性实施方案的形状、尺寸、比率、角度、数量等仅仅是示例,并且本公开不限于此。在整个说明书中,相同的附图标记表示相同的元件。此外,在以下描述中,会省略已知相关技术的详细解释以避免不必要地混淆本公开的主题。在此使用的诸如“包括”、“具有”和“由……组成”等术语通常旨在允许添加其他部件,除非这些术语与术语“仅”一起使用。除非另有明确说明,否则引用的任何单数都可以包括复数。即使没有明确说明,部件也被解释为包括普通的误差范围。当两个元件的位置关系使用例如“在……上”、“在……上方”、“在……下”、“靠近”或“邻近”描述时,一个部件可以位于两个部件之间,除非这些术语是与术语“紧接”或“直接”一起使用,当元件或层设置在另一元件或层“上”时,另一层或另一元件可直接插入另一元件上或它们之间。
图1A是根据本公开的示例性实施方案用于解释基于人工神经网络数据局部性的人工神经网络存储器系统的处理器和人工神经网络存储器控制器的示意性框图。
参考图1A,人工神经网络存储器系统100可以被配置为包括至少一个处理器110和至少一个人工神经网络存储器控制器120。也就是说,提供了根据本公开的示例性实施方案的至少一个处理器110,并且可以使用多个处理器,并且提供根据本公开示例性实施方案的至少一个人工神经网络存储器控制器120,且可以使用多个人工神经网络存储器控制器。
在下文中,为了描述方便,当至少一个处理器110为一个处理器时,可以将其称为处理器110。
在下文中,为了描述方便,当至少一个人工神经网络存储器控制器120为一个人工神经网络存储器控制器120时,可以将其称为人工神经网络存储器控制器120。
处理器110被配置为处理人工神经网络模型。例如,处理器110处理人工神经网络模型的推理,该人工神经网络模型被训练为执行特定推理功能以根据输入数据提供人工神经网络模型的推理结果。例如,处理器110处理用于执行特定推理功能的人工神经网络模型的学习以提供经过训练的人工神经网络模型。具体的推理函数可以包括可以由人工神经网络推理出的各种推理函数,如物体识别、语音识别、图像处理。
处理器110可以被配置为包括中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)、数字信号处理设备(DSP)、算术和逻辑单元(ALU)以及人工神经网络处理单元(NPU)中的至少一者。然而,本公开的处理器110不限于上述处理器。
处理器110可以被配置为与人工神经网络存储器控制器120通信。处理器110可以被配置为生成数据访问请求。数据访问请求可以被发送到人工神经网络存储器控制器120。这里,数据访问请求可以指访问处理器110处理人工神经网络模型的推理或学习所需的数据的请求。
处理器110可以向人工神经网络存储器控制器120发送数据访问请求以被提供来自人工神经网络存储器控制器120的人工神经网络模型的推理或学习所需的数据或向人工神经网络存储器控制器120提供由处理器110处理的人工神经网络的推理或学习结果。
处理器110可以提供通过处理特定人工神经网络模型获得的推理结果或学习结果。此时,处理器110可以被配置为以特定的序列处理人工神经网络的用于推理或学习的操作。
处理器110之所以需要以特定的序列处理人工神经网络的操作,是因为每个人工神经网络模型都被配置为具有独特的人工神经网络结构。即,每个人工神经网络模型被配置为根据独特的人工神经网络结构具有独特的人工神经网络数据局部性。此外,由处理器110处理的人工神经网络模型的操作序列是根据独特的人工神经网络数据局部性确定的。
换句话说,当人工神经网络模型由编译器编译以在特定处理器中执行时,可以配置人工神经网络数据局部性。人工神经网络数据局部性可以根据应用于编译器和人工神经网络模型的算法以及处理器的操作特性来配置。
待由处理器110处理的人工神经网络模型可以由处理器110和会考虑人工神经网络模型的算法特性的编译器编译。也就是说,当处理器110的驱动特性在了解人工神经网络模型的结构和算法信息的情况下已知时,编译器可以被配置为以字单元的顺序将人工神经网络数据局部性信息提供给人工神经网络存储器控制器120。
例如,可以以层单元计算相关技术的算法级别的特定人工神经网络模型的特定层的权重值。然而,根据本公开的示例性实施方案的处理器-存储器级别的特定人工神经网络模型的特定层的权重值可以以计划待由处理器110处理的字单元计算。
例如,当处理器110的高速缓冲存储器的大小小于待处理的人工神经网络模型的特定层的权重的数据大小时,处理器110可以被编译为不一次处理特定层的权重值。
也就是说,当处理器110计算特定层的权重值和节点值时,由于权重值太大,因而存储结果值的高速缓冲存储器的空间会不足。在这种情况下,由处理器110产生的数据访问请求可以增加为多个数据访问请求。因此,处理器110可以被配置为以特定顺序处理增加的数据访问请求。在这种情况下,算法级别的操作顺序和根据处理器-存储器级别的人工神经网络数据局部性的操作顺序可以彼此不同。
也就是说,通过考虑处理器和存储器的硬件特性,可以通过处理器-存储器级别的人工神经网络数据局部性,重构算法级别的人工神经网络操作序列,以处理相应的人工神经网络模型。
存在于处理器-存储器级别的人工神经网络模型的人工神经网络数据局部性可以被定义为基于处理器110向存储器请求的数据访问请求顺序,预测在处理器-存储器级别待由处理器110处理的人工神经网络模型的操作顺序的信息。
换句话说,即使在相同的人工神经网络模型中,人工神经网络模型的人工神经网络数据局部性也可以根据处理器110的操作功能而不同地配置,所述操作功能例如特征图平铺技术或处理元件的固定技术,高速缓冲存储器容量,例如处理器110的处理元件的数量,处理器110中的特征图,和权重,处理器110中的存储器分层结构,以及确定处理器110的计算操作的序列以计算人工神经网络模型的编译器的算法特性。
例如,特征图平铺技术是一种人工神经网络技术,其划分卷积并且随着卷积区域被划分,特征图被划分以进行计算。因此,由于平铺卷积,即使是相同的人工神经网络模型也会具有不同的人工神经网络数据局部性。
例如,固定技术是控制神经网络处理单元中的处理元件PE的驱动方法的技术。根据固定技术,要处理的数据类型,例如输入特征图、权重和输出特征图中的一者被固定到要重用的处理元件。因此,由处理器110向存储器请求的数据或序列的类型可以变化。
也就是说,即使在相同的人工神经网络模型中,人工神经网络数据局部性也可以根据各种算法和/或技术来重构。因此,人工神经网络数据局部性可以通过各种条件,例如处理器、编译器或存储器来全部或部分地重构。
图1B是图示用于解释可应用于本公开的各种示例性实施方案的人工神经网络数据局部性模式的重构的示例性神经网络处理单元的示例的示意图。
参考图1B,示出了当处理器110是神经网络处理单元NPU时适用的示例性固定技术。
处理元件PE可以以阵列的形式配置并且每个处理元件可以配置为包括乘法器(×)和加法器(+)。处理元件PE可以连接到缓冲存储器或高速缓冲存储器,例如全局缓冲器。处理元件PE可以将输入特征图像素(Ifmap像素:I)、滤波器权重W和部分和(Psum:P)中的一个数据固定到处理元件PE的寄存器。剩余的数据可以作为处理元件PE的输入数据提供。当部分和P的累加完成时,其可能成为输出特征图像素。
图1B中的(a)图示了权重平稳(WS)技术。根据权重平稳(WS)技术,滤波器权重W0至W7固定到处理元件PE的各个寄存器文件中,并且并行输入到处理元件PE的输入特征图像素I从第0个输入特征图像素I0移动到第八个输入特征图像素I8来执行操作。部分和P0到P8可以在串联连接的处理元件PE中累积。部分和P0至P8可依序移至后续处理元件。所有使用固定滤波器权重W0到W7的乘法和累加(MAC)操作都需要映射到相同的处理元件PE以进行串行处理。
根据上述配置,在寄存器文件中滤波器权重W的卷积操作期间,滤波器权重W的重用被最大化以最小化滤波器权重W的访问能量消耗。
需要注意的是,由于在编译步骤中将权重平稳WS技术应用于人工神经网络模型,因此重构人工神经网络模型的人工神经网络数据局部性以在处理器-存储器级别针对权重平稳WS技术进行优化。例如,根据权重平稳WS技术,为了操作的效率,滤波器权重W0至W7可以优先存储在处理元件PE中。相应地,人工神经网络数据局部性可以按照滤波器权重W、输入特征图像素I和部分和P的顺序重构,从而可以根据重构的人工神经网络数据局部性来确定待由处理器110生成的数据访问请求序列。
图1B的(b)图示了输出平稳(OS)技术。根据输出平稳(OS)技术,部分和P0到P7固定到要累加的处理元件PE的各个寄存器文件中,并且并行输入到处理元件PE的滤波器权重W从第0输入滤波器权重W0移动到第七滤波器权重W7来执行操作。输入特征图像素I0至I7可以移动到串联连接的处理元件PE。每个部分和P0到P7需要固定到每个待被映射的处理元件PE以执行乘法和累加(MAC)操作。
根据上述配置,在处理元件PE中的滤波器权重W的卷积操作期间,部分和P被固定到处理元件PE的寄存器文件以最大化部分和P的重用并且根据部分和P的移动来最小化能量消耗。当固定部分和P的累加完成时,其可以成为输出特征图。
应当注意,当处理器110应用输出平稳OS技术时,人工神经网络模型的人工神经网络数据局部性被重构以在处理器-存储器级别针对输出平稳OS技术进行优化。例如,根据输出平稳OS技术,为了操作的效率,部分和P0至P7优先存储在处理元件PE中。据此,可以按照部分和P、滤波器权重W和输入特征图像素I的顺序重构人工神经网络数据局部性,从而可以根据重构的人工神经网络数据局部性确定由处理器110产生的数据访问请求序列。人工神经网络模型编译器接收处理器110和存储器的硬件特性信息,以将其转换为人工神经网络模型在处理器-存储器级别操作的代码。此时,将人工神经网络模型转换为由处理器执行的代码,从而可以将人工神经网络模型转换为低级别代码。
也就是说,根据上述因素,即使处理相同的人工神经网络模型,处理器110也可以在时钟单位中改变每时每刻所需的数据的顺序。因此,人工神经网络模型的人工神经网络数据局部性可以被配置为在硬件级别上不同。
然而,当人工神经网络数据局部性的配置完成时,处理器110的操作顺序和操作所需的数据处理顺序可以在相应的人工神经网络模型的每次学习操作或推理操作时准确地重复。
在下文中,根据本公开的示例性实施方案的上述人工神经网络存储器系统100可以被配置为基于由人工神经网络数据局部性提供的准确操作顺序来预测待由处理器110请求的下一个数据,以改善存储器延迟问题和存储器带宽问题,从而提高人工神经网络的操作处理性能,降低功耗。
根据本公开的示例性实施方案的人工神经网络存储器控制器120被配置为被提供待由处理器110处理的人工神经网络模型的人工神经网络数据局部性信息,或被配置为分析正在由处理器110处理的人工神经网络模型的人工神经网络数据局部性。
人工神经网络存储器控制器120可以被配置为接收由处理器110生成的数据访问请求。
人工神经网络存储器控制器120可以被配置为监控或记录从处理器110接收到的数据访问请求。人工神经网络存储器控制器120观察由正在处理人工神经网络以精确地预测稍后将请求的数据访问队列的处理器110输出的数据访问请求。一个数据访问请求可以被配置为包括至少一个字单元数据。
人工神经网络存储器控制器120可以被配置为顺序地记录或监控从处理器110接收的数据访问请求。
人工神经网络存储器控制器120记录的数据访问请求可以以各种形式存储,例如日志文件、表格或列表。然而,根据本公开的示例性实施方案的人工神经网络存储器控制器120不限于数据访问请求的记录类型或形式(formant)。
由人工神经网络存储器控制器120监控的数据访问请求可以存储在人工神经网络存储器控制器120中的任意存储器中。然而,根据本公开的示例性实施方案的人工神经网络存储器控制器120不限于数据访问请求的监控方法。
人工神经网络存储器控制器120可以被配置为进一步包括用于记录或监控数据访问请求的任意存储器。然而,根据本公开的示例性实施方案的人工神经网络存储器控制器120不限于此并且可以被配置为与外部存储器通信。
人工神经网络存储器控制器120可以被配置为监控或记录从处理器110接收的数据访问请求以分析数据访问请求。
也就是说,人工神经网络存储器控制器120可以被配置为分析接收到的数据访问请求以分析由处理器110正在处理的人工神经网络模型的人工神经网络数据局部性。
也就是说,人工神经网络存储器控制器120可以被配置为分析被编译以在处理器-存储器级别操作的人工神经网络模型的人工神经网络数据局部性。
也就是说,人工神经网络存储器控制器120可以被配置为基于人工神经网络模型的处理器-存储器级别的人工神经网络数据局部性,分析人工神经网络在由处理器产生的存储器访问请求的单元中的操作处理顺序,以分析人工神经网络模型的人工神经网络数据局部性。
根据上述配置,人工神经网络存储器控制器120可以分析在处理器-存储器级别重构的人工神经网络数据局部性。
在一些示例性实施方案中,编译器可以被配置为分析人工神经网络模型在字单元中的人工神经网络数据局部性。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以被配置为以字单元提供有由编译器分析的人工神经网络数据局部性。此处,字单位可以根据处理器110的字单位而变化为8位、16位、32位、64位等。此处,字单位可以根据编译的人工神经网络模型的内核、特征图等的量化算法而设定为不同的字单位,例如2位、3位或5位。
人工神经网络存储器控制器120可以被配置为包括特殊功能寄存器。特殊功能寄存器可以被配置为存储人工神经网络数据局部性信息。
人工神经网络存储器控制器120可以被配置为根据人工神经网络数据局部性信息是否被存储以不同的模式操作。
如果人工神经网络存储器控制器120存储人工神经网络数据局部性信息,则人工神经网络存储器控制器120可以以字单位顺序提前预测待由处理器110处理的人工神经网络模型的数据处理顺序,使得人工神经网络存储器控制器120可以被配置成不记录单独的数据访问请求。然而,不限于此,并且人工神经网络存储器控制器120可以被配置为在比较存储的人工神经网络数据局部性信息和由该处理器生成的数据访问请求时,验证所存储的人工神经网络数据局部性是否存在错误。
如果人工神经网络存储器控制器120没有被提供有人工神经网络数据局部性信息,则人工神经网络存储器控制器120可以被配置为观察处理器110产生的数据访问请求以在一种模式中操作,在该模式中预测处理器110处理的人工神经网络模型的人工神经网络数据局部性。
在一些示例性实施方案中,人工神经网络存储器系统可以被配置为包括处理器、存储器和高速缓冲存储器,并且基于人工神经网络数据局部性信息生成包括要由处理器请求的数据的提前数据访问请求。人工神经网络存储器系统可以被配置为在处理器的请求之前将与来自存储器的提前数据访问请求相对应的数据存储在高速缓冲存储器中。此时,人工神经网络存储器系统可以被配置为以被配置为通过接收人工神经网络数据局部性信息来操作的第一模式和被配置为通过观察由处理器产生的数据访问请求以预测人工神经网络数据局部性信息来操作的第二模式中的任何一种模式来操作。根据上述配置,当人工神经网络存储器系统被提供有人工神经网络数据局部性信息时,待由处理器请求的数据以字单元被提前预测和准备。此外,即使没有提供人工神经网络数据局部性信息,由处理器产生的数据访问请求也会在预定时间段内被监控,以预测数据访问请求单元中处理器正在处理的人工神经网络数据局部性。此外,即使提供了人工神经网络数据局部性信息,人工神经网络存储器系统也独立监控数据访问请求以重构人工神经网络数据局部性以验证所提供的人工神经网络数据局部性。因此,可以感测人工神经网络模型的变化或误差。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器和至少一个处理器可以被配置为彼此直接通信。根据上述配置,人工神经网络存储器控制器可以直接接收来自处理器的数据访问请求,从而可以消除处理器与人工神经网络存储器控制器之间的系统总线引起的延迟。换言之,对于处理器与人工神经网络存储器控制器的直接通信,还可以包括专用总线,或者还可以包括专用通信通道,但不限于此。
在一些示例性实施方案中,人工神经网络数据局部性信息可以被配置为选择性地存储在处理器110和/或人工神经网络存储器控制器120中。人工神经网络数据局部性信息可以被配置为被存储在处理器110和/或人工神经网络存储器控制器120中包括的特殊功能寄存器中。然而,不限于此,并且人工神经网络数据局部性信息可以被配置为存储在可与人工神经网络存储器系统通信的任意存储器或寄存器中。
图2是根据本公开的示例性实施方案用于解释人工神经网络数据局部性模式的示意图。在下文中,将参考图2描述人工神经网络模型的人工神经网络数据局部性和人工神经网络数据局部性模式。
人工神经网络存储器控制器120被配置为根据顺序记录或监控从处理器110接收到的数据访问请求。
人工神经网络存储器控制器120被配置为生成人工神经网络数据局部性模式,该模式包括正在由处理器110处理的人工神经网络模型的数据局部性。即,人工神经网络存储器控制器120可以被配置为分析与由处理器110生成的人工神经网络模型相关联的数据访问请求以生成重复的特定模式。也就是说,当观察到数据访问请求时,可以将人工神经网络数据局部性信息存储为人工神经网络数据局部性模式。
参考图2,以人工神经网络存储器控制器120中依次记录十八个数据访问请求为例。每个数据访问请求被配置为包括识别信息。
包括在数据访问请求中的识别信息可以被配置为包括各种信息。
例如,识别信息可以被配置为至少包括存储器地址值和操作模式值。
例如,存储器地址值可以被配置为包括与所请求的数据对应的存储器地址值,但是本公开不限于此。
例如,存储器地址值可以被配置为包括与所请求的数据对应的存储器地址的起始值和结束值。根据上述配置,考虑在存储器地址的起始值和结束值之间顺序地存储数据。因此,可以减少用于存储存储器地址值的容量。
例如,存储器地址值可以被配置为包括与所请求的数据对应的存储器地址的起始值和数据连续读取触发值。根据上述配置,可以从存储器地址的起始值开始连续读取数据,直到连续读取触发值改变为止。根据上述配置,可以连续读取数据,从而可以增加存储器有效带宽。
例如,存储器地址值可以被配置为包括与所请求的数据相对应的存储器地址的起始值和关于数据数量的信息。可以基于存储器容量的单位来确定数据数量的单位。例如,单位可以是8位的1个字节、4个字节的1个字、1024个字节的1个字块中的一种,但本公开不限于此。根据上述配置,可以从与设置的单位大小的数据数量一样多的存储器地址的起始值连续读取数据。根据上述配置,可以连续读取数据,从而可以增加存储器有效带宽。
例如,当存储器是非易失性存储器时,存储器地址值还可以包括物理逻辑地址映射表或闪存转换层信息,但本公开不限于此。
例如,操作模式可以被配置为包括读取模式和写入模式。
例如,操作模式可以被配置为进一步包括重写(overwrite),但是本公开不限于此。
人工神经网络存储器控制器120可以被配置为确定每个数据访问请求的识别信息是否相同。
例如,人工神经网络存储器控制器120可以被配置为确定每个数据访问请求的存储器地址和操作模式是否相同。换言之,人工神经网络存储器控制器120可以被配置为检测具有相同存储器地址值和相同操作模式的数据访问请求值。
例如,当第一数据访问请求的存储器地址值和操作模式与第十数据访问请求的存储器地址值和操作模式相同时,人工神经网络存储器控制器120被配置为生成与对应的存储器地址值和操作模式对应的人工神经网络数据局部性模式。
人工神经网络数据局部性模式被配置为包括其中依次记录数据访问请求的存储器地址的数据。
也就是说,人工神经网络存储器控制器120可以被配置为检测具有相同存储器地址值和操作模式的数据访问请求的重复周期,以生成由具有重复的存储器地址值和操作模式的数据访问请求配置的人工神经网络数据局部性模式。
也就是说,人工神经网络存储器控制器120可以被配置为通过检测包括在数据访问请求中的存储器地址的重复模式来生成人工神经网络数据局部性模式。
参考图2,当人工神经网络存储器控制器120识别出第一数据访问请求的存储器地址值和操作模式与第十数据访问请求的存储器地址值和操作模式相同时,人工神经网络存储器控制器120可以被配置为在相同的数据访问请求中从起始数据访问请求到重复数据访问请求的提前数据访问请求生成一个人工神经网络数据局部性模式。在这种情况下,人工神经网络存储器控制器120可以被配置为生成包括第一数据访问请求到第九数据访问请求的人工神经网络数据局部性模式。
也就是说,参考图2描述的人工神经网络数据局部性模式可以被配置为按照第一数据访问请求、第二数据访问请求、第三数据访问请求、第四数据访问请求、第五数据访问请求、第六数据访问请求、第七数据访问请求、第八数据访问请求和第九数据的顺序访问请求包括存储器地址值和操作模型值。
由人工神经网络存储器控制器120生成的人工神经网络数据局部性模式可以以各种形式(例如日志文件、表格或列表)存储,以及根据本公开的示例性实施方案的人工神经网络存储器控制器120不限于人工神经网络数据局部性模式的记录类型或格式。
由人工神经网络存储器控制器120生成的人工神经网络数据局部性模式可以存储在人工神经网络存储器控制器120的任意存储器中,并且根据本公开的示例性实施方案的人工神经网络存储器控制器120不限于存储人工神经网络数据局部性模式的存储器的结构或方法。
人工神经网络存储器控制器120可以被配置为进一步包括用于存储人工神经网络数据局部性模式的任意存储器。然而,根据本公开的示例性实施方案的人工神经网络存储器控制器120不限于此并且可以被配置为与外部存储器通信。
也就是说,根据本公开的示例性实施方案的人工神经网络存储器系统100可以被配置为包括至少一个处理器110和人工神经网络存储器控制器120,该至少一个处理器110被配置为生成与人工神经网络操作相对应的数据访问请求,并且该人工神经网络存储器控制器120被配置为依次记录数据访问请求以生成人工神经网络数据局部性模式。
当人工神经网络存储器控制器120生成人工神经网络数据局部性模式时,人工神经网络存储器控制器120可以被配置为确定从处理器110接收到的数据访问请求的存储器地址值和操作模式值是否匹配包括在先前生成的人工神经网络数据局部性模式中的存储器地址值和操作模式值中的任何一个。
参考图2,当人工神经网络存储器控制器120从处理器110接收第十数据访问请求时,人工神经网络存储器控制器120可被配置为确定接收到的数据访问请求是否具有与包含在人工神经网络数据局部性模式中的存储器地址值相同的存储器地址值。
参考图2,当人工神经网络存储器控制器120接收到第十数据访问请求时,人工神经网络存储器控制器120可以被配置为检测作为第十数据访问请求的存储器地址值的开始值[0]和结束值[0×1000000]与作为第一数据访问请求的存储器地址值的起始值[0]和结束值[0×1000000]相同,并且检测到第十数据访问请求的操作模式的读取模式值与第一数据访问请求的操作模式的读取模式值相同,以确定第十数据访问请求与第一数据访问请求相同,并且第十数据访问请求为人工神经网络操作。
当人工神经网络存储器控制器120接收到第十一数据访问请求时,人工神经网络存储器控制器120可以被配置为检测作为第十一数据访问请求的存储器地址值的开始值[0×1100000]和结束值[0×1110000]与作为第二数据访问请求的存储器地址值的起始值[0×1100000]和结束值[0×1110000]相同,并且检测到第十一数据访问请求的操作模式的写入模式值与第二数据访问请求的操作模式的写入模式值相同,以确定第十一数据访问请求与第二数据访问请求相同,并且第十一数据访问请求为人工神经网络操作。
再次参考图2,人工神经网络存储器控制器120从第一数据访问请求到第九数据访问请求不生成人工神经网络数据局部性模式。在这种情况下,人工神经网络存储器控制器120被初始化,或者处理器110不执行人工神经网络操作。因此,人工神经网络存储器控制器120不检测模式与第九数据访问请求的匹配。人工神经网络存储器控制器120可以在第十次数据访问请求时确定第一数据访问请求的身份,生成人工神经网络数据局部性模式,并且记录模式是否匹配。第十数据访问请求到第十八数据访问请求与第一数据访问请求到第九数据访问请求相同,从而人工神经网络存储器控制器120可以确定第十数据访问请求到第十八数据访问请求的模式匹配人工神经网络数据局部性模式。
也就是说,人工神经网络存储器控制器120可以被配置为通过利用人工神经网络数据局部性模式来确定由处理器110正在处理的操作是否是人工神经网络操作。根据上述配置,即使人工神经网络存储器控制器120仅接收包括由处理器110生成的存储器地址值和操作模式值的数据访问请求,人工神经网络存储器控制器120也可以确定处理器110正在处理人工神经网络操作。因此,人工神经网络存储器控制器120可以基于人工神经网络数据局部性模式确定处理器110当前是否正在执行人工神经网络操作,而无需单独的附加识别信息。
正如将参考图2进行另外描述的那样,每个数据访问请求可以被配置为存储为令牌。例如,可以对每个人工神经网络的数据访问请求进行令牌化以进行存储。例如,可以基于识别信息对每个人工神经网络的数据访问请求进行令牌化。例如,可以基于存储器地址值对每个人工神经网络的数据访问请求进行令牌化。然而,本公开的示例性实施方案不限于此,令牌可以被称为代码、标识符等。
例如,第一数据访问请求可以被存储为令牌[1]。第四数据访问请求可以存储为令牌[4]。第七数据访问请求可以存储为令牌[7]。例如,人工神经网络数据局部性模式可以存储为令牌[1-2-3-4-5-6-7-8-9]。例如,第十数据访问请求与令牌[1]具有相同的存储器地址值和相同的操作模式值,从而可以将第十数据访问请求存储为令牌[1]。第十三数据访问请求与令牌[4]具有相同的存储器地址值和相同的操作模式值,从而可以将第十三数据访问请求存储为令牌[4]。因此,当人工神经网络存储器控制器120检测到与人工神经网络数据局部性模式的令牌相同的令牌时,人工神经网络存储器控制器可以被配置为确定相应的数据访问请求是人工神经网络操作。
根据上述配置,人工神经网络存储器控制器120可以通过利用令牌化的人工神经网络数据局部性模式来容易且快速地识别和区分数据访问请求。此外,即使在数据访问请求中进一步添加额外的识别信息和/或数据时,人工神经网络存储器控制器使用相同的令牌来利用令牌,即使在数据访问请求的附加信息增加到容易且快速地识别和区分数据访问请求时也如此。
在一些示例性实施方案中,可以消除或初始化存储在人工神经网络存储器控制器中的人工神经网络数据局部性模式。例如,当人工神经网络数据局部性模式在预定时间到期时未被使用时,例如,当在特定时间没有产生匹配人工神经网络数据局部性模式的数据访问请求时,人工神经网络存储器控制器确定人工神经网络数据局部性模式的使用频率较低,以消除或初始化人工神经网络数据局部性模式。
根据上述配置,可以提高存储人工神经网络数据局部性模式的存储器的存储空间的可用性。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为存储人工神经网络数据局部性模式的更新模式和先前模式以确定人工神经网络模型是否改变。也就是说,当存在多个人工神经网络模型时,人工神经网络存储器控制器可以被配置为进一步生成与人工神经网络模型的数量对应的人工神经网络数据局部性模式。
例如,当第一人工神经网络数据局部性模式是令牌[1-2-3-4-5-6-7-8-9]并且第二人工神经网络数据局部性模式是令牌[11-12-13-14-15-16]时,如果处理器产生与令牌[1]对应的数据访问请求,则人工神经网络存储器控制器可以被配置为选择第一人工神经网络数据局部性模式。替代地,如果处理器生成与令牌[11]对应的数据访问请求,则人工神经网络存储器控制器可以被配置为选择第二人工神经网络数据局部性模式。
根据上述配置,人工神经网络存储器控制器可以存储多个人工神经网络数据局部性模式,并且当由处理器处理的人工神经网络模型改变为另一人工神经网络模型时,可以快速应用先前存储的人工神经网络数据局部性模式。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为确定数据访问请求是一个人工神经网络模型的请求还是多个人工神经网络模型的请求的混合。此外,人工神经网络存储器控制器可以被配置为预测与多个人工神经网络模型中的每一个的人工神经网络数据局部性相对应的数据访问请求。
例如,处理器可以同时处理多个人工神经网络模型,且在这种情况下,处理器生成的数据访问请求可以是对应于多个人工神经网络模型的混合数据访问请求。
例如,当第一人工神经网络数据局部性模式是令牌[1-2-3-4-5-6-7-8-9],并且第二人工神经网络数据局部性模式是令牌[11-12-13-14-15-16]时,处理器110可以按照[1-11-2-3-12-13-14-4-5-6-15-16-7-8-9]的顺序生成对应于数据访问请求的令牌。
人工神经网络存储器控制器知道每个人工神经网络数据局部性模式,使得即使生成令牌[1],并且然后生成令牌[11],人工神经网络存储器控制器可以预测令牌[2]接下来将生成。因此,人工神经网络存储器控制器可以生成与令牌[2]对应的提前数据访问请求。此外,即使在生成令牌[11]之后生成令牌[2],人工神经网络存储器控制器也可以预测接下来将生成令牌[12]。因此,人工神经网络存储器控制器可以生成与令牌[12]对应的提前数据访问请求。
根据上述配置,人工神经网络存储器控制器120针对每个人工神经网络模型预测将由处理多个人工神经网络模型的处理器110生成的数据访问请求,以预测和准备将由处理器110请求的数据。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为存储多个人工神经网络数据局部性模式。
例如,当处理器处理两个人工神经网络模型时,人工神经网络存储器控制器可以被配置为存储每个人工神经网络模型的人工神经网络数据局部性模式。
根据上述配置,当处理每个人工神经网络模型的操作时,可以预测对应于每个模型的下一数据访问请求,从而根据本公开的示例性实施方案,人工神经网络操作的处理速度可能会得到改善。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为进一步包括人工神经网络模型,人工神经网络模型被配置为机器学习人工神经网络数据局部性模式。
根据上述配置,人工神经网络存储器控制器的人工神经网络模型可以被配置为对处理器产生的数据访问请求实时执行强化学习。进一步地,人工神经网络存储器控制器的人工神经网络模型可以是通过利用相关领域众所周知的人工神经网络模型的人工神经网络数据局部性模式作为学习数据训练的模型。因此,人工神经网络存储器控制器可以从各种人工神经网络模型中提取人工神经网络数据局部性模式。具体地,当多种人工神经网络模型被多个用户(例如服务器)的请求处理时,这种方法可能是有效的。
正如将参考图2进行另外描述的那样,人工神经网络存储器控制器120可以被配置为动态且实时地监控由处理器110处理的人工神经网络模型,并且确定人工神经网络模型是否发生变化。
例如,人工神经网络存储器控制器120可以被配置为统计上利用人工神经网络数据局部性模式的模式匹配频率来确定人工神经网络数据局部性模式的可靠性。其可以被配置为使得随着人工神经网络数据局部性模式的模式匹配频率增加,人工神经网络数据局部性模式的可靠性增加,并且使得随着人工神经网络数据局部性模式的模式匹配频率减少,人工神经网络数据局部性模式的可靠性降低。
根据上述配置,当处理器110重复处理特定人工神经网络模型时,人工神经网络存储器控制器120可以提高特定人工神经网络模型的人工神经网络数据局部性的预测可靠性。
图3是图示用于解释适用于本公开的各种示例性实施方案的人工神经网络数据局部性模式的示例性人工神经网络模型的示意图。
正在由如图3所示的处理器110处理的示例性人工神经网络模型1300可以是被训练来执行特定的推理功能的任意的人工神经网络模型。为了描述的方便,已经示出了其中所有节点全连接的人工神经网络模型,但是本公开不限于此。
尽管图3未示出,但适用于本公开的人工神经网络模型可以是卷积神经网络(CNN),其是深度神经网络(DNN)中的一种。示例性的人工神经网络模型可以是例如以下模型:具有VGG、VGG16、DenseNET和编码器-解码器结构的全卷积网络(FCN),深度神经网络(DNN),例如SegNet、DeconvNet、DeepLABV3+、或U-net、或SqueezeNet、Alexnet、ResNet18、MobileNet-v2、GoogLeNet、Resnet-v2、Resnet50、Resnet101和Inception-v3或基于至少两种不同模型的集成模型,但本公开的人工神经网络模型不限于此。
上述示例性人工神经网络模型可以被配置为具有人工神经网络数据局部性。
再次参考图3,对由处理器110处理的人工神经网络模型的人工神经网络数据局部性进行详细说明。
示例性的人工神经网络模型1300包括输入层1310、第一连接网络1320、第一隐藏层1330、第二连接网络1340、第二隐藏层1350、第三连接网络1360和输出层1370。
人工神经网络的连接网络具有相应的权重值。连接网络的权重值与输入节点值相乘,并且相乘值的累加值存储在相应的输出层的节点中。
换句话说,可以附加地提供各种激活函数以向累积值赋予非线性。激活函数例如可以是sigmoid函数、双曲正切函数或ReLU函数,但本公开不限于此。
示例性的人工神经网络模型1300的输入层1310包括输入节点x1和x2。
示例性的人工神经网络模型1300的第一连接网络1320包括具有六个权重值的连接网络,其连接输入层1310的节点和第一隐藏层1330的节点。
示例性人工神经网络模型1300的第一隐藏层1330包括节点a1、a2和a3。第一连接网络1320的权重值与对应输入层1310的节点值相乘,并且相乘值的累加值被存储在第一隐藏层1330中。
示例性人工神经网络模型1300的第二连接网络1340包括具有九个权重值的连接网络,其连接第一隐藏层1330的节点和第二隐藏层1350的节点。
示例性的人工神经网络模型1300的第二隐藏层1350包括节点b1、b2和b3。第二连接网络1340的权重值与对应的第一隐藏层1330的节点值相乘,并且相乘值的累加值被存储在第二隐藏层1350中。
示例性的人工神经网络模型1300的第三连接网络1360包括具有六个权重值的连接网络,其连接第二隐藏层1350的节点和输出层1370的节点。
示例性人工神经网络模型1300的输出层1370包括节点y1和y2。第三连接网络1360的权重值与对应的第二隐藏层1350的输入节点值相乘,并且相乘值的累加值被存储在输出层1370中。
根据上述人工神经网络模型1300的结构,认识到需要依次执行每一层的操作。也就是说,可能存在的问题是,当人工神经网络模型的结构确定后,需要确定每一层的操作顺序,并且当以不同的顺序进行操作时,推理结果可能不准确。根据人工神经网络模型的结构的操作顺序或数据流的顺序可以被定义为人工神经网络数据局部性。
此外,为了便于描述,在图2中,尽管描述了层单元,但是本公开的示例性实施方案不限于层单元。根据本公开的示例性实施方案的处理器110基于人工神经网络数据局部性处理数据,使得处理器可以以字单元或以数据访问请求单元进行操作,而不是以层单元进行操作。这里,数据访问请求的数据大小可以小于或等于对应层的数据大小。
再次参考图3,例如,对于第一连接网络1320的权重值与输入层1310的节点值的乘法操作,处理器110可以以层单元产生数据访问请求。
然而,第一连接网络1320的权重值和输入层1310的节点值的层操作不被处理为一个数据访问请求,而是可以根据处理器110的特征图划分卷积、处理元件的固定技术、处理器的处理元件的数量、处理器110的高速缓冲存储器容量、处理器110的存储器分层结构和/或处理器110的编译器算法被处理为多个被划分的的顺序数据访问请求。
当待由处理器110请求的数据访问请求被划分为多个数据访问请求时,请求被划分的数据访问请求的顺序可以由人工神经网络数据局部性确定。此时,人工神经网络存储器控制器120可以被配置为具有人工神经网络数据局部性,以准备提供与待由处理器110请求的下一数据访问请求相对应的数据。替代地,人工神经网络网络存储器控制器120可以被配置为预测人工神经网络数据局部性,其将被准备以提供与待由处理器110请求的下一数据访问请求相对应的数据。
将对在图3所示的人工神经网络模型1300的人工神经网络操作期间由处理器110生成的数据访问请求和人工神经网络数据局部性进行描述。
处理器110生成第一数据访问请求以读取人工神经网络模型1300的输入层1310的输入节点值。第一数据访问请求包括第一存储器地址值和读取模式值。第一数据访问请求可以存储为令牌[1]。
接下来,处理器110生成第二数据访问请求以读取人工神经网络模型1300的第一连接网络1320的权重值。第二数据访问请求包括第二存储器地址值和读取模式值。第二数据访问请求可以存储为令牌[2]。
接着,处理器110产生第三数据访问请求,以用于储存第一隐藏层1330的节点值,该节点值是将人工神经网络模型1300的第一连接网络1320的权重值与输入层1310的节点值相乘且累加所得到的。第三数据访问请求包括第三存储器地址值和写入模式值。第三数据访问请求可以存储为令牌[3]。
接下来,处理器110生成第四数据访问请求以读取存储在人工神经网络模型1300的第一隐藏层1330中的节点值。第四数据访问请求包括第三存储器地址值和读取模式值。第四数据访问请求可以存储为令牌[4]。
接下来,处理器110生成第五数据访问请求以读取人工神经网络模型1300的第二连接网络1340的权重值。第五数据访问请求包括第五存储器地址值和写入模式值。可以将第五数据访问请求存储为令牌[5]。
接着,处理器110产生第六数据存取请求,以用于储存第二隐藏层1350的节点值,所述节点值是通过将人工神经网络模型1300的第二连接网络1340的权重值与第一隐藏层1330的节点值相乘且累加得到的。第六数据访问请求包括第六存储器地址值和写入模式值。第六数据访问请求可以存储为令牌[6]。
接下来,处理器110生成第七数据访问请求以读取存储在人工神经网络模型1300的第二隐藏层1350中的节点值。第七数据访问请求包括第六存储器地址值和读取模式值。第七数据访问请求可以存储为令牌[7]。
接下来,处理器110生成第八数据访问请求以读取人工神经网络模型1300的第三连接网络1360的权重值。第八数据访问请求包括第八存储器地址值和读取模式值。第八数据访问请求可以存储为令牌[8]。
接下来,处理器110生成第九数据访问请求,以用于存储通过将人工神经网络模型1300的第三连接网络1360的权重值与第二隐藏层1350的节点值相乘和累加而获得的输出层1370的节点值。第九数据访问请求包括第九存储器地址值和写入模式值。第九数据访问请求可以存储为令牌[9]。节点值可以是特征图、激活图等,但不限于此。权重值可以是内核窗口,但不限于此。
也就是说,处理器110需要为示例性人工神经网络模型1300的推理生成第一到第九数据访问请求。如果由处理器110生成的数据访问请求的序列是混合的,则人工神经网络模型1300的人工神经网络数据局部性被破坏,从而可能导致人工神经网络模型1300的推理结果出现错误或影响精度。例如,处理器110可能先计算第二层,然后计算第一层。因此,处理器110可以被配置为基于人工神经网络数据局部性顺序地生成数据访问请求。因此,假设当处理器110操作人工神经网络时,人工神经网络存储器控制器120可基于人工神经网络数据局部性顺序地产生数据访问请求。
然而,如上所述,可以根据处理器的硬件特性在处理器-存储器级别重新解释每个数据访问请求。在上述示例中,已经描述了处理器的高速缓冲存储器的可用容量是足够的,并且节点值的数据大小和权重值的数据大小小于高速缓冲存储器的可用容量。因此,描述了在一个数据访问请求单元中处理每一层。如果人工神经网络模型的诸如权重值、特征图、内核、激活图等数据大小大于处理器的高速缓冲存储器的可用容量,则相应的数据访问请求可能被划分为多个数据访问请求,并且在这种情况下,可以重构人工神经网络模型的人工神经网络数据局部性。
根据本公开的示例性实施方案的人工神经网络存储器控制器120可以生成人工神经网络数据局部性模式,使得人工神经网络存储器控制器可以操作以对应于待由处理器主动处理的人工神经网络模型的人工神经网络数据局部性。
也就是说,即使不知道处理器110正在处理的人工神经网络模型的实际人工神经网络数据局部性,人工神经网络存储器控制器120也可以通过分析记录的数据访问请求来实际分析人工神经网络数据局部性。
也就是说,即使没有提供由处理器110正在处理的人工神经网络模型的结构信息,人工神经网络存储器控制器120也可以通过分析记录的数据访问请求来实际分析人工神经网络数据局部性。
在一些示例性的实施方案中,人工神经网络存储器控制器可以被配置为具有在处理器-存储器级别提前生成的人工神经网络数据局部性模式。
图4是根据本公开的示例性实施方案用于解释通过由人工神经网络存储器控制器分析图3的人工神经网络模型而获得的人工神经网络数据局部性模式的示意图。图5是说明与图4的人工神经网络数据局部性模式对应的令牌和识别信息的示意图。
图4所示的人工神经网络数据局部性模式1400只是为了描述方便而被显示为令牌。参考图1A至图4,人工神经网络模型1300的人工神经网络数据局部性模式1400被存储为令牌[1-2-3-4-5-6-7-8-9]。示出了对应于与图5所示的人工神经网络数据局部性模式1400对应的令牌的识别信息。
每个数据访问请求被配置为包括识别信息。每个数据访问请求都可以用令牌来表示,但仅为了描述方便,本公开不限于令牌。
根据人工神经网络数据局部性模式1400,人工神经网络存储器控制器120可以顺序地预测将在当前令牌之后生成的令牌的顺序。
例如,人工神经网络数据局部性模式1400可以被配置为具有循环类型模式,其中顺序是从最后令牌连接到开始令牌,但是本公开不限于此。
例如,人工神经网络数据局部性模式1400可由具有重复循环特性的存储器地址配置,但本公开不限于此。
例如,人工神经网络数据局部性模式1400可以被配置为进一步包括用于识别人工神经网络模型的操作的开始和结束的识别信息,但是本公开不限于此。
例如,人工神经网络数据局部性模式1400的开始和结束可以被配置为区分为模式的开始令牌和最后令牌,但是本公开不限于此。
根据上述配置,当处理器110重复推理特定人工神经网络模型时,由于人工神经网络数据局部性模式1400是循环型模式,即使特定人工神经网络模型的当前推理结束,也可以预测下一推理的开始。
例如,在人工神经网络模型以30IPS(每秒推理)的速度识别安装在自动驾驶汽车中的前置摄像头的图像对象的情况下,相同的推理以特定的循环连续地重复。因此,当利用上述循环型人工神经网络数据局部性模式时,可以预测重复的数据访问请求。
当附加地描述识别信息作为示例时,人工神经网络数据局部性模式1400的令牌[3]和令牌[4]具有相同的存储器地址值但具有不同的操作模式。因此,即使存储器地址值相同,操作模式也不同,从而人工神经网络存储器控制器120可以被配置为将第三数据访问请求和第四数据访问请求分类为不同的令牌。然而,本公开的示例性实施方案的识别信息不限于操作模式,而是可以被配置为仅利用存储器地址值来预测人工神经网络数据局部性模式。
人工神经网络存储器控制器120可以被配置为基于人工神经网络数据局部性模式1400生成对应的提前数据访问请求。
人工神经网络存储器控制器120可以被配置为基于人工神经网络数据局部性模式1400依次进一步生成提前数据访问请求。
根据上述配置,当处理器110生成包括在人工神经网络数据局部性模式1400中的特定数据访问请求时,人工神经网络存储器控制器120可在特定的数据访问请求之后顺序地预测至少一个数据访问请求。例如,当处理器110产生令牌[1]时,人工神经网络存储器控制器120可以预测随后产生与令牌[2]对应的数据访问请求。例如,当处理器110产生令牌[3]时,人工神经网络存储器控制器120可以预测随后产生与令牌[4]对应的数据访问请求。例如,当处理器110产生令牌[1]时,人工神经网络存储器控制器120可以预测按照令牌[2-3-4-5-6-7-8-9]的顺序产生对应的数据访问请求。
换句话说,当处理器110处理多个人工神经网络模型时,未被预测的数据局部性模式可能会介入人工神经网络数据局部性模式1400的令牌之间。例如,在令牌之后[2],新的令牌[4]可能会被中断。然而,即使在这种情况下,人工神经网络存储器控制器120也可以预测并准备处理器110在令牌[2]之后生成令牌[3]。
例如,当处理器110生成令牌[9]时,人工神经网络存储器控制器120可以预测处理器110生成令牌[1]。
图6是根据本公开的示例性实施方案用于解释通过人工神经网络存储器控制器基于人工神经网络数据局部性模式生成的提前数据访问请求和下一数据访问请求的示意图。
根据本公开的示例性实施方案的人工神经网络存储器控制器120可以被配置为利用人工神经网络数据局部性模式来预测待由处理器110随后请求的下一数据访问请求以生成提前数据访问请求。
参照图6,数据访问请求令牌是指与由人工神经网络存储器控制器120从处理器110接收的数据访问请求对应的令牌。提前数据访问请求令牌是与通过以下方式获得的数据访问请求对应的令牌:基于人工神经网络数据局部性模式,由人工神经网络存储器控制器120预测待由处理器110随后请求的数据访问请求。下一数据访问请求令牌是在生成提前数据访问请求令牌之后由处理器110实际生成的数据访问请求令牌,但本公开的令牌只是为了描述方便的示例,因此本公开不限于该令牌。
数据访问请求和提前数据访问请求可以对应于数据访问请求令牌。在这种情况下,匹配特定数据访问请求令牌的数据访问请求和提前数据访问请求可以被配置为具有相同的存储器地址。也就是说,数据访问请求和提前数据访问请求可以被配置为包括相同的存储器地址。
例如,当数据访问请求令牌为[3]且提前数据访问请求令牌为[3]时,每个令牌的存储器地址值可以相同。也就是说,数据访问请求和提前数据访问请求可以被配置为包括相同的操作模式值。例如,当数据访问请求令牌为[3]且提前数据访问请求令牌为[3]时,每个令牌的操作模式值可以相同。
参考图6,当处理器110产生对应于令牌[1]的数据访问请求时,人工神经网络存储器控制器120产生对应于令牌[2]的提前数据访问请求。处理器110在生成提前数据访问请求后,生成与令牌[2]对应的下一数据访问请求。人工神经网络存储器控制器120被配置为确定提前数据访问请求是否准确地预测了下一数据访问请求。相同的令牌对应于提前数据访问请求和下一数据访问请求,从而人工神经网络存储器控制器120可以确定模式匹配。
接着,例如,当处理器110产生对应于令牌[2]的数据访问请求时,人工神经网络存储器控制器120产生对应于令牌[3]的提前数据访问请求。处理器110在生成提前数据访问请求后,生成与令牌[3]对应的下一数据访问请求。人工神经网络存储器控制器120被配置为确定提前数据访问请求是否准确地预测了下一数据访问请求。相同的令牌对应于提前数据访问请求和下一数据访问请求,从而人工神经网络存储器控制器120可以确定模式匹配。
例如,当处理器110产生对应于令牌[9]的数据访问请求时,人工神经网络存储器控制器120产生对应于令牌[1]的提前数据访问请求。处理器110在生成提前数据访问请求后,生成与令牌[9]对应的下一数据访问请求。人工神经网络存储器控制器120被配置为确定提前数据访问请求是否准确地预测了下一数据访问请求。相同的令牌对应于提前数据访问请求和下一数据访问请求,从而人工神经网络存储器控制器120可以确定模式匹配。
当处理器110在人工神经网络存储器控制器120产生提前数据访问请求之后产生下一数据访问请求时,人工神经网络存储器控制器120可以被配置为确定提前数据访问请求和下一数据访问请求是否是相同的请求。
根据上述配置,人工神经网络存储器系统100可以检测由处理器110处理的人工神经网络模型的人工神经网络数据局部性的变化。因此,即使人工神经网络模型改变时,人工神经网络存储器控制器120可以分析改变的人工神经网络数据局部性。
当人工神经网络存储器控制器120确定提前数据访问请求和下一数据访问请求是相同的请求时,人工神经网络存储器控制器120可以被配置为保持人工神经网络数据局部性模式。
根据上述配置,人工神经网络存储器系统100检测由处理器110处理的人工神经网络模型被重复使用,以更快地准备或提供由处理器110请求的数据。
当人工神经网络存储器控制器120确定提前数据访问请求和下一数据访问请求不同时,人工神经网络存储器控制器120可以被配置为更新人工神经网络数据局部性模式或进一步生成新的人工神经网络数据局部性模式。
根据上述配置,人工神经网络存储器系统100可以检测由处理器110处理的人工神经网络模型的变化以生成与变化的人工神经网络模型对应的提前数据访问请求.
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为生成连续提前数据访问请求。
例如,当数据访问请求令牌为[2]时,由人工神经网络存储器控制器生成的提前数据访问请求可以是与令牌[3]对应的数据访问请求。然而,不限于此,例如,由人工神经网络存储器控制器产生的提前数据访问请求可以是与令牌[3-4]对应的多个数据访问请求。然而,不限于此,例如,由人工神经网络存储器控制器产生的提前数据访问请求可以是与令牌[3-4-5-6]对应的多个数据访问请求。
根据上述配置,人工神经网络存储器控制器可以基于人工神经网络数据局部性模式生成预测连续重复的数据访问请求的整个顺序的提前数据访问请求。
根据上述配置,人工神经网络存储器控制器可以基于人工神经网络数据局部性模式生成预测至少一些数据访问请求的顺序的提前数据访问请求。
图7是示意性地解释根据本公开的示例性实施方案的人工神经网络存储器控制器的操作的流程图。
参考图7,对于人工神经网络操作处理,处理器110可以被配置为基于人工神经网络数据局部性生成与人工神经网络模型对应的数据访问请求。
人工神经网络存储器控制器120顺序地记录在处理器110中产生的数据访问请求以产生人工神经网络数据局部性模式(S710)。
人工神经网络存储器控制器120将生成的人工神经网络数据局部性模式与由处理器110生成的数据访问请求进行比较,以生成预测将由处理器110生成的下一数据访问请求的提前数据访问请求。
根据本公开的示例性实施方案的人工神经网络存储器系统100可以被配置为包括至少一个处理器110,该至少一个处理器110被配置为生成与人工神经网络操作相对应的数据访问请求,并且通过顺序记录数据访问请求生成人工神经网络操作的人工神经网络数据局部性模式(S720)。人工神经网络存储器系统100可以被配置为包括至少一个人工神经网络存储器控制器120,该至少一个人工神经网络存储器控制器120被配置为生成提前数据访问请求,该提前数据访问请求基于人工神经网络数据局部性模式来预测由至少一个处理器110生成的数据访问请求的下一数据访问请求。
也就是说,至少一个人工神经网络存储器控制器120在生成下一数据访问请求之前生成提前数据访问请求(S730)。
也就是说,至少一个处理器110被配置为将数据访问请求发送到至少一个人工神经网络存储器控制器120,并且至少一个人工神经网络存储器控制器120可以被配置为输出与数据访问请求对应的提前数据访问请求。
根据本公开的一个示例性实施方案的人工神经网络存储器系统100可以被配置为包括至少一个处理器110和至少一个人工神经网络存储器控制器120,该至少一个处理器110被配置为生成与人工神经网络操作相对应的数据访问请求,而该至少一个人工神经网络存储器控制器120被配置为通过顺序地记录由至少一个处理器110产生的数据访问请求来产生人工神经网络操作的人工神经网络数据局部性模式,并且基于人工神经网络数据局部性模式产生预测由至少一个处理器110生成的数据访问请求的下一数据访问请求的提前数据访问请求。
根据上述配置,人工神经网络存储器控制器120基于人工神经网络数据局部性预测待通过正由处理器110处理的人工神经网络模型生成的下一数据访问请求模式,从而有利的是,可以提前准备好相应的数据以在处理器110的请求之前提供。
人工神经网络存储器控制器120可以被配置为将生成的提前数据访问请求与由处理器110在生成提前数据访问请求之后生成的下一数据访问请求进行比较,以确定人工神经网络数据局部性模式匹配(S740)。
根据上述配置,人工神经网络存储器控制器120在生成准备预先提供数据的下一数据访问请求之前生成提前数据访问请求。因此,人工神经网络存储器控制器120可以基本上消除或减少当数据被提供给处理器110时可能产生的延迟。
图8是根据本公开的另一示例性实施方案用于解释人工神经网络存储器系统的示意性框图。
参考图8,人工神经网络存储器系统200可以被配置为包括处理器210、人工神经网络存储器控制器220和存储器230。
当将根据本公开的另一示例性实施方案的人工神经网络存储器系统200与根据本公开的一个示例性实施方案的人工神经网络存储器系统100进行比较时,人工神经网络存储器系统200和人工神经网络存储器系统100基本相同,不同的是,人工神经网络存储器系统200还包括存储器230。因此,为了描述的方便,将省略多余的描述。
根据本公开的另一示例性实施方案的人工神经网络存储器系统200包括被配置为与人工神经网络存储器控制器220通信的存储器230,并且存储器230可以被配置为根据从人工神经网络存储器控制器220输出的存储器访问请求进行操作。
处理器210可以被配置为与人工神经网络存储器控制器220通信。处理器210可以被配置为生成要发送到人工神经网络存储器控制器220的数据访问请求。数据访问请求可以基于正在处理的人工神经网络模型的人工神经网络数据局部性生成。处理器210被配置为被提供有与来自人工神经网络存储器控制器220的数据访问请求对应的数据。
人工神经网络存储器控制器220可以被配置为接收由处理器210生成的数据访问请求。人工神经网络存储器控制器220可以被配置为通过分析由处理器210正在处理的人工神经网络模型的人工神经网络数据局部性来生成人工神经网络数据局部性模式。
人工神经网络存储器控制器220可以被配置为通过生成存储器访问请求来控制存储器230。人工神经网络存储器控制器220可以被配置为生成与数据访问请求对应的存储器访问请求。也就是说,人工神经网络存储器控制器220可以被配置为产生与由处理器210产生的数据访问请求相对应的存储器访问请求。例如,当人工神经网络存储器控制器220不产生人工神经网络数据局部性模式时,人工神经网络存储器控制器220可以被配置为基于处理器210生成的数据访问请求来生成存储器访问请求。在这种情况下,存储器访问请求可以被配置为包括在数据访问请求中包含的识别信息中的存储器地址值和操作模式值。
人工神经网络存储器控制器220可以被配置为生成对应于提前数据访问请求的存储器访问请求。也就是说,人工神经网络存储器控制器220可以被配置为基于基于人工神经网络数据局部性模式生成的提前数据访问请求来生成存储器访问请求。例如,当人工神经网络存储器控制器220生成人工神经网络数据局部性模式时,人工神经网络存储器控制器220可以被配置为基于提前数据访问请求来生成存储器访问请求。
根据上述配置,人工神经网络存储器控制器220可以通过存储器访问请求向存储器230发送数据和从存储器230接收数据,并且当基于提前数据访问请求生成存储器访问请求时,人工神经网络存储器系统200可以更快地将数据提供给处理器210。
人工神经网络存储器控制器220可以被配置为基于由处理器210产生的数据访问请求和由人工神经网络存储器控制器220产生的提前数据访问请求中的一者来产生存储器访问请求。也就是说,由人工神经网络存储器控制器220生成的存储器访问请求可以基于数据访问请求或提前数据访问请求来选择性地生成。
人工神经网络存储器控制器220可以被配置为生成存储器访问请求,该存储器访问请求包括在数据访问请求和提前数据访问请求中包括的识别信息的至少一部分。例如,由处理器210产生的数据访问请求可以包括存储器地址值和操作模式值。此时,由人工神经网络存储器控制器220产生的存储器访问请求可以被配置为包括对应的数据访问请求的存储器地址值和操作模式值。
也就是说,数据访问请求、提前数据访问请求和存储器访问请求中的每一个可以被配置为包括对应的存储器地址值和操作模式值。操作模式可以被配置为包括读取模式和写入模式。例如,由人工神经网络存储器控制器220生成的存储器访问请求可以被配置为具有与数据访问请求或提前数据访问请求具有相同配置的数据类型。因此,从存储器230的角度来看,即使不区分数据访问请求和提前数据访问请求,也可以根据人工神经网络存储器控制器220的指令执行存储器访问请求任务。
根据上述配置,无论由人工神经网络存储器控制器220产生的存储器访问请求是基于数据访问请求还是基于提前数据访问请求,存储器230都可以操作。因此,即使人工神经网络存储器控制器220基于人工神经网络数据局部性进行操作,人工神经网络存储器控制器也可以操作为与各种类型的存储器兼容。
人工神经网络存储器控制器220将存储器访问请求发送到存储器230,并且存储器230执行与存储器访问请求相对应的存储器操作。
根据本公开的示例性实施方案的存储器可以以各种形式实现。存储器可以由易失性存储器和非易失性存储器来实现。
易失性存储器可以包括动态RAM(DRAM)和静态RAM(SRAM)。非易失性存储器可以包括可编程只读存储器(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、闪存、铁电RAM(FRAM)、磁RAM(MRAM)和相变存储器设备(相变RAM),但本公开不限于此。
存储器230可以被配置为存储正在由处理器210处理的人工神经网络模型的推理数据、权重数据和特征图数据中的至少一种。推理数据可以是人工神经网络模型的输入信号。
存储器230可以被配置为从人工神经网络存储器控制器220接收存储器访问请求。存储器230可以被配置为执行与接收到的存储器访问请求相对应的存储器操作。控制存储器操作的操作模式可以包括读取模式或写入模式。
例如,当接收到的存储器访问请求的操作模式是写入模式时,存储器230可以将从人工神经网络存储器控制器220接收的数据存储在相应的存储器地址值中。
例如,当接收到的存储器访问请求的操作模式是读取模式时,存储器230可以将存储在相应存储器地址值中的数据传输到人工神经网络存储器控制器220。人工神经网络存储器控制器220可以被配置为再次将接收到的数据发送到处理器210。
存储器230可能具有延迟。存储器230的延迟可以指人工神经网络存储器控制器220处理存储器访问请求时延迟的时间。也就是说,当存储器230接收到来自人工神经网络存储器控制器220的存储器访问请求时,实际请求的数据在特定时钟周期的延迟之后从存储器230输出。
为了处理存储器访问请求,存储器230可以访问包括在存储器访问请求中的存储器地址值。因此,访问存储器地址值的时间是必要的,并且该时间可以被定义为存储器延迟。例如,DDR4 SDRM存储器的CAS延迟约为10ns。当在延迟期间没有向处理器210提供数据时,处理器210处于空闲状态,使得处理器无法进行实际操作。
另外,在作为存储器230的一种类型的DRAM的情况下,根据存储器230的行地址使用多个时钟来激活字线和位线,多个时钟用于激活列线,多个时钟用于允许数据通过将数据发送到存储器230外部所穿过的路径。此外,在NAND闪存的情况下,一次激活的单元是大的,使得可以额外使用多个时钟来搜索其中所需地址的数据。
存储器230可以具有带宽。存储器230的数据传输率可以定义为存储器带宽。例如,DDR4 SDRAM存储器的带宽约为4GByte/sec。随着存储器带宽更高,存储器230可以更快地将数据传输到处理器210。
也就是说,人工神经网络存储器系统200的处理速率受在提供待由处理器210处理的数据时产生的延迟和存储器230的带宽性能的影响,超过了受处理器210的处理性能的影响。
换句话说,存储器的带宽逐渐增加,但与带宽的改善速度相比,存储器的延迟改善相对缓慢。具体地,每当产生存储器访问请求时,都会产生存储器230的延迟,使得频繁的存储器访问请求可能是人工神经网络处理速度慢的重要原因。
也就是说,即使处理器210的操作处理速度很快,如果产生延迟以获取操作所需的数据,则处理器210可能处于不执行操作的空闲状态。因此,在这种情况下,处理器210的操作处理速度会变慢。
因此,根据本公开的示例性实施方案的人工神经网络存储器系统可以被配置为提高存储器230的带宽和/或延迟。
图9是根据本公开的比较实施方案用于解释存储器系统的操作的示意图。
参考图9,处理器产生数据访问请求,并且相关技术的存储器系统可以将与数据访问请求对应的存储器访问请求发送到存储器。此时,存储器具有延迟,以便可以在等待延迟后从存储器向处理器提供所请求的数据。
例如,相关技术的存储器系统接收由处理器产生的数据访问请求[1],并将与数据访问请求[1]对应的存储器访问请求[1']发送到存储器。存储器可以在延迟之后将数据[1”]发送到存储器系统。因此,在每次数据访问请求时,处理器的处理时间可能延迟与存储器的延迟一样多。因此,人工神经网络的推理操作的时间可能与存储器延迟一样多。具体地,随着处理器产生更多的数据访问请求,相关技术的存储器系统的人工神经网络推理操作时间可能会进一步延迟。
图10是根据本公开的另一示例性实施方案用于解释存储器系统的示意图。
参考图10,处理器210生成数据访问请求[1],并且人工神经网络存储器控制器220可以将与基于人工神经网络数据局部性模式生成的提前数据访问请求相对应的存储器访问请求发送到存储器230。此时,即使存储器230有延迟,处理器210也会产生对应于提前数据访问请求的存储器访问请求,使得当处理器210产生下一数据访问请求时,人工神经网络存储器控制器220可直接将由处理器210请求的数据提供给处理器210。
例如,由处理器210生成的数据访问请求[1]被人工神经网络存储器控制器220接收以生成提前数据访问请求[2]并且将对应于提前数据访问请求[2]的存储器访问请求[2']发送到存储器230。存储器230可以在延迟之后将数据[2”]发送到人工神经网络存储器控制器220。然而,由存储器230提供的数据[2”]是对应于基于提前数据访问请求[2]的存储器访问请求[2']的数据。因此,当处理器210产生下一数据访问请求[2]时,人工神经网络存储器控制器220可以立即将数据[2”]提供给处理器210。
如果基于提前数据访问请求的存储器访问请求和下一数据访问请求之间的时间长于存储器230的延迟,则一旦从处理器210接收到下一数据访问请求,人工神经网络存储器控制器220就可以将数据提供给处理器210。在这种情况下,人工神经网络存储器控制器220可以基本上消除存储器230的延迟。
换句话说,当基于提前数据访问请求的存储器访问请求被发送到存储器230时,存储器230的延迟可以短于或等于从提前数据访问请求的生成到下一数据访问请求的生成的时间。在这种情况下,一旦处理器210产生下一数据访问请求,人工神经网络存储器控制器220就可以立即提供数据而不会引起延迟。
即使基于提前数据访问请求的存储器访问请求和下一数据访问请求之间的时间比存储器230的延迟短,存储器230的延迟也会显著减少与在存储器访问请求和下一数据访问请求之间的时间一样多。
根据上述配置,人工神经网络存储器控制器220可以基本上消除或减少待提供给处理器210的数据的延迟。
在一些示例性实施方案中,人工神经网络存储器系统的人工神经网络存储器控制器可以被配置为测量存储器的延迟或被提供有来自存储器的存储器的延迟值。
根据上述配置,人工神经网络存储器控制器可以被配置为基于存储器的延迟,确定基于提前数据访问请求生成存储器访问请求的时序。因此,人工神经网络存储器控制器可基于实质上最小化存储器的延迟的提前数据访问请求来生成存储器访问请求。
在一些示例性实施方案中,人工神经网络存储器系统的存储器可以是被配置为包括更新存储器单元的电压的刷新功能的存储器。人工神经网络存储器控制器可以被配置为选择性地控制对对应于与提前数据访问请求对应的存储器访问请求的存储器的存储器地址区域的刷新。例如,存储器可以是包括刷新功能的DRAM。
如果DRAM不刷新存储单元的电压,则存储单元缓慢放电,使得存储的数据可能丢失。因此,存储器单元的电压需要在每个特定周期进行刷新。如果人工神经网络存储器控制器的存储器访问请求的时序与刷新时序重叠,则人工神经网络存储器系统可被配置为提前或延迟刷新存储器单元的电压的时序。
人工神经网络存储器系统可基于人工神经网络数据局部性模式预测或计算生成存储器访问请求的时序。因此,人工神经网络存储器系统可以被配置为在存储器访问请求操作期间限制存储器单元的电压刷新。
换句话说,人工神经网络操作的推理操作以精度的概念操作,使得即使存储的数据由于存储器单元的电压的延迟刷新而部分丢失,推理精度的降低可能基本上可以忽略不计。
根据上述配置,可以通过调整存储器单元的电压刷新周期,根据来自存储器的存储器访问请求来向人工神经网络存储器系统提供数据。因此,可以提高人工神经网络根据存储器单元的电压刷新而降低的操作速度,而不会显著降低推理精度。
在一些示例性实施方案中,人工神经网络存储器系统的存储器可以被配置为进一步包括预充电功能,该预充电功能用特定电压对存储器的全局位线充电。此时,人工神经网络存储器控制器可以被配置为选择性地向对应于与提前数据访问请求对应的存储器访问请求的存储器的存储器地址区域提供预充电。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为预充电或延迟存储器的位线,该位线执行与基于人工神经网络数据局部性模式的提前数据访问请求相对应的存储器任务。
通常,存储器通过接收存储器访问请求来执行预充电操作以执行读取操作或写入操作。当一个存储器操作完成时,信号会留在执行数据读写操作的位线和每条数据输入/输出线中,使得只有当上述线被预充电到预定电平时,才能顺利执行后续的存储器操作。然而,由于预充电所需的时间相当长,当产生存储器访问请求的时序与预充电的时序重叠时,存储器操作可能会延迟预充电时间。因此,会延迟处理由处理器请求的数据访问请求的时间。
人工神经网络存储器控制器可以基于人工神经网络数据局部性模式预测以特定顺序在特定存储器的位线上执行存储器操作。因此,人工神经网络存储器控制器可以提前或延迟预充电时间,以便预充电时序和在特定位线上执行存储器操作的时间不重叠。
换句话说,人工神经网络模型的推理操作以精度的概念进行操作,使得即使存储的数据由于延迟预充电而部分丢失,推理精度的降低基本上可以忽略不计。
换句话说,人工神经网络是通过模拟生物系统的大脑神经网络来建模的数学模型。称为神经元的人类神经细胞通过神经细胞之间的称为突触的连接处交换信息,神经细胞之间的信息交换非常简单,但是聚集了大量的神经细胞来创造智能。这种结构的优点在于,即使某些神经细胞传递错误信息,也不会影响整体信息,使得其对于小错误具有很强的鲁棒性。因此,由于上述特性,即使存储人工神经网络模型的数据的存储器的预充电和刷新功能被选择性地限制,人工神经网络模型的精度也基本上不会引起问题并且由于预充电或刷新导致的存储器延迟会减少。
根据上述配置,可以改进根据预充电的人工神经网络的操作速度降低而基本上不降低推理精度。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为基于人工神经网络数据局部性模式独立地控制存储器的刷新功能和预充电功能。
图11是根据本公开的又一示例性实施方案用于解释人工神经网络存储器系统的示意框图。
参考图11,人工神经网络存储器系统300可以被配置为包括处理器310、包括高速缓冲存储器322的人工神经网络存储器控制器320和存储器330。
当将根据本公开的另一示例性实施方案的人工神经网络存储器系统300与根据本公开的另一示例性实施方案的人工神经网络存储器系统200进行比较时,人工神经网络存储器系统300和人工神经网络存储器系统200基本相同,不同的是,人工神经网络存储器系统300还包括高速缓冲存储器322。因此,为了描述方便,将省略多余的描述。
根据本公开的又一示例性实施方案的人工神经网络存储器系统300可以被配置为包括人工神经网络存储器控制器320,人工神经网络存储器控制器320包括高速缓冲存储器322,高速缓冲存储器322被配置为存储由存储器330响应于基于提前数据访问请求的存储器访问请求而发送的数据。
根据上述配置,人工神经网络存储器控制器320可以响应于基于来自存储器330的提前数据访问请求的存储器访问请求读取数据并且将数据存储在高速缓冲存储器322中。因此,当处理器310产生下一数据访问请求时,人工神经网络存储器控制器320可以立即将存储在高速缓冲存储器322中的数据提供给处理器310。
高速缓冲存储器322的延迟比存储器330的延迟短得多。高速缓冲存储器322的带宽高于存储器330的带宽。
根据本公开的又一示例性实施方案的包括高速缓冲存储器322的人工神经网络存储器系统300的人工神经网络模型处理性能可以优于根据本公开的另一示例性实施方案的人工神经网络存储器系统200。
将参考图3的人工神经网络模型1300描述根据本公开的又一示例性实施方案的人工神经网络存储器系统300。
人工神经网络模型1300可由特定编译器编译以在处理器310中操作。编译器可被配置为向人工神经网络存储器控制器320提供人工神经网络数据局部性模式。
为了推理人工神经网络模型1300,处理器310可以被配置为根据基于人工神经网络数据局部性的顺序生成数据访问请求。因此,人工神经网络存储器控制器320可以监控数据访问请求以生成人工神经网络数据局部性模式1400。替代地,人工神经网络存储器控制器320可以存储已经提前生成的人工神经网络数据局部性模式1400。
在下文中,将描述不生成人工神经网络数据局部性模式1400的示例。
首先,处理器310可以产生对应于输入层1310的节点值读取模式的令牌[1]的数据访问请求。因此,人工神经网络存储器控制器320产生令牌[1]的存储器访问请求以将从存储器330发送的输入层1310的节点值发送到处理器310。
接下来,处理器310可以生成与第一连接网络1320的权重值相对应的令牌[2]的数据访问请求。因此,人工神经网络存储器控制器320生成令牌[2]的存储器访问请求,以将从存储器330发送的第一连接网络1320的权重值发送到处理器310。
接下来,处理器310接收输入层1310的节点值和第一连接网络1320的权重值以计算第一隐藏层1330的节点值。也就是说,处理器310可以生成对应于第一隐藏层1330的节点值写入模式的令牌[3]的数据访问请求。因此,人工神经网络存储器控制器320生成令牌[3]的存储器访问请求以将第一隐藏层1330的节点值存储在存储器330中。
接下来,处理器310可以生成与第一隐藏层1330的节点值读取模式相对应的令牌[4]的数据访问请求。因此,人工神经网络存储器控制器320生成该令牌[4]的存储器访问请求,以将从存储器330发送的第一隐藏层1330的节点值发送到处理器310。
接下来,处理器310可以生成与第二连接网络1340的权重值相对应的令牌[5]的数据访问请求。因此,人工神经网络存储器控制器320生成令牌[5]的存储器访问请求,以将从存储器330发送的第二连接网络1340的权重值发送到处理器310。
接下来,处理器310接收第一隐藏层1330的节点值和第二连接网络1340的权重值以计算第二隐藏层1350的节点值。也就是说,处理器310可以生成对应于第二隐藏层1350的节点值写入模式的令牌[6]的数据访问请求。因此,人工神经网络存储器控制器320生成令牌[6]的存储器访问请求以将第二隐藏层1350的节点值存储在存储器330中。
接下来,处理器310可以生成与第二隐藏层1350的节点值读取模式相对应的令牌[7]的数据访问请求。因此,人工神经网络存储器控制器320生成令牌[7]的存储器访问请求,以将从存储器330发送的第二隐藏层1350的节点值发送到处理器310。
接下来,处理器310可以生成与第三连接网络1360的权重值相对应的令牌[8]的数据访问请求。因此,人工神经网络存储器控制器320生成令牌[8]的存储器访问请求,以将从存储器330发送的第三连接网络1360的权重值发送到处理器310。
接下来,处理器310接收第二隐藏层1350的节点值和第三连接网络1360的权重值以计算输出层1370的节点值。也就是说,处理器310可以生成对应于输出层1370的节点值写入模式的令牌[9]的数据访问请求。因此,人工神经网络存储器控制器320生成令牌[9]的存储器访问请求以将输出层1370的节点值存储在存储器330中。
因此,人工神经网络存储器系统300可以将人工神经网络模型1300的推理结果存储在输出层1370中。
在上述示例中,在人工神经网络存储器控制器320中尚未生成人工神经网络数据局部性模式1400。因此,根据上述示例,不能生成提前数据访问请求。因此,由于人工神经网络存储器控制器320没有提前提供数据,所以在每次存储器访问请求中都可能导致存储器330的延迟。
然而,由于人工神经网络存储器控制器320记录了数据访问请求,因此当处理器310再次生成对应于输入层1310的节点值读取模式的令牌[1]的数据访问请求时,可以生成人工生成神经网络数据局部性模式1400。
在下文中,再次描述了参考图4生成人工神经网络数据局部性模式1400。
在以下示例中,生成人工神经网络数据局部性模式1400并且处理器310重复推理人工神经网络模型1300,但不限于此。
处理器310检测令牌[1]的重复数据访问请求以生成人工神经网络数据局部性模式1400。换言之,由于人工神经网络存储器控制器320从令牌[1]顺序地存储到令牌[9],因而当人工神经网络存储器控制器320再次检测到令牌[1]时,可以确定人工神经网络数据局部性。
然而,如上所述,根据本公开的示例性实施方案的人工神经网络存储器控制器不限于令牌。令牌仅用于描述方便,并且本公开的示例性实施方案可以通过包括在数据访问请求和存储器访问请求中的识别信息来实现。
例如,当处理器310产生对应于令牌[9]的数据访问请求时,人工神经网络存储器控制器320产生令牌[1]的提前数据访问请求。相应地,人工神经网络存储器控制器320生成令牌[1]的存储器访问请求以将输入层1310的节点值提前存储在高速缓冲存储器322中。
也就是说,如果令牌[9]的数据访问请求是人工神经网络模型1300的最后一步,则人工神经网络存储器控制器320可以预测作为人工神经网络模型1300的开始步骤的令牌[1]的数据访问请求将生成。
接下来,当处理器310产生令牌[1]的数据访问请求时,人工神经网络存储器控制器320确定令牌[1]的提前数据访问请求和令牌[1]的数据访问请求是否相同。当确定请求相同时,可以立即将存储在高速缓冲存储器322中的输入层1310的节点值提供给处理器310。
此时,人工神经网络存储器控制器320生成令牌[2]的提前数据访问请求。
相应地,人工神经网络存储器控制器320生成令牌[2]的存储器访问请求,以将第一连接网络1320的权重值提前存储在高速缓冲存储器322中。
接下来,当处理器310产生令牌[2]的数据访问请求时,人工神经网络存储器控制器320确定令牌[2]的提前数据访问请求和令牌[2]的数据访问请求是否相同。当确定请求相同时,可以立即将高速缓冲存储器322中存储的第一连接网络1320的节点值提供给处理器310。
此时,人工神经网络存储器控制器320生成令牌[3]的提前数据访问请求。
接着,处理器310接收输入层1310的节点值和第一连接网络1320的权重值以计算第一隐藏层1330的节点值。当处理器310生成令牌[3]的数据访问请求时,人工神经网络存储器控制器320判断令牌[3]的提前数据访问请求和令牌[3]的数据访问请求是否相同。当确定请求相同时,可以将计算出的第一隐藏层1330的节点值存储在存储器330和/或高速缓冲存储器322中。
将另外描述高速缓冲存储器322。当相同的数据作为令牌[3]的存储器访问请求存储在存储器330中而没有高速缓冲存储器322,然后从存储器330中读取作为令牌[4]的存储器访问请求时,存储器330的延迟可以加倍。
在这种情况下,人工神经网络存储器控制器320存储基于连续令牌的存储器地址值相同并且前一个令牌的操作模式为写入模式的事实而计算出的层的节点值,后续令牌的操作模式为读取模式,并且确定使用对应的节点值作为后续层的输入值。
也就是说,当令牌[3]的数据存储在高速缓冲存储器322中时,可以在高速缓冲存储器322中处理与令牌[3]和令牌[4]对应的数据访问请求。因此,人工神经网络存储器控制器320可以被配置为不产生与令牌[3]的数据访问请求和令牌[4]的数据访问请求相对应的存储器访问请求。根据上述配置,可以通过令牌[3]的存储器访问请求和令牌[4]的存储器访问请求消除存储器330对存储器330的延迟。特别地,可以基于人工神经网络数据局部性模式1400来执行高速缓冲存储器322操作策略。
此时,人工神经网络存储器控制器320生成令牌[4]的提前数据访问请求。
接着,当处理器310产生令牌[4]的数据访问请求时,人工神经网络存储器控制器320确定令牌[4]的提前数据访问请求和令牌[4]的数据访问请求是否相同。当确定请求相同时,可以立即将高速缓冲存储器322中存储的第一隐藏层1330的节点值提供给处理器310。
此时,人工神经网络存储器控制器320生成令牌[5]的提前数据访问请求。
相应地,人工神经网络存储器控制器320生成令牌[5]的存储器访问请求,以将第二连接网络1340的权重值提前存储在高速缓冲存储器322中。
接着,当处理器310产生令牌[5]的数据访问请求时,人工神经网络存储器控制器320确定令牌[5]的提前数据访问请求和令牌[5]的数据访问请求是否相同。当确定请求相同时,可以立即将高速缓冲存储器322中存储的第二连接网络1340的权重值提供给处理器310。
此时,人工神经网络存储器控制器320生成令牌[6]的提前数据访问请求。
接着,处理器310接收第一隐藏层1330的节点值和第二连接网络1340的权重值以计算第二隐藏层1350的节点值。当处理器310产生令牌[6]的数据访问请求时,人工神经网络存储器控制器320判断令牌[6]的提前数据访问请求和令牌[6]的数据访问请求是否相同。当确定请求相同时,可以将计算出的第二隐藏层1350的节点值存储在存储器330和/或高速缓冲存储器322中。
此时,人工神经网络存储器控制器320生成令牌[7]的提前数据访问请求。
接着,当处理器310产生令牌[7]的数据访问请求时,人工神经网络存储器控制器320确定令牌[7]的提前数据访问请求和令牌[7]的数据访问请求是否相同。当确定请求相同时,可以立即将高速缓冲存储器322中存储的第二隐藏层1350的节点值提供给处理器310。
此时,人工神经网络存储器控制器320生成令牌[8]的提前数据访问请求。
相应地,人工神经网络存储器控制器320生成令牌[8]的存储器访问请求,以将第三连接网络1360的权重值提前存储在高速缓冲存储器322中。
接下来,当处理器310产生令牌[8]的数据访问请求时,人工神经网络存储器控制器320确定令牌[8]的提前数据访问请求和令牌[8]的数据访问请求是否相同。当确定请求相同时,可以立即将高速缓冲存储器322中存储的第三连接网络1360的权重值提供给处理器310。
此时,人工神经网络存储器控制器320生成令牌[9]的提前数据访问请求。
接着,处理器310接收第二隐藏层1350的节点值和第三连接网络1360的权重值,以计算输出层1370的节点值。当处理器310产生令牌[9]的数据访问请求时,人工神经网络存储器控制器320确定令牌[9]的提前数据访问请求和令牌[9]的数据访问请求是否相同。当确定请求相同时,可以将计算出的输出层1370的节点值存储在存储器330和/或高速缓冲存储器322中。
因此,人工神经网络存储器系统300可以将人工神经网络模型1300的推理结果存储在输出层1370中。
即使人工神经网络模型1300的推理以人工神经网络数据局部性模式1400结束,人工神经网络存储器系统300也可以准备好立即开始下一个推理。
也就是说,根据本公开的又一示例性实施方案的人工神经网络存储器系统300可以被配置为基于人工神经网络数据局部性生成提前数据访问请求,确定提前数据访问请求与实际数据访问请求是否相同,以及如果请求相同,则进一步生成下一个提前数据访问请求。根据上述配置,人工神经网络存储器控制器320可以在处理数据访问请求时消除或减少存储器330的延迟。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为通过生成至少一个提前数据访问请求来操作以最小化高速缓冲存储器的可用空间。
也就是说,人工神经网络存储器控制器比较高速缓冲存储器的存储器可用空间和要存储的数据值的大小,并且当高速缓冲存储器的存储器可用空间存在时,生成至少一个提前数据访问请求以最小化高速缓冲存储器的可用空间。
也就是说,人工神经网络存储器控制器可以被配置为根据高速缓冲存储器的容量产生多个提前数据访问请求。
也就是说,人工神经网络存储器控制器可以被配置为基于高速缓冲存储器的剩余容量顺序地生成至少一个存储器访问请求以最小化高速缓冲存储器的剩余容量。
将参考图2至6描述该示例。当处理器产生令牌[1]的数据访问请求时,人工神经网络存储器控制器产生令牌[2]的提前数据访问请求以将第一连接网络1320的权重值提前存储在高速缓冲存储器中。接下来,人工神经网络存储器控制器可以提前将用于存储和读取与令牌[3]和令牌[4]对应的第一隐藏层1330的节点值计算结果的空间分配给高速缓冲存储器。接下来,人工神经网络存储器控制器可以提前将与令牌[5]对应的第二连接网络1340的权重值存储在高速缓冲存储器中。当高速缓冲存储器中有余量时,人工神经网络存储器控制器可以被配置成进一步根据人工神经网络数据局部性模式依次生成提前数据访问请求。也就是说,当高速缓冲存储器的容量有余量时,人工神经网络存储器控制器可以被配置为根据人工神经网络数据局部性模式提前将权重值存储在高速缓冲存储器中或提前确保用于存储人工神经网络操作结果的区域。
如果高速缓冲存储器的容量足够,则人工神经网络模型1300的所有连接网络的权重值可以存储在高速缓冲存储器中。具体来说,在完成学习的人工神经网络模型的情况下,权重值是固定的。因此,当权重值驻留在高速缓冲存储器中时,可以消除通过存储器访问请求来读取权重值所引起的存储器延迟。
根据上述配置,基于人工神经网络数据局部性存储高速缓冲存储器所需的数据以优化高速缓冲存储器的操作效率并且提高人工神经网络存储器系统300的处理速度。
根据上述配置,考虑到人工神经网络数据局部性模式和高速缓冲存储器的容量两者,高速缓冲存储器顺序地生成提前数据访问请求,使得人工神经网络存储器系统的处理速度可以改进。
根据上述配置,当处理器生成包括在人工神经网络数据局部性模式1400中的特定数据访问请求时,人工神经网络存储器控制器可以在特定数据访问请求之后顺序地预测至少一个数据访问请求。例如,当处理器产生令牌[1]的数据访问请求时,人工神经网络存储器控制器可以预测对应的数据访问请求是按照令牌[2-3-4-5-6-7-8-9]的顺序产生的。
根据上述配置,人工神经网络存储器控制器320可以使特定权重值驻留在高速缓冲存储器中持续特定时间段。例如,当处理器通过利用人工神经网络模型以每秒30次的速度进行推理时,特定层的权重值可以驻留在高速缓冲存储器中。在这种情况下,人工神经网络存储器控制器可以为每次推理重新利用存储在高速缓冲存储器中的权重值。因此,可以选择性地删除相应的存储器访问请求。因此,可以消除根据存储器访问请求的延迟。
在一些示例性实施方案中,高速缓冲存储器可以由多个分层的高速缓冲存储器配置。例如,高速缓冲存储器可以包括被配置为存储权重值的高速缓冲存储器或被配置为存储特征图的高速缓冲存储器。
在一些示例性实施方案中,当生成人工神经网络数据局部性模式1400时,人工神经网络存储器控制器可以被配置为基于包括在数据访问请求中的识别信息来预测权重值和节点值。因此,人工神经网络存储器控制器可以被配置为识别与权重值对应的数据访问请求。具体地,当假设完成学习使得连接网络的权重值固定时,在人工神经网络数据局部性模式1400中,权重值可以被配置为仅在读取模式下操作。因此,人工神经网络存储器控制器可以将令牌[2]、令牌[5]和令牌[8]确定为权重值。换句话说,令牌[1]是推理的开始步骤,使得可以将其确定为输入节点值。换句话说,令牌[9]是推理的最后一步,因此可以将其确定为输出节点值。换句话说,令牌[3]和[4]具有相同存储器地址值的写入模式和读取模式的顺序,使得令牌[3]和[4]可以被确定为隐藏层的节点值。然而,它可以根据人工神经网络模型的人工神经网络数据局部性而变化。
人工神经网络存储器控制器可以被配置为分析人工神经网络数据局部性模式以确定数据访问请求是否是人工神经网络模型的权重值、内核窗口值、节点值、激活图值等。
在一些示例性实施方案中,人工神经网络存储器系统包括:处理器,其被配置为生成与人工神经网络操作相对应的数据访问请求;人工神经网络存储器控制器,其被配置为存储由编译器生成的人工神经网络数据局部性模式并且生成提前数据访问请求,该提前数据访问请求基于人工神经网络数据局部性模式预测由处理器生成的数据访问请求的下一数据访问请求;以及存储器,其被配置为与人工神经网络存储器控制器通信。存储器可以被配置为根据从人工神经网络存储器控制器输出的存储器访问请求来操作。
根据上述配置,人工神经网络存储器控制器可以被配置为具有从编译器生成的人工神经网络数据局部性模式。在这种情况下,人工神经网络存储器控制器可以允许由处理器正在处理的人工神经网络模型的数据访问请求基于由编译器生成的人工神经网络数据局部性模式提前在高速缓冲存储器中准备。具体地,由编译器生成的人工神经网络数据局部性模式可能比通过监控人工神经网络数据局部性生成的人工神经网络数据局部性模式更准确。
换句话说,人工神经网络存储器控制器可以被配置为分别存储由编译器生成的人工神经网络数据局部性模式和通过独立监控数据访问请求而产生的人工神经网络数据局部性模式。
图12是用于说明数据访问请求的示例性识别信息的示意图。
由根据本公开的示例性实施方案的处理器生成的数据访问请求可以被配置为进一步包括至少一条附加识别信息。附加识别信息也可以称为边带信号或边带信息。
由处理器产生的数据访问请求可以是具有特定结构的接口信号。也就是说,数据访问请求可以是用于处理器和人工神经网络存储器控制器通信的接口信号。数据访问请求可以被配置为进一步包括附加位以附加提供人工神经网络操作所需的识别信息,但本公开不限于此,附加识别信息可以以各种方式提供。
在一些示例性实施方案中,人工神经网络存储器系统的数据访问请求可以被配置为进一步包括识别信息以识别其是否为人工神经网络操作,但本公开的示例性实施方案不限于此.
例如,人工神经网络存储器系统在数据访问请求中添加一位识别码,以识别由人工神经网络存储器控制器接收到的数据访问请求是否为与人工神经网络操作相关的数据访问请求。然而,根据本公开的示例性实施方案的识别码的位数不受限制并且可以根据要识别的对象的情况的数量进行调整。
例如,当识别码为[0]时,人工神经网络存储器控制器可以确定相应的数据访问请求与人工神经网络操作相关。
例如,当识别码为[1]时,人工神经网络存储器控制器可以确定相应的数据访问请求与人工神经网络操作无关。
在这种情况下,人工神经网络存储器控制器可以被配置为通过基于包括在数据访问请求中的识别信息仅记录与人工神经网络操作相关的数据访问请求来生成人工神经网络数据局部性模式。根据上述配置,人工神经网络存储器控制器可以不记录与人工神经网络操作无关的数据访问请求。通过这样做,可以提高通过记录数据访问请求生成的人工神经网络数据局部性模式的精度,但是本公开的示例性实施方案不限于此。
在一些示例性实施方案中,人工神经网络存储器系统的数据访问请求可以被配置为进一步包括识别信息以识别人工神经网络操作是用于学习的操作还是用于推理的操作,但是本公开的示例性实施方案不限于此。
例如,人工神经网络存储器系统在数据访问请求中添加一位识别码,使得通过人工神经网络存储器控制器接收到的数据访问请求被配置成识别人工神经网络模型的操作类型是学习还是推理。然而,根据本公开的示例性实施方案的识别码的位数不受限制并且可以根据要识别的对象的情况的数量进行调整。
例如,当识别码为[0]时,人工神经网络存储器控制器可以确定对应的数据访问请求是学习操作。
例如,当识别码为[1]时,人工神经网络存储器控制器可以确定相应的数据访问请求是推理操作。
在这种情况下,人工神经网络存储器控制器可以被配置为通过单独记录学习操作的数据访问请求和推理操作的数据访问请求来生成人工神经网络数据局部性模式。例如,在学习模式中,还可以包括更新人工神经网络模型的每一层和/或内核窗口的权重值,并且确定训练后的人工神经网络模型的推理精度的评估步骤。因此,即使人工神经网络模型的结构相同,在学习操作和推理操作中待由处理器处理的人工神经网络数据局部性也可能不同。
根据上述配置,人工神经网络存储器控制器可以被配置为分别生成特定人工神经网络模型的学习模式的人工神经网络数据局部性模式和推理模式的人工神经网络数据局部性模式。通过这样做,可以提高通过由人工神经网络存储器控制器记录数据访问请求而生成的人工神经网络数据局部性模式的精度,但是本公开的示例性实施方案不限于此。
在一些示例性实施方案中,人工神经网络存储器系统的数据访问请求可以被配置有包括识别信息的操作模式,以识别存储器读取操作和存储器写入操作,但不限于此,使得人工神经网络存储器系统的数据访问请求可以配置有操作模式,该操作模式还包括用于识别覆盖操作和/或保护操作的识别信息,但是本公开的示例性实施方案不限于此。
例如,在人工神经网络存储器系统的数据访问请求中增加一位识别码,以包括读取操作和写入操作。替代地,在人工智能网络存储系统的数据访问请求中增加两位识别码,用于识别读取操作、写入操作、覆盖和保护操作。然而,根据本公开的示例性实施方案的识别码的位数不受限制并且可以根据要识别的对象的情况的数量进行调整。
换句话说,对于人工神经网络存储器系统的操作,数据访问请求需要包括识别信息以识别存储器地址值和读取操作,以及写入操作。人工神经网络存储器控制器接收数据存取请求以产生对应的存储器访问请求以执行存储器操作。
例如,当识别码为[00]时,人工神经网络存储器控制器可以将相应的数据访问请求确定为读取操作。
例如,当识别码为[01]时,人工神经网络存储器控制器可以将相应的数据访问请求确定为写入操作。
例如,当识别码为[10]时,人工神经网络存储器控制器可以将相应的数据访问请求确定为覆盖操作。
例如,当识别码为[11]时,人工神经网络存储器控制器可以将相应的数据访问请求确定为保护操作。
然而,本公开的示例性实施方案不限于此。
根据上述配置,人工神经网络存储器控制器根据读取模式或写入模式控制存储器以向该存储器提供人工神经网络模型的各种数据或将该数据存储在该存储器中。
根据上述配置,人工神经网络存储器控制器可以在人工神经网络的学习操作期间通过覆盖操作更新特定层的权重值。具体地,更新后的权重值存储在相同的存储器地址值中,从而可以不分配新的存储器地址。因此,在学习操作期间覆盖模式可能比写入模式更有效。
根据上述配置,人工神经网络存储器控制器可以通过保护模式来保护存储在特定存储器地址中的数据。具体来说,在多个用户同时访问的环境中,如ae服务器,人工神经网络模型的数据不能随意消除。此外,可以通过保护模式来保护结束学习的人工神经网络模型的权重值。
在一些示例性实施方案中,人工神经网络存储器系统的数据访问请求可以被配置为进一步包括能够识别推理数据的识别信息、权重、特征图、学习数据集、评估数据集等等,但本公开的示例性实施方案不限于此。
例如,人工神经网络存储器系统可以被配置为向数据访问请求添加3位识别码以使得人工神经网络存储器控制器能识别要访问的数据的域。然而,根据本公开的示例性实施方案的识别码的位数不受限制并且可以根据要识别的对象的情况的数量进行调整。
例如,当识别码为[000]时,人工神经网络存储器控制器可以确定对应的数据是与人工神经网络模型无关的数据。
例如,当识别码为[001]时,人工神经网络存储器控制器可以确定对应的数据为人工神经网络模型的推理数据。
例如,当识别码为[010]时,人工神经网络存储器控制器可以确定对应的数据为人工神经网络模型的特征图。
例如,当识别码为[011]时,人工神经网络存储器控制器可以确定对应的数据为人工神经网络模型的权重。
例如,当识别码为[100]时,人工神经网络存储器控制器可以确定对应的数据为人工神经网络模型的学习数据集。
例如,当识别码为[101]时,人工神经网络存储器控制器可以确定对应的数据为人工神经网络模型的推理数据集。
根据上述配置,人工神经网络存储器控制器可以被配置为识别人工神经网络模型的数据的域并且分配存储与域对应的数据的存储器的地址。例如,人工神经网络存储器控制器可以设置分配给域的存储器区域的起始地址和结束地址。根据上述配置,可以存储分配给域的数据以对应于人工神经网络数据局部性模式的顺序。
例如,人工神经网络模型的域的数据可以顺序地存储在分配给该域的存储器区域中。此时,存储器可以是支持读取突发功能的存储器。根据上述配置,当人工神经网络存储器控制器从存储器读取特定域的数据时,特定数据可以被配置为根据人工神经网络数据局部性模式被存储以针对读取突发功能进行优化。也就是说,人工神经网络存储器控制器可以被配置为考虑到读取突发功能来设置存储器的存储区域。
在一些示例性实施方案中,存储器还包括读取突发功能,并且至少一个人工神经网络存储器控制器可以被配置为考虑到读取突发功能来写入至少一个存储器的存储区域。
在一些示例性实施方案中,人工神经网络存储器系统的数据访问请求可以被配置为进一步包括识别信息以识别人工神经网络模型的量化,但是本公开的示例性实施方案不限于此。
例如,当数据访问请求至少包括存储器地址值、域和量化识别信息时,人工神经网络存储器系统可以被配置为识别域的数据的量化信息。
例如,当识别码为[00001]时,人工神经网络存储器控制器可以确定对应的数据是量化为一位的数据。
例如,当识别码为[11111]时,人工神经网络存储器控制器可以确定对应的数据是量化为32位的数据。
在一些示例性实施方案中,可以在数据访问请求中选择性地包括各种识别信息。
根据上述配置,人工神经网络存储器控制器分析数据访问请求的识别码以生成更准确的人工神经网络数据局部性模式。进一步地,计算出每个识别信息以选择性地控制存储器的存储策略。
例如,当识别学习和推理时,可以生成每个人工神经网络数据局部性模式。
例如,当识别出数据的域时,建立将人工神经网络数据局部性模式的数据存储在特定存储器区域的策略,以提高存储器操作的效率。
在一些示例性实施方案中,当人工神经网络存储器系统被配置为处理多个人工神经网络模型时,人工神经网络存储器控制器可以被配置为进一步生成人工神经网络模型的识别信息,例如,附加识别信息,例如第一个人工神经网络模型或第二个人工神经网络模型。此时,人工神经网络存储器控制器可以被配置为基于人工神经网络模型的人工神经网络数据局部性来区分人工神经网络模型,但不限于此。
图13是用于说明人工神经网络存储器系统的每单位操作的能量消耗的示意图。
参考图13,在表中,示意性地说明了人工神经网络存储器系统300的每单位操作消耗的能量。能量消耗可以解释为分配到存储器访问、加法操作和乘法操作。
“8b Add”是指加法器的8位整数加法操作。8位整数加法操作可能消耗0.03pj的能量。
“16b Add”是指加法器的16位整数加法操作。16位整数加法操作可能消耗0.05pj的能量。
“32b Add”是指加法器的32位整数加法操作。32位整数加法操作可能消耗0.1pj的能量。
“16b FP Add”是指加法器的16位浮点加法操作。16位浮点加法操作可能消耗0.4pj的能量。
“32b FP Add”是指加法器的32位浮点加法操作。32位浮点加法操作可能消耗0.9pj的能量。
“8b Mult”是指乘法器的8位整数乘法操作。8位整数乘法操作可能消耗0.2pj的能量。
“32b Mult”是指乘法器的32位整数乘法操作。32位整数乘法操作可能消耗3.1pj的能量。
“16b FP Mult”是指乘法器的16位浮点乘法操作。16位浮点乘法操作可能消耗1.1pj的能量。
“32b FP Mult”是指乘法器的32位浮点乘法操作。32位浮点乘法操作可能消耗3.7pj的能量。
“32b SRAM Read”指的是当人工神经网络存储器系统300的高速缓冲存储器322是静态随机存取存储器(SRAM)时的32位数据读取访问。将32位数据从高速缓冲存储器322读取到处理器310可能会消耗5pj的能量。
“32b DRAM Read”是指当人工神经网络存储器系统300的存储器330是DRAM时的32位数据读取访问。将32位数据从存储器330读取到处理器310可能消耗640pj的能量。能量单位是指皮焦耳(pj)。
当比较由人工神经网络存储器系统300执行的32位浮点乘法和8位整数乘法时,每单位操作消耗的能量的差异约为18.5倍。当从由DRAM构成的存储器330读取32位数据和从由SRAM构成的高速缓冲存储器322读取32位数据时,每单位操作所消耗的能量的差异约为128倍。
也就是说,从功耗的角度来看,数据的位大小越大,功耗越大。此外,当使用浮点操作时,功耗比整数操作增加更多。此外,当从DRAM读取数据时,功耗迅速增加。
在根据本公开的又一示例性实施方案的人工神经网络存储器系统300中,高速缓冲存储器322的容量可以被配置为足以存储人工神经网络模型1300的所有数据值。
根据示例性实施方案的高速缓冲存储器不限于SRAM。能够像SRAM一样执行高速操作的静态存储器的示例包括SRAM、MRAM、STT-MRAM、eMRAM、OST-MRAM等。此外,MRAM、STT-MRAM、eMRAM和OST-MRAM是具有非易失性特性的静态存储器。因此,当人工神经网络存储器系统300的电源被关闭,然后重新启动时,人工神经网络模型1300不需要再次从存储器330中提供,但是根据本公开的示例性实施方案不限于此。
根据上述配置,当人工神经网络存储器系统300基于人工神经网络数据局部性模式1400执行人工神经网络模型1300的推理操作时,由于存储器330的读取操作引起的功耗会显著减少。
图14是用于解释根据本公开的各种示例性实施方案的人工神经网络存储器系统的示意图。
在下文中,将参照图14描述根据本公开的各种示例性实施方案。图14可以解释可以执行根据本公开的各种示例性实施方案的各种情况的数量。
根据本公开的各种示例性实施方案,人工神经网络存储器系统400包括至少一个处理器、至少一个存储器和至少一个人工神经网络存储器控制器ADC,该至少一个人工神经网络存储器控制器ADC被配置为包括至少一个处理器并接收来自至少一个处理器的数据访问请求,以向至少一个存储器提供该存储器访问请求。至少一个人工神经网络存储器控制器ADC可以被配置为与示例性人工神经网络存储器控制器120、220和320基本相同。然而,不限于此,并且所述人工神经网络存储器系统400的一个人工神经网络存储器控制器可以被配置为不同于其他人工神经网络存储器控制器。在下文中,为描述方便起见,将省略人工神经网络存储器系统的人工神经网络存储器控制器411、412、413、414、415、416和517以及上述人工神经网络存储器控制器120、220和320的重复描述。
至少一个人工神经网络存储器控制器被配置为连接至少一个处理器和至少一个存储器。此时,在至少一个处理器和至少一个存储器之间的数据传输路径中,可能存在对应的人工神经网络数据局部性。因此,位于数据传输路径中的人工神经网络存储器控制器可以被配置为提取相应的人工神经网络数据局部性模式。
每个人工神经网络存储器控制器ADC可以被配置为监控每个数据访问请求以生成人工神经网络数据局部性模式。人工神经网络存储器系统400可以被配置为包括至少一个处理器。至少一个处理器可以被配置为单独或与其他处理器合作处理人工神经网络操作。
人工神经网络存储器系统400可以被配置为包括至少一个内部存储器。人工神经网络存储器系统400可以被配置为连接到至少一个外部存储器。内部存储器或外部存储器可以包括动态RAM(DRAM)、高带宽存储器(HBM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、闪存、铁电RAM(FRAM)、闪存、磁RAM(MRAM)、硬盘、相变存储器件(相变RAM)等,但本公开不限于此。
外部存储器(External MEM1、External MEM2)或内部存储器(Internal MEM1、Internal MEM2)可以通过相应的存储器接口(External MEM I/F)与人工神经网络存储器系统400进行通信。
处理器(Processor 1)可以包括与系统总线通信的总线接口单元(BIU)。
人工神经网络存储器系统400可以包括连接到外部存储器(External MEM)的外部存储器接口。外部存储器接口将存储器访问请求传送到人工神经网络存储器系统400的至少一个外部存储器,并且可以响应于来自至少一个外部存储器的存储器访问请求而接收数据。示例性人工神经网络存储器控制器120、220和320中公开的配置和功能被分布到将设置在人工神经网络存储器系统400的特定位置的多个人工神经网络存储器控制器411、412、413、414、415、416和517。在一些示例性实施方案中,处理器可以被配置为包括人工神经网络存储器控制器。
在一些示例性实施方案中,存储器可以是DRAM,并且在这种情况下,人工神经网络存储器控制器可以被配置为包括在DRAM中。
例如,人工神经网络存储器控制器411、412、413、414、415、416和517中的至少一个可以被配置为包括高速缓冲存储器。此外,高速缓冲存储器可以被配置为包括在处理器、内部存储器和/或外部存储器中。
例如,人工神经网络存储器控制器411、412、413、414、415、416和517中的至少一个可以被配置为分布在存储器和处理器之间的数据传输路径中。
例如,可以在人工神经网络存储器系统400中实现的人工神经网络存储器控制器可以由以下项中的一项配置:独立配置的人工神经网络存储器控制器411;包括在系统总线中的人工神经网络存储器控制器412;被配置作为处理器的接口的人工神经网络存储器控制器413;包括在内部存储器的存储器接口和系统总线之间的包装块中的人工神经网络存储器控制器414;包括在内部存储器的存储器接口中的人工神经网络存储器控制器;包括在内部存储器中的人工神经网络存储器控制器415;包括在与外部存储器对应的存储器接口中的人工神经网络存储器控制器;包括在包装块中的介于外部存储器的接口和系统总线之间的人工神经网络存储器控制器416和/或包括在外部存储器中的人工神经网络存储器控制器517。然而,根据本公开的示例性实施方案的人工神经网络存储器控制器不限于此。
例如,由第一人工神经网络存储器控制器411和第二人工神经网络存储器控制器412生成的个体人工神经网络数据局部性模式可以彼此相同或不同。
换句话说,第一人工神经网络存储器控制器411可以被配置为通过系统总线连接第一处理器Processor1和第一内部存储器Internal MEM1。此时,在第一处理器Processor1与第一内部存储器Internal MEM1之间的数据传输路径中,可能存在第一人工神经网络数据局部性。
在这种情况下,在所述路径中示出了第三人工神经网络存储器控制器413。然而,这仅仅是说明性的并且可以省略第三人工神经网络存储器控制器413。也就是说,当处理器和存储器之间设置至少一个人工神经网络存储器控制器时,可以生成由处理器处理的人工神经网络模型的人工神经网络数据局部性模式。
换言之,第二人工神经网络存储器控制器412可以被配置为连接第二处理器(Processor 2)和第一外部存储器External MEM1。此时,在第二处理器(Processor 2)与第一外部存储器External MEM1之间的数据传输路径中,可能存在第二人工神经网络数据局部性。
例如,由第一处理器(Processor 1)处理的第一人工神经网络模型可以是对象识别模型,而由第二处理器(Processor 2)处理的第二人工神经网络模型可以是语音识别模型。因此,人工神经网络模型可能彼此不同,对应的人工神经网络数据局部性模式也可能彼此不同。
也就是说,由人工神经网络存储器控制器411、412、413、414、415、416和517产生的人工神经网络数据局部性模式可以根据由相应的处理器产生的数据访问请求的模式特征来确定。
也就是说,即使人工神经网络存储器系统400的人工神经网络存储器控制器设置在任意处理器和任意存储器之间,人工神经网络存储器控制器也可以提供适应性以在相应位置生成人工神经网络数据局部性模式。换言之,当两个处理器协作以并行处理一个人工神经网络模型时,可以将人工神经网络模型的人工神经网络数据局部性模式划分以分配给每个处理器。例如,第一层的卷积操作由第一处理器处理,第二层的卷积操作由第二处理器处理,以分配人工神经网络模型的操作。在这种情况下,即使人工神经网络模型相同,由各个处理器处理的人工神经网络模型的人工神经网络数据局部性也可以在数据访问请求的单元中进行重构。在这种情况下,每个人工神经网络存储器控制器可以提供适应性以生成与由人工神经网络存储器控制器处理的处理器的数据访问请求相对应的人工神经网络数据局部性模式。
根据上述配置,即使多个人工神经网络存储器控制器分布在多个处理器和多个存储器之间,人工神经网络存储器系统400的性能也可以通过被生成以适合每种情况的神经网络数据局部性模式进行优化。也就是说,每个人工神经网络存储器控制器在其位置分析人工神经网络数据局部性,以针对实时可变处理的人工神经网络操作进行优化。
在一些示例性实施方案中,人工神经网络存储器控制器411、412、413、414、415、416和517中的至少一个可以被配置为确认存储器数量、存储器类型、存储器有效带宽、存储器延迟、和存储器大小中的至少一个信息。
在一些示例性实施方案中,人工神经网络存储器控制器411、412、413、414、415、416和517中的至少一个可以被配置为测量响应于存储器访问请求的存储器的有效带宽。这里,存储器可以是至少一个存储器,并且每个人工神经网络存储器控制器可以测量与每个存储器通信的通道的有效带宽。有效带宽可以通过测量人工神经网络存储器控制器产生存储器访问请求和存储器访问请求结束的时间和数据传输位率来计算。
在一些示例性实施方案中,人工神经网络存储器控制器411、412、413、414、415、416和517中的至少一个可以被配置为具有响应于存储器访问请求的至少一个存储器的必要带宽。
在一些示例性实施方案中,人工神经网络存储器系统400包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为测量多个存储器的有效带宽。
在一些示例性实施方案中,人工神经网络存储器系统400包括多个存储器并且至少一个人工神经网络存储器控制器可以被配置为测量多个存储器的延迟。
也就是说,至少一个人工神经网络存储器控制器可以被配置为执行与其连接的存储器的自动校准。自动校准可以被配置为在人工神经网络存储器系统启动时或在特定周期时执行。至少一个人工神经网络存储器控制器可以被配置为通过自动校准来收集诸如与其相连的存储器的数量、存储器的类型、存储器的有效带宽、存储器的延迟和存储器的大小等信息。
根据上述配置,人工神经网络存储器系统400可以知道对应于人工神经网络存储器控制器的存储器的延迟和有效带宽。
根据上述配置,即使独立的人工神经网络存储器控制器连接到系统总线,正由处理器处理的人工神经网络模型的人工神经网络数据局部性也被生成以控制存储器。
在一些示例性实施方案中,人工神经网络存储器系统400的至少一个人工神经网络存储器控制器可以被配置为计算将人工神经网络数据局部性模式重复一次所花费的时间和用于计算人工神经网络操作所需的有效带宽的数据大小。具体地,当人工神经网络数据局部性模式中包含的数据访问请求全部处理完毕后,确定处理器完成人工神经网络模型的推理。人工神经网络存储器系统400可以被配置为基于人工神经网络数据局部性模式测量一次推理所花费的时间,以计算每秒推理(IPS:每秒推理)的次数。此外,人工神经网络存储器系统400可以被提供有来自处理器的每秒目标推理数信息。例如,特定应用需要30IPS作为特定人工神经网络模型的推理率。如果测量的IPS低于目标IPS,则人工神经网络存储器控制器400可以被配置为操作以提高处理器的人工神经网络模型处理速度。
在一些示例性实施方案中,人工神经网络存储器系统400可以被配置为包括被配置为控制人工神经网络存储器控制器、处理器和存储器的通信的系统总线。进一步地,至少一个人工神经网络存储器控制器可以被配置为具有系统总线的主控权。
换句话说,人工神经网络存储器系统400可能不是用于人工神经网络操作的专用设备。在这种情况下,人工神经网络存储器系统400的系统总线可以连接各种外围设备,例如wifi设备、显示器、相机或麦克风。在这种情况下,人工神经网络存储器系统400可以被配置为控制系统总线的带宽,以使人工神经网络操作稳定。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以操作以在存储器访问请求的处理时间优先处理人工神经网络操作,并在其他时间处理人工神经网络操作以外的操作。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以被配置为确保系统总线的有效带宽,直到至少一个存储器完成存储器访问请求。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器设置在系统总线中,并且系统总线可以被配置为基于在该系统总线中生成的人工神经网络数据局部性模式来动态地改变系统总线的带宽。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器设置在系统总线中,并且至少一个人工神经网络存储器控制器可以被配置为将系统总线的控制权限增加到高于当没有存储器访问请求系时的控制权限,直到至少一个存储器完成对存储器访问请求的响应。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以被配置为设置多个处理器中处理人工神经网络操作的处理器的数据访问请求的优先级为高于处理人工神经网络操作以外的操作的处理器的数据访问请求的优先级。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为直接控制存储器。
在一些示例性实施方案中,人工神经网络存储器控制器被包括在存储器中,并且人工神经网络存储器控制器可以被配置为生成至少一个访问队列。人工神经网络存储器控制器可以被配置为单独生成专用于人工神经网络操作的访问队列。
在一些示例性实施方案中,多个存储器中的至少一个可以是DRAM。在这种情况下,至少一个人工神经网络存储器控制器可以被配置为重新调整存储器访问请求的访问队列。访问队列重新调整可以是访问队列重新排序。
在一些示例性实施方案中,人工神经网络存储器控制器可以被配置为包括多个存储器访问请求的访问队列。在这种情况下,第一访问队列可以是专用于人工神经网络操作的访问队列,而第二访问队列可以是用于人工神经网络操作以外的操作的访问队列。人工神经网络存储器控制器可以被配置为通过根据优先级设置选择每个访问队列来提供数据。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以被配置为计算系统总线所需的特定带宽以基于人工神经网络数据局部性模式处理特定存储器访问请求,以及至少一个人工神经网络存储器控制器可以被配置为基于特定带宽控制系统总线的有效带宽。
根据上述配置,人工神经网络存储器系统400可以被配置为基于人工神经网络数据局部性模式降低各种外围设备的存储器访问请求的优先级或提高提前数据访问请求的优先级。
根据上述配置,人工神经网络存储器控制器重新调整系统总线的数据访问请求的处理顺序,以在处理人工神经网络操作的同时充分利用系统总线的带宽,并且在没有人工神经网络操作时,产生其他外围设备的处理数据的带宽。
根据上述配置,人工神经网络存储器控制器可以基于人工神经网络数据局部性模式重新调整数据访问请求的处理顺序。此外,人工神经网络存储器控制器基于包含在数据访问请求中的识别信息重新调整优先级。也就是说,从人工神经网络操作的角度来看,系统总线的有效带宽是动态变化的,从而可以提高有效带宽。因此,可以提高系统总线的操作效率。因此,从人工神经网络存储器控制器的观点来看,可以提高系统总线的有效带宽。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以被配置为执行数据访问请求的机器学习。也就是说,至少一个人工神经网络存储器控制器还可以包括人工神经网络模型,该人工神经网络模型被配置为机器学习人工神经网络数据局部性模式。也就是说,人工神经网络数据局部性模式是机器学习的,以便学习特定模式(即根据实际人工神经网络数据局部性在数据访问请求处理过程中中断另一个数据访问请求),以进行预测。
当产生提前数据访问请求时,可以对嵌入人工神经网络存储器控制器中的人工神经网络模型进行机器训练,以将系统总线的控制权限提高到高于提前数据访问请求未生成时的控制权。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器还包括多个分层高速缓冲存储器,并且至少一个人工神经网络存储器控制器可以被配置为在多个分层高速缓冲存储器的层之间执行数据访问请求的机器学习。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以被配置为具有多个分层高速缓冲存储器的每一层的有效带宽、功耗和延迟信息中的至少一个。
根据上述配置,人工神经网络存储器控制器可以被配置为通过机器学习产生人工神经网络数据局部性模式,并且经机器学习的人工神经网络数据局部性模式可以是在与人工神经网络操作无关的各种数据访问请求以特定模式生成时提高预测特定模式发生的概率。进一步地,通过强化学习来预测由处理器处理的各种人工神经网络模型和其他操作的特性,以提高人工神经网络操作的效率。
在一些示例性实施方案中,至少一个人工神经网络存储器控制器可以被配置为基于多个存储器中的每一个的有效带宽和延迟来划分和存储要存储在多个存储器中的数据。
例如,数据由L位的位组配置,并且多个存储器包括第一存储器和第二存储器。第一存储器被配置为基于第一有效带宽或第一延迟将来自L位的位组的M位数据进行划分并存储,并且第二存储器被配置为基于第二有效带宽或第二延迟将来自L位的位组中的N位数据进行划分和存储。M位和N位的总和可以被配置为小于或等于L位。进一步地,所述多个存储器还包括第三存储器,并且所述第三存储器被配置为基于第三有效带宽或第三延迟存储来自L位的位组的O位数据,以及M位、N位和O位的总和可以被配置为等于L位。
例如,数据由P个数据包构成,并且多个存储器包括第一存储器和第二存储器。第一存储器被配置为基于第一有效带宽或第一延迟存储P个数据包中的R个数据包,第二存储器被配置为基于第二有效带宽或第二延迟存储P个数据包中的S个数据包。R和S的和可以被配置为小于或等于P。另外,多个存储器还包括第三存储器,并且第三存储器被配置为基于第三有效带宽或第三延迟存储来自P个数据包的T个数据包,R、S和T之和可配置为等于P。
根据上述配置,当一个存储器的带宽较低时,人工神经网络存储器控制器可以分配要存储或读取的数据,从而可以提高存储器的有效带宽。例如,人工神经网络存储器控制器可以被配置为将量化的权重值的8位划分以在第一存储器中存储或读取4位以及在第二存储器中存储或读取4位。因此,从人工神经网络存储器控制器的角度来看,可以提高存储器的有效带宽。
人工神经网络存储器控制器可以被配置为进一步包括高速缓冲存储器,该高速缓冲存储器被配置为合并和存储被划分以存储在多个存储器中的数据。也就是说,至少一个人工神经网络存储器控制器还包括高速缓冲存储器,并且可以被配置为合并被分布以存储在多个存储器中的数据以将合并的数据存储在高速缓冲存储器中。因此,可以向处理器提供合并的数据。
为了合并划分的数据,至少一个人工神经网络存储器控制器可以被配置为存储被划分以存储在多个存储器中的数据的划分信息。本公开的各种示例性实施方案将描述如下。
根据本公开的一个示例性实施方案,人工神经网络存储器系统可以被配置为包括:至少一个处理器,其被配置为生成对应于人工神经网络操作的数据访问请求;和至少一个人工神经网络存储器控制器,其被配置为通过顺序记录数据访问请求来生成人工神经网络操作的人工神经网络数据局部性模式,并且基于人工神经网络数据局部性模式生成提前数据访问请求,该提前数据访问请求预测由至少一个处理器生成的数据访问请求的下一数据访问请求。这里,人工神经网络数据局部性是在处理器-存储器级别重构的人工神经网络数据局部性。
根据本公开的示例性实施方案,人工神经网络存储器系统可以被配置为包括:至少一个处理器,其被配置为处理人工神经网络模型;和至少一个人工神经网络存储器控制器,其被配置为存储人工神经网络模型的人工神经网络数据局部性信息,并且基于人工神经网络数据局部性信息预测待由至少一个处理器请求的数据,以生成提前数据访问请求。
人工神经网络存储器系统可以被配置为进一步包括至少一个存储器和系统总线,该系统总线被配置为控制人工神经网络存储器控制器、至少一个处理器和至少一个存储器的通信。根据本公开的示例性实施方案,人工神经网络存储器系统包括处理器、存储器和高速缓冲存储器,并且被配置为基于人工神经网络数据局部性信息生成包括待由处理器请求的数据的提前数据访问请求,并且在处理器请求之前存储与来自在高速缓冲存储器中的存储器的提前数据访问请求对应的数据。
根据本公开的示例性实施方案,人工神经网络存储器系统可以被配置为以第一模式和第二模式中的任意一者操作,第一模式被配置为通过接收人工神经网络数据局部性信息来操作,而第二模式被配置为通过观察由处理器产生的数据访问请求以预测人工神经网络数据局部性信息来操作。
至少一个人工神经网络存储器控制器可以被配置为基于人工神经网络数据局部性模式依次进一步生成提前数据访问请求。
至少一个人工神经网络存储器控制器可以被配置为在生成下一数据访问请求之前生成提前数据访问请求。
至少一个处理器可以被配置为向至少一个人工神经网络存储器控制器发送数据访问请求。
至少一个人工神经网络存储器控制器可以被配置为响应于数据访问请求而输出提前数据访问请求。
数据访问请求可以被配置为进一步包括存储器地址。
数据访问请求可以被配置为进一步包括存储器的起始地址和结束地址。
至少一个人工神经网络存储器控制器可以被配置为基于由至少一个处理器生成的数据访问请求和由人工神经网络存储器控制器生成的提前数据访问请求中的一者来生成存储器访问请求。
数据访问请求可以被配置为进一步包括存储器的起始地址和连续数据读取触发器。
数据访问请求可以被配置为进一步包括存储器的起始地址和连续数据的数量信息。
数据访问请求和提前数据访问请求可以被配置为还包括相同匹配存储器地址的数据访问请求令牌。
数据访问请求可以被配置为进一步包括识别信息以识别其是存储器读取命令还是写入命令。
数据访问请求可以被配置为进一步包括识别信息以识别其是否是存储器覆盖命令。
数据访问请求可以被配置为进一步包括识别信息以识别其是推理数据、权重数据还是特征图数据。
数据访问请求可以被配置为进一步包括识别信息以识别其是学习数据还是评估数据。
数据访问请求可以被配置为进一步包括识别信息以识别人工神经网络操作是用于学习的操作还是用于推理的操作。
当至少一个处理器生成下一数据访问请求时,至少一个人工神经网络存储器控制器可被配置为确定提前数据访问请求和下一数据访问请求是否是相同的请求。
当提前数据访问请求和下一数据访问请求是相同的请求时,至少一个人工神经网络存储器控制器可以被配置为维护人工神经网络数据局部性模式。
当提前数据访问请求和下一数据访问请求不同时,至少一个人工神经网络存储器控制器可以被配置为更新人工神经网络数据局部性模式。
人工神经网络数据局部性模式可以被配置为进一步包括其中顺序记录数据访问请求的存储器的地址的数据。
至少一个人工神经网络存储器控制器可以被配置为通过检测包括在数据访问请求中的存储器地址的重复模式来生成人工神经网络数据局部性模式。
人工神经网络数据局部性模式可以由具有重复循环特性的存储器地址来配置。
人工神经网络数据局部性模式可以被配置为进一步包括用于识别人工神经网络模型的操作的开始和结束的识别信息。
至少一个处理器可以被配置为被提供与来自人工神经网络存储器控制器的数据访问请求相对应的数据。
至少一个人工神经网络存储器控制器可以被配置为进一步包括人工神经网络模型,该人工神经网络模型被配置为机器学习人工神经网络数据局部性模式。
至少一个人工神经网络存储器控制器可以被配置为存储人工神经网络数据局部性模式的更新模式和提前模式以确定人工神经网络模型是否改变。
至少一个人工神经网络存储器控制器可以被配置为确定数据访问请求是一个人工神经网络模型的请求还是多个人工神经网络模型的请求的混合。
当存在多个人工神经网络模型时,至少一个人工神经网络存储器控制器可以被配置为进一步生成与人工神经网络模型的数量相对应的人工神经网络数据局部性模式。
至少一个人工神经网络存储器控制器可以被配置为基于人工神经网络数据局部性模式单独生成对应的提前数据访问请求。
至少一个人工神经网络存储器控制器可以被配置为进一步生成与数据访问请求相对应的数据访问请求。
至少一个人工神经网络存储器控制器可以被配置为进一步生成与提前数据访问请求相对应的数据访问请求。
数据访问请求、提前数据访问请求和存储器访问请求中的每一个都可以被配置为包括对应的存储器地址值和操作模式。
至少一个人工神经网络存储器控制器可以被配置为进一步生成存储器访问请求,该存储器访问请求包括被包括在数据访问请求和提前数据访问请求中的信息的至少一部分。
还包括被配置为与至少一个人工神经网络存储器控制器通信的至少一个存储器,并且至少一个存储器可以被配置为响应于从至少一个人工神经网络存储器控制器输出的存储器访问请求而操作。
至少一个存储器可以被配置为存储推理数据、权重数据和特征图数据中的至少一种。
至少一个神经网络人工神经网络存储器控制器可以被配置为进一步包括高速缓冲存储器,该高速缓冲存储器被配置为存储响应于存储器访问请求而从至少一个存储器发送的数据。
当至少一个处理器输出下一数据访问请求时,至少一个人工神经网络存储器控制器确定该提前数据访问请求和下一数据访问请求是否是相同的请求。如果提前数据访问请求和下一数据访问请求相同,则至少一个人工神经网络存储器控制器可以被配置为向至少一个处理器提供存储在高速缓冲存储器中的数据,并且如果提前数据访问请求和下一数据访问请求不同,则至少一个人工神经网络存储器控制器可以被配置为基于下一数据访问请求生成新的存储器访问请求。
至少一个人工神经网络存储器控制器基于高速缓冲存储器的剩余容量顺序地生成至少一个存储器访问请求以最小化高速缓冲存储器的剩余容量。
至少一个人工神经网络存储器控制器可以被配置为测量响应于存储器访问请求的至少一个存储器的有效带宽。
至少一个人工神经网络存储器控制器可以被配置为具有响应于存储器访问请求的至少一个存储器的必要带宽。
至少一个人工神经网络存储器控制器可以被配置为通过计算人工神经网络数据局部性模式在特定时间内的重复次数来测量人工神经网络操作的每秒推理(IPS)次数。
至少一个人工神经网络存储器控制器可以被配置为计算重复人工神经网络数据局部性模式一次所花费的时间和用于计算人工神经网络操作所需的有效带宽的数据大小。
至少一个存储器还包括DRAM,该DRAM包括更新存储器单元的电压的刷新功能,并且至少一个人工神经网络存储器控制器可以被配置为对应于提前数据访问请求而选择性地控制与存储器访问请求对应的至少一个存储器的存储器地址区域的刷新。
至少一个存储器还包括预充电功能,以使用特定电压对存储器的全局位线充电,并且至少一个人工神经网络存储器控制器可以被配置为对应于提前数据访问请求而选择性地向与存储器访问请求对应的至少一个存储器的存储器地址区域提供预充电。
至少一个存储器还包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为分别测量多个存储器的有效带宽。
至少一个存储器还包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为分别测量多个存储器的延迟。
至少一个存储器还包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为基于多个存储器中的每个存储器的有效带宽和延迟来划分和存储要存储在多个存储器中的数据。
数据由L位的位组配置,并且多个存储器还包括第一存储器和第二存储器。第一存储器被配置为基于第一有效带宽或第一延迟将来自L位的位组的M位数据进行划分并存储,并且第二存储器被配置为基于第二有效带宽或第二延迟将来自L位的位组中的N位数据进行划分和存储。M位和N位的总和可以被配置为小于或等于L位。
所述多个存储器还包括第三存储器,并且所述第三存储器被配置为基于第三有效带宽或第三延迟存储来自L位的位组的O位数据,以及M位、N位和O位的总和可以被配置为等于L位。
至少一个人工神经网络存储器控制器可以被配置为进一步包括高速缓冲存储器,其被配置为合并和存储被划分以存储在多个存储器中的数据。
数据由P个数据包构成,并且多个存储器包括第一存储器和第二存储器。第一存储器被配置为基于第一有效带宽或第一延迟存储P个数据包中的R个数据包,第二存储器被配置为基于第二有效带宽或第二延迟存储P个数据包中的S个数据包。R和S的和可以被配置为小于或等于P。
多个存储器还包括第三存储器,并且第三存储器被配置为基于第三有效带宽或第三延迟存储来自P个数据包的T个数据包,R、S和T之和可配置为等于P。
至少一个存储器还包括多个存储器,并且至少一个人工神经网络存储器控制器还包括高速缓冲存储器,并且被配置为合并被分布而存储在多个存储器中的数据以将合并的数据存储在高速缓冲存储器中。
至少一个存储器还包括多个存储器,并且至少一个人工神经网络存储器控制器可以被配置为存储被划分以存储在多个存储器中的数据的划分信息。
至少一个人工神经网络存储器控制器可以被配置为基于提前数据访问请求和至少一个存储器的延迟值将一部分数据与延迟一样多地存储在高速缓冲存储器中。
至少一个人工神经网络存储器控制器可以被配置为基于至少一个存储器的提前数据访问请求和所需数据带宽将部分数据存储在高速缓冲存储器中。
当至少一个处理器产生下一数据访问请求时,至少一个人工神经网络存储器控制器首先提供存储在高速缓冲存储器中的数据,并以读取突发模式控制来自至少一个存储器的剩余数据,以减少至少一个存储器的延迟。
当至少一个处理器基于至少一个存储器的提前数据访问请求和延迟值生成下一数据访问请求时,至少一个人工神经网络存储器控制器提前与延迟值一样多地以至少一个存储器的读取突发模式开始,以减少至少一个存储器的延迟。
可以进一步包括被配置为控制人工神经网络存储器控制器、至少一个处理器和至少一个存储器的通信的系统总线。
至少一个人工神经网络存储器控制器可以被配置为具有系统总线的主控权。
至少一个人工神经网络存储器控制器还包括人工神经网络模型,并且当产生提前数据访问请求时,可以对人工神经网络模型进行机器训练,以将系统总线的控制权增加至高于未生成提前数据访问请求时的控制权。
至少一个人工神经网络存储器控制器可以被配置为确保系统总线的有效带宽,直到至少一个存储器完成存储器访问请求。
至少一个人工神经网络存储器控制器可以被配置为基于人工神经网络数据局部性模式计算系统总线处理特定存储器访问请求所需的特定带宽,并且至少一个人工神经网络存储器控制器可以被配置为根据特定带宽控制系统总线的有效带宽。
至少一个人工神经网络存储器控制器设置在系统总线中,并且系统总线被配置为基于系统总线中生成的人工神经网络数据局部性模式动态地改变系统总线的带宽。
至少一个人工神经网络存储器控制器可以操作以在存储器访问请求的处理时间优先处理人工神经网络操作,并在其他时间处理人工神经网络操作以外的操作。
至少一个人工神经网络存储器控制器和至少一个处理器可以被配置为彼此直接通信。
人工神经网络存储器控制器可以被配置为进一步包括第一访问队列以及第二访问队列,第一访问队列是专用于人工神经网络操作的访问队列,而第二访问队列是除了人工神经网络操作之外的访问队列,并且人工神经网络存储器控制器可以被配置为根据优先级设置来选择访问队列以提供数据。
至少一个人工神经网络存储器控制器还包括多个分层高速缓冲存储器,并且至少一个人工神经网络存储器控制器可以被配置为进一步包括人工神经网络模型,该人工神经网络模型被配置为执行多个分层高速缓冲存储器的层之间的数据访问请求的机器学习。
至少一个人工神经网络存储器控制器可以被配置为进一步被提供多个分层高速缓冲存储器的每一层的有效带宽、功耗和延迟信息中的至少一者。
包括:至少一个处理器,其被配置为生成对应于人工神经网络操作的数据访问请求;至少一个人工神经网络存储器控制器,其被配置为存储从编译器生成的人工神经网络操作的人工神经网络数据局部性模式并且生成提前数据访问请求,该提前数据访问请求基于人工神经网络数据局部性模式预测由至少一个处理器生成的数据访问请求的下一数据访问请求;以及至少一个存储器,其被配置为与至少一个人工神经网络存储器控制器通信。至少一个存储器可以被配置为根据从至少一个人工神经网络存储器控制器输出的存储器访问请求来操作。
至少一个人工神经网络存储器系统可以被配置为进一步包括至少一个存储器和系统总线,该系统总线被配置为控制人工神经网络存储器控制器、至少一个处理器和至少一个存储器的通信。
至少一个人工神经网络存储器控制器设置在系统总线中,并且至少一个人工神经网络存储器控制器可以被配置为将系统总线的控制权限提高到高于没有存储器访问请求时的控制权限,直到至少一个存储器完成对存储器访问请求的响应。
至少一个人工神经网络存储器控制器包括一个或多个人工神经网络存储器控制器,其被配置为被包括在DRAM中。
至少一个人工神经网络存储器控制器包括被配置为包括在至少一个处理器中的一个或多个人工神经网络存储器控制器。
至少一个存储器进一步包括DRAM或者至少一个存储器是DRAM,并且至少一个人工神经网络存储器控制器可以被配置为重新调整存储器访问请求的访问队列。也就是说,至少一个人工神经网络存储器控制器可以被配置为控制DRAM的存储器控制器的重排序线索。
从人工神经网络存储器控制器提供给存储器的存储器控制器的人工神经网络操作相关的存储器访问请求还可以包括可由存储器的存储器控制器解释的优先级信息。
根据上述配置,存储器的存储器控制器可以被配置为基于由人工神经网络存储器控制器生成的存储器访问请求中包括的优先级信息对存储器控制器中的存储器访问队列进行重新排序,而不管存储器访问请求是否与人工神经网络操作有关。因此,用于处理人工神经网络操作的存储器访问请求的访问队列可以比另一种类型的存储器访问请求的访问队列更早地被处理。因此,人工神经网络存储器控制器可以增加相应存储器的有效带宽。
由DRAM的存储器控制器确定的存储器访问请求处理顺序可以通过人工神经网络存储器控制器提供的优先级信息进行重新调整。
例如,当由人工神经网络存储器控制器产生的存储器访问请求的优先级被设置为紧急时,DRAM的存储器控制器可以将存储器访问请求的处理序列改变为第一优先级。
人工神经网络存储器控制器可以被配置为生成至少一个访问队列。
至少一个存储器包括人工神经网络存储器控制器,并且人工神经网络存储器控制器可以被配置为单独生成专用于人工神经网络操作的访问队列。
至少一个人工神经网络存储器控制器可以被配置为重新调整存储器访问请求的访问队列。
至少一个存储器还包括读取突发功能,并且至少一个人工神经网络存储器控制器可以被配置为考虑到读取突发功能来设置至少一个存储器的存储区域。
至少一个存储器还包括读取突发功能,并且至少一个人工神经网络存储器控制器可以被配置为考虑到读取突发功能来处理在至少一个存储器的存储区域中的写入操作。
至少一个处理器还包括多个处理器,并且至少一个人工神经网络存储器控制器可以被配置为将多个处理器中处理人工神经网络操作的处理器的数据访问请求的优先级设置至高于处理人工神经网络操作以外的操作的处理器的数据访问请求的优先级。
在前述实施方案中描述的特征、结构、效果等包括在本公开的一个实施方案中并且不一定限于一个实施方案。此外,本领域技术人员可以对每个实施方案中示出的特征、结构、效果等进行组合或修改以用于待执行的其他实施方案。因此,本公开的组合和修改被解释为包括在本公开的范围内。
在上面的描述中,已经基于示例性实施方案描述了本公开,但是示例性实施方案用于说明而不是限制本发明,并且本领域技术人员应理解在以上描述中未例示的各种修改和应用可以在不脱离本示例性实施方案的基本特征的范围的情况下做出。例如,可以修改和执行示例性实施方案中具体存在的每个构成要素。此外,与修改和应用有关的差异应理解为包含在所附权利要求所限定的本发明的范围内。
[支持本发明的国家研发项目]
[项目唯一编号]1711117009
[任务编号]2020-0-01303-001
[部门名称]科技信息通信部
[项目管理(专业)机构名称]信息通信规划与评估研究所
[研究项目名称]下一代智能半导体技术开发(设计)(R&D)
[研究项目名称]高性能AI服务器HBM3级或以上接口技术开发
[贡献率]1/1
[项目执行机构名称]DeepX Co.,Ltd.
[研究期间]2020.04.01~2020.12.31。
Claims (28)
1.一种人工神经网络存储器系统,其包括:
至少一个处理器,其被配置为产生对应于人工神经网络操作的数据访问请求;和
至少一个人工神经网络存储器控制器,其被配置为依次记录所述数据访问请求以生成所述人工神经网络操作的人工神经网络数据局部性模式,以及
基于所述人工神经网络数据局部性模式,生成预测由所述至少一个处理器生成的所述数据访问请求的下一数据访问请求的提前数据访问请求。
2.根据权利要求1所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器还被配置为基于所述人工神经网络数据局部性模式依次生成所述提前数据访问请求。
3.根据权利要求1所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器被配置为在生成所述下一数据访问请求之前生成所述提前数据访问请求。
4.根据权利要求1所述的人工神经网络存储器系统,其中,所述数据访问请求还被配置为包括所述存储器的起始地址和连续数据读取触发器。
5.根据权利要求1所述的人工神经网络存储器系统,其中,当所述至少一个处理器产生所述下一数据访问请求时,所述至少一个人工神经网络存储器控制器被配置为确定所述提前数据访问请求和所述下一数据访问请求是否是相同的请求。
6.根据权利要求1所述的人工神经网络存储器系统,其中,所述人工神经网络数据局部性模式由具有重复循环特性的存储器地址构成。
7.根据权利要求1所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器被配置为存储所述人工神经网络数据局部性模式的更新模式和先前模式,以确定人工神经网络模型是否改变。
8.根据权利要求1所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器被配置为确定所述数据访问请求是一个人工神经网络模型的请求还是多个人工神经网络模型的请求的混合。
9.根据权利要求1所述的人工神经网络存储器系统,其中,当存在多个人工神经网络模型时,所述至少一个人工神经网络存储器控制器进一步被配置为:
生成与人工神经网络模型的数量相对应的人工神经网络数据局部性模式,以及
基于所述人工神经网络数据局部性模式生成相应的提前数据访问请求。
10.根据权利要求1所述的人工神经网络存储器系统,其还包括:
至少一个存储器,其被配置为与所述至少一个人工神经网络存储器控制器通信,
其中,所述至少一个存储器被配置为响应于从所述至少一个人工神经网络存储器控制器输出的存储器访问请求而操作。
11.根据权利要求10所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器还被配置为包括高速缓冲存储器,所述高速缓冲存储器被配置为存储响应于所述存储器访问请求而从至少一个存储器发送的数据。
12.根据权利要求11所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器被配置为基于所述高速缓冲存储器的剩余容量依次生成所述存储器访问请求中的至少一个以最小化所述高速缓冲存储器的所述剩余容量。
13.根据权利要求10所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器被配置为测量响应于所述存储器访问请求的所述至少一个存储器的有效带宽。
14.根据权利要求10所述的人工神经网络存储器系统,
其中,所述至少一个存储器还包括具有刷新功能以更新存储器单元的电压的DRAM,以及
其中,所述至少一个人工神经网络存储器控制器被配置为响应于所述提前数据访问请求,选择性地控制与所述存储器访问请求对应的所述至少一个存储器的存储器地址区域的刷新。
15.根据权利要求10所述的人工神经网络存储器系统,
其中,所述至少一个存储器还包括预充电功能,以用特定电压对所述存储器的全局位线充电,以及
其中,所述至少一个人工神经网络存储器控制器被配置为对应于所述提前数据访问请求而选择性地向与所述存储器访问请求对应的所述至少一个存储器的存储器地址区域提供预充电。
16.根据权利要求10所述的人工神经网络存储器系统,
其中,所述至少一个存储器还包括多个存储器,并且
其中,所述至少一个人工神经网络存储器控制器被配置为存储被划分以存储在所述多个存储器中的所述数据的划分信息。
17.根据权利要求10所述的人工神经网络存储器系统,其还包括:
系统总线,其被配置为控制所述人工神经网络存储器控制器、所述至少一个处理器和所述至少一个存储器的通信,
其中,所述至少一个人工神经网络存储器控制器被配置为具有所述系统总线的主控权。
18.根据权利要求1所述的人工神经网络存储器系统,其中所述至少一个人工神经网络存储器控制器和所述至少一个处理器被配置为彼此直接通信。
19.根据权利要求10所述的人工神经网络存储器系统,
其中,至少一个人工神经网络存储器控制器还包括多个分层的高速缓冲存储器,以及
其中,所述至少一个人工神经网络存储器控制器被配置为还包括人工神经网络模型,所述人工神经网络模型被配置为在所述多个分层高速缓冲存储器的层之间执行所述数据访问请求的机器学习。
20.一种人工神经网络存储器系统,其包括:
至少一个处理器,其被配置为处理人工神经网络模型;和
至少一个人工神经网络存储器控制器,其被配置为:
存储所述人工神经网络模型的人工神经网络数据局部性信息,并且
基于所述人工神经网络数据局部性信息预测待由所述至少一个处理器请求的数据,以生成提前数据访问请求。
21.根据权利要求20所述的人工神经网络存储器系统,其还包括:
至少一个存储器;和
系统总线,其被配置为控制所述人工神经网络存储器控制器、所述至少一个处理器和所述至少一个存储器的通信。
22.根据权利要求21所述的人工神经网络存储器系统,
其中,所述至少一个人工神经网络存储器控制器设置在所述系统总线中,以及
其中,所述至少一个人工神经网络存储器控制器被配置为将所述系统总线的控制权限提高到高于在没有存储器访问请求时的控制权限,直到所述至少一个存储器完成对所述存储器访问请求的响应。
23.根据权利要求20所述的人工神经网络存储器系统,其还包括:
DRAM,
其中,所述至少一个人工神经网络存储器控制器包括被配置为被包括在所述DRAM中的一个或多个人工神经网络存储器控制器。
24.根据权利要求20所述的人工神经网络存储器系统,其中,所述至少一个人工神经网络存储器控制器包括被配置为包括在所述至少一个处理器中的一个或多个人工神经网络存储器控制器。
25.根据权利要求20所述的人工神经网络存储器系统,其还包括:
DRAM,
其中,所述至少一个人工神经网络存储器控制器被配置为重新调整所述存储器访问请求的访问队列。
26.根据权利要求20所述的人工神经网络存储器系统,其还包括:
至少一个存储器,其还包括读取突发功能,
其中,所述至少一个人工神经网络存储器控制器被配置为考虑到所述读取突发功能来设置所述至少一个存储器的存储区域。
27.一种人工神经网络存储器系统,其包括:
处理器,
存储器,以及
高速缓冲存储器,
其中,基于人工神经网络数据局部性信息生成包括待由所述处理器请求的数据的提前数据访问请求,并且在所述处理器的请求之前,将来自所述存储器的与所述提前数据访问请求对应的数据存储在所述高速缓冲存储器中。
28.根据权利要求27所述的人工神经网络存储器系统,其中所述人工神经网络存储器系统被配置为以以下模式中的任一种操作:
第一模式,其被配置为通过接收所述人工神经网络数据局部性信息来操作,以及
第二模式,其被配置为通过观察由所述处理器产生的所述数据访问请求以预测所述人工神经网络数据局部性信息来操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200144308 | 2020-11-02 | ||
KR10-2020-0144308 | 2020-11-02 | ||
PCT/KR2020/017576 WO2022092416A1 (ko) | 2020-11-02 | 2020-12-03 | 인공신경망 데이터 지역성에 기초한 인공 신경망 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114761972A true CN114761972A (zh) | 2022-07-15 |
Family
ID=81382805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080027581.1A Pending CN114761972A (zh) | 2020-11-02 | 2020-12-03 | 基于人工神经网络数据局部性的人工神经网络存储器系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230297519A1 (zh) |
KR (3) | KR102661710B1 (zh) |
CN (1) | CN114761972A (zh) |
WO (1) | WO2022092416A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240104361A1 (en) * | 2022-09-19 | 2024-03-28 | Texas Instruments Incorporated | Neural network processor |
KR20240102147A (ko) * | 2022-12-26 | 2024-07-03 | 주식회사 모빌린트 | 딥러닝 추론을 위한 컴퓨팅 시스템, 하드웨어 가속기 장치 및 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108810A (zh) * | 2016-11-24 | 2018-06-01 | 三星电子株式会社 | 包括非易失性存储器件的存储装置及访问方法 |
US20190187963A1 (en) * | 2017-12-19 | 2019-06-20 | Canon Kabushiki Kaisha | Memory access optimisation using per-layer computational mapping and memory allocation for cnn application |
US20190332525A1 (en) * | 2018-04-27 | 2019-10-31 | International Business Machines Corporation | Computerized methods for prefetching data based on machine learned sequences of memory addresses |
US20200117990A1 (en) * | 2018-10-10 | 2020-04-16 | Korea Advanced Institute Of Science And Technology | High performance computing system for deep learning |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102023487B1 (ko) * | 2012-09-17 | 2019-09-20 | 삼성전자주식회사 | 오토 리프레쉬 커맨드를 사용하지 않고 리프레쉬를 수행할 수 있는 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US9959498B1 (en) * | 2016-10-27 | 2018-05-01 | Google Llc | Neural network instruction set architecture |
-
2020
- 2020-12-03 WO PCT/KR2020/017576 patent/WO2022092416A1/ko active Application Filing
- 2020-12-03 US US17/430,323 patent/US20230297519A1/en active Pending
- 2020-12-03 KR KR1020217024935A patent/KR102661710B1/ko active IP Right Grant
- 2020-12-03 KR KR1020247013493A patent/KR20240059638A/ko active Application Filing
- 2020-12-03 KR KR1020237037033A patent/KR20230152186A/ko active Application Filing
- 2020-12-03 CN CN202080027581.1A patent/CN114761972A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108810A (zh) * | 2016-11-24 | 2018-06-01 | 三星电子株式会社 | 包括非易失性存储器件的存储装置及访问方法 |
US20190187963A1 (en) * | 2017-12-19 | 2019-06-20 | Canon Kabushiki Kaisha | Memory access optimisation using per-layer computational mapping and memory allocation for cnn application |
US20190332525A1 (en) * | 2018-04-27 | 2019-10-31 | International Business Machines Corporation | Computerized methods for prefetching data based on machine learned sequences of memory addresses |
US20200117990A1 (en) * | 2018-10-10 | 2020-04-16 | Korea Advanced Institute Of Science And Technology | High performance computing system for deep learning |
KR20200040560A (ko) * | 2018-10-10 | 2020-04-20 | 한국과학기술원 | 딥 러닝을 위한 고성능 컴퓨팅 시스템 |
Non-Patent Citations (1)
Title |
---|
LEEOR PELED等: "A neural network memory prefetcher using semantic locality", pages 2 - 6, Retrieved from the Internet <URL:https://arxiv.org/pdf/1804.00478> * |
Also Published As
Publication number | Publication date |
---|---|
US20230297519A1 (en) | 2023-09-21 |
KR102661710B1 (ko) | 2024-04-29 |
WO2022092416A1 (ko) | 2022-05-05 |
KR20220059934A (ko) | 2022-05-10 |
KR20230152186A (ko) | 2023-11-02 |
KR20240059638A (ko) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11405051B2 (en) | Enhancing processing performance of artificial intelligence/machine hardware by data sharing and distribution as well as reuse of data in neuron buffer/line buffer | |
CN114444673A (zh) | 基于人工神经网络数据局部性的人工神经网络存储器系统 | |
WO2020042739A1 (zh) | 数据预处理方法、装置、计算机设备和存储介质 | |
CN110389909A (zh) | 使用深度神经网络优化固态驱动器的性能的系统和方法 | |
US11972137B2 (en) | System and memory for artificial neural network (ANN) optimization using ANN data locality | |
US20220076739A1 (en) | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training | |
US8560767B2 (en) | Optimizing EDRAM refresh rates in a high performance cache architecture | |
US20240231681A1 (en) | Memory controller, processor and system for artificial neural network | |
CN100416529C (zh) | 用于确定动态随机存取存储器页面管理实现的方法和装置 | |
CN114761972A (zh) | 基于人工神经网络数据局部性的人工神经网络存储器系统 | |
US20180107922A1 (en) | Pre-synaptic learning using delayed causal updates | |
KR20200139620A (ko) | 인공신경망의 데이터 로컬리티 기반의 데이터 캐슁을 이용하여 고속의 인공신경망 오퍼레이션을 지원하는 데이터 관리 장치 | |
CN113760531A (zh) | 调度器、操作调度器的方法以及包括调度器的加速器设备 | |
US20240054075A1 (en) | Neural processing device and load/store method of neural processing device | |
KR20230017802A (ko) | 근거리-메모리 어드레스 생성을 갖는 메모리 액세스 명령 | |
KR102192325B1 (ko) | 인공신경망의 데이터 로컬리티 기반의 데이터 캐슁을 이용하여 고속의 인공신경망 오퍼레이션을 지원하는 데이터 관리 장치 | |
US20240152292A1 (en) | Redundant computing across planes | |
US10978134B1 (en) | Method and device for refreshing memory | |
KR102706330B1 (ko) | 인공신경망을 위한 메모리 제어부, 프로세서 및 시스템 | |
CN114616553A (zh) | 为加速器取回数据的方法和系统 | |
KR20220059409A (ko) | 인공신경망을 위한 메모리 장치 | |
US12099869B2 (en) | Layer-wise scheduling on models based on idle times | |
US20220137866A1 (en) | Memory device for an artificial neural network | |
Kim et al. | System-level communication performance estimation for DMA-controlled accelerators | |
US20220044101A1 (en) | Collaborative sensor data processing by deep learning accelerators with integrated random access memory |
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 |