Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
085dc6c4
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
085dc6c4
编写于
5月 25, 2023
作者:
O
openharmony_ci
提交者:
Gitee
5月 25, 2023
浏览文件
操作
浏览文件
下载
差异文件
!18640 【轻量级 PR】:update zh-cn/application-dev/napi/mindspore-lite-guidelines.md.
Merge pull request !18640 from zhuguodong/N/A
上级
b3e84a18
755adc43
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
42 addition
and
0 deletion
+42
-0
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
+42
-0
未找到文件。
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
浏览文件 @
085dc6c4
...
...
@@ -89,6 +89,10 @@ int GenerateInputDataWithRandom(OH_AI_TensorHandleArray inputs) {
2.
创建上下文,设置线程数、设备类型等参数。
以下介绍两种典型情形。
情形1:仅创建CPU推理上下文。
```
c
// 创建并配置上下文,设置运行时的线程数量为2,绑核策略为大核优先
OH_AI_ContextHandle
context
=
OH_AI_ContextCreate
();
...
...
@@ -110,6 +114,44 @@ int GenerateInputDataWithRandom(OH_AI_TensorHandleArray inputs) {
OH_AI_ContextAddDeviceInfo
(
context
,
cpu_device_info
);
```
情形2:创建NNRT(Neural Network Runtime)和CPU异构推理上下文。
NNRT是OpenHarMony系统中面向AI领域的跨芯片推理计算运行时,一般来说,NNRT对接的加速硬件如NPU,推理能力较强,但支持的算子规格少;而通用CPU推理能力较弱,但支持算子规格更全面。MindSpore Lite支持配置NNRT硬件和CPU异构推理:优先将模型算子调度到NNRT推理,若某些算子NNRT不支持,将其调度到CPU进行推理。通过下面的操作即可配置NNRT/CPU异构推理。
> **说明:**
>
> NNRT/CPU异构推理,需要有实际的NNRT硬件接入,NNRT相关资料请参考:[OpenHarmony/ai_neural_network_runtime](https://gitee.com/openharmony/ai_neural_network_runtime)。
```c
// 创建并配置上下文,设置运行时的线程数量为2,绑核策略为大核优先
OH_AI_ContextHandle context = OH_AI_ContextCreate();
if (context == NULL) {
printf("OH_AI_ContextCreate failed.\n");
return OH_AI_STATUS_LITE_ERROR;
}
// 优先使用NNRT推理。
// 这里利用查找到的第一个ACCELERATORS类别的NNRT硬件,来创建nnrt设备信息,并设置硬件使用高性能模式推理。还可以通过如:OH_AI_GetAllNNRTDeviceDescs()接口获取当前环境中所有NNRT硬件的描述信息,按设备名、类型等信息查找,找到某一具体设备作为NNRT推理硬件。具体可参考:[Native接口参考:MindSpore](https://docs.openharmony.cn/pages/v3.2/zh-cn/application-dev/reference/native-apis/_mind_spore.md/)
OH_AI_DeviceInfoHandle nnrt_device_info = OH_AI_CreateNNRTDeviceInfoByType(OH_AI_NNRTDEVICE_ACCELERATORS);
if (nnrt_device_info == NULL) {
printf("OH_AI_DeviceInfoCreate failed.\n");
OH_AI_ContextDestroy(&context);
return OH_AI_STATUS_LITE_ERROR;
}
OH_AI_DeviceInfoSetPerformaceMode(nnrt_device_info, OH_AI_PERFORMANCE_HIGH);
OH_AI_ContextAddDeviceInfo(context, nnrt_device_info);
// 其次设置CPU推理。
OH_AI_DeviceInfoHandle cpu_device_info = OH_AI_DeviceInfoCreate(OH_AI_DEVICETYPE_CPU);
if (cpu_device_info == NULL) {
printf("OH_AI_DeviceInfoCreate failed.\n");
OH_AI_ContextDestroy(&context);
return OH_AI_STATUS_LITE_ERROR;
}
OH_AI_ContextAddDeviceInfo(context, cpu_device_info);
```
3.
创建、加载与编译模型。
调用OH_AI_ModelBuildFromFile加载并编译模型。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录