| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: avoid signed overflow in int32 result comparisons Co-authored-by: Ethan_Zou<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !1447 merge fix/rated-20261011-catlass-int32-compare into master fix: avoid signed overflow in int32 result comparisons Created-by: Ethan_Zou Commit-by: Ethan_Zou Merged-by: cann-robot Description: ## 描述 用直接相等比较修复 int32 极值比较溢出。examples/common/golden/compare_data.hpp 的 int32 特化通过减法和 abs 判断相等,INT32_MAX - (-1) 以及 abs(INT32_MIN) 会触发有符号整数未定义行为。改用 actualValue != expectValue,保留精确相等规则及错误下标顺序。 按当前评审要求,当前提交仅保留生产修复,回归测试源码保存在原始提交及外部验证证据中。 ## 实测环境、命令与结果 DevEnvC_mmdv8,Ubuntu 20.04.5 LTS / aarch64;g++ 9.4.0、真实 GoogleTest 1.14.0;完整生产头文件及仓库 runner,启用 -fsanitize=undefined -fno-sanitize-recover=undefined。 原始修复使用相同测试夹具的前后对照:17 项 UBSan 失败、35 项通过 → 52 项通过。最新 master cfc1a812bad88b26792c911abe92e0e88458d82f 上重新验证当前完整生产代码:52 项完整 Host 回归通过,包含 49 组极值交叉组合、空输入及错误下标。移除仓内测试文件后,生产文件 SHA256 与已验证内容一致。原生适用 pre-commit、Git/LFS fsck、单源提交及作者/提交者身份核验通过。 实际最新验证命令(在保留测试夹具的临时验证工作树中执行,测试文件不随当前 PR 提交): bash /home/developer/AI/CANN-Issue-PR/rated-20261011/evidence/review-ci-conflict-sweep-20261013/catlass-int32-comparison-overflow/latest-master-manual-regression-unittest 测试夹具可从[原始验证提交](https://gitcode.com/Ethan_Zou/catlass/tree/41be7eee0b877750ecca297b082772ebee7c57a8)查看;上述命令中的夹具或可执行文件属于该次验证环境。 仅 Host 自测。未执行 NPU、设备 kernel 或整库设备测试;不声称未实测的 CANN、芯片或其他版本兼容。构造输入不作为设备运行证据。 ## 类型标签 - [x] Bug修复 当前源提交:202061ef18a1a366563395128871a32393d0fbd5。 Closes https://gitcode.com/cann/catlass/issues/739 See merge request: cann/catlass!1447 | 16 天前 | |
matrix_inverse算子的golden代码 Co-authored-by: dx<2829025546@qq.com> # message auto-generated for no-merge-commit merge: !830 merge master into master matrix_inverse算子的golden代码 Created-by: weixin_63557130 Commit-by: dx Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 这个文件实现了 矩阵求逆(Matrix Inverse) 算子,属于 Catlass::golden 命名空间下的 CPU 端黄金参考实现(用于验证 Ascend NPU 上算子结果的正确性)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> https://gitcode.com/cann/catlass/issues/331 ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!830 | 3 个月前 | |
用pre-commit刷新主要文件的格式 Co-authored-by: Yuan Tao<yuantao313@outlook.com> Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !874 merge precommit into master 用pre-commit刷新主要文件的格式 Created-by: yuantao_ Commit-by: yuantao;Yuan Tao Merged-by: cann-robot Description: ## 描述 刷新主要文件的格式,并补充关键字检查项,保证pre-commit能够通过 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!874 | 3 个月前 | |
feat(syrk): implement syrk kernel, example and pytest Co-authored-by: void_ptr<baochaojun@huawei.com> # message auto-generated for no-merge-commit merge: !1283 merge wip/ascend950_syrk into master feat(syrk): implement syrk kernel, example and pytest Created-by: void_ptr Commit-by: void_ptr Merged-by: cann-robot Description: ## 描述 为 Ascend950( CATLASS_ARCH=3510)新增符合 BLAS 完整语义的 SYRK 算子: $$D = \alpha \cdot X X^{T} + \beta \cdot Y,\quad X:(B,M,K),\ Y/D:(B,M,M)$$ 在 82 号样例 Basic SYRK(仅 $Y = X X^T$)的基础上引入三层改动: 1. **模板层(include/catlass)** - gemm/kernel/basic_syrk_workspace_tla.hpp:MIX 双核 kernel。AIC 侧按 swizzle 只计算下三角 Block,将 float 精度的 $P/P^T$ 双写入 per-core ping-pong GM workspace;AIV 侧读回 workspace 执行 epilogue 并写回 $D$。累加在 float workspace 上完成,$Y$ 的读取与缩放移出 cube 关键路径。 - epilogue/block/block_epilogue_syrk_axpby.hpp:通用 AXPBY($\alpha P + \beta Y$)分块 epilogue 组件。 2. **样例(examples/84_ascend950_syrk)**:syrk_tla.cpp 演示完整功能(随机数据 + golden 校验); examples/common/options.hpp 将 SyrkOptions 扩展为双形式解析(m k [device_id] 与 m k batch alpha beta [device_id],按位置参数个数区分,向后兼容 82 样例)。 3. **测试接入(tests/optest)**:JIT kernel 84_ascend950_syrk、SyrkLike torch 绑定 (torch_catlass.ascend950_syrk)与 pytest test_84_ascend950_syrk.py。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 新特性:补齐 Ascend950 上的 SYRK 基础模板。82 号样例仅覆盖 $\alpha=1,\beta=0$ 的直写路径,无法支撑带残差累加(如协方差更新、梯度融合)等需要 $\alpha/\beta$ 缩放与多 batch 的场景;本 PR 以 workspace + AIV AXPBY 的 MIX 流水实现完整语义,并顺带获得更好的数值精度(float workspace 累加)与 cube 侧无阻塞的性能形态。 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。对于新增样例,按照如下格式提供自验结果描述:--> <!--从精度 / 性能 / 特殊值 / 内存 / 确定性计算方面进行验证,测试结果和脚本如下(若有特殊原因可写不涉及):--> <!--精度检测(必填):构造模型场景用例 xx(不少于 200)个,检测通过。--> <!--特殊值检测: inf / nan / 空 Tensor / 极大值场景校验至少 2 个,检测通过。--> <!--内存检测(必填):构造模型场景用例 xx(不少于 20)个,无异常输出。--> <!--性能检测(若涉及):复用内存用例,与 xx 基线相比,检测通过。--> <!--确定性检测(若涉及):复用内存用例,检测通过。--> ## 文档更新 - 新增 examples/84_ascend950_syrk/README.md(代码组织 / 使用示例 / 功能说明 / 参数说明)。 - tests/optest/README.md 已接入样例列表新增 84_ascend950_syrk (Ascend950)。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1283 | 1 个月前 |