Open
[确定性][AICORE] sparse_lightning_indexer_kl_loss_grad:test_01_nondet AIC ERROR 复现与定位 #587
Alice_zhouAdd on 1 day ago
Alice_zhou
11 hours ago Comments:
11 hours ago Comments:
已提单:DTS2026111403056


Alice_zhou
10 hours ago Comments:
10 hours ago Comments:
DTS2026111403056


7 hours ago Modify description of issue
背景
sparse_lightning_indexer_kl_loss_grad。sparse_lightning_indexer_kl_loss_grad_flash_dsv4_test_01_nondet;首轮全量网络执行中test_01~test_05_nondet均报 AIC ERROR。B=14, N1=64, N2=1, S1=4096, S2=1022, D=128, dtype=bf16, sparse_size=512, layout=TND, cmp_ratio=4, mask_mode=3, is_deterministic=False。100.105.89.155,Ascend950DT_9582,CANN 9.3.0;100.102.205.195,Ascend950PR_9589,CANN 9.3.0。问题现象与复现结果
AICERROR:,DUMPINFO:['extra-info/data-dump/0/exception_info.52.7.20261113153123606']rtDeviceSynchronizeWithTimeout阻塞(需 kill 进程)--timeout=150)fault_va各不相同195 上的完整硬件错误(关键行):
fault_va - valid_range_start = 0x120158685000 - 0x120059800000 = 3.98 GiB,即访问地址比合法 GM 区间高约 4 GiB,属于明确的越界访问。subErrType 0x4: The set and wait instructions do not match表示跨核 set/wait 同步配对错误。195 全量 5 条结果(2026-11-14 15:01~15:14)
exception_info.61.7.20261114150145351exception_info.61.7.20261114150415581exception_info.61.7.20261114150645667exception_info.61.7.20261114150915798exception_info.61.7.20261114151145981fault_va分别为0x120158676000、0x12015867a000、0x120158685000、0x12015868b000、0x120158695000;均比valid_range_start=0x120059800000高约 3.97~3.98 GiB,越界幅度高度一致。retCode=0x26 [aicore exception];set and wait instructions do not match共 480 条(5 条用例累计)。fault_va不同但偏移量几乎相同,说明越界来自固定的地址/偏移公式(约多算 4 GiB),而非某一组输入数据。现场/代码分析
SparseLightningIndexerKLLossGrad_fb79be136e8646ca6b3b80bbce33eddd.json):coreType=MIX,taskRation="1:2"(1 AIC : 2 AIV);intercoreSync=1,crossCoreSync=1,说明 kernel 依赖跨核同步;tilingKey(0、1048576、2097152…),不同 tiling 走不同分支;workspace.num=1、workspace.size=[-1](动态 workspace)。[AIC_INFO] args(...)显示 kernel 入参为多组 GM 地址;Page fault落在这些合法地址之外约 4 GiB,指向地址/偏移计算错误(而非简单的输入数据问题)。csrc/attention/sparse_lightning_indexer_kl_loss_grad.cpp:57-77直接调用aclnnSparseLightningIndexerKLLossGrad(..., layoutQ, layoutK, maskMode, cmpRatio, dq, dk, dw, softmaxOut),dq/dk/dw/softmaxOut由at::empty_like分配。set/wait 不匹配+crossCoreSync=1组合,说明异常发生在跨核同步阶段;越界地址可能来自稀疏索引/CMP 路径的偏移计算,也可能是某个核在同步失败后继续访问导致。结论与建议
fault_va=0x120158685000、pc start=0x12005a85c44c、current=0x12005a863688解析 AIC/AIV PC;cmp_ratio=4、cmp_residual_k=[0..13])路径的 GM 偏移/边界计算;set/wait的配对逻辑,确认同步失败后是否存在继续访存;workspace.size=-1的动态 workspace 是否按 tiling 正确分配。执行步骤
cd <WORKDIR>/TuringBigKernel/FusionOp_Test export PATH=<CONDA_BIN>:$PATH source activate <CONDA_ENV> source <CANN_TOOLKIT>/set_env.sh # 过滤后的 5 条 nondet 用例(test_01~05_nondet) python3 dailyauto_fusion_david_fast.py \ --timeout=1200 \ --casefile=<CASE_DIR>/sligklg_aicore_repro.xlsx \ --runtype=2 --deviceid=<DEVICE_ID> --need_lock_freq=False \ --sheetname=Sheet1 --ti=0-5附件
extra-info/data-dump/0/exception_info.52.7.20261113153123606(保留在执行机)extra-info/data-dump/0/exception_info.61.7.20261114150145351等 5 份(保留在执行机)备注/限制
rtDeviceSynchronizeWithTimeout;--timeout=150时 runner 会在超时后 kill 子进程并继续下一条,因此可产出包含 5 条 AIC ERROR 的结果 xlsx(每条约 150s,5 条约 13 min)。已 kill 的阻塞进程不产生额外结果。sparse_lightning_indexer_kl_loss_grad网络用例确定性/非确定性性能对比 issue。