| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 16 天前 | |
feat: 新增 arch35 矩阵变换接口 aclblasLtMatrixTransform Co-authored-by: tangpingchuan<tangpingchuan@huawei.com> # message auto-generated for no-merge-commit merge: !150 merge aclblasLtMatrixTransform into master feat: 新增 arch35 矩阵变换接口 aclblasLtMatrixTransform Created-by: pingchuantang Commit-by: tangpingchuan Merged-by: cann-robot Description: ## 描述 新增 aclBLASLt 矩阵变换接口 aclblasLtMatrixTransform,实现 C = alpha·op(A) + beta·op(B) 的矩阵转置、缩放、加法及内存布局/数据类型转换,目标芯片 Ascend950,目标架构 arch35(DAV_3510)。 **新增接口**(include/cann_ops_blasLt.h): - aclblasLtMatrixTransformDescCreate / aclblasLtMatrixTransformDescDestroy / aclblasLtMatrixTransformDescSetAttribute / aclblasLtMatrixTransformDescGetAttribute - aclblasLtMatrixTransform 主计算接口 - 新增类型 aclblasLtMatrixTransformDesc_t、aclblasLtMatrixTransformDescAttribute_t(SCALE_TYPE / POINTER_MODE / TRANSA / TRANSB) - aclblasLtOrder_t 扩展 COL32 / COL4_4R2_8C / COL32_2R_4R4 三种布局 **支持规格**: - dtype(A/B/C 独立):FP32 / FP16 / BF16 / INT8 / INT32 / FP8_E4M3FN / FP8_E5M2 / FP4_E2M1;scaleType 按浮点 FP32 / 整数 INT32 / FP8 FP32 / FP4 BF16 分路径 - op:N / T(C 等价 T);order:COL / ROW / COL32 / COL4_4R2_8C / COL32_2R_4R4 - 复杂量化布局(COL4_4R2_8C / COL32_2R_4R4)仅支持量化路径 dtype(INT8/INT32/FP8/FP4);FP4 packed ld 经 ceil 字节换算,奇数维合法 - 不支持 batchCount>1、跨 scaleType 路径转换、FP64/复数/HiF8 等 **实现**:host 侧 tiling(blasLt/matrixtransform/arch35/matrix_transform_host.cpp 及 tiling data / perm table 头文件),arch35 kernel(matrix_transform_kernel.cpp),ACL 入口在 blasLt/aclblasLt.cpp 完成参数校验与任务下发。 ## 关联的Issue 关联Issue #147 :https://gitcode.com/cann/ops-blas/issues/147 ## 测试 CSV 驱动 159 个用例 + 4 个复杂布局 anchor 用例(test/blasLtMatrixTransform/),覆盖全 dtype/order/op 组合、空矩阵、异常入参;整数路径位精确(MARE=MERE=0),浮点/FP8/FP4 按 MARE/MERE 单标杆标准比对。 ## 文档更新 新增 blasLt/matrixtransform/README.md(计算语义、支持规格、精度标准、接口说明)。 ## 类型标签 - [x] 新特性 See merge request: cann/ops-blas!150 | 14 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 16 天前 | ||
| 14 天前 |