Skip to main content
QUICK REVIEW

[论文解读] Plumber: Diagnosing and Removing Performance Bottlenecks in Machine Learning Data Pipelines

Michael Kuchnik, Ana Klimovic|arXiv (Cornell University)|Nov 7, 2021
Parallel Computing and Optimization Techniques参考文献 32被引用 9
一句话总结

Plumber 是一种诊断并消除机器学习数据流水线性能瓶颈的工具,通过追踪资源使用情况并利用线性规划实现自动化优化。它在配置不当的流水线上实现了最高 47 倍的加速,并且相比现有最先进调优工具,端到端性能提升了 50%,通过智能调优并行度、预取和缓存实现。

ABSTRACT

Input pipelines, which ingest and transform input data, are an essential part of training Machine Learning (ML) models. However, it is challenging to implement efficient input pipelines, as it requires reasoning about parallelism, asynchrony, and variability in fine-grained profiling information. Our analysis of over two million ML jobs in Google datacenters reveals that a significant fraction of model training jobs could benefit from faster input data pipelines. At the same time, our analysis indicates that most jobs do not saturate host hardware, pointing in the direction of software-based bottlenecks. Motivated by these findings, we propose Plumber, a tool for finding bottlenecks in ML input pipelines. Plumber uses an extensible and interpretable operational analysis analytical model to automatically tune parallelism, prefetching, and caching under host resource constraints. Across five representative ML pipelines, Plumber obtains speedups of up to 47x for misconfigured pipelines. By automating caching, Plumber obtains end-to-end speedups of over 50% compared to state-of-the-art tuners.

研究动机与目标

  • 识别并解决机器学习训练数据流水线中的性能瓶颈,这些瓶颈会浪费硬件资源并减缓训练速度。
  • 自动化调优关键性能参数(如并行度、预取和缓存),而无需用户掌握底层系统行为的专业知识。
  • 通过运行时资源核算,提供一种系统化、可解释且可扩展的方法,用于诊断流水线效率低下问题。
  • 通过将缓存和基于线性规划的预测性能建模相结合,超越现有自动化调优工具。
  • 通过简化用户配置,减轻机器学习实践者的负担,实现数据流水线的一行代码集成与自动优化。

提出的方法

  • Plumber 使用追踪器对流水线中每个算子的资源利用率(CPU、内存、磁盘)和数据处理速率进行插桩和测量。
  • 它引入了资源核算速率——一种新型指标,用于量化每个算子的资源消耗和吞吐量,从而实现对瓶颈的精确定位。
  • 该工具将性能预测建模为线性规划(LP)问题,利用追踪到的速率数据,将系统行为的边界控制在实际资源使用量的 4 倍以内。
  • 图重写组件根据 LP 预测结果,自动应用如并行度、预取和缓存等优化,无需用户干预。
  • 该系统设计为透明的前端接口,仅需一行代码即可与任意基于 tf.data 的流水线集成。
  • 系统支持可扩展性,未来可支持分布式和加速器内部数据流级别的性能分析。

实验结果

研究问题

  • RQ1由于软件配置错误而非硬件饱和,实际机器学习训练任务中有多少比例遭受输入流水线瓶颈?
  • RQ2如何以最小的人工干预和高可解释性诊断机器学习数据流水线中的性能瓶颈?
  • RQ3是否可以构建一个统一的分析模型,以有界误差预测并行度、预取和缓存等调优参数的性能影响?
  • RQ4与现有最先进调优工具相比,自动优化缓存、预取和并行度能在多大程度上提升端到端训练速度?
  • RQ5能否构建一个系统,仅需极少用户配置,即可在数据密集型机器学习训练中实现接近峰值的硬件利用率?

主要发现

  • 对超过两百万个机器学习任务的分析表明,62% 的训练任务在每步中至少经历 1ms 的输入流水线停滞,表明性能下降现象普遍存在。
  • 大多数瓶颈(超过 60%)源于软件问题,由配置不当引起而非硬件饱和,凸显了自动化调优的必要性。
  • 通过自动调优并行度、预取和缓存,Plumber 在配置不当的流水线上实现了最高 47 倍的加速。
  • 通过将缓存整合进优化循环,Plumber 相比最先进调优工具实现了超过 50% 的端到端性能提升。
  • 基于 LP 的性能模型将预测误差控制在实际资源使用量的 4 倍以内,提供了可靠且可解释的性能预测。
  • Plumber 仅需一行代码即可集成到现有的 tf.data 流水线中,无需架构修改,具备广泛的可用性。

更好的研究,从现在开始

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

无需绑定信用卡

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