news 2026/5/9 23:39:32

CANN/opbase DFX诊断接口文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/opbase DFX诊断接口文档

op_dfx

【免费下载链接】opbase本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase

本章接口为预留接口,后续有可能变更或废弃,不建议开发者使用,开发者无需关注。

表 1接口列表

接口定义功能说明
ToString(const std::string &str)将std::string转换为ge::AscendString。
OpDfxGuard(const charfile, int line, OpLevel level, const charfuncName, const charparamNamesIn, const charparamNamesOut, const INPUT_TUPLE &&in, const OUTPUT_TUPLE &&out)DFX统计guard的构造函数。
OpDfxGuard(const charfile, int line, OpLevel level, const charfuncName)DFX统计guard的构造函数。
OpDfxGuard(uint32_t id, const charfile, int line, OpLevel level, const charfuncName, const char *paramNames, const std::tuple<Args...> &t)DFX统计guard的构造函数。
OpDfxGuard(uint64_t id, DfxProfilingType type)DFX统计guard的构造函数。
OpDfxGuard()DFX统计guard的构造函数。
ValidDfxName([[maybe_unused]]char consta, [[maybe_unused]]char constb)判断a == b?
OpGetLogSequence()获取日志序号。
GenSummaryItemId(const charl2Name, const charl0Name)用L2和L0的接口名生成一个唯一的统计id。
GenSummaryItemId(const charl2Name, const charl0Name, const char *opType)用L2和L0的接口名以及算子类型名生成一个唯一的统计id。
GenKernelLauncherId(const char *l0Name)用L0接口名生成kernel launch的统计id。
OpProfilingSwitch()OpProfilingSwitch构造函数。
OpLogInfo()OpLogInfo构造函数。
OpLogInfo(const OpLogInfo &rhs)OpLogInfo拷贝构造函数。
InitLevelZero()初始化L0统计信息。
InitLevelTwo()初始化L2统计信息。
PtrCastTo(From *ptr)将ptr转换为指定类型的指针。
PtrCastTo(const From *ptr)将ptr转换为指定类型的指针。
GenOpTypeId(const char *opName)以给定的算子名生成唯一的算子id。
IsDumpEnabled()判断是否使能dump。
InitThreadLocalContext()初始化线程局部上下文信息。
AddInputTensorToThreadLocalCtx(const aclTensor *const t)线程局部上下文信息中增加input tensor信息。
AddInputTensorToThreadLocalCtx(aclTensor *const t)线程局部上下文信息中增加input tensor信息。
AddInputTensorToThreadLocalCtx([[maybe_unused]] T &t)线程局部上下文信息中增加input tensor信息。
AddInputTensorsToThreadLocalCtx(const std::tuple<Args...> &t)线程局部上下文信息中增加多个input tensor信息。
AddInputTensorToThreadLocalCtx(const aclTensorList *const t)线程局部上下文信息中增加多个input tensor信息。
AddInputTensorToThreadLocalCtx(aclTensorList *const t)线程局部上下文信息中增加多个input tensor信息。
AddOutputTensorToThreadLocalCtx(const aclTensor *const t)线程局部上下文信息中增加output tensor信息。
AddOutputTensorToThreadLocalCtx(aclTensor *const t)线程局部上下文信息中增加output tensor信息。
AddOutputTensorToThreadLocalCtx([[maybe_unused]] T &t)线程局部上下文信息中增加output tensor信息。
AddOutputTensorsToThreadLocalCtx(const std::tuple<Args...> &t)线程局部上下文信息中增加多个output tensor信息。
AddOutputTensorToThreadLocalCtx(const aclTensorList *const t)线程局部上下文信息中增加多个output tensor信息。
AddOutputTensorToThreadLocalCtx(aclTensorList *const t)线程局部上下文信息中增加多个output tensor信息。
CreateDfxProfiler(const char *funcName)用给定funcName创建统计器。
CreateDfxProfiler(uint32_t id)用给定id创建统计器。
ToStr(const T &t, std::string &res, std::vector<std::string> &v, size_t &index)将给定的参数转换为字符串。
StringToVec(const char *paramNames, std::vector<std::string> &v)将给定字符串按逗号分隔。
StringToVecWithBrackets(const char *paramNames, std::vector<std::string> &v)提取形如DFX_IN(aa, bb, cc)或DFX_OUT(aa, bb)字符串的子项。
SplitStringAndPrint(std::string &res)将给定长字符串分为多个子字符串打印。
BuildParamString(const char *paramNames, const std::tuple<Args...> &t)用给定的算子入参生成参数字符串。
BuildParamStringWithBrackets(const char *paramNames, const std::tuple<Args...> &t)用给定的算子入参生成参数字符串。
GenOpTypeId(const char *opName, const OP_RESOURCES &opResources)用给定的算子名和二进制资源生成唯一的算子id。
GenOpTypeId(const char *opName, const OP_SOC_RESOURCES &opResources)用给定的算子名和SOC二进制资源生成唯一的算子id。
GenInternalOpTypeId()生成内部算子id。
aclnnStatus CheckPhase1Params(aclOpExecutor **executor, uint64_t *workspaceSize)校验一阶段中,公共入参是否为nullptr。

【免费下载链接】opbase本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。项目地址: https://gitcode.com/cann/opbase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 23:38:38

CANN/atvoss参数构建器属性方法

ArgumentsBuilder::attr 【免费下载链接】atvoss ATVOSS&#xff08;Ascend C Templates for Vector Operator Subroutines&#xff09;是一套基于Ascend C开发的Vector算子库&#xff0c;致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。 项…

作者头像 李华
网站建设 2026/5/9 23:37:35

react 单向数据流理解

在 React 里&#xff0c;“单向数据流&#xff08;One-Way Data Flow&#xff09;” 是最核心的思想之一。简单理解&#xff1a;数据只能从父组件流向子组件&#xff0c;不能反过来直接修改。一、先用一句话理解React 中&#xff1a;父组件 state -> 子组件 props -> 页面…

作者头像 李华
网站建设 2026/5/9 23:35:32

Hitboxer:如何用3种智能模式解决游戏按键冲突问题

Hitboxer&#xff1a;如何用3种智能模式解决游戏按键冲突问题 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否曾在激烈的游戏对抗中&#xff0c;明明按下了正确的按键组合&#xff0c;角色却像被冻住一样…

作者头像 李华
网站建设 2026/5/9 23:35:31

JupyterLab零基础实操指南:从安装到交互式图表全流程

1. 这不是“又一个Jupyter教程”&#xff0c;而是一份能让你今天下午就跑通第一个交互式分析流程的实操手册如果你刚在数据科学、机器学习、教学演示或科研复现场景里听到“JupyterLab”这个词&#xff0c;甚至被同事一句“你装好JupyterLab了吗&#xff1f;我们用它跑模型”问…

作者头像 李华
网站建设 2026/5/9 23:34:32

基于Docker Compose构建开源漏洞靶场:从原理到实战部署

1. 项目概述&#xff1a;一个为安全研究量身定制的开源靶场如果你是一名网络安全爱好者、渗透测试学习者&#xff0c;或者正在备考OSCP、eJPT这类实战认证&#xff0c;那么你一定对“靶场”这个概念不陌生。简单来说&#xff0c;靶场就是一个安全的、合法的环境&#xff0c;让你…

作者头像 李华