| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(scal): sscal/scalex 在 incx<=0 时按 no-op 返回 SUCCESS,对齐参考 BLAS Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !214 merge master into master fix(scal): sscal/scalex 在 incx<=0 时按 no-op 返回 SUCCESS,对齐参考 BLAS Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 修复 aclblasSscal / aclblasScalex 在 incx <= 0 时的处理:原先返回 ACLBLAS_STATUS_INVALID_VALUE,对齐参考 BLAS(cblas_sscal 的 IF (INCX.LE.0) RETURN)的语义,改为 no-op 直接返回 ACLBLAS_STATUS_SUCCESS,不修改 x。 ## 改动原因 Daily-QA(#213)监测到 ascend950 全量测试中 sscal 与 scalex 失败。根因:测试集覆盖了 incx=0 的边界用例,而当前实现把 incx == 0 当作非法参数直接报错,与参考 BLAS 语义不一致——参考实现中 incx <= 0 都是合法的 no-op。本次修复将语义对齐到参考实现,使 incx <= 0 用例能正常通过。 ## 改动方法 - **host**(sscal_host.cpp / scalex_host.cpp):从参数校验中移除 incx == 0 报错;在主入口提前短路,incx <= 0 直接返回 ACLBLAS_STATUS_SUCCESS。 - **kernel**(sscal_kernel.cpp / scalex_kernel.cpp / scalex_golden.h):因 incx <= 0 不再进入 kernel,移除 absInc / isReverse 反向步长逻辑,简化为单步长 stride = (uint32_t)incx。 - **test**: - sscal_test.csv TC_L0_05、scalex_test.csv TC_L0_03:期望从 INVALID_VALUE 改为 SUCCESS。 - sscal_golden.h / scalex_golden.h:参考实现同步移除 incx == 0 校验,scalex golden 增加 incx <= 0 短路。 - **docs**(scal/README.md / scalex/README.md):明确写出 incx <= 0 的 no-op 语义,引用参考 BLAS 的 IF (INCX.LE.0) RETURN;sscal README 同时修正函数原型(指针/整数类型与实际实现对齐)。 ## 关联的Issue - https://gitcode.com/cann/ops-blas/issues/213 ## 测试 - 修改对应单元测试用例(sscal_test.csv TC_L0_05、scalex_test.csv TC_L0_03):期望结果由 INVALID_VALUE 改为 SUCCESS,验证 incx <= 0 走 no-op 路径返回成功且不修改 x。 - golden 同步去掉 incx == 0 校验,与 device 实现保持一致。 ## 文档更新 - blas/scal/README.md:补充 incx <= 0 的 no-op 约束、修正函数原型;区分 arch35 / arch22 行为差异。 - blas/scalex/README.md:补充 incx <= 0 的 no-op 约束。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-blas!214 | 5 小时前 | |
fix(scal): sscal/scalex 在 incx<=0 时按 no-op 返回 SUCCESS,对齐参考 BLAS Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !214 merge master into master fix(scal): sscal/scalex 在 incx<=0 时按 no-op 返回 SUCCESS,对齐参考 BLAS Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 修复 aclblasSscal / aclblasScalex 在 incx <= 0 时的处理:原先返回 ACLBLAS_STATUS_INVALID_VALUE,对齐参考 BLAS(cblas_sscal 的 IF (INCX.LE.0) RETURN)的语义,改为 no-op 直接返回 ACLBLAS_STATUS_SUCCESS,不修改 x。 ## 改动原因 Daily-QA(#213)监测到 ascend950 全量测试中 sscal 与 scalex 失败。根因:测试集覆盖了 incx=0 的边界用例,而当前实现把 incx == 0 当作非法参数直接报错,与参考 BLAS 语义不一致——参考实现中 incx <= 0 都是合法的 no-op。本次修复将语义对齐到参考实现,使 incx <= 0 用例能正常通过。 ## 改动方法 - **host**(sscal_host.cpp / scalex_host.cpp):从参数校验中移除 incx == 0 报错;在主入口提前短路,incx <= 0 直接返回 ACLBLAS_STATUS_SUCCESS。 - **kernel**(sscal_kernel.cpp / scalex_kernel.cpp / scalex_golden.h):因 incx <= 0 不再进入 kernel,移除 absInc / isReverse 反向步长逻辑,简化为单步长 stride = (uint32_t)incx。 - **test**: - sscal_test.csv TC_L0_05、scalex_test.csv TC_L0_03:期望从 INVALID_VALUE 改为 SUCCESS。 - sscal_golden.h / scalex_golden.h:参考实现同步移除 incx == 0 校验,scalex golden 增加 incx <= 0 短路。 - **docs**(scal/README.md / scalex/README.md):明确写出 incx <= 0 的 no-op 语义,引用参考 BLAS 的 IF (INCX.LE.0) RETURN;sscal README 同时修正函数原型(指针/整数类型与实际实现对齐)。 ## 关联的Issue - https://gitcode.com/cann/ops-blas/issues/213 ## 测试 - 修改对应单元测试用例(sscal_test.csv TC_L0_05、scalex_test.csv TC_L0_03):期望结果由 INVALID_VALUE 改为 SUCCESS,验证 incx <= 0 走 no-op 路径返回成功且不修改 x。 - golden 同步去掉 incx == 0 校验,与 device 实现保持一致。 ## 文档更新 - blas/scal/README.md:补充 incx <= 0 的 no-op 约束、修正函数原型;区分 arch35 / arch22 行为差异。 - blas/scalex/README.md:补充 incx <= 0 的 no-op 约束。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-blas!214 | 5 小时前 | |
refactor(blas): flatten directory structure and fix README files Co-authored-by: wuyi_huawei<wuyi36@hisilicon.com> # message auto-generated for no-merge-commit merge: !180 merge docs/issue-167-flatten-blas-structure into master refactor(blas): flatten directory structure and fix README files Created-by: zhanghua145 Commit-by: wuyi_huawei Merged-by: cann-robot Description: ## 描述 统一 blas/ 下所有算子的目录结构规范:算子主目录放置 README.md,arch22/arch35 子目录仅存放源码文件。 具体变更: 1. **移除冗余的算子子目录层级**:将 blas/<op>/<variant>/ 扁平化为 blas/<op>/,涉及 35 个算子目录 2. **融合多架构 README**:将 dot、gemv、gemv_batched、scal、swap、trmv 的 s/c 变体 README 合并为统一文档 3. **清理 arch 子目录 README**:删除 dot/arch35、rotm/arch22、sbmv/arch35、spmv/arch22、spmv/arch35、symv/arch35 下的 README.md,将有效内容合并至主目录 README 4. **更新目录结构引用**:修正 29 个算子 README 中的目录结构描述,对齐扁平化后的实际路径 ## 关联的Issue [#167](https://gitcode.com/cann/ops-blas/issues/167) ## 测试 目录结构重构,不涉及功能变更,原有测试用例不受影响。  ## 文档更新 - 融合 6 个算子的多架构 README(dot/gemv/gemv_batched/scal/swap/trmv) - 删除 6 个 arch 子目录 README 并合并内容(dot/rotm/sbmv/spmv/symv) - 更新 29 个算子 README 的目录结构引用 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [x] 其他,请描述:目录结构重构 See merge request: cann/ops-blas!180 | 9 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 小时前 | ||
| 5 小时前 | ||
| 9 天前 |