Runtime API Hook 接口提供了函数替换能力,但当前缺少一个可直接构建、运行并校验调用次数及恢复行为的单 Device 样例,工具开发者难以验证 Hook 是否正确转发原实现。
来自 Runtime7 样例补充需求,目标目录为 example/2_advanced_features/api_hook/0_call_count,覆盖 aclrtApiInjectionGetFunc 和 aclrtApiInjectionSetFunc。
example/2_advanced_features/api_hook/0_call_count
aclrtApiInjectionGetFunc
aclrtApiInjectionSetFunc
为性能观测工具开发者提供调用计数参考,展示保持接口原有行为、控制调用时序和在失败路径恢复原函数的方法。
aclrtGetDevice
验证:已在 CANN 9.3.0-weekly.20260923.01、Ascend910_9362 环境构建运行通过;查询失败注入验证恢复及非零退出通过;本地 Pre-commit、Shell 语法、空白和文档链接检查通过。A2/A5 尚未实机验证,远端 CodeCheck 待 PR 流水线核验。
Backgroud(背景信息)
Runtime API Hook 接口提供了函数替换能力,但当前缺少一个可直接构建、运行并校验调用次数及恢复行为的单 Device 样例,工具开发者难以验证 Hook 是否正确转发原实现。
Origin(信息来源)
来自 Runtime7 样例补充需求,目标目录为
example/2_advanced_features/api_hook/0_call_count,覆盖aclrtApiInjectionGetFunc和aclrtApiInjectionSetFunc。Benefit / Necessity (价值/作用)
为性能观测工具开发者提供调用计数参考,展示保持接口原有行为、控制调用时序和在失败路径恢复原函数的方法。
Design(设计方案)
aclrtGetDevice原始及当前函数指针;已有 Hook 时退出,避免覆盖其他工具。验证:已在 CANN 9.3.0-weekly.20260923.01、Ascend910_9362 环境构建运行通过;查询失败注入验证恢复及非零退出通过;本地 Pre-commit、Shell 语法、空白和文档链接检查通过。A2/A5 尚未实机验证,远端 CodeCheck 待 PR 流水线核验。