| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 30 天前 | |
[fix] 插件归位 Co-authored-by: nextyale<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4626 merge issue2302 into master [fix] 插件归位 Created-by: nextyale Commit-by: nextyale Merged-by: cann-robot Description: ## 描述 迁移算子插件到对应目录 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/2302 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: 迁移插件 See merge request: cann/ops-math!4626 | 2 个月前 | |
legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !4498 merge master into master legacy下线:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan新增tiling/infer调试日志+op_graph InferDataType迁移 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 Legacy包下线整改:为AdaCast/SignBitsUnpack/Sinh/Spence/Tan 5个算子新增tiling/infer调试日志,补充spence op_graph InferDataType迁移。 ## 变更内容 - tiling入口新增OP_LOGD锚点日志,TilingData新增OP_LOGI日志 - InferShape新增OP_LOGI输出日志 - 补充spence_graph_infer.cpp(InferDataType迁移到op_graph,IMPL_OP注册) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 测试 <!-- 描述您如何测试这些更改。--> ## 文档更新 <!-- 如果有文档更新,请在这里描述。--> ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-math!4498 | 1 个月前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 19 天前 | |
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 | 30 天前 | |
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 | 30 天前 | |
math仓算子适配350 Co-authored-by: zhouliang<zhouliang88@huawei.com> # message auto-generated for no-merge-commit merge: !5906 merge master into master math仓算子适配350 Created-by: zhou-liang1027 Commit-by: zhouliang Merged-by: cann-robot Description: ## 描述 math仓算子适配350 ## 关联的Issue [math仓算子适配350](https://gitcode.com/cann/ops-math/issues/3463) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5906 | 19 天前 | |
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 1 个月前 |
Spence
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:计算Spence函数(dilogarithm),S(x) = -integral_0^x ln(1-t)/t dt。
-
计算公式:
Spence(x)=∫1xlntt−1 dt=Li2(1−x)\text{Spence}(x) = \int_1^x \frac{\ln t}{t - 1} \, dt = \text{Li}_2(1 - x) Spence(x)=∫1xt−1lntdt=Li2(1−x)
特殊值:
- x<0x < 0x<0 时输出 NaN
- x=0x = 0x=0 时输出 π2/6≈1.6449\pi^2/6 \approx 1.6449π2/6≈1.6449
- x=1x = 1x=1 时输出 000
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | Spence函数的自变量,对应公式中x。x < 0的元素输出NaN。 | FLOAT16、FLOAT、BFLOAT16 | ND |
| y | 输出 | Spence函数的计算结果,对应公式中Spence(x)。 | FLOAT16、FLOAT、BFLOAT16 | ND |
约束说明
- FLOAT16、BFLOAT16输入在kernel内部提升到FLOAT32计算,结果再转回原始数据类型。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_spence | 通过图模式调用Spence算子。 |