| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Fix:add epilogue impl in blasLt Co-authored-by: Zitao Wang<wangzitao4@huawei.com> # message auto-generated for no-merge-commit merge: !142 merge issue_133 into master Fix:add epilogue impl in blasLt Created-by: wangzitao_leo Commit-by: Zitao Wang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 1. Epilogue 独立 kernel 化: 新增 epilogue_alpha_beta_kernel.cpp、epilogue_alpha_beta_host.cpp 和 epilogue_alpha_beta_tiling_data.h 三个文件,将 D = alpha * D_raw + beta * C 计算实现为基于 tiling 的 SIMT kernel,支持 FP32/BF16 混精组合,替代了原来 aclblasLtMatmul 中简单的逐元素循环。 2. Epilogue 调用逻辑增强: 在 aclblasLtMatmul 中增加了对 beta != 0 时 C 为空指针的校验、cOverlap 场景下 workspace 大小的检查,以及根据 dtypeA/dtypeB 推导 dtypeDRaw 的逻辑,使 epilogue 入口更健壮。 3. 公共工具函数提取: 将原来散落在 aclblasLt.cpp 匿名命名空间中的 CheckedMemcpyS、GetTypeSize、CheckComputeTypeCompatibility、CeilDiv 等工具函数迁入新建的 host_utils.h,方便其他 host 端模块复用。 4. 测试数据填充策略优化: blasLtMatmul_test.cpp 中新增 makeFp32MatmulFills 函数,对 K ≥ 128 的大矩阵使用常量填充代替全范围随机值,控制 D 的数值量级约为 1,避免 FP32 累加溢出导致验证失败。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#133](https://gitcode.com/cann/ops-blas/issues/133) ## 测试 <!--描述进行了哪些测试来验证你的改动。-->  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-blas!142 | 18 天前 |