Open
[GLM-5 DSA] sparse_flash_mla_grad 网络用例执行结果与分析 #573
Alice_zhouAdd on  2 days ago
Alice_zhouCollaborators
2 days ago Create

本 Issue 已从 sparse_flash_attention_grad 更正为 sparse_flash_mla_grad,以下结果均为更正后的算子。

背景

  • 目标算子:sparse_flash_mla_grad(用例 op_name=sparse_flash_mla_grad)。
  • 参考输入:GLM-5.xlsx 的 DSA sheet(18 个输入 shape + 图片说明)。
  • 用例文件:glm5_dsa_mla_grad_cases.xlsx(Sheet1,114 列,12 行 = 6 个序列长度 × det/nondet)。
  • 本次执行:12/12 全部 Success,执行设备 device 0。

关键指标

  • 平均劣化:146.78%
  • 最高劣化:166.66%(32K;CP8)
  • 最低劣化:123.91%(512K;CP128)
  • 严重劣化(>10%):6/6

用例构建

  • 表头完全仿照 sparse_flash_mla_grad_network_9582.xlsx(114 列,Sheet1)。
  • 关键字段:op_name=sparse_flash_mla_grad,B=1,N1=64,N2=1,S1=L,S2=s,D=512,kv_input_mode=ori,ori_sparse_size=2048,ori_sparse_mode=full,ori_topk_mode=no,sinks=randn,ori_mask_mode=4,ori_win_left=127,layout_q/layout_kv=TND,seqlens_list_q=[L],seqlens_list_ori_kv=[s]。
  • GLM-5 shape 映射:
GLM-5 输入 图片 shape 映射到用例字段
Q (L,64,512) S1=L, N1=64, D=512
ori kV (s,1,512) S2=s, N2=1
ori_sparse indices (L,1,2051) ori_sparse_size=2048(2051=2048+3 尾部)
cmp_kv / cmp_sparse / block_table / cu_seqlens / seqused / topk_length / metadata 不传或标量 当前未建模;kv_input_mode=ori
SinkS 不传 sinks=randn(按网络模板设置)
  • 适配说明:
    • MLA grad 不需要 --sep_backward=True。
    • 运行时必须加 --sheetname=Sheet1。
    • ori_sparse_size=2048;GLM-5 的 2051=2048+3 尾部 中 3 个尾部值未建模。
    • kv_input_mode=ori,不使用 cmp 分支。

执行环境与步骤

  • 执行机:<EXEC_HOST>(<SOC>,本次使用 device 0)。
  • 工作目录:<WORKDIR>;框架目录:<WORKDIR>/TuringBigKernel/FusionOp_Test。
  • 环境:
    export PATH=<CONDA_BIN>:$PATH
    source activate <CONDA_ENV>
    source <CANN_TOOLKIT>/set_env.sh
    
  • 用例:<CASE_DIR>/glm5_dsa_mla_grad_cases.xlsx。
  • 执行全部 12 条:
    cd <WORKDIR>/TuringBigKernel/FusionOp_Test
    python3 dailyauto_fusion_david_fast.py \
      --timeout=1800 \
      --casefile=<CASE_DIR>/glm5_dsa_mla_grad_cases.xlsx \
      --runtype=2 --deviceid=<DEVICE_ID> --need_lock_freq=False \
      --sheetname=Sheet1 --ti=0-12
    
  • 只跑 32K 一对:把 --ti=0-12 改为 --ti=0-2。
  • 结果文件:<CASE_DIR>/glm5_dsa_mla_grad_cases_sparse_flash_mla_grad_Result_<ts>_<SOC>.xlsx。
  • 指标:Actual_backward_kernel_time;劣化% = (det - nondet) / |nondet| × 100。
  • 注意:1M/CP128 的 S2=1,048,576,显存约 5.7GB,已成功执行。

结果表(12 条)

场景 S1(Q) S2(KV) N1/N2 D ori_sparse_size det nondet det 耗时 nondet 耗时 劣化% det 显存(MB) nondet 显存(MB)
32K;CP8 4096 32768 64/1 512 2048 Success Success 6,740.66 2,527.77 +166.66% 1,964.01 972.01
64K;CP16 4096 65536 64/1 512 2048 Success Success 6,760.29 2,615.23 +158.50% 2,060.01 1,068.01
128K;CP32 4096 131072 64/1 512 2048 Success Success 6,921.05 2,703.68 +155.99% 2,252.01 1,260.01
256K;CP64 4096 262144 64/1 512 2048 Success Success 7,118.94 2,913.71 +144.33% 2,636.01 1,644.01
512K;CP128 4096 524288 64/1 512 2048 Success Success 7,433.89 3,320.07 +123.91% 3,404.01 2,412.01
1M;CP128 8192 1048576 64/1 512 2048 Success Success 15,271.25 6,602.22 +131.30% 5,740.01 4,748.01

中间结果明细

用例 det/nondet run_status deterministic_check kernel_time aicore_time metadata_time Memory(MB) max_aic_mac max_aiv_mte2 max_cube
glm5_dsa_mla_grad_32k_cp8_det det Success Pass 6,740.66 6,740.33 116.99 1,964.01 0.077 0.352 -
glm5_dsa_mla_grad_32k_cp8_nondet nondet Success Pass 2,527.77 2,527.44 120.40 972.01 0.123 0.212 -
glm5_dsa_mla_grad_64k_cp16_det det Success Pass 6,760.29 6,759.97 114.17 2,060.01 0.078 0.358 -
glm5_dsa_mla_grad_64k_cp16_nondet nondet Success Pass 2,615.23 2,614.91 108.01 1,068.01 0.224 0.545 -
glm5_dsa_mla_grad_128k_cp32_det det Success Pass 6,921.05 6,920.70 234.59 2,252.01 0.042 0.148 -
glm5_dsa_mla_grad_128k_cp32_nondet nondet Success Pass 2,703.68 2,703.35 114.18 1,260.01 0.220 0.547 -
glm5_dsa_mla_grad_256k_cp64_det det Success Pass 7,118.94 7,118.59 113.33 2,636.01 0.041 0.144 -
glm5_dsa_mla_grad_256k_cp64_nondet nondet Success Pass 2,913.71 2,913.35 110.12 1,644.01 0.113 0.185 -
glm5_dsa_mla_grad_512k_cp128_det det Success Pass 7,433.89 7,433.57 113.11 3,404.01 0.074 0.379 -
glm5_dsa_mla_grad_512k_cp128_nondet nondet Success Pass 3,320.07 3,319.73 115.51 2,412.01 0.107 0.165 -
glm5_dsa_mla_grad_1m_cp128_det det Success Pass 15,271.25 15,270.92 114.12 5,740.01 0.072 0.376 -
glm5_dsa_mla_grad_1m_cp128_nondet nondet Success Pass 6,602.22 6,601.84 116.81 4,748.01 0.108 0.166 -

分析报告

  1. 整体劣化显著:6 个场景全部 Success,平均劣化 146.78%,范围 123.91% ~ 166.66%。
  2. 趋势:随 S2 增大,相对劣化从 32K 的 166.66% 降到 512K 的 123.91%;1M 反弹到 131.30%。
  3. 绝对耗时:det 从 32K 的 6,740.66 增至 1M 的 15,271.25;nondet 从 2,527.77 增至 6,602.22。
  4. 显存:det 从 1,964.01MB 增至 5,740.01MB;nondet 从 972.01MB 增至 4,748.01MB。
  5. 确定性检查:12/12 deterministic_check=Pass。
  6. 限制与建议:ori_sparse_size=2048(2051 的 3 个尾部值未建模);kv_input_mode=ori(无 cmp 分支);当前 runner 不支持 block_table/cu_seqlens/seqused/topk_length/metadata。若需严格 GLM-5 DSA 语义,需补充这些输入;当前结果可作为 MLA grad 确定性性能基线。

附件

备注/限制

  • 本次为 12/12 全量执行,设备为 device 0。
  • 指标为 profiler 采集的 Actual_backward_kernel_time。
  • 路径使用占位符,避免暴露机器目录。
likedislike
AAlice_zhouCollaborators
2 days ago Change title to "[GLM-5 DSA] sparse_flash_mla_grad 网络用例执行结果与分析", originally titled "[GLM-5 DSA] sparse_flash_attention_grad 网络用例执行结果与分析".
AAlice_zhouCollaborators
2 days ago Modify description of issue
AAlice_zhouCollaborators
2 days ago Modify description of issue