文件最后提交记录最后更新时间
svd_quant_matmul Co-authored-by: Yao Weijie<yaoweijie2@h-partners.com> # message auto-generated for no-merge-commit merge: !615 merge svd_quant-pr into master svd_quant_matmul Created-by: lavateinn Commit-by: Yao Weijie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增SvdQuantMatmul 在量化前有原始的激活X,原始的权重W。给定一个Smooth参数进行变换 $$ X' = X diag(1/s) \\ W' = diag(s) W $$ 将变换后的权重 W' 进行SVD分解 $$ W' = (US)T = L_{1} L_{2} $$ 其中 L1 的shape为[k, r],L2 的shape为[r, n],其中r为SVD分解后取的秩,典型值16/32/64 计算残差R $$ R = W' - L_{1} L_{2} $$ $L_{1} L_{2}$ 中吸收了异常值,而残差R中主要为正常值,易于量化。 因此算法可以描述为 $$ \begin{aligned} Y &= X W = X' W' \\ &= X'(L_{1}L_{2} + R) \\ &= X'L_{1}L_{2} + X'R \\ &\approx X'L_{1}L_{2} + Quant(X')Quant(R) \\ \end{aligned} $$ 算子的实现即 $Y=X'L_{1}L_{2} + Quant(X')Quant(R)$ ,可以分解为2路进行计算: - 主通路$X'R$: W4A4 - 低秩旁路 $X'L_{1}L_{2}$: 高精度计算(fp16/bf16) 在本样例的实现中,Quant(R) 采用标准的量化实现,scale的计算 $$ scaleR = 2 ** (log_{2} (abs(R))) - emax $$ 在本算子的实现中, 要求 Quant(X')的scale用如下公式计算 $$ scaleX = 2 ** (log_{2} (abs(X') / qmax)) $$ 其中qamx是外部传入的参数,后续不用像标准实现一样减去emax。 SvdQuant原理等参考[SvdQuant论文](https://arxiv.org/abs/2411.05007) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!61511 天前
optest功能优化、文档补充 Co-authored-by: yuantao<taoyuan18@huawei.com> # message auto-generated for no-merge-commit merge: !637 merge refactor/optest-jit-and-conventions into master optest功能优化、文档补充 Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!6375 天前
mxfp4 batchmatmul二级量化 Co-authored-by: Chen_HaoWen<chenhaowen12@huawei.com> # message auto-generated for no-merge-commit merge: !630 merge master_batchmatmul_fp4_merge into master mxfp4 batchmatmul二级量化 Created-by: Chen_HaoWen Commit-by: Chen_HaoWen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> mxfp4 batchmatmul二级量化 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 泛化1000条+300条模型用例均通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!6303 天前
规范l0c2ub tile层参数对齐行为与注释 Co-authored-by: sinceseto<wangyuanfei6@huawei.com> # message auto-generated for no-merge-commit merge: !643 merge l0c2ub-tile-fix into master 规范l0c2ub tile层参数对齐行为与注释 Created-by: sinceseto Commit-by: sinceseto Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/900/API/ascendcopapi/atlasascendc_api_07_0251.html ![image.png](https://raw.gitcode.com/user-images/assets/7631999/06421f68-7682-47c4-8f4f-04769eb680ee/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/7631999/e8ea5b4d-b205-4e14-b63a-280ca422f3ab/image.png 'image.png') 调整L0C 到 UB 的 Fixpipe 拷贝参数,让 nSize 符合文档里的 32B 对齐要求。 当前代码在已有样例里即使传入未对齐的nSize也没有发现实际问题,改动前这些样例也能跑通。把 tile 层的参数补得更规范,降低后续风险。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> 让 L0C 到 UB 的 Fixpipe 参数更贴近 CANN 文档要求,降低后续风险。 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 样例47改动前后随机case测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!6434 天前
svd_quant_matmul Co-authored-by: Yao Weijie<yaoweijie2@h-partners.com> # message auto-generated for no-merge-commit merge: !615 merge svd_quant-pr into master svd_quant_matmul Created-by: lavateinn Commit-by: Yao Weijie Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增SvdQuantMatmul 在量化前有原始的激活X,原始的权重W。给定一个Smooth参数进行变换 $$ X' = X diag(1/s) \\ W' = diag(s) W $$ 将变换后的权重 W' 进行SVD分解 $$ W' = (US)T = L_{1} L_{2} $$ 其中 L1 的shape为[k, r],L2 的shape为[r, n],其中r为SVD分解后取的秩,典型值16/32/64 计算残差R $$ R = W' - L_{1} L_{2} $$ $L_{1} L_{2}$ 中吸收了异常值,而残差R中主要为正常值,易于量化。 因此算法可以描述为 $$ \begin{aligned} Y &= X W = X' W' \\ &= X'(L_{1}L_{2} + R) \\ &= X'L_{1}L_{2} + X'R \\ &\approx X'L_{1}L_{2} + Quant(X')Quant(R) \\ \end{aligned} $$ 算子的实现即 $Y=X'L_{1}L_{2} + Quant(X')Quant(R)$ ,可以分解为2路进行计算: - 主通路$X'R$: W4A4 - 低秩旁路 $X'L_{1}L_{2}$: 高精度计算(fp16/bf16) 在本样例的实现中,Quant(R) 采用标准的量化实现,scale的计算 $$ scaleR = 2 ** (log_{2} (abs(R))) - emax $$ 在本算子的实现中, 要求 Quant(X')的scale用如下公式计算 $$ scaleX = 2 ** (log_{2} (abs(X') / qmax)) $$ 其中qamx是外部传入的参数,后续不用像标准实现一样减去emax。 SvdQuant原理等参考[SvdQuant论文](https://arxiv.org/abs/2411.05007) ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!61511 天前
【task】更新license Co-authored-by: yuantao<taoyuan15@h-partners.com> # message auto-generated for no-merge-commit merge: !399 merge master into master 【task】更新license Created-by: yuantao_ Commit-by: yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!3995 个月前
新增MxFP8以及MxFP4 Co-authored-by: CheaterAbec<niyuhao2@huawei.com> # message auto-generated for no-merge-commit merge: !540 merge master into master 新增MxFP8以及MxFP4 Created-by: CheaterAbec Commit-by: CheaterAbec Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增MxFP8以及MxFP4样例以及相关组件 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> ## 原因 <!--说明此次改动的目的、解决的问题等,应与类型标签匹配 --> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/catlass!5401 个月前