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();