昇腾社区首页
中文
注册

aclnnInit

支持的产品型号

  • Atlas 推理系列产品。
  • Atlas 200I/500 A2 推理产品
  • Atlas 训练系列产品
  • Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

函数原型

aclnnStatus aclnnInit(const char *configPath)

功能说明

aclnn接口的初始化函数,必须在调用aclnn算子前调用,否则可能导致业务异常。

该接口需与aclnnFinalize接口配套使用,分别完成aclnn接口的初始化、去初始化。

aclnnInit

  • 参数说明:

    configPath(char*, 计算输入):aclnn的初始化配置文件所在路径(包含文件名),开发者可通过此配置开启aclnn接口的debug调试能力。默认为NULL。 配置文件要求为json格式,例如configPath的取值为“/home/acl.json”,acl.json的配置示例如下:

    {
      "op_debug_config":{
        "enable_debug_kernel":"on",
      }
    }

    配置项“enable_debug_kernel”取值如下:

    • on:开启aclnn接口的debug调试能力,即算子在执行过程中会检测Global Memory是否内存越界,内部流水线是否同步等操作。
    • off(默认值):不开启aclnn接口的debug调试能力。
  • 返回值:

    aclnnStatus:返回状态码,具体参见aclnn返回码

约束说明

  • 一个进程内只允许调用一次aclnnInit,不支持重复调用。
  • 调用本接口或aclInit接口,均可实现aclnn的初始化,两者区别在于,aclnnInit仅完成aclnn初始化,aclInit可完成AscendCL中各子功能(包含aclnn)的初始化,前者更轻量化些。如果两个接口都调用,也不返回失败。

调用示例

关键步骤代码如下,仅供参考,不支持直接拷贝运行。

// 资源初始化
auto ret = aclnnInit('/home/acl.json');
...
// 创建算子接口参数对象,如aclTensor、aclScalar等
ret = aclCreateXxx(...);
...
// 调用算子两段式接口
ret = aclnnXxxGetWorkspaceSize(...);
ret = aclnnXxx(...);
...
// 销毁算子接口参数对象,如aclTensor、aclScalar等
ret = aclDestroyXxx(...);
...
// 资源去初始化
ret = aclnnFinalize();