大模型面试题:大模型训练过程中如何估计显卡利用率?
更多面试题整体,请看
https://gitee.com/lilitom/ai_interview_questions/blob/master/README.md
以下是改写后的表述,保持原意但采用不同的表达方式:
-
GPU计算效率评估(FLOPs基准法) 该方法通过对比实际测量值与硬件标称值来评估GPU使用效率。具体计算公式为:GPU利用率=实测FLOPs值/显卡理论FLOPs峰值。其中,实测值可通过DeepSpeed Flops Profiler工具获取。例如:当测得实际计算能力为100TFLOPS,而使用的A100显卡理论峰值为312TFLOPS时,计算得出GPU实际利用率为32.05%。
-
吞吐量对比评估法 该方法基于文献公布的基准吞吐量数据进行计算。计算公式为:GPU利用率=系统实际吞吐量/文献标称吞吐量(假设文献数据为100%利用率状态)。示例场景:实测处理速度为3样本/秒,使用4张显卡且最大序列长度为2048时,单卡吞吐量为1536token/秒;参照LLaMA论文中7B模型的基准吞吐量3300token/秒/GPU,可计算出当前GPU利用率为46.54%。
-
运行时性能剖析法(PyTorch Profiler) 该方法通过集成式性能分析工具进行深度监测。使用PyTorch Profiler可捕获包括Tensor Core利用率在内的多项指标(如显示30%利用率),并通过TensorBoard可视化分析结果。该工具能全面记录CPU操作耗时、CUDA内核执行时间、内存使用情况等数据。典型实现代码如下:
from torch import profiler
with profiler.profile(activities=[profiler.ProfilerActivity.CPU, profiler.ProfilerActivity.CUDA],on_trace_ready=profiler.tensorboard_trace_handler('./log')
) as prof:training_process(args)
注意需预先安装torch-tb-profiler组件。该方法因其能提供最全面的训练过程诊断信息,被列为优先推荐方案。
注:三种方法中,第三种方案因其能提供函数级时间消耗分析和硬件单元利用率详情,最具诊断价值。