ai-infra-interview-305

第 191 题:训练速度的scaling efficiency计算?理想vs实际?

题目

训练速度的scaling efficiency计算?理想vs实际?


完整讲解

一、Scaling efficiency 定义

Scaling efficiency实际加速比理想加速比 之比。理想情况:N 卡相对 1 卡,吞吐应接近 N 倍(线性扩展);实际因通信、负载不均、数据/调度开销等往往低于 N 倍。效率 = (实际吞吐 / 单卡吞吐) / N,或等价地 实际吞吐 / (单卡吞吐 × N);常用百分数表示(如 8 卡达到 6× 单卡则效率约 75%)。

二、如何计算

单卡基线:在相同模型、batch、数据下测单卡吞吐(samples/s 或 step/s)。N 卡实际:同配置下 N 卡分布式训练,测全局吞吐效率 = (N 卡全局吞吐 / 单卡吞吐) / N。若还要看强扩展(固定总 batch,卡数翻倍则 step 时间应约减半),可算 理想 step 时间 / 实际 step 时间 作为 step 维度的扩展效率。

三、瓶颈分析

效率低时,用 profiler(Nsight Systems、PyTorch Profiler)看 通信占比、gap、负载均衡。通信占比高或 gap 多,说明通信或数据是瓶颈;可做通信重叠、更大 batch、或拓扑优化。报告时同时给单卡吞吐、N 卡吞吐、效率,便于评估扩展性与性价比。

面试要点


记忆要点

  1. 效率 = (N 卡吞吐/单卡吞吐)/N;理想 100%。
  2. 单卡基线 + N 卡实际吞吐即可算。
  3. 低效率查通信、gap、负载。
返回模块 返回总览