單輪訓練時長 使用指南
按每步耗時與步數估算單輪及總訓練時長,適用於訓練排期、算力預算與迭代週期規劃。
計算公式與原理
總步數 = ⌈輪數 × 樣本數 / 批次⌉;訓練時長(小時) = 輪數 × 樣本數 / 批次 / 速度 / 3600
把步數除以單卡吞吐(樣本/秒)再換算成小時,用於排期與算力預算評估。速度為經驗值,實際受資料載入、混合精度、通訊開銷影響,多卡時還要乘上並行效率(通常 0.7–0.9)。
使用步驟
- 填寫「輪數」。
- 填寫「資料集規模」。
- 填寫「批次」。
- 填寫「吞吐 樣本/s」。
- 結果區會即時更新;可一鍵複製結果用於記錄或彙報。
典型使用場景
- 單輪時長≈每步平均耗時×步數;總時長=單輪×輪數(+驗證/通訊開銷)。
- 步數=⌈樣本數/batch⌉,故增大 batch 可減少步數、縮短單輪(受視訊記憶體上限)。
- 分散式加速比受通訊與負載均衡限制,並非線性隨 GPU 數提升。
算例參考
- 訓練排期:每步 50ms、步數 313、輪數 10 → 單輪≈15.65s,總訓練≈156s 不含驗證。若資料並行 4 卡步數減半則單輪≈7.8s。
注意事項
結果為按上述公式得到的理論估算值,實際表現受資料分佈、實現細節與執行環境影響,落地決策請以實測為準;本工具純前端執行,輸入不上傳伺服器。
- 視訊記憶體不夠 batch 又想快怎麼辦?
- 用梯度累積模擬大 batch(不增視訊記憶體),或降低精度(混合精度)提速;也可最佳化資料管道減少 IO 等待,避免 GPU 空轉。
- 實測比估算慢很多?
- 多半是資料載入瓶頸或通訊開銷。檢查 DataLoader 預取、SSD/快取、NCCL 拓撲;純計算外的等待會顯著拉長單輪。