Skip to content

Distribute training KPI on CE #10944

Closed
Closed
@Yancey0623

Description

@Yancey0623

为了保证Fluid分布式训练的稳定性,我们需要在CE系统上添加一些评估指标 (KPI) 来检测每个合并到 develop 分支的代码 (merge request) 是否能够正常的跑多机训练,我们需要使用 aws benchmarking工具来向AWS提交任务并根据输入的日志来计算每个KPI的值:

  1. 加速比
batch_size trainers pservers GPUs per trainer thoughput (sampels / sec)
64 1 0 1 t0
64*8 1 0 8 t1
64*8 2 4 8 t2
64*8 4 8 8 t3

参考 https://en.wikipedia.org/wiki/Speedup ,采用吞吐加速比的计算方法

speedup(8GPUs) = t1 / t0

可以得出以下样例结果:

GPUs speedup
1 1
8 6
16 10
32 20
  1. 对于每个任务,我们还需要计算以下指标
  • convergence speed:
    准确率大于某一值(例如0.6)需要总的训练时间
  • GPU memory:
    trainer节点和pserver节点的显存占用
  • speed:
    训练任务的总吞吐
  • accuracy
    验证精度是否对齐,例如验证单卡(batch_size=80), 32卡4节点(batch_size=20)同样训练5个pass后,test acc 相差小于0.001
  1. 总结

最终分布式训练在CE上的各项KPI如下:

KPI value (1*GPU) value (8*GPUs) value (16*GPUs) value (32*GPUs)
speedup 1 6 10 20
speed 120 (sampels/sec) 768 (sampels/sec) 1344 (samples/sec) 2304 (samples/sec)
converence speed acc > 0.6 1000s 800s 700s 600s
gpu memory 12000 (MB) 12000 (MB) 12000 (MB) 12000 (MB)
test acc_4passes 0.002 0.002 0.002 0.002

:以上指标值均为样例数据,以实际实验数据为准。

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions