数据结构优化的专用存储器缓存制造技术

技术编号:35258241 阅读:24 留言:0更新日期:2022-10-19 10:16
本发明专利技术公开了与缓存有关的方法和系统。一种公开的系统包括至少一个存储至少两个数据结构的存储器。所述至少两个数据结构包括第一数据结构和第二数据结构。所述系统还包括至少两个缓存,第一缓存用于缓存所述第一数据结构,第二缓存用于缓存所述第二数据结构。所述系统还包括与所述至少两个缓存通信连接的控制器。所述控制器基于所述第一数据结构单独配置所述第一缓存,并且基于所述第二数据结构单独配置所述第二缓存。所述系统还包括至少一个与所述至少两个缓存通信连接的处理器。所述处理器在执行复杂计算期间使用所述至少两个缓存访问所述至少两个数据结构中的每一个。存访问所述至少两个数据结构中的每一个。存访问所述至少两个数据结构中的每一个。

【技术实现步骤摘要】
数据结构优化的专用存储器缓存


[0001]本专利技术涉及计算机缓存领域有关的方法和系统,尤其涉及数据结构优化的专用存储器缓存。

技术介绍

[0002]缓存是存储数据的组件。它们可以在硬件或软件中实现。诸如处理管道(processing pipeline)、操作系统、web浏览器或其他客户端之类的计算组件可以通过向缓存发送访问请求来从缓存获取存储的数据,并通过向缓存发送存储请求来将数据存储在缓存中。缓存可以通过返回作为访问请求主题的数据或存储作为存储请求主题的数据来服务这些请求。缓存可以将数据存储在缓存存储器中,缓存存储器存储少量数据,但可以快速提供数据,或者,缓存可以将数据存储在后备存储器中,后备存储器可以存储更多数据,但提供数据的速度较慢。
[0003]图1是用于说明本专利技术公开中使用的一些术语的缓存操作的框图100。该框图显示了处理访问请求和检索数据的缓存操作,但类似的原则适用于处理存储请求。框图100包括客户端110,客户端110将访问请求111发送到缓存120并保持访问请求响应112。如果缓存成功,则访问请求响应112将包括所请求的数据。一旦接收到访问请求111,缓存120将从缓存存储器122检索请求的数据,或者,如果数据不在缓存存储器122中,则从后备存储器130检索请求的数据。缓存存储器122和后备存储器130的示例分别是高速静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。缓存还可以包括具有不同类型存储器的后台存储,这些存储器根据存储器的速度分为不同的级别,更高的级别被更高速度的存储器占有。如在本专利技术公开中所使用的,如果数据被存储为可在访问请求响应112中访问以返回,则数据被缓存存储器120“缓存”,而不管数据是存储在缓存存储器122中还是存储在后备存储器130中。
[0004]如果缓存能够预测请求哪些数据并将数据存储在更快的存储器中,则缓存可以更快地处理访问请求。当缓存成功地预测在访问请求中将请求哪些数据,并且数据可用以及数据存储在缓存存储器122中时,这可以被称为缓存“命中(hit)”。如果数据在缓存存储器122中不可用,并且缓存120必须从后备存储器130访问数据,则可以将其称为缓存“未命中(miss)”。缓存控制器121可配置为将缓存命中访问请求的比率最大化,以及将使用访问请求响应112服务来自客户端110的访问请求的总体速度最大化。缓存控制器121可以配置为利用访问请求中的预期的空间和时间局部性来改进这些度量。缓存控制器121还可以通过改变数据被标记以指示其在缓存存储器122中的存在和位置、改变当缓存存储器122中的数据被后备存储器130中的数据替换时的策略、改变存储在缓存中的数据何时直接写入后备存储器130或存储在缓存存储器122中的策略的方案和方式以及许多其他方法来配置。

技术实现思路

[0005]本专利技术公开了与计算机缓存领域有关的方法和系统。具体公开的实施例涉及具有
至少两个缓存的计算系统,其中每个所述缓存专用于特定数据结构,并且针对该数据结构进行优化。所述数据结构可用于存储用于单个复杂计算的数据,该计算需要存储在至少两个缓存中的数据。所述缓存可以优化为缓存分配给它们的数据结构,以将延迟最小化并将访问请求响应的吞吐量最大化。所述优化可以包括将所述缓存的命中率和处理所述访问请求的速率最大化。所述优化可以通过基于对所述数据结构中的所述数据的评估,或基于服务于所述数据结构的所述缓存的访问请求方面性能的评估改变所述缓存来实现。
[0006]本专利技术的特定实施例涉及由至少一个处理器或计算节点网络以有向图的加速执行的形式执行复杂计算。在特定实施例中,所述计算节点网络包括多核处理器,其中所述计算节点为所述多核处理器中的处理核心。在特定实施例中,所述有向图可以实现人工神经网络(ANN)。在特定实施例中,所述有向图可以实现深度学习推荐模型(DLRM)。在这些实施例中,执行所述复杂计算可以包括从神经网络生成推理。在这些实施例中,所述数据结构可以是张量,所述张量存储网络数据,例如输入、权重、过滤器、累计值、嵌入向量以及从ANN推断或训练ANN所需的其他信息。在特定实施例中,一个数据结构可以是神经网络或其一部分的一层,或者是神经网络或其一部分的卷积部分的过滤器。
[0007]在本专利技术的特定实施例中,公开了一种系统。所述系统包括至少一个存储至少两个数据结构的存储器。所述至少两个数据结构包括第一数据结构和第二数据结构。所述系统还包括至少两个缓存。所述至少两个缓存包括缓存第一数据结构的第一缓存和缓存第二数据结构的第二缓存。所述系统还包括与所述至少两个缓存通信连接的控制器。所述控制器基于所述第一数据结构单独配置第一缓存,并且基于所述第二数据结构单独配置第二缓存。所述系统还包括至少一个与所述至少两个缓存通信连接的处理器。所述处理器在执行复杂计算期间使用所述至少两个缓存访问所述至少两个数据结构中的每一个。
[0008]在本专利技术的特定实施例中,公开了一种方法。所述方法包括使用控制器基于第一数据结构配置第一缓存,以及使用第一缓存缓存所述第一数据结构。所述方法还包括使用所述控制器基于第二数据结构配置第二缓存,以及使用所述第二缓存缓存所述第二数据结构。所述方法还包括使用至少一个处理器执行复杂计算;以及使用所述至少一个处理器,在执行所述复杂计算期间,访问来自所述第一数据结构的数据和来自所述第二数据结构的数据。
附图说明
[0009]图1示出了根据现有技术在处理存储器访问请求时缓存的操作框图。
[0010]图2示出了根据本文公开的本专利技术特定实施例的一组方法的流程图。
[0011]图3示出了根据本文公开的本专利技术特定实施例的用于执行复杂计算的系统。
[0012]图4示出了根据本文公开的本专利技术特定实施例的用于执行复杂计算的计算节点网络。
具体实施方式
[0013]本文详细公开了与根据上述
技术实现思路
的计算机缓存领域相关的方法和系统。本节中公开的方法和系统是本专利技术的非限制性实施例,应用于解释目的,不应用于限制本专利技术的全部范围。应当理解的是,所公开的实施例可以相互重叠,也可以不重叠。因此,一个实施
例或其特定实施例的一部分可能在或可能不在另一个实施例或其特定实施例的范围内,反之亦然。可以分别组合或实施来自不同方面的不同实施例。在本专利技术的大框架内示出的代表性实施例的许多不同组合和子组合,对于本领域技术人员来说可能是显而易见的,但没有明确地示出或描述,不应被解释为排除。
[0014]如
技术实现思路
中所述,在本专利技术的特定实施例中,缓存可以专用于特定数据结构,并专门针对其专用数据结构进行优化。这可能是有益的,因为可由缓存控制器用于配置缓存的数据的上述方面,例如访问请求中的预期的空间和时间局部性,可基于所存储数据的特征和/或该数据的利用方式在相当大的程度上变化。本文公开的本专利技术的特定实施例可有益地应用于在稀疏度高度变化的大型数据结构上操作的机器学习应用,因为在这些应用中,优化缓存的标准方法经常会混淆,因为从具有这些特征的一组数据结构中为一个数据结构优化的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种系统,包括:至少一个存储器,所述存储器存储至少两个数据结构,其中所述至少两个数据结构包括第一数据结构和第二数据结构;至少两个缓存,其中所述至少两个缓存包括缓存第一数据结构的第一缓存和缓存第二数据结构的第二缓存;与所述至少两个缓存通信连接的控制器,其中所述控制器分别配置:(i)基于所述第一数据结构的所述第一缓存;以及(ii)基于所述第二数据结构的第二缓存;和至少一个与所述至少两个缓存通信连接的处理器,其中所述处理器访问所述至少两个数据结构中的每一个:(i)使用所述至少两个缓存;以及(ii)在执行复杂计算期间。2.根据权利要求1中所述的系统,其中:所述第一缓存专用于所述第一数据结构;所述第二缓存专用于所述第二数据结构;和所述至少两个缓存都分别专用于来自所述至少两个数据结构的单个数据结构。3.根据权利要求1中所述的系统,其中:所述至少两个缓存以一对一的对应关系缓存所述至少两个数据结构;和所述控制器基于存储在其中的所述至少两个数据结构中的每个数据结构的特征,分别配置所述至少两个缓存中的每个缓存。4.根据权利要求1中所述的系统,其中:所述控制器通过配置所述至少两个缓存的至少两个缓存控制器来分别配置所述至少两个缓存。5.根据权利要求4中所述的系统,其中:所述控制器为软件控制器;和所述至少两个缓存控制器是硬件控制器。6.根据权利要求4中所述的系统,其中:所述控制器通过设置所述第一缓存的第一缓存控制器的策略来单独配置所述第一缓存;和所述控制器通过设置所述第二缓存的第二缓存控制器的策略来单独配置所述第二缓存。7.根据权利要求1中所述的系统,其中:所述控制器通过以下方式基于所述第一数据结构配置所述第一缓存:分析所述第一数据结构的数据以产生第一分析;和基于所述第一分析设置所述第一缓存的策略;和所述控制器通过以下方式基于所述第二数据结构配置所述第二缓存:分析所述第二数据结构的数据以产生第二分析;和基于所述第二分析设置所述第二缓存的策略。8.根据权利要求1中所述的系统,其中:所述控制器通过以下方式基于所述第一数据结构配置所述第一缓存:当所述第一缓存缓存所述第一数据结构以产生第一分析时,分析所述第一缓存的性能度量;和
基于所述第一分析设置所述第一缓存的策略;和所述控制器通过以下方式基于所述第二数据结构配置所述第二缓存:当所述第二缓存缓存所述第二数据结构以产生第二分析时,分析所述第二缓存的性能度量;和基于所述第二分析设置所述第二缓存的策略。9.根据权利要求1中所述的系统,其中:所述控制器通过设置所述第一缓存的策略来配置所述第一缓存;所述控制器通过设置所述第二缓存的策略来配置所述第二缓存;和所述第一缓存的所述策略和所述第二缓存的所述策略是分别从以下组中选择的策略:替换策略;写通策略;以及回写策略。10.根据权利要求1中所述的系统,其中:所述至少一个处理器是多核处理器;所述多核处理器包括处理器核心网络;和所述处理器核心网络中的第一处理器核心:(i)实现所述第一缓存的缓存控制器;(ii)从所述网络接收对所述第一数据结构的访问请求;以及(iii)使用所述第一缓存和所述网络服务所述访问请求。11.根据权利要求10中所述的系统,还包括:所述处理器核心网络中的共享存储器;和其中,所述第一处理器核心使用所述共享存储器作为所述第一缓存的后备存储器。12.根据权利要求10中所述的系统,还包括:所述处理器核心网络中的第二处理器核心;其中,所述第二处理器核心实现用于所述第一缓存的后备存储器。13.根据权利要求10中所述的系统,还包括:所述处理器核心网络中的第二处理器核心;所述处理器核心网络中的第三处理器核心;其中,所述第二处理器核心实现所述第二缓存的第二缓存控制器;其中,所述第三处理器实现所述控制器;和其中,所述控制器使用所述网络与所述至少两个缓存通信连接。14.根据权利要求1中所述的系统,其中:所述第一数据结构存储神经网络的层;所述第二数据结构存储用于执行神经网络的一组累计值;和执行复杂计算包括使用所述层和所述一组累计值从所述神经网络生成推理。15.一种方法,包括:使用控制器基于第一数据结构配置第一缓存;使用第一缓存缓存所述第一数据结构;使用所述控制器基于第二数据结构配置第二缓存;使用所述第二缓存缓存所述第二数据结构;使用至少一个处理器执行复杂计算;和使用所述至少一个处理器,在所述复杂计算的执行...

【专利技术属性】
技术研发人员:L
申请(专利权)人:滕斯托伦特股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1