已合并
【feat】: 根据环境变量去掉div高精度 #2120
【feat】: 根据环境变量去掉div高精度 #2120
已合并
WangYanMale创建于 11 天前
WangYanMale成员
11 天前

Pull Request

描述

根据环境变量去掉div高精度

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

执行带Div的运算,观察是否开启了高精度模式

核对清单

其他信息

NA

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 WangYanMale 的贡献)
WWangYanMale成员
11 天前 添加了label:enhancement
WWangYanMale成员
11 天前 创建了 pull request,commit 33e3296e
atomgit-bot
atomgit-bot
11 天前 评论:

变更摘要

本 PR 新增一个环境变量开关,用于在生成 Div 微码 API 调用时去掉高精度除法模式:当 AUTOFUSE_DFX_FLAGS 环境变量中包含 remove_high_precision_mode=div 时,AscendC::MicroAPI::Div 的模板参数不再携带 &high_precision_div_mode。在 ascir_utils.cpp 中新增解析与判断逻辑,并在 micro_div_api_call.cpp 的 MicroDivApiCall::Generate 中按开关条件化模板参数输出,同时补充了对应的单元测试。

主要改动

  • 新增环境变量解析能力: 在 autofuse/ascir/meta/ascir_utils.cpp 中新增 IsRemoveHighPrecisionDivModeParam(支持 -- 前缀及 = 两侧空格)和 IsRemoveHighPrecisionDivMode()(按 ; 分隔解析 AUTOFUSE_DFX_FLAGS),并在 ascir_utils.h 中声明该接口。
  • Div 代码生成条件化: 在 autofuse/v35/codegen/micro_api_call/micro_div_api_call.cpp 的 MicroDivApiCall::Generate 中,当输入为 DT_FLOAT 时,仅当 IsRemoveHighPrecisionDivMode() 返回 false 才输出 , &high_precision_div_mode 模板参数。
  • 新增单元测试: autofuse/tests/ut/ascir/ascir_utils_unittest.cc 新增 AscirUtilsEnvFlagUT 用例,覆盖开关的命中与未命中(如 div2、multiply、缺省值)等解析场景。
  • 新增代码生成测试: autofuse/tests/v35/ut/codegen/micro_api_call/test_codegen_micro_div_api_call.cpp 新增 MicroDivApiCall_Load_Div_Float_RemoveHighPrecisionMode,验证设置环境变量后生成 AscendC::MicroAPI::Div<float>(vreg_1, vreg_0, p_reg);(不含高精度模式参数)。
likedislike
不准确?
atomgit-bot
atomgit-bot
11 天前 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
CANN-robotCANN-robot成员
11 天前 添加了label:cann-cla/yes
此处折叠了55条消息 查看更多
wangxiaotian995成员
10 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
10 天前 添加了label:lgtm
yangyongqiang
yangyongqiang成员
10 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
10 天前 添加了label:approved
CANN-robotCANN-robot成员
10 天前 合入了pull request