运行时可调性选择性性能检测
摘要:自动代码插装,即通过编译器将测量钩子插入目标应用程序,是一种收集可靠、细粒度性能数据的已建立技术。由于插装每个可用函数通常会导致运行时开销过大,从而使测量结果产生偏差,因此必须谨慎选择要插装的函数集。"一刀切"的选择机制不存在,因为插装决策取决于测量目标、可容忍的运行时开销限制以及目标应用程序的特殊性。编译器辅助性能插装(CaPI)工具通过在静态构建的整个程序调用图上操作的可配置选择流水线中组合不同的选择机制,帮助创建此类插装配置。以前,CaPI依赖于静态插装工作流程,这使得对大型代码进行初始选择的调整过程非常繁琐,因为需要在每次调整后重新编译应用程序。在这项工作中,我们为CaPI提供了新的可运行时适应的插装能力,不需要在进行插装更改时重新编译。为此,扩展了LLVM编译器的XRay插装功能,以支持对共享动态对象的插装。在CaPI中添加了一个与XRay兼容的运行时系统,该系统在程序启动时对选择的函数进行插装,从而显著减少选择调整所需的时间。此外,还实现了与TALP工具的接口,用于记录并行效率度量,并实现了一个专用的选择模块,用于创建适合的粗粒度区域插装。
作者:Sebastian Kreutzer, Christian Iwainsky, Marta Garcia-Gasulla, Victor Lopez, Christian Bischof
论文ID:2303.11110
分类:Performance
分类简称:cs.PF
提交时间:2023-03-21