AscendCL初始化与去初始化
本节介绍AscendCL初始化与去初始化的相关接口、注意事项,并给出示例代码。
基本原理
您必须调用aclInit接口初始化AscendCL,配置文件内容为json格式,详细的配置内容请参见aclInit中的描述。
如果当前的默认配置已满足需求,无需修改,可向aclInit接口中传入NULL,或者可将配置文件配置为空json串(即配置文件中只有{})。向aclInit接口中传入空指针的示例如下:
1 | aclError ret = aclInit(NULL);
|
有初始化就有去初始化,在确定完成了AscendCL的所有调用之后,或者进程退出之前,需调用aclFinalize接口实现AscendCL去初始化。
示例代码
您可以从基于ResNet-50网络实现图片分类(同步推理)中获取完整样例代码。
调用接口后,需增加异常处理的分支,并记录报错日志、提示日志,此处不一一列举。以下是关键步骤的代码示例,不可以直接拷贝编译运行,仅供参考。
1 2 3 4 5 6 7 8 9 10 11 | // 初始化
// 此处的..表示相对路径,相对可执行文件所在的目录
// 例如,编译出来的可执行文件存放在out目录下,此处的..就表示out目录的上一级目录
const char *aclConfigPath = "../src/acl.json";
aclError ret = aclInit(aclConfigPath);
// ......
// 去初始化
ret = aclFinalize();
// ......
|