Profiling Data是什么
Profiling Data是DeepSeek开源的训练和推理框架中用于性能分析的数据,基于PyTorch Profiler收集程序运行过程中的详细信息,可用于分析和优化软件性能。用户下载后可在Chrome或Edge浏览器中通过chrome://tracing
或edge://tracing
进行可视化分析。该数据记录了程序执行过程中时间消耗、资源利用率及通信模式等关键指标,有助于开发者了解深度学习模型在训练和推理阶段的计算与通信重叠策略、硬件资源使用情况以及潜在的性能瓶颈。通过对数据的分析,开发者可以优化代码实现、调整并行策略,从而提升系统整体效率。
Profiling Data的主要功能
- 性能瓶颈定位:通过分析程序运行过程中的时间消耗和资源使用情况,帮助开发者快速识别性能瓶颈。
- 资源利用分析:评估CPU、GPU、内存等硬件资源的使用情况,优化资源分配,提高利用效率。
- 通信模式分析:在分布式系统中,分析节点间的通信模式和延迟,以优化通信策略。
- 优化指导:为代码优化提供数据支持,帮助开发者选择合适的优化方法,如并行化或缓存优化。
Profiling Data的推理过程
- 预填充(Prefilling):基于EP32和TP1架构(与DeepSeek V3/R1的实际部署一致),提示长度为4K,每个GPU的批次大小为16K个token。采用两个微批次重叠计算和全连接通信,确保注意力计算负载平衡。
- 解码(Decoding):基于EP128、TP1架构,提示长度为4K,每个GPU的批次大小为128个请求。同样采用两个微批次重叠计算和全连接通信,但解码阶段的全连接通信不占用GPU SMs。在RDMA消息发出后,所有GPU SMs被释放,系统在计算完成后等待通信完成。
Profiling Data的项目地址
Profiling Data的应用场景
- 定位性能瓶颈:识别程序中最耗时或最耗资源的部分。
- 指导性能优化:根据分析结果调整策略,提升计算与通信效率。
- 分析资源利用:评估CPU、GPU、内存等硬件资源的使用情况。
- 优化系统架构:根据运行数据调整分布式系统的配置和通信策略。
- 检测性能回归:对比不同版本的性能数据,确保优化效果。
发表评论 取消回复