1. 论文信息

文章来自23年7月TechRxiv
Performance, Energy and NVM Lifetime-Aware Data Structure Refinement and Placement for Heterogeneous Memory Systems

所有作者及单位

  • Manolis Katsaragakis,微处理器和数字系统实验室国立雅典理工大学(NTUA)电气与计算机工程学院,鲁汶大学(KU Leuven)比利时
  • Christos Baloukas, Lazaros Papadopoulos, 微处理器和数字系统实验室国立雅典理工大学(NTUA)电气与计算机工程学院
  • Francky Catthoor,鲁汶大学微电子研究中心

2. Background

为了有效利用 DRAM/NVM 异构内存系统,多年来已经提出了几种数据放置算法 [15]、[16]。尽管数据放置算法通常很复杂,并且能够有效地利用正在执行的应用程序的复杂内存层次结构,但它们的结果通常受到以下事实的限制:原始应用程序通常是为 DRAM 而不是为异构内存设计的

作者通过一些实验展示了数据组织改进的应用程序级方法对异构 DRAM/NVM 系统上数据放置算法结果的影响(作为整个论文的动机)。其中有两个新的概念(这两个概念也对后续设计有很大影响,但是这两个概念并不常见):

  • 动态数据类型细化方法 Dynamic Data Type Refinement methodology(DDTR)(D. A. Alonso, S. Mamagkakis, C. Poucet etc. Dynamic memory management for embedded systems. Springer, 2015)
  • 帕累托最优 Pareto Optimal

3. 解决了什么问题

异构内存中可以从数据组织的角度改进数据放置,所提出的方法旨在满足三个主要目标:
(i) 展示通过应用程序级优化实现的数据放置算法的改进结果。
(ii) 基于多个目标(性能、能耗、对 NVM 寿命的影响)评估布局解决方案。
(iii) 提供可用性、可扩展性和可扩展性特征(例如,即使对于相对较大的设计空间,也有合理的探索时间,并支持各种应用领域、数据放置算法和真实或模拟的 NVM 技术)。

4. 其他学者解决这个问题的思路和缺陷

  • 几种数据放置算法 [15]、[16]
  • 应用级数据优化方法[18]、[19]
  • 库支持 [13]、[17]
  • 根据布局粒度级别进行分类:数据结构、内存对象或内存页 [23] [15] [24] [25][23] 的作者提出了一种在线配置文件引导的数据分层解决方案,涉及异构内存系统的页面粒度放置,旨在提高 HPC 应用程序的性能。其他指示性方法包括静态代码检测工具,用于自动执行内存对象放置以实现性能和能源优化[15]。在数据结构放置粒度上,[24]中提出了缓存和非缓存 NVM 的写感知数据结构放置。 [25] 中提出了基于人工智能的页面粒度数据放置。
  • 异构 DRAM/NVM 系统上的应用程序域特定布局:最近还研究了应用程序域特定布局方法,目标是与领域无关的布局算法相比获得更好的结果。这些领域包括与数据库相关的工作负载[26]、大数据应用程序[27]、[28]、基于图的[29]、[30]、[31]和基于深度神经网络的应用程序[32]、[33]。

5. 围绕该问题作者如何构建解决思路

图2显示了所提出的方法的概述。该方法的输入是目标应用程序的源代码。它由三个步骤组成:

  1. 数据组织的优化,此步骤的主要目标是有效选择应用程序的数据结构实现,以最大限度地减少数据访问次数和内存占用。实现方式是源代码的原始数据结构被库的数据结构替换。(仅限于基于列表的数据结构实现的 C++ 标准模板库 (STL) 兼容变体。)这一步生成一组帕累托最优解,每一个都对应于正在优化的应用程序的数据结构实现的不同组合。

  2. 内存对象分析,基于内存跟踪和分析工具,分析上一步提供的应用程序的帕累托最优版本。通过平台感知采样和分析 (2b),我们收集每个对象的内存跟踪,包括:加载和存储操作、对象大小和 LLC 未命中。还可以根据所选数据放置算法的输入要求来监视其他指标。

  3. 异构内存系统上的放置和评估,模型接收(i)每个内存页、对象或数据结构的分析信息和(ii)内存规格作为输入,例如读/写延迟、读/写能耗和内存容量(3b)。每个应用程序版本都根据所选的数据放置算法部署在异构内存系统上,并执行。为了监控执行时间、能耗和NVM写入次数,需要实时监控(3e)。应用程序版本在真实或模拟的异构存储器系统上放置和执行。开发人员可以在性能、能耗和 NVM 写入访问次数之间进行权衡,并选择满足设计约束的帕累托最优解决方案。

6. 从结果看,作者如何有力证明他解决了问题

所提出的方法根据以下标准进行评估:
● DDTR 等高级数据组织优化方法对数据放置结果的影响,包括性能、能耗和对 NVM 寿命的影响。
● 该方法可以在多大程度上有效地集成具有不同优化目标的各种数据放置算法以及各种内存技术(模拟的或真实的硬件)。
● 当应用于具有相对大量数据结构的应用程序时,该方法在探索时间方面的可扩展性。

7. 缺陷和改进思路

  • 相当于需要人工干预去做这个优化。
  • 而且优化过程依赖帕累托(来自财经领域)最优和DDTR(15年一篇论文),这是以前没有过的应该,那么到底有多可靠呢?审稿方对这些态度咋样呢?
  • 评估方面,没有和其他的工作比较,也看不出什么优势emmm。

8. 创新点

没有任何相关工作研究应用级数据优化和异构内存系统上的数据放置之间的相互作用,以提高性能、能耗和对 NVM 寿命结果的影响。提出了一种内存管理方法,该方法结合了动态数据结构细化步骤以及异构内存系统上的放置算法。

9. 积累

  • 最开始对程序数据组织优化应该是离线完成的,可能可以作为参考
  • 可以考虑的workload:从 Shark ML 库 [42] 和 Chrono 物理引擎 [43] 中选择了五个代表性应用程序。

文章作者: 易百分
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 易百分 !
  目录