[论文解读] Adaptive and application dependent runtime guided hardware prefetcher reconfiguration on the IBM POWER7
本文提出一种基于 IBM POWER7 架构的动态、软件驱动的运行时机制,根据应用程序特定的工作负载特性自适应调整硬件预取器配置。通过利用 OmpSs 运行时在任务级别收集的性能计数器,该机制可自动选择最优的预取器设置(如预取深度、步长检测和存储预取),从而在多种 HPC 工作负载中实现显著的性能提升和能效优化。
Hardware data prefetcher engines have been extensively used to reduce the impact of memory latency. However, microprocessors' hardware prefetcher engines do not include any automatic hardware control able to dynamically tune their operation. This lacking architectural feature causes systems to operate with prefetchers in a fixed configuration, which in many cases harms performance and energy consumption. In this paper, a piece of software that solves the discussed problem in the context of the IBM POWER7 microprocessor is presented. The proposed solution involves using the runtime software as a bridge that is able to characterize user applications' workload and dynamically reconfigure the prefetcher engine. The proposed mechanisms has been deployed over OmpSs, a state-of-the-art task-based programming model. The paper shows significant performance improvements over a representative set of microbenchmarks and High Performance Computing (HPC) applications.
研究动机与目标
- 解决硬件预取器缺乏自动运行时调优的问题,后者常导致性能和能效低下。
- 克服固定或默认预取器配置的局限性,避免性能受损及带宽与功耗的浪费。
- 利用运行时性能指标实现面向应用程序的、动态的 POWER7 硬件预取器重配置。
- 通过根据应用程序工作负载和任务类型自适应调整预取器设置,提升性能和能效。
- 证明将自适应预取控制集成到生产级任务驱动编程模型(OmpSs)中的可行性和优势。
提出的方法
- 利用 OmpSs 运行时系统在任务级别收集性能计数器,实现对应用程序行为的细粒度性能分析。
- 采用两阶段机制:第一阶段为探索阶段,评估多种预取器配置;第二阶段为稳定阶段,使用表现最佳的配置。
- 为每个 SMT 线程独立配置数据流控制寄存器(DSCR),以实现对预取深度、步长检测和存储预取的独立控制。
- 使用硬件性能计数器监控 IPC、缓存未命中率和内存带宽,以指导配置选择。
- 采用基于阈值的节能策略,当性能提升可忽略时禁用激进的预取行为。
- 对 OmpSs 任务进行分类,以应用与工作负载特性匹配的预取器配置,识别出不同任务类型具有不同的内存访问模式。
实验结果
研究问题
- RQ1在真实 HPC 应用中,硬件预取器配置的动态运行时自适应能否提升性能和能效?
- RQ2应用程序特定的内存访问行为如何影响 POWER7 上最优硬件预取器配置?
- RQ3收集运行时性能数据以支持配置决策的性能开销有多大?是否可被最小化?
- RQ4OmpSs 中的任务级别分类能否实现更有效和自适应的预取器调优?
- RQ5在不牺牲性能的前提下,能在多大程度上避免使用激进的预取器配置以节省能耗?
主要发现
- 所提出的运行时机制通过动态选择最优预取器配置,在代表性微基准测试和 HPC 应用中实现了显著的性能提升。
- 即使在内存访问模式不规则的工作负载中也观察到性能增益,证明自适应配置在非规则步长场景下依然有效。
- 探索阶段引入的性能开销可忽略不计,原因在于性能计数器采样频率较低,且每个应用程序中仅有少数任务包含具有代表性的性能数据。
- 任务类型分类提升了调优精度,因为不同 OmpSs 任务类型因内存访问特征差异,对预取器设置的需求也不同。
- 一种基于阈值的节能策略,仅在配置带来的 IPC 提升低于预设阈值时限制激进预取,成功降低了能耗且未影响性能。
- 该方案在真实硬件上具有可移植性和有效性,证明运行时软件能够智能地重新配置硬件预取器,以在功耗与性能之间实现平衡。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。