inplace_add_layer_norm 融合规则的 CheckScene 需调用 CustomPassContext::GetOptionValue(GE 9.0.0 新增接口)读取 OptionGraphRunMode 判别推理/训练场景。D4(低版本编译环境)下原通过 dlsym 运行时解析 mangled symbol 调用该接口。
inplace_add_layer_norm
CheckScene
CustomPassContext::GetOptionValue
OptionGraphRunMode
dlsym
memcpy_s
<dlfcn.h>
securec.h
将 dlsym 解析替换为编译期宏守卫:GE_COMPILER_VERSION_NUM >= 90000000 时直接调用 passContext.GetOptionValue(框架已适配公共符号弱化,高编低跑场景下可正确解析),否则返回 API_UNAVAILABLE 静默跳过;运行时版本检查保留并加固返回值判断。
GE_COMPILER_VERSION_NUM >= 90000000
passContext.GetOptionValue
API_UNAVAILABLE
关联 PR:https://gitcode.com/cann/ops-nn/pull/11082
一、背景信息
inplace_add_layer_norm融合规则的CheckScene需调用CustomPassContext::GetOptionValue(GE 9.0.0 新增接口)读取OptionGraphRunMode判别推理/训练场景。D4(低版本编译环境)下原通过dlsym运行时解析 mangled symbol 调用该接口。二、价值/作用
memcpy_s函数指针拷贝,恢复类型安全的直接成员调用<dlfcn.h>/securec.h依赖三、设计方案
将 dlsym 解析替换为编译期宏守卫:
GE_COMPILER_VERSION_NUM >= 90000000时直接调用passContext.GetOptionValue(框架已适配公共符号弱化,高编低跑场景下可正确解析),否则返回API_UNAVAILABLE静默跳过;运行时版本检查保留并加固返回值判断。关联 PR:https://gitcode.com/cann/ops-nn/pull/11082