| Files | Last commit | Last update |
|---|---|---|
feat(stft): add ascend950 platform binary config Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !4810 merge master into master feat(stft): add ascend950 platform binary config Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 补充stft的A5 config json ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2548 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4810 | 2 months ago | |
fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Co-authored-by: gcw_LxlU8H9L<opengoodai@163.com> # message auto-generated for no-merge-commit merge: !5947 merge fix/3292-exector-typos into master fix(docs): 修正 aclnn 头文件注释中 exector 拼写(应为 executor) Created-by: gcw_LxlU8H9L Commit-by: OpenGood_WeChat;gcw_LxlU8H9L Merged-by: cann-robot Description: ## 描述 ops-math 仓 10 个两段式 aclnn 接口头文件的第二段接口 @param 注释中,参数名 executor 被拼写为 exector(少一个 u),与函数签名不一致。统一修正拼写,仅涉及注释文本,不影响任何接口与逻辑。 ## 关联的Issue 关联Issue #3292 ## 测试 - 纯注释文本修正,不涉及任何代码逻辑变化 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-math!5947 | 1 month ago | |
增加A2 A3新算子支持 Co-authored-by: slx2008<shaolixin@huawei.com> # message auto-generated for no-merge-commit merge: !448 merge master into master 增加A2 A3新算子支持 Created-by: songkai111 Commit-by: slx2008 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!448 | 10 months ago | |
aclStft支持A5功能&优化cache机制 Co-authored-by: runqi_zhang<zhangrunqi2@huawei.com> Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !4502 merge master into master aclStft支持A5功能&优化cache机制 Created-by: east_yang Commit-by: east_yang;runqi_zhang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 一 STFT 算子新增 ASCEND950(A5)平台的 AiCore 支持; 二 将 DFT 矩阵缓存从基于"条目数上限"的简单计数策略重构为基于显存预算的 LRU 淘汰策略,并简化缓存键,从而提升缓存命中率和显存利用率,提高性能。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2548 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4502 | 2 months ago | |
整数attr获取风险整改 Co-authored-by: zhangqijia1<zhangqijia1@h-partners.com> # message auto-generated for no-merge-commit merge: !1673 merge fix_get_point into master 整数attr获取风险整改 Created-by: gcw_SUaZx3UQ Commit-by: zhangqijia1 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 部分算子的infershape和tiling中获取算子整型的属性用int类型或者int32_t类型,相关接口的属性使用int64_t存储,用int获取,存在数据截断的风险。需要整改。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#985](https://gitcode.com/cann/ops-math/issues/985) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!1673 | 7 months ago | |
fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !5071 merge master into master fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 问题背景 fix #2868 https://gitcode.com/cann/ops-math/issues/2868 https://gitcode.com/cann/ops-math/issues/2778 STFT 算子在 atk 批跑精度测试中偶现失败:单跑成功、批跑失败用例不固定,失败时 NPU 输出在部分行的尾部帧输出 0。详细分析见 issue #2868。 ## 根因 STFT AICore kernel 内 **MTE3(UB→GM 异步拷贝,Vector 流水线)与 Cube matmul(读 GM,Cube 流水线)之间缺少跨流水线同步**。三处竞态点: 1. StftPlanMul::Process():plan×window 写 plan workspace 后无等待,主算子 matmul 立即读 2. STFTGeneralized::Process():SplitWindows 写 splitWindow workspace 后无等待 3. STFTGeneralizedComplex::Process():complex 路径同样问题 首次调用时 workspace 为新分配(全 0),matmul 抢先读到未写入数据 → 输出 0;后续调用残留上次正确数据掩盖竞态 → 偶现特性。 ## 修复内容 三处 MTE3 写 workspace 后、Cube matmul 读取前插入 HardEvent::MTE3_S 事件同步: cpp event_t eventIdMTE3ToS = static_cast<event_t>(GetTPipePtr()->FetchEventID(HardEvent::MTE3_S)); SetFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); WaitFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); 顺带清理 stft_tiling_base 中冗余代码:删除从未使用的 l1Size/l0ASize/l0BSize/l0CSize 成员(其中 l0A/B/C 获取时误用 CoreMemType::UB)及重复的 l1SizePlatform 赋值。 ## 验证 Ascend950PR 环境验证: - 修复前:atk 批跑 5 用例通过率约 60%,失败用例轮换 - 修复后:**10 轮 × 5 用例 = 50/50 全部 PASS**;25 次逐次调用(每次不同输入)全部与 CPU 参考一致(max_diff < 1e-4),零值消失 - pre-commit 检查全部通过(clang-format/codespell/OAT 合规) See merge request: cann/ops-math!5071 | 2 months ago | |
fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !5071 merge master into master fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 问题背景 fix #2868 https://gitcode.com/cann/ops-math/issues/2868 https://gitcode.com/cann/ops-math/issues/2778 STFT 算子在 atk 批跑精度测试中偶现失败:单跑成功、批跑失败用例不固定,失败时 NPU 输出在部分行的尾部帧输出 0。详细分析见 issue #2868。 ## 根因 STFT AICore kernel 内 **MTE3(UB→GM 异步拷贝,Vector 流水线)与 Cube matmul(读 GM,Cube 流水线)之间缺少跨流水线同步**。三处竞态点: 1. StftPlanMul::Process():plan×window 写 plan workspace 后无等待,主算子 matmul 立即读 2. STFTGeneralized::Process():SplitWindows 写 splitWindow workspace 后无等待 3. STFTGeneralizedComplex::Process():complex 路径同样问题 首次调用时 workspace 为新分配(全 0),matmul 抢先读到未写入数据 → 输出 0;后续调用残留上次正确数据掩盖竞态 → 偶现特性。 ## 修复内容 三处 MTE3 写 workspace 后、Cube matmul 读取前插入 HardEvent::MTE3_S 事件同步: cpp event_t eventIdMTE3ToS = static_cast<event_t>(GetTPipePtr()->FetchEventID(HardEvent::MTE3_S)); SetFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); WaitFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); 顺带清理 stft_tiling_base 中冗余代码:删除从未使用的 l1Size/l0ASize/l0BSize/l0CSize 成员(其中 l0A/B/C 获取时误用 CoreMemType::UB)及重复的 l1SizePlatform 赋值。 ## 验证 Ascend950PR 环境验证: - 修复前:atk 批跑 5 用例通过率约 60%,失败用例轮换 - 修复后:**10 轮 × 5 用例 = 50/50 全部 PASS**;25 次逐次调用(每次不同输入)全部与 CPU 参考一致(max_diff < 1e-4),零值消失 - pre-commit 检查全部通过(clang-format/codespell/OAT 合规) See merge request: cann/ops-math!5071 | 2 months ago | |
修复STFT算子int32/uint32溢出风险 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !3133 merge master into master 修复STFT算子int32/uint32溢出风险 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 排查整改STFT可能存在的int32、uint32溢出风险 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3133 | 5 months ago | |
fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !5071 merge master into master fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 问题背景 fix #2868 https://gitcode.com/cann/ops-math/issues/2868 https://gitcode.com/cann/ops-math/issues/2778 STFT 算子在 atk 批跑精度测试中偶现失败:单跑成功、批跑失败用例不固定,失败时 NPU 输出在部分行的尾部帧输出 0。详细分析见 issue #2868。 ## 根因 STFT AICore kernel 内 **MTE3(UB→GM 异步拷贝,Vector 流水线)与 Cube matmul(读 GM,Cube 流水线)之间缺少跨流水线同步**。三处竞态点: 1. StftPlanMul::Process():plan×window 写 plan workspace 后无等待,主算子 matmul 立即读 2. STFTGeneralized::Process():SplitWindows 写 splitWindow workspace 后无等待 3. STFTGeneralizedComplex::Process():complex 路径同样问题 首次调用时 workspace 为新分配(全 0),matmul 抢先读到未写入数据 → 输出 0;后续调用残留上次正确数据掩盖竞态 → 偶现特性。 ## 修复内容 三处 MTE3 写 workspace 后、Cube matmul 读取前插入 HardEvent::MTE3_S 事件同步: cpp event_t eventIdMTE3ToS = static_cast<event_t>(GetTPipePtr()->FetchEventID(HardEvent::MTE3_S)); SetFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); WaitFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); 顺带清理 stft_tiling_base 中冗余代码:删除从未使用的 l1Size/l0ASize/l0BSize/l0CSize 成员(其中 l0A/B/C 获取时误用 CoreMemType::UB)及重复的 l1SizePlatform 赋值。 ## 验证 Ascend950PR 环境验证: - 修复前:atk 批跑 5 用例通过率约 60%,失败用例轮换 - 修复后:**10 轮 × 5 用例 = 50/50 全部 PASS**;25 次逐次调用(每次不同输入)全部与 CPU 参考一致(max_diff < 1e-4),零值消失 - pre-commit 检查全部通过(clang-format/codespell/OAT 合规) See merge request: cann/ops-math!5071 | 2 months ago | |
fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !5071 merge master into master fix(stft): 修复STFT算子MTE3与Cube matmul流水线竞态导致的精度偶现失败 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: ## 问题背景 fix #2868 https://gitcode.com/cann/ops-math/issues/2868 https://gitcode.com/cann/ops-math/issues/2778 STFT 算子在 atk 批跑精度测试中偶现失败:单跑成功、批跑失败用例不固定,失败时 NPU 输出在部分行的尾部帧输出 0。详细分析见 issue #2868。 ## 根因 STFT AICore kernel 内 **MTE3(UB→GM 异步拷贝,Vector 流水线)与 Cube matmul(读 GM,Cube 流水线)之间缺少跨流水线同步**。三处竞态点: 1. StftPlanMul::Process():plan×window 写 plan workspace 后无等待,主算子 matmul 立即读 2. STFTGeneralized::Process():SplitWindows 写 splitWindow workspace 后无等待 3. STFTGeneralizedComplex::Process():complex 路径同样问题 首次调用时 workspace 为新分配(全 0),matmul 抢先读到未写入数据 → 输出 0;后续调用残留上次正确数据掩盖竞态 → 偶现特性。 ## 修复内容 三处 MTE3 写 workspace 后、Cube matmul 读取前插入 HardEvent::MTE3_S 事件同步: cpp event_t eventIdMTE3ToS = static_cast<event_t>(GetTPipePtr()->FetchEventID(HardEvent::MTE3_S)); SetFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); WaitFlag<HardEvent::MTE3_S>(eventIdMTE3ToS); 顺带清理 stft_tiling_base 中冗余代码:删除从未使用的 l1Size/l0ASize/l0BSize/l0CSize 成员(其中 l0A/B/C 获取时误用 CoreMemType::UB)及重复的 l1SizePlatform 赋值。 ## 验证 Ascend950PR 环境验证: - 修复前:atk 批跑 5 用例通过率约 60%,失败用例轮换 - 修复后:**10 轮 × 5 用例 = 50/50 全部 PASS**;25 次逐次调用(每次不同输入)全部与 CPU 参考一致(max_diff < 1e-4),零值消失 - pre-commit 检查全部通过(clang-format/codespell/OAT 合规) See merge request: cann/ops-math!5071 | 2 months ago | |
fix(stft): 修复Cube matmul FIX写GM与Gather MTE2读GM流水线竞态导致的精度偶现失败 Co-authored-by: east_yang<yangdong48@huawei.com> # message auto-generated for no-merge-commit merge: !5236 merge fix-stft-fix-mte2 into master fix(stft): 修复Cube matmul FIX写GM与Gather MTE2读GM流水线竞态导致的精度偶现失败 Created-by: east_yang Commit-by: east_yang Merged-by: cann-robot Description: fix #2868 (第二轮修复,续已合入的 PR #5071) ### 问题 泛化批跑(-mt 20)场景下偶现 complex 输入用例(如 case918/1017,complex64 window + normalized=True + onesided=False)精度失败,NPU 输出为 1e33 量级脏数据;单跑同数据(atk 固定 seed)必 PASS。summary 显示 1100 用例中 2 例失败、通过率 99.82%。 ### 根因 PR #5071 修复了 SplitWindows(MTE3写GM) → Cube matmul 的竞态,但 matmul→Gather 之间仍存在对称竞态:StftMatmul 的 IterateAll 发射 Cube matmul 后,GatherRealAndImag 立即通过 MTE2 读取 matmul 输出 workspace,缺少 FIX 流水线写 GM 完成的同步保护。批跑并发时读到 FIX 未写完的脏内存。 ### 修复 在 fp32 与 complex64 两路径的 StftMatmul 与 GatherRealAndImag 之间增加 HardEvent::FIX_MTE2 的 SetFlag/WaitFlag 同步(与 PR #5071 的 MTE3_S 修复对称): - op_kernel/stft_generalized.h - op_kernel/stft_generalized_complex.h ### 验证(Ascend 950PR) - case918/1017 参数构造复现脚本全 PASS - 20 并发压测:修复前 2/100 卡死,修复后 100/100 PASS、0 卡死,单轮耗时 76s → 20s - error_case_stft 5/5 PASS;mini json atk 10 连跑全 PASS See merge request: cann/ops-math!5236 | 2 months ago |
| Files | Last commit | Last update |
|---|---|---|
| 2 months ago | ||
| 1 month ago | ||
| 10 months ago | ||
| 2 months ago | ||
| 7 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 2 months ago |