专家系统简介

Advisor

专家系统(Advisor)是用于聚焦模型和算子的性能调优TOP问题,识别性能瓶颈Pattern,重点构建模型和算子瓶颈分析并提供优化推荐,支撑开发效率提升的工具。当前提供的功能有:基于Roofline模型的算子瓶颈识别与优化建议、算子优化分析、基于Timeline的AI CPU算子优化、算子融合推荐、TransData算子识别和基于训练场景的优化推荐。

  • 基础特性
    1. IDE可视化、命令行
    2. 生态知识库开发插件
    3. 知识库管理
    4. 知识库执行引擎
    5. 生态知识库市场
  • 关键特性
    • 模型优化知识库
    • 算子优化知识库
    • 训练优化知识库
    • 生态知识库

模型分析

针对推理流程,模型分析涉及计算图分析、模型运行分析和Roofline算子瓶颈分析。

infer

  1. 计算图分析
    • UB融合:识别潜在可融合的cube算子和vertor算子
    • Transdata:识别可以合理插入traindata算子
    • AIPP分析:判断模型是否具备首层融合条件,减少算子的调用
  2. 模型运行分析
    AICore与AICpu算子是否并行
  3. 算子瓶颈分析
    计算Roofline模型计算算子在算力——带宽图中的位置,判断算子运行情况,以便优化

推理模型瓶颈分析流程
infer

自动调优和算子瓶颈分析

根据自动调优知识库识别出可优化的子图,并对子图进行修改;单算子分析会进行更加精细化的分析。

auto

利用MindStudio对模型瓶颈进行分析
ana

目前支持的子图pattern
pattern

自动调优样例
sample

生态知识库

上述为专家系统自有知识库,提供了基于Roofline模型的算子瓶颈识别与优化建议、基于Timeline的AI CPU算子优化、算子融合推荐、TransData算子识别和算子优化分析。
除此之外,还有生态知识库,生态知识库的专家系统性能调优功能由生态开发者使用Python编程语言进行开发,用户通过调用专家系统提供的接口,对生态开发者提供的模型/算子进行性能分析。但是MindStudio IDE当前版本仅支持的生态知识库创建功能,可以在上面完成生态知识库代码开发,暂不支持对生态知识库的专家系统分析功能。