文件最后提交记录最后更新时间
【新增样例】增加W4A4低精度矩阵乘算子 Co-authored-by: zhanghaobo<zhanghaobo6@huawei.com> Co-authored-by: triwooder<zhangyunsong3@huawei.com> # message auto-generated for no-merge-commit merge: !411 merge br_w4a4 into master 【新增样例】增加W4A4低精度矩阵乘算子 Created-by: init__zhb__ Commit-by: init__zhb__;triwooder;zhanghaobo Merged-by: cann-robot Description: ## 描述 【新增算子样例】基于已有及新开发组件上库W4A4低精度矩阵乘算子,其中左、右矩阵均为AscendC::int4b_t类型,在1Byte内填充两个AscendC::int4b_t数据。 ---- | Tensor | Shape | Dtype | Desrc | | --- | ----- | ----- | ----- | | x | (m,k) | AscendC::int4b_t | 输入左矩阵 | | weight | (k,n) | AscendC::int4b_t | 右矩阵(权重) | | perTokenScale | (m) | float | 按行的反量化系数 | | perChannelScale | (n) | uint64_t | 按列的反量化系数 | | output | (m, n) | bfloat16_t | 输出 | - AscendC::int4b_t底层处理方式是,在1Byte内表示两个AscendC::int4b_t类型数据,如以1Byte为基本类型视图,则左矩阵形为(m, k/2),右矩阵形为(k, n/2) - 对int4b_t支持能力: PR rebase [#417](https://gitcode.com/cann/catlass/pull/417) (包括使用"size of bits" 替代 "size of bytes" 计算扩展低精度兼容能力) - m: input_dim(token-size), k: hidden_dim, n: output_dim ## 关联的Issue ## 原因 ## 测试 LayoutB为zN排布下测试通过: ``` M N K Time(us) Status 4 64 64 9.94 succ 4 64 128 10.9 succ 18 64 128 10.72 succ 18 64 272 11.26 succ 18 64 368 11.5 succ 1028 448 64 18.18 succ 1028 448 128 15.96 succ 1028 448 272 19.12 succ 1668 3072 1280 40.86 succ 1668 3072 1536 39.78 succ 1668 3072 4096 67.64 succ 1668 3072 5120 79.8 succ ``` 测试例组合(420): ```python M = [1, 4, 18, 96, 128, 256, 1028, 1668] N = [64, 256, 448, 768, 2560, 3072] K = [16, 64, 128, 272, 368, 880, 1280, 1536, 4096, 5120] ``` ![image.png](https://raw.gitcode.com/user-images/assets/7631999/2bf100b7-eedf-4b74-9c6c-8fc4dbae0f28/image.png 'image.png') --------------------- LayoutB 为nZ排布下(需调整样例中模板参数,见README)测试通过: ``` M N K Time(us) Status 4 64 64 11.26 succ 4 64 256 11.92 succ 4 128 64 11.92 succ 4 128 64 11.92 succ 4 128 256 10.26 succ 1028 1280 2560 24.94 succ 1028 1280 3072 25.38 succ 1028 1536 64 27.36 succ 1028 1536 256 21.8 succ 1668 5120 448 52.18 succ 1668 5120 768 55.94 succ 1668 5120 2560 62.14 succ 1668 5120 3072 66.06 succ ``` 测试例组合(420): ```python M = [1, 4, 18, 96, 128, 256, 1028, 1668] K = [64, 256, 448, 768, 2560, 3072] N = [16, 64, 128, 272, 368, 880, 1280, 1536, 4096, 5120] ``` --------------------- 测试环境: - NPU: 910B2C 单卡 - CANN: 8.2.RC1(社区版) ## 文档更新 examples/38_w4a4_matmul_per_channel_msd/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4115 个月前
【feat】增加33_basic_conv2d示例 Co-authored-by: WinstonSmith<yukainan1@huawei.com> 6 个月前
样例【02 gmm切m】新增支持glist为分段式输入 Co-authored-by: longjihui<longjihui@noreply.gitcode.com> # message auto-generated for no-merge-commit merge: !420 merge exp02_support_glist_type2 into master 样例【02 gmm切m】新增支持glist为分段式输入 Created-by: longjihui Commit-by: longjihui Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 项目依赖+实际客户场景均使用分段式的glist,后续会逐步更迭成分段式输入 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4205 个月前
【bug】修复Silu命名和精度问题 Co-authored-by: yuantao<taoyuan15@h-partners.com> # message auto-generated for no-merge-commit merge: !428 merge cast into master 【bug】修复Silu命名和精度问题 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> RINT模式会进行舍入,在可以不产生精度舍入的情况下,如大转小、同类型转换,应当使用NONE。 另外,在相同类型转换情况下,AscendC没有对应实现,因此将同类型cast增加判断,类型相同不运行Cast接口。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!4284 个月前