| Files | Last commit | Last update |
|---|---|---|
fix(dynamic_mx_quant/quant_update_scatter): 修复示例代码及文档中的数据初始化、类型不匹配、注释错误及 aclrtMemcpy 逻辑缺陷 Co-authored-by: yuanbin_22<yuanbin22@huawei.com> # message auto-generated for no-merge-commit merge: !9454 merge fix/dual-axis-mx-quant-example-fix into master fix(dynamic_mx_quant/quant_update_scatter): 修复示例代码及文档中的数据初始化、类型不匹配、注释错误及 aclrtMemcpy 逻辑缺陷 Created-by: yuanbin_22 Commit-by: yuanbin_22 Merged-by: cann-robot Description: ## 描述 本 PR 修复 dynamic_mx_quant 和 quant_update_scatter 系列算子的示例代码和接口文档中存在的多类问题,涵盖数据初始化方式错误、数据类型不匹配、注释错误、aclrtMemcpy 逻辑缺陷、版权头不规范及 dtype 拼写错误。 ### 涉及文件 | 文件 | 变更类型 | +行 | -行 | |------|----------|-----|-----| | index/quant_update_scatter/docs/aclnnInplaceQuantScatter.md | 文档修复 | +4 | -4 | | index/quant_update_scatter/docs/aclnnInplaceQuantScatterV2.md | 文档修复 | +9 | -9 | | index/quant_update_scatter/examples/test_aclnn_inplace_quant_scatter.cpp | 示例修复 | +5 | -5 | | quant/dynamic_mx_quant/docs/aclnnDynamicMxQuant.md | 文档修复 | +2 | -2 | | quant/dynamic_mx_quant/docs/aclnnDynamicMxQuantV2.md | 文档修复 | +2 | -2 | | quant/dynamic_mx_quant/docs/aclnnDynamicMxQuantV3.md | 文档修复 | +2 | -2 | | quant/dynamic_mx_quant/examples/arch35/test_aclnn_dynamic_mx_quant.cpp | 示例修复 | +12 | -13 | | quant/dynamic_mx_quant/examples/arch35/test_aclnn_dynamic_mx_quant_v3.cpp | 示例修复 | +6 | -7 | | quant/dynamic_mx_quant_with_dual_axis/docs/aclnnDynamicMxQuantWithDualAxis.md | 文档修复 | +8 | -6 | | quant/dynamic_mx_quant_with_dual_axis/docs/aclnnDynamicMxQuantWithDualAxisV2.md | 文档修复 | +8 | -6 | | quant/dynamic_mx_quant_with_dual_axis/examples/arch35/test_aclnn_dynamic_mx_quant_with_dual_axis.cpp | 示例修复 | +14 | -15 | ### 变更内容 #### 1. 数据初始化方式修复({count, value} → (count, value)) quant_update_scatter 的示例代码和文档中,std::vector 使用初始化列表语法 {32, 0} 构造,实际创建的是包含两个元素 [32, 0] 的向量,而非32个0。修复为使用构造函数语法 (32, 0) 创建32个值为0的元素。 同时修复 updatesHostData 的数据类型:从 std::vector<float> 改为 std::vector<uint16_t>(FP16),值为 15360(即 FP16 编码的 1.0 = 0x3C00),与 updates 张量声明的 FP16 数据类型匹配。quantZeroPointsHostData 从 float 改为 int32_t,值为 0,与 dtype 声明匹配。 涉及文件:aclnnInplaceQuantScatter.md、aclnnInplaceQuantScatterV2.md、test_aclnn_inplace_quant_scatter.cpp #### 2. mxscaleOutHostData 多余花括号修复 dynamic_mx_quant 系列示例中 std::vector<uint8_t> mxscaleOutHostData = {{128, 0}} 存在多余花括号,虽不报错但不规范,修复为 {128, 0}。 涉及文件:aclnnDynamicMxQuant.md、aclnnDynamicMxQuantV2.md、aclnnDynamicMxQuantV3.md、test_aclnn_dynamic_mx_quant.cpp、test_aclnn_dynamic_mx_quant_v3.cpp #### 3. 注释错误修复(fp4 → fp8) dynamic_mx_quant 系列示例中,输出数据为 float8_e4m3 类型,但注释写为「C语言中无法直接打印fp4的数据」,修复为「fp8」。 涉及文件:上述所有 dynamic_mx_quant 和 dynamic_mx_quant_with_dual_axis 相关文件 #### 4. aclrtMemcpy 逻辑缺陷修复 dynamic_mx_quant_with_dual_axis 系列示例中,两个 aclrtMemcpy(y1Out 和 y2Out)使用 && 运算符连接,导致 y1Out 的拷贝结果被隐式转换为 bool 与 y2Out 的拷贝结果做逻辑与,只返回最终的 bool 结果。此外若 y1Out 拷贝失败,y2Out 拷贝仍会执行,且错误信息合并为一条。 修复为分步执行:先执行 y1Out 拷贝并立即 CHECK_RET 校验,再执行 y2Out 拷贝并单独 CHECK_RET 校验,错误信息分别输出。 涉及文件:aclnnDynamicMxQuantWithDualAxis.md、aclnnDynamicMxQuantWithDualAxisV2.md、test_aclnn_dynamic_mx_quant_with_dual_axis.cpp #### 5. y2OutHostData 期望值修复 dynamic_mx_quant_with_dual_axis 系列示例中,y2OutHostData 的期望值为 {0, 0, 0, 0},与实际计算结果不符。修复为 {0, 120, 120, 120}。 涉及文件:上述 dynamic_mx_quant_with_dual_axis 相关文件 #### 6. dtype 拼写错误修复 aclnnInplaceQuantScatterV2.md 中,dtype 组合表中 FLOAT_E5M2 应为 FLOAT8_E5M2(缺少 8),修复为正确名称。 #### 7. 版权头规范化 dynamic_mx_quant 系列示例代码的版权头将 This program is free software... 放在 Copyright 之前,且多行文本排版不规范。修复为将 Copyright 放在首行,统一许可证文本格式。 涉及文件:test_aclnn_dynamic_mx_quant.cpp、test_aclnn_dynamic_mx_quant_v3.cpp、test_aclnn_dynamic_mx_quant_with_dual_axis.cpp #### 8. 文件末尾换行符补充 多个示例文件末尾缺少换行符,统一补充 \n。 涉及文件:test_aclnn_inplace_quant_scatter.cpp、test_aclnn_dynamic_mx_quant.cpp、test_aclnn_dynamic_mx_quant_with_dual_axis.cpp ## 关联的Issue 关联Issue #5300 ## 测试 - 示例代码编译通过,无类型不匹配告警 - quant_update_scatter 示例数据初始化正确,运行结果符合预期 - dynamic_mx_quant_with_dual_axis aclrtMemcpy 分步校验,错误可独立定位 - 期望值与实际计算结果一致 ## 文档更新 - aclnnInplaceQuantScatter.md、aclnnInplaceQuantScatterV2.md:修复示例代码数据初始化 - aclnnDynamicMxQuant.md、aclnnDynamicMxQuantV2.md、aclnnDynamicMxQuantV3.md:修复注释和花括号 - aclnnDynamicMxQuantWithDualAxis.md、aclnnDynamicMxQuantWithDualAxisV2.md:修复 aclrtMemcpy 逻辑、注释和期望值 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9454 | 2 months ago |