| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(quant): 补齐 aclnnAscendQuant/V3 与 aclnnGroupQuant 第一段参数校验 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !11387 merge fix/quant-param-validation into master fix(quant): 补齐 aclnnAscendQuant/V3 与 aclnnGroupQuant 第一段参数校验 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 issue #6272 与 #6298 指出的两个第一段接口参数校验问题: 1. aclnnAscendQuant / aclnnAscendQuantV3:roundMode 传 nullptr 时返回 161002,与同族算子(quant_max/grouped_quant_max)整改后的 161001 范式不一致。本次将判空前移至 CheckNotNull 并返回 ACLNN_ERR_PARAM_NULLPTR(161001),CheckRoundMode 仅保留取值校验(非空非法值仍返回 161002)。 2. aclnnGroupQuant:scale 第 0 维为 0(如 shape [0, 8])时第一段接口未拦截,错误落到 tiling 阶段返回 561103,与文档约束“scale 第 0 维大小不支持为 0”规定的 161002 不符。本次在 CheckDim 新增 scaleDim0 > 0 校验;同时将 offsetOptional 校验由 ShapeSize<=1 收紧为 ==1,拦截 shape 为 [0] 的空 offset(文档约束“为1个数”)。 3. 同步更新三个算子文档:aclnnAscendQuant/aclnnAscendQuantV3 错误码表 161001 行补充 roundMode 空指针说明;aclnnGroupQuant 参数表三处“支持空Tensor”改为“不支持空Tensor”(scale 以单独 li 注明第 0 维大小不支持为 0),消除与约束说明的矛盾。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#6272](https://gitcode.com/cann/ops-nn/issues/6272)、[#6298](https://gitcode.com/cann/ops-nn/issues/6298) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> A2(Ascend 910B3 / CANN 9.1.0)实机验证: - ophost UT:ascend_quant_v2 + group_quant 共 19 例全部通过; - opapi UT:共 54 例全部通过,含 roundMode=nullptr 期望改为 161001 的两算子用例、新增的 group_quant 空 scale(shape [0,8])/空 offset(shape [0])负向用例(均断言 161002);roundMode 非空非法值用例确认仍返回 161002; - example 实卡验证(基于修复代码打包 custom 包):aclnnAscendQuant/aclnnAscendQuantV3/aclnnGroupQuant 正常路径两段式跑通且输出数值与手算期望一致;roundMode=nullptr 返回 161001,scale 第 0 维为 0 与空 offset 均在第一段返回 161002; - 反向对照:撤回 group_quant 校验后新增负向用例失败,恢复后通过,确认用例有效。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - quant/ascend_quant_v2/docs/aclnnAscendQuant.md、aclnnAscendQuantV3.md:161001 错误码行补充 roundMode 空指针。 - quant/group_quant/docs/aclnnGroupQuant.md:scale/groupIndex/offsetOptional 参数约束澄清。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11387 | 26 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
fix(quant): 补齐 aclnnAscendQuant/V3 与 aclnnGroupQuant 第一段参数校验 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !11387 merge fix/quant-param-validation into master fix(quant): 补齐 aclnnAscendQuant/V3 与 aclnnGroupQuant 第一段参数校验 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 issue #6272 与 #6298 指出的两个第一段接口参数校验问题: 1. aclnnAscendQuant / aclnnAscendQuantV3:roundMode 传 nullptr 时返回 161002,与同族算子(quant_max/grouped_quant_max)整改后的 161001 范式不一致。本次将判空前移至 CheckNotNull 并返回 ACLNN_ERR_PARAM_NULLPTR(161001),CheckRoundMode 仅保留取值校验(非空非法值仍返回 161002)。 2. aclnnGroupQuant:scale 第 0 维为 0(如 shape [0, 8])时第一段接口未拦截,错误落到 tiling 阶段返回 561103,与文档约束“scale 第 0 维大小不支持为 0”规定的 161002 不符。本次在 CheckDim 新增 scaleDim0 > 0 校验;同时将 offsetOptional 校验由 ShapeSize<=1 收紧为 ==1,拦截 shape 为 [0] 的空 offset(文档约束“为1个数”)。 3. 同步更新三个算子文档:aclnnAscendQuant/aclnnAscendQuantV3 错误码表 161001 行补充 roundMode 空指针说明;aclnnGroupQuant 参数表三处“支持空Tensor”改为“不支持空Tensor”(scale 以单独 li 注明第 0 维大小不支持为 0),消除与约束说明的矛盾。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#6272](https://gitcode.com/cann/ops-nn/issues/6272)、[#6298](https://gitcode.com/cann/ops-nn/issues/6298) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> A2(Ascend 910B3 / CANN 9.1.0)实机验证: - ophost UT:ascend_quant_v2 + group_quant 共 19 例全部通过; - opapi UT:共 54 例全部通过,含 roundMode=nullptr 期望改为 161001 的两算子用例、新增的 group_quant 空 scale(shape [0,8])/空 offset(shape [0])负向用例(均断言 161002);roundMode 非空非法值用例确认仍返回 161002; - example 实卡验证(基于修复代码打包 custom 包):aclnnAscendQuant/aclnnAscendQuantV3/aclnnGroupQuant 正常路径两段式跑通且输出数值与手算期望一致;roundMode=nullptr 返回 161001,scale 第 0 维为 0 与空 offset 均在第一段返回 161002; - 反向对照:撤回 group_quant 校验后新增负向用例失败,恢复后通过,确认用例有效。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - quant/ascend_quant_v2/docs/aclnnAscendQuant.md、aclnnAscendQuantV3.md:161001 错误码行补充 roundMode 空指针。 - quant/group_quant/docs/aclnnGroupQuant.md:scale/groupIndex/offsetOptional 参数约束澄清。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11387 | 26 天前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
fix(quant): 补齐 aclnnAscendQuant/V3 与 aclnnGroupQuant 第一段参数校验 Co-authored-by: cuijie25<cuijie24@h-partners.com> # message auto-generated for no-merge-commit merge: !11387 merge fix/quant-param-validation into master fix(quant): 补齐 aclnnAscendQuant/V3 与 aclnnGroupQuant 第一段参数校验 Created-by: cuijie25 Commit-by: cuijie25 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 issue #6272 与 #6298 指出的两个第一段接口参数校验问题: 1. aclnnAscendQuant / aclnnAscendQuantV3:roundMode 传 nullptr 时返回 161002,与同族算子(quant_max/grouped_quant_max)整改后的 161001 范式不一致。本次将判空前移至 CheckNotNull 并返回 ACLNN_ERR_PARAM_NULLPTR(161001),CheckRoundMode 仅保留取值校验(非空非法值仍返回 161002)。 2. aclnnGroupQuant:scale 第 0 维为 0(如 shape [0, 8])时第一段接口未拦截,错误落到 tiling 阶段返回 561103,与文档约束“scale 第 0 维大小不支持为 0”规定的 161002 不符。本次在 CheckDim 新增 scaleDim0 > 0 校验;同时将 offsetOptional 校验由 ShapeSize<=1 收紧为 ==1,拦截 shape 为 [0] 的空 offset(文档约束“为1个数”)。 3. 同步更新三个算子文档:aclnnAscendQuant/aclnnAscendQuantV3 错误码表 161001 行补充 roundMode 空指针说明;aclnnGroupQuant 参数表三处“支持空Tensor”改为“不支持空Tensor”(scale 以单独 li 注明第 0 维大小不支持为 0),消除与约束说明的矛盾。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue [#6272](https://gitcode.com/cann/ops-nn/issues/6272)、[#6298](https://gitcode.com/cann/ops-nn/issues/6298) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> A2(Ascend 910B3 / CANN 9.1.0)实机验证: - ophost UT:ascend_quant_v2 + group_quant 共 19 例全部通过; - opapi UT:共 54 例全部通过,含 roundMode=nullptr 期望改为 161001 的两算子用例、新增的 group_quant 空 scale(shape [0,8])/空 offset(shape [0])负向用例(均断言 161002);roundMode 非空非法值用例确认仍返回 161002; - example 实卡验证(基于修复代码打包 custom 包):aclnnAscendQuant/aclnnAscendQuantV3/aclnnGroupQuant 正常路径两段式跑通且输出数值与手算期望一致;roundMode=nullptr 返回 161001,scale 第 0 维为 0 与空 offset 均在第一段返回 161002; - 反向对照:撤回 group_quant 校验后新增负向用例失败,恢复后通过,确认用例有效。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> - quant/ascend_quant_v2/docs/aclnnAscendQuant.md、aclnnAscendQuantV3.md:161001 错误码行补充 roundMode 空指针。 - quant/group_quant/docs/aclnnGroupQuant.md:scale/groupIndex/offsetOptional 参数约束澄清。 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!11387 | 26 天前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !366 merge license6 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: turing_project1 Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!366 | 10 个月前 | |
修改产品名 Co-authored-by: fwx1169505<fengying27@h-partners.com> # message auto-generated for no-merge-commit merge: !11017 merge master into master 修改产品名 Created-by: fengying555682 Commit-by: fwx1169505 Merged-by: cann-robot Description: ## 描述 修改quant和activation文件夹中的md文档涉及的产品名称 ## 关联的Issue [#6056](https://gitcode.com/cann/ops-nn/issues/6056) ## 测试 已经完成文档语法和链接一致性检测 ## 文档更新 quant和activation文件夹中的md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!11017 | 1 个月前 |
GroupQuant
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | × |
| kirin X90处理器系列产品 | √ |
| kirin 9030处理器系列产品 | √ |
功能说明
-
算子功能:对输入x进行分组量化操作。
-
计算公式:
y=round((x∗scale)+offsetOptional)y = round((x * scale) + offsetOptional) y=round((x∗scale)+offsetOptional)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 需要执行量化的输入,对应公式中的`x`。shape支持2维。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
| scale | 输入 | 量化中的scale值,对应公式中的`scale`。shape支持2维,且第2维与x shape的第2维相等。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
| group_index | 输入 | 量化中的groupIndex值。shape支持1维,且维度与scale shape的第1维相等。 | INT32、INT64 | ND |
| offset | 可选输入 | 量化中的offset值,对应公式中的`offsetOptional`。并且数据类型与`scale`一致。`offsetOptional`为1个数。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
| dst_type | 可选属性 |
|
INT | - |
| y | 输出 | 表示分组量化后的输出,对应公式中的y。shape与`x`的shape一致。 | INT4、INT8 | ND |
- Kirin X90/kirin 9030处理器系列产品: 不支持BFLOAT16。
约束说明
- 输入
scale与输入offset的数据类型一致。 - 如果属性
dst_type为29(INT4),那么输出y的shape的最后一维需要能被2整除。 - 输入
group_index必须是非递减序列,最大值必须与输入x的shape的第1维大小相等。 - 输入
offset的shape当前仅支持[1, ]或[]。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_group_quant | 通过aclnnGroupQuant接口方式调用GroupQuant算子。 |
| 图模式 | - | 通过算子IR构图方式调用GroupQuant算子。 |