ttk.log L7: [ERROR] OnGenerateGolden Golden generation failure
ttk.log L17-21: golden.py:34: x_list = [torch.from_numpy(np.ascontiguousarray(t)) for t in x] → TypeError: can't convert np.ndarray of type ml_dtypes.bfloat16. The only supported types are: ...
ttk-compare.log L5: Output 0 Precision is GOLDEN_FAILURE (golden sentinel)
确定性问题描述:[功能问题][ForeachTanh]ForeachTanh算子存在 功能问题
通路:geir
golden版本:20261109
golden链接:https://gitcode.com/opencann/operator-artifacts/blob/master/cannbot-simt/ForeachTanh/deliverables/thirdparty_golden/golden.py
cann版本:20261109
ttk版本:20261109
用例链接:https://gitcode.com/sleeveen/operator_test_case/tree/main/LongTail/Cases/Functional_Accuracy/GEIR/ForeachTanh
用例名:ForeachTanh_L1_003、ForeachTanh_L1_009
错误码:(未获取到)
复现命令:python3 -m ttk geir -i 失败用例集_ForeachTanh_geir_功能失败.csv --device-whitelist=0 -d -b -c=false --golden-mode Disable -t ForeachTanh_L1_003
问题现象:
CANNBot实际失败分析:
1) 根因与类别:golden问题(非NPU算子缺陷)
自定义golden脚本在生成期望值时,用
torch.from_numpy转换ml_dtypes.bfloat16类型的numpy数组,PyTorch不支持该第三方dtype,抛TypeError导致golden生成失败,比较被标记GOLDEN_FAILURE。算子本身执行正常(性能5.055us、MD5一致)。2) 关键日志证据
[ERROR] OnGenerateGolden Golden generation failuregolden.py:34: x_list = [torch.from_numpy(np.ascontiguousarray(t)) for t in x]→TypeError: can't convert np.ndarray of type ml_dtypes.bfloat16. The only supported types are: ...Output 0 Precision is GOLDEN_FAILURE (golden sentinel)DYN_BIN | 5.055 | GOLDEN_FAILURE3) 定位建议
修改
/home/CI/golden/ForeachTanh/golden.py:34,兼容bfloat16:先用t.view(np.uint16)位转再torch.from_numpy(...).view(torch.bfloat16),或先cast为float32再to(torch.bfloat16)。失败用例集几乎全为bfloat16,与该缺陷吻合,修复后回归即可;个别float32大shape用例(如L1_054/062)需单独排查内存/超时。开发责任人:叶钊
PL:叶钊