论文部分内容阅读
异构内存是内存计算中的热点研究领域,由少量传统存储器和大量非易失新型存储器组成。在异构内存中,研究应用程序的访存行为,并优化内存访问对于程序的性能至关重要。在目前分析访存行为的研究中,这些技术获取到的访存数据精度虽高,但是数据的语义能力不强,无法更深层次地帮助研究者理解应用程序的访存模式。内存计算需要一种更加细粒度的访存分析方案。提出了一个访存特征分析与可视化系统:HMProfiler。HMProfiler针对异构内存特性进行设计,并支持对多线程程序进行跟踪,最后对收集到的访存数据进行分析和可视化。首先,使用Intel Pin工具针对某些特定的内存对象和函数体,收集以内存对象为粒度的应用程序访存数据。通过模拟CPU缓存过程,对访存指令进行过滤,提高数据的准确性。然后,将对收集到的访存数据进行分析。将不具备语义的访存数据归纳到对应的内存对象中,并把应用程序运行时的内存对象与源代码中的变量对应起来。以内存对象为粒度,计算内存访问的性能数据。最后,对访存数据进行持久化和可视化处理,方便后续对实验数据的重现和二次处理。通过实验结果表明,HMProfiler跟踪应用程序的访存数据真实可靠。对比同类型的Metric内存跟踪工具,HMProfiler性能要高很多。此外,HMProfiler数据接口的平均延迟较低,平均吞吐量较高。通过HMProfiler的可视化,研究员可以发现和诊断应用程序中的性能问题,为应用程序的访存行为提供有用的见解。