| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修复block_epilogue_dequant.hpp中VF静态函数的问题 Co-authored-by: zhaohujie<zhaohujie@huawei.com> # message auto-generated for no-merge-commit merge: !1075 merge br.sivf.fix into master 修复block_epilogue_dequant.hpp中VF静态函数的问题 Created-by: init__zhb__ Commit-by: zhaohujie Merged-by: cann-robot Description: ## 描述 将 VFDoDequant静态函数(使用__simd_vf__修饰) 的函数体放在类内 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 基于CANN 9.2.0 版本验证编译无问题。   ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!1075 | 27 天前 | |
用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 | 1 个月前 | |
针对VF函数补充 static修饰 Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> # message auto-generated for no-merge-commit merge: !948 merge br.static.up into master 针对VF函数补充static修饰 Created-by: init__zhb__ Commit-by: init__zhb__ Merged-by: cann-robot Description: ## 描述 出于规范性考虑,且编译器侧存在非兼容性变更,所有VF类成员函数必须使用static修饰,否则ccec编译条件下即会报错,详见关联Issue。 修改相关内容,包括static 成员函数需要使用静态成员变量,不能在类外定义等。 连带修复CI相关问题(ALL_PASS):1. test_examples.py中80号样例命令行拼接方式错误;2. 74号样例测试件LayoutTagPrologueB过度泛化,固定Weight4BitnZ;3. 75号样例测试件未使用@only_on_2201装饰器 ## 关联的Issue [Issue#363](https://gitcode.com/cann/catlass/issues/363) ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 执行test_compile.sh测试通过。 bash $ bash tests/test_compile.sh ... -- Installing: /xxx/catlass_clean/output/shared_lib/lib102_dynamic_optimized_kernel_batch_0.so -- Installing: /xxx/catlass_clean/output/bin/102_dynamic_optimized_matmul [INFO]Target 'catlass_examples' built successfully $ bash tests/test_compile.sh 3510 ... -- Installing: /xxx/catlass_clean/output/bin/80_grouped_matmul_slice_m_gelu [INFO]Target 'catlass_examples' built successfully ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!948 | 1 个月前 | |
增加950 grouped matmul slice m gelu融合算子 Co-authored-by: ling-wangxiang<lingwangxiang@huawei.com> # message auto-generated for no-merge-commit merge: !837 merge gmmgelu into master 增加950 grouped matmul slice m gelu融合算子 Created-by: ling-wangxiang Commit-by: ling-wangxiang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 此 PR 为 Ascend 950 架构新增了 grouped matmul slice m + GELU 融合算子,完整实现了从 GEMM 计算到 GELU 激活的端到端流水线。核心思路是将分组矩阵乘法(按 M 维度分组,每组共享各自的 B 矩阵)与 GELU 激活函数在 kernel 内融合,通过多级分块(L1 → L0 → UB)、异步预取、跨核同步(AIC/AIV)等机制,在 Ascend 950 上实现高效推理。 主要改动 新增 MmadPreloadAsyncWithCallbackL0CToUB 调度策略与对应 BlockMmadTla 特化: 在 block_mmad/ 中定义了支持预取、异步回调(callbackBeforeFixpipe / callbackAfterFixpipe)和 L1 驻留模式的 MMA 分块调度策略,实现 L1/L0 多级 tile 的流水化矩阵乘法,支持可选 bias 和 shuffle K。 新增 GELU Epilogue 子系统: 在 epilogue/ 中实现了基于寄存器向量计算的 GELU 激活(TileElemWiseGeluRegBase),采用 Tanh 近似公式(Mul → Axpy → Muls → Exp → Adds → Div → Cast),配合 BlockEpilogue 完成 UB 上的逐元素运算和输出拷贝。 新增 GroupedMatmulSliceMGelu Kernel: 在 kernel/ 中实现了分组矩阵乘 + GELU 融合的主 kernel,使用 BlockScheduler 动态分配 tile 给各 core,通过跨核 CrossCoreSetFlag/CrossCoreWaitFlag 同步 AIC(Cube)和 AIV(Vector)单元的 UB 缓冲区,实现 MMA 计算与 GELU epilogue 的乒乓流水,每个group会根据m、n、k大小动态选择合适的tileshape进行切分。 新增 Host 端 Launcher 与测试框架: grouped_matmul_slice_m_gelu_launcher.hpp 组装全部模板参数(tile shape 为 240×256×128 L1 / 240×256×64 L0);配合 gen_data.py 生成测试数据与 golden 输出,grouped_matmul_slice_m_gelu.cpp 完成端到端验证。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> 新算子需求 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 完成UT测试:包含tile对齐、非对齐、groupM=0等场景 group_num_list=(1 2 4 8) m_per_group_list=(1 5 127 129 255 257 ) n_list=(8 127 129 255 257) k_list=(6 255 257) n_k_list=() for n in "nlist[@]";doforkin"{n_list[@]}"; do for k in "n l ist[@]";doforkin"{k_list[@]}"; do n_k_list+=("${n} ${k}") done done ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 增加算子README文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [X] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!837 | 1 个月前 |