| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(spence): 转测整改——def驱动dtype/红线TOPN/量纲修正,重写GEIR example Co-authored-by: zhaixiao1<zhaixiao1@huawei.com> # message auto-generated for no-merge-commit merge: !5681 merge feat_spence_transfer_remediation into master fix(spence): 转测整改——def驱动dtype/红线TOPN/量纲修正,重写GEIR example Created-by: Onthetreeoh Commit-by: zhaixiao1 Merged-by: cann-robot Description: ## 整改内容(spence 转测准入问题闭环) ### 1. 算子侧整改(对应转测扫描/代码检视发现项) | 整改项 | 内容 | |---|---| | def 驱动 dtype(检查项 7) | 删除 spence_tiling_key.h 的 ASCENDC_TPL_DATATYPE_DECL 重复编码;kernel 入口改 extern "C" + DTYPE_X;TilingKey 恒 0(单变体) | | 红线 SEC-4.1 / TOPK#7 | Tiling 增加 dim0<0 拒绝校验(防 GetShapeSize 负值/INT64_MIN 溢出下溢) | | 审计项 format 约束 | x/y origin+storage 四路 FORMAT_ND 严格校验 | | 红线 TOPK#8 / SEC-2.2 | total_/globalTotal/chunks 及 GM 索引 int64 化,消除 uint32 窄化回绕;空 tensor blockIdx+1<numBlocks | | 量纲错配 | maxElemNum = ubSize / bufferDivisor、blockAlignElems = GetUbBlockSize()/elemBytes(FP32 ubFormer=31744 / FP16·BF16=21120,与 DESIGN §3.10 一致) | | 性能 PERF-5 | SPENCE_CHUNK 256→8192(单次 GM 搬运 FP32 32KB / FP16·BF16 16KB) | | 代码规范 | TWO_F 常量替换魔鬼数字、出参统一 T&、单参构造 explicit | ### 2. GEIR example 整改(检查项 5) - **重写静态 example**:修复原 GenOnesData 以 int32 位模式填 float 的缺陷,改为 spence(2)=-π²/12 数值校验 + 规范日志行 - **清理**:删除 examples/ 根级陈旧副本(仓内惯例仅保留 examples/arch35/) ## 验证 - UT:math_op_host_ut --gtest_filter='*Spence*' **64/64 PASSED**(tiling 24 + tiling data 22 + infershape 18) - Kernel 编译:build.sh --opkernel --soc=ascend950 --ops=spence 成功(3 个 dtype 变体按 def 展开) - TTK 两方精度:**215/215 PASS**(fp32/fp16/bf16,含特殊值/空 tensor/0 维) - GEIR 实跑:静态 1/1 - TTK 异常场景:dtype(int64/float64)/format(NCHW)/rank(9D、10D)**5 个有效拦截、0 未拦截、0 不可判定**;e2e Cast→Spence 图 kernel_count=2(Cast+Spence)精度 PASS See merge request: cann/ops-math!5681 | 21 天前 |