背景描述(Background)

继承代际芯片的软硬件调度全流程能力,主要扩展A5芯片的调度、计算&&通信、AI核计算单元、系统硬件指标的调优能力构筑,支持性能调优分析。

用例分析(Use Case)


功能点1:D-Die/U-Die带宽信息的呈现能力

使用限制:A5形态

使用约束:NA

DFX设计:

  • 兼容性:代际芯片新增特性,不涉及兼容性
  • 可维护性:NA
  • 可靠性:Stars数据上报任务,包含链路编号及数据正确性校验

功能点2:Fusion Task任务的呈现能力

使用限制:A5形态

使用约束:NA

DFX设计:

  • 兼容性:代际芯片新增特性,不涉及兼容性
  • 可维护性:NA
  • 可靠性:Fusion Task包含aic、aicpu、ccu等子任务类型,增加子任务范围校验

功能点3:DPU算子耗时统计及呈现能力

使用限制:A5形态、使用DPU进行运算

使用约束:NA

DFX设计:

  • 兼容性:代际芯片新增特性,不涉及兼容性
  • 可维护性:NA
  • 可靠性:DPU任务数据解析正确性校验

功能点4:代际芯片特性继承能力

使用限制:A5芯片

使用约束:NA

DFX设计:

  • 兼容性:代际芯片参数功能对齐,保证代际芯片前后兼容
  • 可维护性:NA
  • 可靠性:命令行参数规范性校验,参数配置校验

方案设计(Design Details)

  1. 设计思路

      A5 全栈结构图
    
      ┌───────────────────────────────────────────────────────────────────────────────┐
      │                                 AI Framework                                  │
      │  ┌─────────────────────────────────────────────────────────────────────────┐  │
      │  │                                 PyTorch                                 │  │
      │  └─────────────────────────────────────────────────────────────────────────┘  │
      └───────────────────────────────────────────────────────────────────────────────┘
      ┌───────────────────────────────────────────────────────────────────────────────┐
      │                                   CANN                                        │
      │  ┌─────────────────────────────────────────────────────────────────────────┐  │
      │  │                               AscendCL                                  │  │
      │  └─────────────────────────────────────────────────────────────────────────┘  │
      │  ┌───────────────────────┐    ┌───────────────────┐     ┌──────────────────┐  │
      │  │           GE          │    │        ACLNN      │     │       ...        │  │
      │  └───────────────────────┘    └───────────────────┘     └──────────────────┘  │
      │  ┌─────────────────────────────────────────────────────────────────────────┐  │
      │  │                                 Runtime                                 │  │
      │  └─────────────────────────────────────────────────────────────────────────┘  │
      └───────────────────────────────────────────────────────────────────────────────┘
      ┌───────────────────────────────────────────────────────────────────────────────┐
      │                                  NPU                                          │
      │  ┌──────────────┐    ┌──────────────┐   ┌──────────────┐   ┌───────────────┐  │
      │  │              │    │              │   │     AICPU    │   │               │  │
      │  │      LP      │    │              │   └──────────────┘   │               │  │
      │  │              │    │              │   ┌──────────────┐   │               │  │
      │  └──────────────┘    │              │   │      CCU     │   │               │  │
      │  ┌──────────────┐    │     Stars    │   └──────────────┘   │      UB       │  │
      │  │              │    │              │   ┌──────────────┐   │               │  │
      │  │   L2 Cache   │    │              │   │    AICore    │   │               │  │
      │  │              │    │              │   └──────────────┘   │               │  │
      │  └──────────────┘    └──────────────┘                      └───────────────┘  │
      └───────────────────────────────────────────────────────────────────────────────┘
    
    

    代际芯片的软硬件调度全流程能力,结合A5芯片能力,主要扩展调度器、计算&&通信通路、AI核上计算单元、系统级硬件指标等多方面的调优能力构筑。

    • Stars调度器新增fusion task类别任务
    • AI核计算单元Die间带宽能力
    • DPU算子调度执行能力
    • CCU通信指令及带宽呈现
  2. 实现设计

    1. D/U-Die带宽功能实现设计

        D/U Die结构图
      
        ┌───────┐    ┌───────┐    ┌───────┐    ┌───────┐
        │ UDie0 │<-->│ DDie0 │<-->│ DDie1 │<-->│ UDie1 │
        └───────┘    └───────┘    └───────┘    └───────┘
      

      Die间带宽数据通过Stars数据格式上报,Profiling落盘性能数据后,解析完成后生成timeline柱形图,支持分析D/U-Die之间的带宽信息。带宽范围主要由上图可见:UDie0与DDie0、DDie0与DDie1、DDie1与UDie1的带宽统计

      DFX设计

      • 性能:增加一类硬件性能数据上报,可在数据解析阶段并发掩盖,性能无影响
      • 可靠性分析:Stars数据上报任务,包含链路编号及数据正确性校验
    2. Fusion Task呈现功能实现设计 通过Profiling采集性能数据,fusion task任务通过Stars数据格式上报,Profiling落盘性能数据后,解析完成后生成Task任务的数据,并在timeline trace图上呈现Fusion Task子任务信息。

      Fusion Task包含几类子任务:

      • AIC/AIV
      • AICPU
      • CCU

      DFX设计

      • 性能:新增数据类别,stars数据分发,单Fusion Task任务较少,几乎不影响性能。
      • 可靠性分析:增加子任务范围校验,避免新增子任务无法及时感知
      • 安全:数据格式固定,无变长数据,需保证数据格式完整性
    3. DPU算子功能实现设计

      DPU 数据呈现展示图
      
      
                                       ┌─────────┐
      CANN: CPU                        │ runtime │─────────────┐
                                       └────│────┘             │
                 Thread ID ─────────────────│──────────────────│──────────────────────────
                                            │             ┌────V────┐
      CANN: CPU                             │             │   DPU   │
                                            │             └─────────┘
                 Stream ID ─────────────────│─────────────────────────────────────────────
                                            │
      Ascend Hardware: NPU                  │      ┌─────────┐
                                            └──────│> NPU    │
                                                   └─────────┘
                 Stream ID ───────────────────────────────────────────────────────────────
      
      

      A5代际芯片Host新增DPU运算模块,包含计算和通信类任务,支持通过Device ID进行区分,DPU和NPU的ID分开,数据解析同样通过唯一ID进行关联和呈现,timeline trace图新增CANN层的DPU泳道数据,支持性能的分析。

      计算类任务:直接在Host侧的DPU模块进行下发和执行,不会下发到Device

      通信类任务:在Host进行下发到DPU,但同时任务会下发到NPU侧,通过消息交互进行数据通信。

      DFX设计

      • 性能:DPU类数据可支持并发解析,可掩盖,几乎不影响性能
      • 可靠性分析:DPU新增模块的数据匹配、丢失情况进行校验,唯一ID目前可保证数据关联正确性
    4. 代际芯片命令行参数功能实现设计

      • reports参数补齐:对标代际芯片支持reports参数筛选timeline trace图中需要呈现的泳道内容
      • 默认导出DB:通过msprof进行数据解析过程需要补齐默然导出DB文件
      • 性能数据交付件(task_time.csv / soc_pmu.csv)拷贝到ASCEND_PROFILER_OUTPUT目录下,支持数据的呈现和分析

      DFX设计

      • 性能:继承特性,不涉及性能影响
      • 可靠性分析:NA

使用说明(User Guide)

  • 接口描述:A5支持reports参数控制返回timeline数据内容

  • 接口原型:msprof --reports

  • 输入/输出参数:

    参数名称 输入/输出 类型 描述 取值范围
    reports Json Json文件 Timeline Trace的内容控制 NA
  • 返回参数:

    参数名称 类型 描述 取值范围
  • 异常处理:

    Json文件大小/权限不合法

    Json内容不合法,检查并进行提示

  • 约束说明:NA

  • 变更说明:NA

  • 调用参考代码:

    msprof --export=on --output=/home/profiler_data/PROF_XXX --reports=${INSTALL_DIR}/tools/profiler/profiler_tool/analysis/msconfig/reports_sample_config.json

测试设计(Test Plan)

用例名称 预置条件 预期输入 预期输出
D/U-Die带宽数据采集用例 A5 CANN软件包正确安装 通过msprof执行业务应用:msprof --output=* ./main [args] 1、采集到PROF性能数据,并打印自动解析完成
2、生成timeline数据,新增泳道可展示D/U-Die带宽柱形曲线
Fusion Task任务呈现用例 A5 CANN软件包正确安装 通过msprof执行业务应用:msprof --output=* ./main [args] 1、采集到PROF性能数据,并打印自动解析完成
2、生成timeline数据,Ascend Hardware下可展示fusion task任务耗时信息
DPU算子耗时统计及呈现能力用例 A5 CANN软件包正确安装 通过msprof执行业务应用:msprof --output=* ./main [args] 1、采集到PROF性能数据,并打印自动解析完成
2、生成timeline数据,新增CANN:DPU下可展示DPU任务的耗时呈现
msprof命令行支持report参数用例 A5 CANN软件包正确安装
内置reports_sample_config.json(只配置“ascend:true”,其他全为false)
通过msprof执行业务应用:msprof --output=* ./main [args] --reports=“reports_sample_config.json” 1、采集到PROF性能数据,并打印自动解析完成
2、生成timeline数据,只支持AscendHardware泳道的呈现
msprof命令行支持解析默认导出DB A5 CANN软件包正确安装 通过msprof执行业务应用:msprof --output=* ./main [args] 1、采集到PROF性能数据,并打印自动解析完成
2、生成的交付件包含DB文件

缺点与风险(可选)(Drawbacks)

DPU关联正确性:算子任务通过 CANN平台下发任务,混合了NPU和DPU侧的任务,数据的正确关联存在挑战

复杂性:异构系统+AI框架的全栈性能数据采集和呈现,强依赖组件数据,以及增加了对于数据理解的难度

备选方案(可选)(Alternatives)

暂无备选方案

未解决问题(可选)(Unresolved Questions)

暂不涉及未解决的问题