AI开发平台MODELARTS-性能调优总体原则和思路
性能调优总体原则和思路
PyTorch在昇腾AI处理器的加速实现方式是以算子为粒度进行调用(OP-based),即通过Python与C++调用CANN层接口Ascend Computing Language(AscendCL)调用一个或几个亲和算子组合的形式,代替原有GPU的实现方式,具体逻辑模型参考此处。
在PyTorch模型迁移后进行训练的过程中,CPU只负责算子的下发,而NPU负责算子的执行,算子下发和执行异步发生,性能瓶颈在此过程中体现。在PyTorch的动态图机制下,算子被CPU逐个下发到NPU上执行。一方面,理想情况下CPU侧算子下发会明显比NPU侧算子执行更快,此时性能瓶颈主要集中在NPU侧;另一方面,理想情况下NPU侧算子计算流水线一直执行,不会出现NPU等待CPU算子下发即NPU空转的场景,如果存在,则CPU侧算子下发存在瓶颈。
综上所述,性能优化的总体原则为:减少Host算子下发时间、减少Device算子执行时间。
训练代码迁移完成后,如存在性能不达标的问题,可参考下图所示流程进行优化。建议按照单卡、单机多卡、多机多卡的流程逐步做性能调优。
为了便于用户快速进行迁移调优,降低调优门槛,ModelArts提供了MA-Adivisor性能自动诊断工具,用户采集性能profiling数据后,可通过该工具自动扫描profiling数据,工具分析完数据后会给出可能的性能问题点及调优建议,用户可以根据调优建议做相应的修改适配。目前该工具对CV类模型给出的调优建议较多,LLM类建议稍少,但是总体都有性能提升,实测大约可提升10%~30%的性能,并且已经在多个迁移性能调优项目中实际应用。
- GaussDB案例指南_高斯数据库函数_高斯数据库案例指南_华为云
- 负载均衡排查思路
- GaussDB案例_gaussdb java_高斯数据库案例_华为云
- GaussDB华为部署_高斯数据库_高斯数据库华为部署_华为云
- GaussDB数据库设计_GaussDB教程_高斯数据库设计
- ModelArts是什么_AI开发平台_ModelArts功能
- 文档数据库服务DDS性能调优_MongoDB性能调优_华为云
- GaussDB数据库概念_openGauss_华为高斯数据库概念
- GaussDB性能_性能统计_高斯数据库性能-华为云
- GaussDB性能怎么调_华为gaussdb_gaussdb性能_gaussdb学习