| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
统一所有算子获取内核数量方法为通过plantformC api获取,部分强行硬编码为8的算子需要自己手动调整,同时将部分重复在host侧定义的函数修改为使用公共库中的函数 Co-authored-by: Jett.chen<1519755291@qq.com> # message auto-generated for no-merge-commit merge: !163 merge plantformC into master 统一所有算子获取内核数量方法为通过plantformC api获取,部分强行硬编码为8的算子需要自己手动调整 Created-by: 2302_77046878 Commit-by: Jett.chen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 统一所有算子获取内核数量方法为通过plantformC api获取,部分强行硬编码为8的算子需要自己手动调整,直接进行修改可能会出现预期外的错误 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-blas/issues/136 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 修改后对于arch22,arch35架构下的算子进行了测试,全部通过   ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-blas!163 | 8 天前 | |
修复6个算子的代码结构问题 Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !178 merge refactor/six-ops-cleanup into master 修复6个算子的代码结构问题 Created-by: xutianze Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 修复 6 个算子的代码结构问题,包括冗余 include、重复定义的核心数获取函数、不准确的错误信息、wrapper 中缺少返回值校验,以及纯搬运算子的 TQue/TQueBind 冗余开销。 ### 修改内容 **公共函数提取** - 在 host_utils.h 中新增公共 GetAivCoreCount 函数,供所有算子复用 **sswap (#169)** - 删除冗余 include(acl/acl.h、cann_ops_blas_common.h) - 替换本地 GetVectorCoreCount 为公共 GetAivCoreCount - 错误信息改为 "GetAivCoreCount failed" - wrapper 补全 aclrtSynchronizeDevice 和 aclrtMemcpy D2H 返回值校验 - kernel 使用 TBuf 替代 TQueBind,消除队列管理开销 **sgemv (#168)** - 删除冗余 include(acl/acl.h、cann_ops_blas_common.h) - 替换本地 GetVectorCoreCount 为公共 GetAivCoreCount - 错误信息改为 "GetAivCoreCount failed" **stpmv (#170)** - 删除冗余 include(acl/acl.h、cann_ops_blas_common.h) - 替换本地 GetVectorCoreCount 为公共 GetAivCoreCount - 错误信息改为 "GetAivCoreCount failed" **stpttr (#171)** - 删除冗余 include(acl/acl.h、cann_ops_blas_common.h) - wrapper 补全 aclrtSynchronizeDevice 和 aclrtMemcpy D2H 返回值校验 - kernel 使用 TBuf 替代 TQue,消除队列管理开销 **strttp (#172)** - 删除冗余 include(acl/acl.h、cann_ops_blas_common.h) - wrapper 补全 aclrtSynchronizeDevice 和 aclrtMemcpy D2H 返回值校验 - kernel 使用 TBuf 替代 TQue,消除队列管理开销 **sgeqrf_batched (#173)** - 删除冗余 include(acl/acl.h、cann_ops_blas_common.h、tiling/platform/platform_ascendc.h) - 替换本地 GetAivCoreCount 为公共版本 - 错误信息改为 "GetAivCoreCount failed" - wrapper 补全 aclrtSynchronizeDevice 返回值校验 ### 性能优化效果 对纯搬运算子使用 TBuf 替代 TQue/TQueBind,消除队列管理开销(AllocTensor/EnQue/DeQue/FreeTensor): | 算子 | 测试用例 | 优化前 (us) | 优化后 (us) | 提升 | |------|---------|------------|------------|------| | sswap | n=8192 | 12.75 | 9.57 | **24.9%** | | stpttr | n=10240 | 969.06 | 663.04 | **31.6%** | | strttp | n=10240 | 975.03 | 672.45 | **31.0%** | **stpmv 未优化**:使用双缓冲流水线(CopyIn/Compute/CopyOut 三阶段重叠),TQue 提供了真正的流水线并行收益,替换为 TBuf 会丢失重叠。 ## 关联的Issue - [#168](https://gitcode.com/cann/ops-blas/issues/168) - sgemv 算子 host 代码冗余 - [#169](https://gitcode.com/cann/ops-blas/issues/169) - sswap 算子 host 代码冗余及 wrapper 缺少返回值校验 - [#170](https://gitcode.com/cann/ops-blas/issues/170) - stpmv 算子 host 代码冗余 - [#171](https://gitcode.com/cann/ops-blas/issues/171) - stpttr 算子 host 代码冗余及 wrapper 缺少返回值校验 - [#172](https://gitcode.com/cann/ops-blas/issues/172) - strttp 算子 host 代码冗余及 wrapper 缺少返回值校验 - [#173](https://gitcode.com/cann/ops-blas/issues/173) - sgeqrf_batched 算子 host 代码冗余及 wrapper 缺少返回值校验 ## 测试 Ascend 950PR 实板验证,6 个算子全部通过(0 失败,0 跳过): - sswap: 42/42 - sgemv: 64/64 - stpmv: 65/65 - stpttr: 56/56 - strttp: 56/56 - sgeqrf_batched: 42/42 ## 文档更新 无 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-blas!178 | 10 天前 | |
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 | 16 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 天前 | ||
| 10 天前 | ||
| 16 天前 |