Skip to main content
QUICK REVIEW

[论文解读] Automated Parallel Kernel Extraction from Dynamic Application Traces

Richard Uhrie, Chaitali Chakrabarti|arXiv (Cornell University)|Jan 27, 2020
Parallel Computing and Optimization Techniques参考文献 30被引用 5
一句话总结

该论文提出 TraceAtlas,一个开源工具,利用对数空间、线性时间的算法,从动态应用追踪中自动提取并行内核。该工具可在仅 9 倍时间延迟和每秒 1 MB 追踪数据量的条件下,对未经注释的 LLVM 兼容代码实现高效内核检测,成功在 16 个库中识别出超过 10,500 个内核实例,准确率高,并支持针对异构加速器的下游优化。

ABSTRACT

Modern program runtime is dominated by segments of repeating code called kernels. Kernels are accelerated by increasing memory locality, increasing data-parallelism, and exploiting producer-consumer parallelism among kernels - which requires hardware specialized for a particular class of kernels. Programming this hardware can be difficult, requiring that the kernels be identified and annotated in the code or translated to a domain-specific language. This paper describes a technique to automatically localize parallel kernels from a dynamic application trace, facilitating further code optimization. Dynamic trace collection is fast and compact. With optimization, it only incurs a time-dilation of a factor on nine and file-size of one megabyte per second, addressing a significant criticism of this approach. Kernel extraction is accurate and performed in linear time within logarithmic memory, detecting a wide range of kernels. This approach was validated across 16 libraries, comprised of 10,507 kernels instances. To validate the accuracy of our detected kernels, five test programs were written that spans traditional kernel definitions and were certified to contain all the kernels that were expected.

研究动机与目标

  • 解决在未经注释的生产级代码中识别并行内核的挑战,以实现向专用加速器的映射。
  • 降低动态追踪的性能开销和存储成本,使其适用于大规模应用分析。
  • 开发一种可扩展、高准确率的内核提取方法,无需代码注释、编译器指令或领域特定语言转换。
  • 基于运行时执行模式而非静态分析,实现内核间生产者-消费者关系的自动化检测。
  • 在真实应用中对多种内核类型(包括循环、递归和库调用)验证该方法的有效性。

提出的方法

  • 在运行时向 LLVM IR 注入轻量级、压缩的 LLVM 内存函数,以实现最小性能开销的动态应用追踪生成。
  • 使用对数空间、线性时间的算法,基于执行亲和性将时间上聚集的基本块检测为候选内核。
  • 通过合法性检查步骤,确保内核边界在语义上正确且与执行流一致。
  • 分析检测到的内核内的内存访问模式,以推断内核实例之间的生产者-消费者关系。
  • 采用 UTF-8 编码的键值追踪格式并结合自定义压缩技术,减少追踪数据大小,同时保持可追溯性。
  • 通过手工编写的测试程序和 OFDM 系统中专家验证的内核,验证内核检测的准确性。

实验结果

研究问题

  • RQ1能否以极低的性能开销(时间延迟)和存储成本(追踪数据大小),为大规模生产级应用生成动态追踪?
  • RQ2能否仅通过动态追踪分析,从未经注释、非结构化的代码中准确提取并行内核?
  • RQ3所提出的对数空间、线性时间的内核检测算法是否可扩展至包含 TB 级追踪数据的大规模工作负载?
  • RQ4能否在无需静态分析或代码注释的情况下,可靠地利用提取的内核推断生产者-消费者关系?
  • RQ5该内核检测方法在包括循环、递归和库调用在内的多种内核模式中,泛化能力如何?

主要发现

  • TraceAtlas 仅造成 9 倍时间延迟和每秒 1 MB 的追踪数据量,使动态追踪在真实应用中具备可行性。
  • 内核提取算法以线性时间与对数空间运行,可高效处理大型追踪数据,包括接近 TB 级别的追踪。
  • 该工具在来自 16 个真实世界库的 392 个应用中成功检测到 10,507 个内核实例,验证测试中准确率达到 100%。
  • 该方法在五个手工编写的测试程序中正确识别出所有预期内核,包括递归和接口库等复杂模式。
  • 该方法检测到了 Asanovic 等人定义的 13 种内核原型中的 12 种,仅有限状态机未被识别为单一单元。
  • 与最先进的追踪技术相比,该工具在速度上提升了 230 倍,在追踪生成效率上提升了 49 倍。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。