麻省理工学院工程师创建一个系统在飞行中重新分配缓存访问的系统
此P显示了一个36瓦jenga系统,它正在运行四个应用程序。jenga为每个应用程序提供自定义虚拟缓存层次结构。由研究人员礼貌
来自麻省理工学院的研究人员设计了一种系统,该系统将动态重新分配缓存访问,将处理速度提高20%至30%,同时将能量消耗降低30%至85%。
几十年来,计算机芯片通过使用“缓存”的小型,本地内存银行具有频繁使用的数据的“缓存”,并与片外存储器剪切的时间和能量消耗通信,增加效率。
今天的筹码通常有三个甚至四个不同的缓存,每个缓存都比最后一个更宽松,但比上一个更慢。高速缓存的大小代表了不同种类的程序需求之间的折衷,但它们很少适合任何一个程序。
麻省理工学院计算机科学和人工智能实验室的研究人员设计了一个系统,该系统将在飞行中重新分配缓存访问,以创建针对特定程序需求的新“缓存层次结构”。
研究人员在带有36个核心或处理单元的芯片的模拟上进行了测试。他们发现,与其最佳性能的前辈相比,该系统将处理速度提高了20%至30%,同时将能量消耗降低30%至85%。
“您希望采用这些分布式物理内存资源,并构建特定于应用程序的层次结构,以最大限度地提高您的特定应用程序的性能,”电气工程系和计算机科学系助理教授(EECS)助理教授Daniel Sanchez说,其集团开发了新系统。
“这取决于应用程序中的许多东西。它访问的数据的大小是多少?它是否具有分层重用,因此它将受益于逐步更大的回忆的层次结构?或者是通过数据结构扫描,因此我们会更好地休息单个但非常大的水平?它访问数据多久一次?如果我们让数据丢弃到主要内存,其性能会受到多少痛苦?有所有这些不同的权衡。“
Sanchez和他的同框 - Po-An Tsai,MIT的eecs的研究生和Nathan Beckmann,他是一名麻省理工学院的研究生,当时工作已经完成,现在是Carnegie Mellon大学计算机科学助理教授 - 提出了新的上周在国际计算机架构研讨会上被称为Jenga。
住在当地
在过去的10年左右,计算机芯片处理能力的改进来自增加更多核心。今天大多数桌面计算机中的芯片有四个核心,但是几个主要的芯片制造商已经宣布计划在明年左右移动到六个核心,并且在高端服务器中,16核处理器并不少见。大多数工业观察者都认为核心计数将继续攀登。
多核芯片中的每个核心通常具有两个级别的私人缓存。所有核心都共享第三缓存,实际上被分解为散落在芯片周围的离散存储库中。一些新芯片还包括所谓的DRAM缓存,该缓存被蚀刻到安装在第一的第二芯片中。
对于给定的核心,访问共享缓存的最近的内存库比访问更多遥远的核心更有效。与当今的缓存管理系统不同,Jenga区分了构成共享缓存的单独内存库的物理位置。对于每个核心,Jenga知道从芯片内存库中检索信息需要多长时间,这是称为“延迟”的措施。
Jenga在Sanchez的小组上建立了一个名为jigsaw的早期系统,该组织还在飞行中分配了缓存访问。但拼图锯没有构建缓存层次结构,这使得分配问题更复杂。
对于在每个核心运行的每个任务中,jigsaw必须计算延迟空间曲线,这表明核心可以使用多大尺寸的缓存延迟。然后,它必须汇总所有这些曲线以找到一个空间分配,使整个芯片的延迟最小化。
曲线到表面
但是Jenga必须同时评估两层缓存的延迟和空间之间的权衡,这将二维延迟空间曲线变为三维表面。幸运的是,这种表面变得相当光滑:它可能波动,但通常不会突然,狭窄的尖峰和垂度。
这意味着表面上的采样点将带来一个完整的表面的良好感觉。研究人员开发了一种聪明的采样算法,适应缓存分配问题,系统地增加了采样点之间的距离。“这里的洞察力是,具有相似容量的高速缓存 - 例如,100兆字节和101兆字节 - 通常具有相似的性能,”蔡说。“所以,几何上增加的序列很好地捕获了完整的画面。”
一旦它推断出表面的形状,jenga就会发现跨越延迟的路径。然后它提取由第一级缓存所贡献的路径的组件,这是一个二维曲线。此时,它可以重用拼图的空间分配机械。
在实验中,研究人员发现,这种方法产生了一个平均值的总空间分配,其中1%在通过3-D表面的全面分析产生的1%内,这将是耗时的。采用计算短剪切使Jenga能够每100毫秒更新其内存分配,以适应程序的内存访问模式的更改。
结束运行
jenga还采用了DRAM缓存越来越普及的数据 - 展示程序。因为它们接近访问它们的核心,因为大多数高速缓存几乎没有带宽限制:他们可以作为核心需求提供和接收尽可能多的数据。但是发送数据更长的距离需要更多的能量,因为DRAM缓存是片外的,因此数据速率较低。
如果多个核心正在从相同的DRAM缓存中检索数据,这可能导致引入新延迟的瓶颈。因此,在Jenga提出了一组缓存分配后,核心不会简单地将所有数据转储到最近的可用内存库中。相反,Jenga一次稍微删除数据,然后估计对带宽消耗和延迟的影响。因此,即使在芯片宽的缓存重新分配之间的100毫秒间隔内,Jenga也调整每个核心给予分配给它的存储体的优先级。
麦迪逊大学计算机科学教授David Wood说:“多年来,这是一段多年来的工作。”David Wood说,威斯康星大学计算机科学教授。“有许多先前的方案试图做一些类似于层次结构的动态创建。jenga是不同的,因为它真的使用该软件尝试阐述工作负载是什么,然后在竞争过程之间的资源中进行最佳分配。而且,我认为,从根本上比人们在之前更强大。这就是为什么我认为它真的很有趣。“
纸质副本:Jenga:Sotware定义的缓存层次结构