| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: impl目录下的代码格式 Co-authored-by: haipingmao<maohaiping@huawei.com> # message auto-generated for no-merge-commit merge: !4211 merge br_codestyle_impl2 into master refactor: impl目录下的代码格式 Created-by: haipingmao Commit-by: haipingmao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 按照/clang-format刷新impl下tensor_api、simt_api、utils目录的代码格式。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> compile ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4211 | 1 个月前 | |
新增l0c_to_l1搬运通路 Co-authored-by: li-yuanjie-da<liyuanjie5@h-partners.com> # message auto-generated for no-merge-commit merge: !4345 merge master into master 新增l0c_to_l1搬运通路 Created-by: li-yuanjie-da Commit-by: li-yuanjie-da Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增l0c_to_l1搬运通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4345 | 1 个月前 | |
新增l0c_to_l1搬运通路 Co-authored-by: li-yuanjie-da<liyuanjie5@h-partners.com> # message auto-generated for no-merge-commit merge: !4345 merge master into master 新增l0c_to_l1搬运通路 Created-by: li-yuanjie-da Commit-by: li-yuanjie-da Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增l0c_to_l1搬运通路 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4345 | 1 个月前 | |
修复 LayoutTrait 中 dtype 与实际 Tensor dtype 不一致问题 Co-authored-by: weixin_63089733<25241214978@stu.xidian.edu.cn> # message auto-generated for no-merge-commit merge: !4372 merge fix/layout-trait-master into master 修复 LayoutTrait 中 dtype 与实际 Tensor dtype 不一致问题 Created-by: weixin_63089733 Commit-by: weixin_63089733 Merged-by: cann-robot Description: ## 描述 本次修改调整了 Tensor API 中 LayoutTrait 的职责边界,使其只描述布局相关的 C0 信息,不再保存 dtype。 改动原因是:tensor 的真实数据类型来自 MakeTensor(MakeMemPtr(ptr), layout) 中的指针类型,而不是 layout trait。原先 LayoutTrait<T, C0> 同时保存 dtype 和 C0,存在 trait 中的 T 与实际 tensor dtype 不一致的风险。 本次修改后: - LayoutTrait 只保留 C0_ELEMENT。 - 保留原有模板写法兼容性,避免影响已经发布出去的 API 使用方式。 - MakeFrameLayout<NZLayoutPtn, T> 等写法中,T 仅用于推导 C0,不作为最终 layout trait 的 dtype 来源。 - 更新相关测试,覆盖默认 trait、直接传入 dtype、显式 C0 等路径。 - 更新文档,明确 LayoutTrait、LayoutTraitDefault<T> 和直接传入 C0 的含义,避免自定义 Trait 场景表述不清。 ## 关联的Issue 无 ## 测试 - 执行 git diff --check,检查通过。 - 使用 CANN 环境对 Tensor API MakeFrameLayout / LayoutTrait 转换路径进行 smoke 编译验证。 - 验证 Tensor API Mmad 示例编译和仿真运行通过,结果校验通过。 - 新增/更新 test_tensor_api_frame.cpp 中的 static_assert,验证最终 trait 只保存布局 C0 信息。 ## 文档更新 更新以下文档,说明 LayoutTrait 只描述布局 C0,不描述 tensor dtype,并补充不同传参方式的含义: - docs/api/SIMD-API/基础API/数据结构/TensorAPI-BasicStructure/layout_structure/MakeFrameLayout.md - docs/api/SIMD-API/基础API/数据结构/TensorAPI-BasicStructure/layout_structure/MakePatternLayout.md ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4372 | 1 个月前 | |
添加Squeeze函数去1轴 Co-authored-by: ca1kw<caikaiwei@huawei.com> # message auto-generated for no-merge-commit merge: !4306 merge squeeze_master into master 添加Squeeze函数去1轴 Created-by: ca1kw Commit-by: ca1kw Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增 Squeeze Tensor API,提供两种模式在编译期、运行期移除 Layout/Tensor 中大小为 1 的维度,如果在运行期移除,需用户保证维度大小为1: 1. 索引模式: Squeeze<Dim...>(x) — 通过模板参数指定要去除的轴索引,仅当该轴编译期大小为1时才移除 2. 模式匹配模式: Squeeze(x, pattern) — 通过与shape同构的pattern标记(_1标记squeeze位置,_标记保留),支持递归处理嵌套tuple结构 调用方式: // 模式一:索引模式 — 通过模板参数指定轴索引 auto layout = MakeLayout(MakeShape(_4{}, _1{}, _5{})); auto squeezed = Squeeze<1>(layout); // shape: (4, 5) auto squeezed = Squeeze<0, 2>(layout); // 可同时指定多个轴,顺序无关 // 模式二:模式匹配 — 通过与 shape 同构的 pattern 标记 auto layout = MakeLayout(MakeShape(_1{}, _4{}, _1{})); auto squeezed = Squeeze(layout, MakeCoord(_1{}, _, _1{})); // shape: (4,) // _1{} 标记 squeeze 位置,_ 标记保留位置;支持嵌套递归匹配 // 两种模式均可直接作用于 Tensor,返回复用原 Engine 的新 Tensor auto squeezed = Squeeze<0>(tensor); auto squeezed = Squeeze(tensor, MakeCoord(_, _1{})); 语义:被标记但编译期大小不为 1 的轴直接保留,不报错;squeeze 后若仅剩一层嵌套 tuple 则自动解包(如 (1,(M,K)) → (M,K))。 核心实现: - Layout 层:SqueezeLayout 支持两种模式,包含递归 pattern squeeze 处理嵌套结构 - Tensor 层:自动适配 Layout 和 Tensor 输入,Tensor 场景下复用原 Engine 并生成新 Layout - 辅助工具:IsOne、IsSameStructure、KeepIndexSeq、SelectBySeq 等编译期 tuple 操作原语 - 常量定义:KeepMark 和 _ 用于 pattern 标记 文件变更: - include/tensor_api/tensor/layout.h: 新增 Squeeze 函数声明 - impl/tensor_api/tensor/layout_impl.h: Layout 层 squeeze 实现(+138) - impl/tensor_api/tensor/tensor_impl.h: Tensor 层 squeeze 适配(+36) - impl/tensor_api/tensor/tuple_impl.h: 编译期 tuple 工具函数(+83) - impl/tensor_api/utils/constant_impl.h: 新增 KeepMark 和 _ 常量(+6) - tests/api/tensor_api/basic_struct/layout/test_tensor_api_squeeze.cpp: 单元测试(+244) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4306 | 1 个月前 | |
扩展pre-commit hooks (第二批目录) Co-authored-by: Water8L<15279328600@163.com> # message auto-generated for no-merge-commit merge: !4183 merge master into master 扩展pre-commit hooks (第二批目录) Created-by: Water8L Commit-by: Water8L Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在.pre-commit-config.yaml中根据trailing-whitespace和end-of-file-fixer hook,修改tests/api/other impl/matmul + impl/hccl + tests/other tests/api/basic_api + examples/basic_api目录下对应不合规范的文件 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4183 | 1 个月前 |