Open
[确定性性能] sparse_lightning_indexer_grad_kl_loss:网络用例确定性/非确定性性能对比 #565
Alice_zhouAdd on  2 days ago
Alice_zhouCollaborators
2 days ago Create

背景

  • 算子:sparse_lightning_indexer_grad_kl_loss
  • aclnn 文档约束说明:默认非确定性实现,支持通过 aclrtSetSysParamOpt 开启确定性,判定 涉及确定性计算。
  • 对比指标:Actual_backward_kernel_time(越小越好)。

关键指标

  • 平均劣化:14.61%
  • 最高劣化:14.61%(场景:X1_330)
  • 严重劣化(>10%):1 条

环境准备

  • 执行机:<EXEC_HOST>(<SOC>,<NPU_COUNT>×NPU)
  • 代码/框架(均位于工作目录 <WORKDIR>):
    • TuringBigKernel:<WORKDIR>/TuringBigKernel
    • FusionOp_Test:<WORKDIR>/TuringBigKernel/FusionOp_Test
    • CaseFactory(可选):<WORKDIR>/CaseFactory
  • 环境:
    export PATH=<CONDA_BIN>:$PATH
    source activate <CONDA_ENV>
    source <CANN_TOOLKIT>/set_env.sh
    
  • 依赖:Python 3.10(<CONDA_ENV>)、openpyxl、pandas、torch_npu。

操作步骤

  1. 下载测试框架(均在工作目录 <WORKDIR> 下):
    git clone ssh://git@codehub-dg-y.huawei.com:2222/TuringTBETest/TuringBigKernel.git
    git clone ssh://git@codehub-dg-y.huawei.com:2222/w00800330/CaseFactory.git
    
  2. 进入执行目录并激活环境:
    cd <WORKDIR>/TuringBigKernel/FusionOp_Test
    export PATH=<CONDA_BIN>:$PATH
    source activate <CONDA_ENV>
    source <CANN_TOOLKIT>/set_env.sh
    
  3. 读取 aclnn md 的 约束说明,确认 默认非确定性(涉及确定性)。
  4. 从 <CASE_DIR> 筛选真实网络用例,排除 泛化/fanhua/DTS/feature/tilingkey/fuzz 等;只保留 5 个目标算子。
  5. 每条用例拆成 _det(is_deterministic=True)和 _nondet(False)两行,合并到单个 cases sheet,并置 enable=True:
    python prepare_cases.py --input <CASE_DIR> --output <CASE_DIR>/<casefile>.xlsx
    
  6. 执行:
    python3 dailyauto_fusion_david_fast.py \
      --timeout=7200 \
      --casefile=<CASE_DIR>/<casefile>.xlsx \
      --runtype=2 --deviceid=<DEVICE_ID> --need_lock_freq=False --sheetname=cases
    
  7. 读取结果表 Actual_backward_kernel_time,按
    劣化% = (确定性 - 非确定性) / |非确定性| * 100 计算。

性能对比结果

本算子

用例 网络 非确定性 确定性 劣化% 严重劣化
npu_sparse_lightning_indexer_grad_kl_loss_test_033 X1_330 15,422.07 17,675.56 14.61 是

总体(本次全部算子)

  • 配对用例:6
  • 平均劣化:108.44%
  • 中位数:97.81%
  • P90:229.95%
  • 最大:251.32%
  • 严重劣化(>10%):4 条

结论

本算子 1 条网络用例,平均劣化 14.61%,最大劣化 14.61%,严重劣化(>10%)1 条;总体判定:开启确定性后性能明显劣化。最严重场景为 X1_330(14.61%)。

附件

原始结果文件

备注/限制

  • 本次为代表性网络用例子集,非全量。
  • 部分设备被占用;个别用例可能触发 AI Core error 并挂起,已保留已完成结果。
  • 结果数值为 profiler 采集的 Actual_backward_kernel_time。
likedislike
AAlice_zhouCollaborators
2 days ago Modify description of issue
AAlice_zhouCollaborators
2 days ago Modify description of issue
AAlice_zhouCollaborators
2 days ago Modify description of issue