• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# context.h
2
3<!--Kit: MindSpore Lite Kit-->
4<!--Subsystem: AI-->
5<!--Owner: @zhuguodong8-->
6<!--Designer: @zhuguodong8; @jjfeing-->
7<!--Tester: @principal87-->
8<!--Adviser: @ge-yafang-->
9
10## 概述
11
12提供了Context相关的接口,可以配置运行时信息,该接口是非线程安全的。
13
14**引用文件:** <mindspore/context.h>
15
16**库:** libmindspore_lite_ndk.so
17
18**系统能力:** SystemCapability.Ai.MindSpore
19
20**起始版本:** 9
21
22**相关模块:** [MindSpore](capi-mindspore.md)
23
24## 汇总
25
26### 结构体
27
28| 名称                                                           | typedef关键字 | 描述                                |
29|--------------------------------------------------------------|------------|-----------------------------------|
30| [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) | void*      | MindSpore的上下文信息的指针,该指针会指向Context。 |
31| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)   | void*          | MindSpore的运行设备信息的指针。                                  |
32
33### 函数
34
35| 名称 | 描述 |
36| -- | -- |
37| [OH_AI_API OH_AI_ContextHandle OH_AI_ContextCreate()](#oh_ai_contextcreate) | 创建一个上下文的对象。注意:此接口需跟OH_AI_ContextDestroy配套使用。 |
38| [OH_AI_API void OH_AI_ContextDestroy(OH_AI_ContextHandle *context)](#oh_ai_contextdestroy) | 释放上下文对象。 |
39| [OH_AI_API void OH_AI_ContextSetThreadNum(OH_AI_ContextHandle context, int32_t thread_num)](#oh_ai_contextsetthreadnum) | 设置运行时的线程数量。 |
40| [OH_AI_API int32_t OH_AI_ContextGetThreadNum(const OH_AI_ContextHandle context)](#oh_ai_contextgetthreadnum) | 获取线程数量。 |
41| [OH_AI_API void OH_AI_ContextSetThreadAffinityMode(OH_AI_ContextHandle context, int mode)](#oh_ai_contextsetthreadaffinitymode) | 设置运行时线程绑定CPU核心的策略,按照CPU物理核频率分为大、中、小三种类型的核心,并且仅需绑大核或者绑中核,不需要绑小核。 |
42| [OH_AI_API int OH_AI_ContextGetThreadAffinityMode(const OH_AI_ContextHandle context)](#oh_ai_contextgetthreadaffinitymode) | 获取运行时线程绑定CPU核心的策略。 |
43| [OH_AI_API void OH_AI_ContextSetThreadAffinityCoreList(OH_AI_ContextHandle context, const int32_t *core_list,size_t core_num)](#oh_ai_contextsetthreadaffinitycorelist) | 设置运行时线程绑定CPU核心的列表。<br> 例如:当core_list=[2,6,8]时,则线程会在CPU的第2,6,8个核心上运行。<br> 如果对于同一个上下文对象,调用了[OH_AI_ContextSetThreadAffinityMode](capi-context-h.md#oh_ai_contextsetthreadaffinitymode)和[OH_AI_ContextSetThreadAffinityCoreList](capi-context-h.md#oh_ai_contextsetthreadaffinitycorelist)。<br> 这两个函数,则仅[OH_AI_ContextSetThreadAffinityCoreList](capi-context-h.md#oh_ai_contextsetthreadaffinitycorelist)的core_list参数生效,而[OH_AI_ContextSetThreadAffinityMode](capi-context-h.md#oh_ai_contextsetthreadaffinitymode)的mode参数不生效。 |
44| [OH_AI_API const int32_t *OH_AI_ContextGetThreadAffinityCoreList(const OH_AI_ContextHandle context, size_t *core_num)](#oh_ai_contextgetthreadaffinitycorelist) | 获取CPU绑核列表。 |
45| [OH_AI_API void OH_AI_ContextSetEnableParallel(OH_AI_ContextHandle context, bool is_parallel)](#oh_ai_contextsetenableparallel) | 设置运行时是否支持并行。此接口特性当前未开启,设置无效。 |
46| [OH_AI_API bool OH_AI_ContextGetEnableParallel(const OH_AI_ContextHandle context)](#oh_ai_contextgetenableparallel) | 获取是否支持算子间并行。 |
47| [OH_AI_API void OH_AI_ContextAddDeviceInfo(OH_AI_ContextHandle context, OH_AI_DeviceInfoHandle device_info)](#oh_ai_contextadddeviceinfo) | 将一个用户定义的运行设备信息附加到推理上下文中。 |
48| [OH_AI_API OH_AI_DeviceInfoHandle OH_AI_DeviceInfoCreate(OH_AI_DeviceType device_type)](#oh_ai_deviceinfocreate) | 创建一个设备信息对象。 |
49| [OH_AI_API void OH_AI_DeviceInfoDestroy(OH_AI_DeviceInfoHandle *device_info)](#oh_ai_deviceinfodestroy) | 释放设备信息实例。注意:设备信息实例被添加到context后,无须调用者手动释放。 |
50| [OH_AI_API void OH_AI_DeviceInfoSetProvider(OH_AI_DeviceInfoHandle device_info, const char *provider)](#oh_ai_deviceinfosetprovider) | 设置生产商的名称。 |
51| [OH_AI_API const char *OH_AI_DeviceInfoGetProvider(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetprovider) | 获取生产商的名称。 |
52| [OH_AI_API void OH_AI_DeviceInfoSetProviderDevice(OH_AI_DeviceInfoHandle device_info, const char *device)](#oh_ai_deviceinfosetproviderdevice) | 设置生产商设备的名称。 |
53| [OH_AI_API const char *OH_AI_DeviceInfoGetProviderDevice(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetproviderdevice) | 获取生产商设备的名称。 |
54| [OH_AI_API OH_AI_DeviceType OH_AI_DeviceInfoGetDeviceType(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetdevicetype) | 获取设备的类型。 |
55| [OH_AI_API void OH_AI_DeviceInfoSetEnableFP16(OH_AI_DeviceInfoHandle device_info, bool is_fp16)](#oh_ai_deviceinfosetenablefp16) | 设置是否开启float16推理模式,仅CPU/GPU设备可用。 |
56| [OH_AI_API bool OH_AI_DeviceInfoGetEnableFP16(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetenablefp16) | 获取是否开启float16推理模式,仅CPU/GPU设备可用。 |
57| [OH_AI_API void OH_AI_DeviceInfoSetFrequency(OH_AI_DeviceInfoHandle device_info, int frequency)](#oh_ai_deviceinfosetfrequency) | 设置NPU的频率,仅NPU设备可用。 |
58| [OH_AI_API int OH_AI_DeviceInfoGetFrequency(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetfrequency) | 获取NPU的频率类型,仅NPU设备可用。 |
59| [OH_AI_API NNRTDeviceDesc *OH_AI_GetAllNNRTDeviceDescs(size_t *num)](#oh_ai_getallnnrtdevicedescs) | 获取系统中所有NNRt硬件设备的描述信息。 |
60| [OH_AI_API NNRTDeviceDesc *OH_AI_GetElementOfNNRTDeviceDescs(NNRTDeviceDesc *descs, size_t index)](#oh_ai_getelementofnnrtdevicedescs) | 获取NNRt设备描述信息数组中的元素指针。 |
61| [OH_AI_API void OH_AI_DestroyAllNNRTDeviceDescs(NNRTDeviceDesc **desc)](#oh_ai_destroyallnnrtdevicedescs) | 销毁从[OH_AI_GetAllNNRTDeviceDescs](capi-context-h.md#oh_ai_getallnnrtdevicedescs)获取的NNRt描写信息实例数组。 |
62| [OH_AI_API size_t OH_AI_GetDeviceIdFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)](#oh_ai_getdeviceidfromnnrtdevicedesc) | 从特定的NNRt设备描述信息实例获取NNRt设备ID。注意,此ID只对NNRt有效。 |
63| [OH_AI_API const char *OH_AI_GetNameFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)](#oh_ai_getnamefromnnrtdevicedesc) | 从特定的NNRt设备描述信息实例获取NNRt设备名称。 |
64| [OH_AI_API OH_AI_NNRTDeviceType OH_AI_GetTypeFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)](#oh_ai_gettypefromnnrtdevicedesc) | 从特定的NNRt设备描述信息实例获取NNRt设备类型。 |
65| [OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByName(const char *name)](#oh_ai_creatennrtdeviceinfobyname) | 查找指定名称的NNRt设备,根据找到的第一个设备信息,创建NNRt设备信息。 |
66| [OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByType(OH_AI_NNRTDeviceType type)](#oh_ai_creatennrtdeviceinfobytype) | 查找指定类型的NNRt设备,根据找到的第一个设备信息,创建NNRt设备信息。 |
67| [OH_AI_API void OH_AI_DeviceInfoSetDeviceId(OH_AI_DeviceInfoHandle device_info, size_t device_id)](#oh_ai_deviceinfosetdeviceid) | 设置NNRt设备ID,仅NNRt设备可用。 |
68| [OH_AI_API size_t OH_AI_DeviceInfoGetDeviceId(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetdeviceid) | 获取NNRt设备ID,仅NNRt设备可用。 |
69| [OH_AI_API void OH_AI_DeviceInfoSetPerformanceMode(OH_AI_DeviceInfoHandle device_info, OH_AI_PerformanceMode mode)](#oh_ai_deviceinfosetperformancemode) | 设置NNRt性能模式,仅NNRt设备可用。 |
70| [OH_AI_API OH_AI_PerformanceMode OH_AI_DeviceInfoGetPerformanceMode(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetperformancemode) | 获取NNRt性能模式,仅NNRt设备可用。 |
71| [OH_AI_API void OH_AI_DeviceInfoSetPriority(OH_AI_DeviceInfoHandle device_info, OH_AI_Priority priority)](#oh_ai_deviceinfosetpriority) | 设置NNRt任务优先级,仅NNRt设备可用。 |
72| [OH_AI_API OH_AI_Priority OH_AI_DeviceInfoGetPriority(const OH_AI_DeviceInfoHandle device_info)](#oh_ai_deviceinfogetpriority) | 获取NNRt任务优先级,仅NNRt设备可用。 |
73| [OH_AI_API OH_AI_Status OH_AI_DeviceInfoAddExtension(OH_AI_DeviceInfoHandle device_info, const char *name,const char *value, size_t value_size)](#oh_ai_deviceinfoaddextension) | 向设备信息中添加键/值对形式的扩展配置。只对NNRt设备信息有效。<br> 注意:当前仅支持{"CachePath": "YourCachePath"},{"CacheVersion": "YouCacheVersion"},<br> {"QuantBuffer": "YourQuantBuffer"},{"ModelName": "YourModelName"},<br> {"isProfiling": "YourisProfiling"},{"opLayout": "YouropLayout"},<br> {"InputDims": "YourInputDims"},{"DynamicDims": "YourDynamicDims"},<br> {"QuantConfigData": "YourQuantConfigData"},{"BandMode": "YourBandMode"},<br> {"NPU_FM_SHARED": "YourNPU_FM_SHARED"}11种键值对配置,用户根据使用情况替换具体的值。 |
74
75## 函数说明
76
77### OH_AI_ContextCreate()
78
79```
80OH_AI_API OH_AI_ContextHandle OH_AI_ContextCreate()
81```
82
83**描述**
84
85创建一个上下文的对象。注意:此接口需跟OH_AI_ContextDestroy配套使用。
86
87**起始版本:** 9
88
89**返回:**
90
91| 类型 | 说明 |
92| -- | -- |
93| OH_AI_API [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) | 指向上下文信息的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
94
95### OH_AI_ContextDestroy()
96
97```
98OH_AI_API void OH_AI_ContextDestroy(OH_AI_ContextHandle *context)
99```
100
101**描述**
102
103释放上下文对象。
104
105**起始版本:** 9
106
107
108**参数:**
109
110| 参数项 | 描述 |
111| -- | -- |
112| [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) *context | 指向[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)的二级指针,上下文销毁后会对context置为空指针。 |
113
114### OH_AI_ContextSetThreadNum()
115
116```
117OH_AI_API void OH_AI_ContextSetThreadNum(OH_AI_ContextHandle context, int32_t thread_num)
118```
119
120**描述**
121
122设置运行时的线程数量。
123
124**起始版本:** 9
125
126
127**参数:**
128
129| 参数项 | 描述 |
130| -- | -- |
131| [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
132| int32_t thread_num | 运行时的线程数量。长度跟随系统限制。 |
133
134### OH_AI_ContextGetThreadNum()
135
136```
137OH_AI_API int32_t OH_AI_ContextGetThreadNum(const OH_AI_ContextHandle context)
138```
139
140**描述**
141
142获取线程数量。
143
144**起始版本:** 9
145
146
147**参数:**
148
149| 参数项 | 描述 |
150| -- | -- |
151| const [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
152
153**返回:**
154
155| 类型 | 说明 |
156| -- | -- |
157| OH_AI_API int32_t | 当前的线程数量。 |
158
159### OH_AI_ContextSetThreadAffinityMode()
160
161```
162OH_AI_API void OH_AI_ContextSetThreadAffinityMode(OH_AI_ContextHandle context, int mode)
163```
164
165**描述**
166
167设置运行时线程绑定CPU核心的策略,按照CPU物理核频率分为大、中、小三种类型的核心,并且仅需绑大核或者绑中核,不需要绑小核。
168
169**起始版本:** 9
170
171
172**参数:**
173
174| 参数项 | 描述 |
175| -- | -- |
176| [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
177| int mode | 绑核策略。一共有三种策略,0为不绑核,1为大核优先,2为中核优先。 |
178
179### OH_AI_ContextGetThreadAffinityMode()
180
181```
182OH_AI_API int OH_AI_ContextGetThreadAffinityMode(const OH_AI_ContextHandle context)
183```
184
185**描述**
186
187获取运行时线程绑定CPU核心的策略。
188
189**起始版本:** 9
190
191
192**参数:**
193
194| 参数项 | 描述 |
195| -- | -- |
196| const [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
197
198**返回:**
199
200| 类型 | 说明 |
201| -- | -- |
202| OH_AI_API int | 绑核策略。一共有三种策略,0为不绑核,1为大核优先,2为中核优先。 |
203
204### OH_AI_ContextSetThreadAffinityCoreList()
205
206```
207OH_AI_API void OH_AI_ContextSetThreadAffinityCoreList(OH_AI_ContextHandle context, const int32_t *core_list,size_t core_num)
208```
209
210**描述**
211
212设置运行时线程绑定CPU核心的列表。<br> 例如:当core_list=[2,6,8]时,则线程会在CPU的第2,6,8个核心上运行。<br> 如果对于同一个上下文对象,调用了[OH_AI_ContextSetThreadAffinityMode](capi-context-h.md#oh_ai_contextsetthreadaffinitymode)和[OH_AI_ContextSetThreadAffinityCoreList](capi-context-h.md#oh_ai_contextsetthreadaffinitycorelist)。<br> 这两个函数,则仅[OH_AI_ContextSetThreadAffinityCoreList](capi-context-h.md#oh_ai_contextsetthreadaffinitycorelist)的core_list参数生效,而[OH_AI_ContextSetThreadAffinityMode](capi-context-h.md#oh_ai_contextsetthreadaffinitymode)的mode参数不生效。
213
214**起始版本:** 9
215
216
217**参数:**
218
219| 参数项 | 描述 |
220| -- | -- |
221| [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
222| const int32_t *core_list | CPU绑核的列表。 |
223| size_t core_num | 核的数量,它就代表core_list的长度。 |
224
225### OH_AI_ContextGetThreadAffinityCoreList()
226
227```
228OH_AI_API const int32_t *OH_AI_ContextGetThreadAffinityCoreList(const OH_AI_ContextHandle context, size_t *core_num)
229```
230
231**描述**
232
233获取CPU绑核列表。
234
235**起始版本:** 9
236
237
238**参数:**
239
240| 参数项 | 描述 |
241| -- | -- |
242| const [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
243| size_t *core_num | 该参数是输出参数,表示核的数量。 |
244
245**返回:**
246
247| 类型 | 说明 |
248| -- | -- |
249| OH_AI_API const int32_t * | CPU绑核列表。此列表对象由[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)管理,调用者无须手动释放。 |
250
251### OH_AI_ContextSetEnableParallel()
252
253```
254OH_AI_API void OH_AI_ContextSetEnableParallel(OH_AI_ContextHandle context, bool is_parallel)
255```
256
257**描述**
258
259设置运行时是否支持并行。此接口特性当前未开启,设置无效。
260
261**起始版本:** 9
262
263
264**参数:**
265
266| 参数项 | 描述 |
267| -- | -- |
268| [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
269| bool is_parallel | 是否支持并行。true为支持并行,false为不支持并行。 |
270
271### OH_AI_ContextGetEnableParallel()
272
273```
274OH_AI_API bool OH_AI_ContextGetEnableParallel(const OH_AI_ContextHandle context)
275```
276
277**描述**
278
279获取是否支持算子间并行。
280
281**起始版本:** 9
282
283
284**参数:**
285
286| 参数项 | 描述 |
287| -- | -- |
288| const [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
289
290**返回:**
291
292| 类型 | 说明 |
293| -- | -- |
294| OH_AI_API bool | 是否支持并行。true为支持并行,false为不支持并行。 |
295
296### OH_AI_ContextAddDeviceInfo()
297
298```
299OH_AI_API void OH_AI_ContextAddDeviceInfo(OH_AI_ContextHandle context, OH_AI_DeviceInfoHandle device_info)
300```
301
302**描述**
303
304将一个用户定义的运行设备信息附加到推理上下文中。
305
306**起始版本:** 9
307
308
309**参数:**
310
311| 参数项 | 描述 |
312| -- | -- |
313| [OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md) context | 指向上下文信息实例的[OH_AI_ContextHandle](capi-mindspore-oh-ai-contexthandle.md)。 |
314| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
315
316### OH_AI_DeviceInfoCreate()
317
318```
319OH_AI_API OH_AI_DeviceInfoHandle OH_AI_DeviceInfoCreate(OH_AI_DeviceType device_type)
320```
321
322**描述**
323
324创建一个设备信息对象。
325
326**起始版本:** 9
327
328
329**参数:**
330
331| 参数项 | 描述 |
332| -- | -- |
333| [OH_AI_DeviceType](capi-types-h.md#oh_ai_devicetype) device_type | 设备类型,具体见[OH_AI_DeviceType](capi-types-h.md#oh_ai_devicetype)。 |
334
335**返回:**
336
337| 类型 | 说明 |
338| -- | -- |
339| OH_AI_API [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
340
341### OH_AI_DeviceInfoDestroy()
342
343```
344OH_AI_API void OH_AI_DeviceInfoDestroy(OH_AI_DeviceInfoHandle *device_info)
345```
346
347**描述**
348
349释放设备信息实例。注意:设备信息实例被添加到context后,无须调用者手动释放。
350
351**起始版本:** 9
352
353
354**参数:**
355
356| 参数项 | 描述 |
357| -- | -- |
358| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) *device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
359
360### OH_AI_DeviceInfoSetProvider()
361
362```
363OH_AI_API void OH_AI_DeviceInfoSetProvider(OH_AI_DeviceInfoHandle device_info, const char *provider)
364```
365
366**描述**
367
368设置生产商的名称。
369
370**起始版本:** 9
371
372
373**参数:**
374
375| 参数项 | 描述 |
376| -- | -- |
377| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
378| const char *provider | 生产商的名称。字符串长度跟随系统限制。 |
379
380### OH_AI_DeviceInfoGetProvider()
381
382```
383OH_AI_API const char *OH_AI_DeviceInfoGetProvider(const OH_AI_DeviceInfoHandle device_info)
384```
385
386**描述**
387
388获取生产商的名称。
389
390**起始版本:** 9
391
392
393**参数:**
394
395| 参数项 | 描述 |
396| -- | -- |
397| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
398
399**返回:**
400
401| 类型 | 说明 |
402| -- | -- |
403| OH_AI_API const char * | 生产商的名称。 |
404
405### OH_AI_DeviceInfoSetProviderDevice()
406
407```
408OH_AI_API void OH_AI_DeviceInfoSetProviderDevice(OH_AI_DeviceInfoHandle device_info, const char *device)
409```
410
411**描述**
412
413设置生产商设备的名称。
414
415**起始版本:** 9
416
417
418**参数:**
419
420| 参数项 | 描述 |
421| -- | -- |
422| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
423| const char *device | 生产商设备名称。例如: CPU。字符串长度跟随系统限制。 |
424
425### OH_AI_DeviceInfoGetProviderDevice()
426
427```
428OH_AI_API const char *OH_AI_DeviceInfoGetProviderDevice(const OH_AI_DeviceInfoHandle device_info)
429```
430
431**描述**
432
433获取生产商设备的名称。
434
435**起始版本:** 9
436
437
438**参数:**
439
440| 参数项 | 描述 |
441| -- | -- |
442| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
443
444**返回:**
445
446| 类型 | 说明 |
447| -- | -- |
448| OH_AI_API const char * | 生产商设备的名称。 |
449
450### OH_AI_DeviceInfoGetDeviceType()
451
452```
453OH_AI_API OH_AI_DeviceType OH_AI_DeviceInfoGetDeviceType(const OH_AI_DeviceInfoHandle device_info)
454```
455
456**描述**
457
458获取设备的类型。
459
460**起始版本:** 9
461
462
463**参数:**
464
465| 参数项 | 描述 |
466| -- | -- |
467| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
468
469**返回:**
470
471| 类型                                                             | 说明 |
472|----------------------------------------------------------------| -- |
473| OH_AI_API [OH_AI_DeviceType](capi-types-h.md#oh_ai_devicetype) | 生产商设备类型。 |
474
475### OH_AI_DeviceInfoSetEnableFP16()
476
477```
478OH_AI_API void OH_AI_DeviceInfoSetEnableFP16(OH_AI_DeviceInfoHandle device_info, bool is_fp16)
479```
480
481**描述**
482
483设置是否开启float16推理模式,仅CPU/GPU设备可用。
484
485**起始版本:** 9
486
487
488**参数:**
489
490| 参数项 | 描述 |
491| -- | -- |
492| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
493| bool is_fp16 | 是否开启float16推理模式。true为开启float16推理模式,false为不开启float16推理模式。 |
494
495### OH_AI_DeviceInfoGetEnableFP16()
496
497```
498OH_AI_API bool OH_AI_DeviceInfoGetEnableFP16(const OH_AI_DeviceInfoHandle device_info)
499```
500
501**描述**
502
503获取是否开启float16推理模式,仅CPU/GPU设备可用。
504
505**起始版本:** 9
506
507
508**参数:**
509
510| 参数项 | 描述 |
511| -- | -- |
512| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
513
514**返回:**
515
516| 类型 | 说明 |
517| -- | -- |
518| OH_AI_API bool | 是否开启float16推理模式。true为开启float16推理模式,false为不开启float16推理模式。 |
519
520### OH_AI_DeviceInfoSetFrequency()
521
522```
523OH_AI_API void OH_AI_DeviceInfoSetFrequency(OH_AI_DeviceInfoHandle device_info, int frequency)
524```
525
526**描述**
527
528设置NPU的频率,仅NPU设备可用。
529
530**起始版本:** 9
531
532
533**参数:**
534
535| 参数项 | 描述 |
536| -- | -- |
537| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
538| int frequency | 频率类型,取值范围为0-4,默认是3。0表示不设置,由系统调节;1表示低功耗;2表示平衡;3表示高性能;4表示超高性能。 |
539
540### OH_AI_DeviceInfoGetFrequency()
541
542```
543OH_AI_API int OH_AI_DeviceInfoGetFrequency(const OH_AI_DeviceInfoHandle device_info)
544```
545
546**描述**
547
548获取NPU的频率类型,仅NPU设备可用。
549
550**起始版本:** 9
551
552
553**参数:**
554
555| 参数项 | 描述 |
556| -- | -- |
557| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
558
559**返回:**
560
561| 类型 | 说明 |
562| -- | -- |
563| OH_AI_API int | NPU的频率类型。取值范围为0-4,0表示不设置,由系统调节;1表示低功耗;2表示平衡;3表示高性能;4表示超高性能。 |
564
565### OH_AI_GetAllNNRTDeviceDescs()
566
567```
568OH_AI_API NNRTDeviceDesc *OH_AI_GetAllNNRTDeviceDescs(size_t *num)
569```
570
571**描述**
572
573获取系统中所有NNRt硬件设备的描述信息。
574
575**起始版本:** 10
576
577
578**参数:**
579
580| 参数项 | 描述 |
581| -- | -- |
582| size_t *num | 输出参数,返回设备数量。 |
583
584**返回:**
585
586| 类型                             | 说明 |
587|--------------------------------| -- |
588| OH_AI_API [NNRTDeviceDesc](capi-mindspore-nnrtdevicedesc.md) * | 指向NNRt设备描述信息实例数组的指针。当获取失败时,返回NULL。 |
589
590### OH_AI_GetElementOfNNRTDeviceDescs()
591
592```
593OH_AI_API NNRTDeviceDesc *OH_AI_GetElementOfNNRTDeviceDescs(NNRTDeviceDesc *descs, size_t index)
594```
595
596**描述**
597
598获取NNRt设备描述信息数组中的元素指针。
599
600**起始版本:** 10
601
602
603**参数:**
604
605| 参数项 | 描述 |
606| -- | -- |
607| [NNRTDeviceDesc](capi-mindspore-nnrtdevicedesc.md) *descs | NNRt设备描述信息数组。 |
608| size_t index | 数组元素索引。 |
609
610**返回:**
611
612| 类型 | 说明 |
613| -- | -- |
614| OH_AI_API [NNRTDeviceDesc](capi-mindspore-nnrtdevicedesc.md) * | NNRt设备描述信息类型指针。 |
615
616### OH_AI_DestroyAllNNRTDeviceDescs()
617
618```
619OH_AI_API void OH_AI_DestroyAllNNRTDeviceDescs(NNRTDeviceDesc **desc)
620```
621
622**描述**
623
624销毁从[OH_AI_GetAllNNRTDeviceDescs](capi-context-h.md#oh_ai_getallnnrtdevicedescs)获取的NNRt描写信息实例数组。
625
626**起始版本:** 10
627
628
629**参数:**
630
631| 参数项 | 描述 |
632| -- | -- |
633| [NNRTDeviceDesc](capi-mindspore-nnrtdevicedesc.md) **desc | 指向NNRt设备描述信息实例数组的二重指针。销毁结束,desc指向内容会被置为NULL。 |
634
635### OH_AI_GetDeviceIdFromNNRTDeviceDesc()
636
637```
638OH_AI_API size_t OH_AI_GetDeviceIdFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)
639```
640
641**描述**
642
643从特定的NNRt设备描述信息实例获取NNRt设备ID。注意,此ID只对NNRt有效。
644
645**起始版本:** 10
646
647
648**参数:**
649
650| 参数项 | 描述 |
651| -- | -- |
652| const [NNRTDeviceDesc](capi-mindspore-nnrtdevicedesc.md) *desc | 指向NNRt设备描述信息实例的指针。 |
653
654**返回:**
655
656| 类型 | 说明 |
657| -- | -- |
658| OH_AI_API size_t | NNRt设备ID。 |
659
660### OH_AI_GetNameFromNNRTDeviceDesc()
661
662```
663OH_AI_API const char *OH_AI_GetNameFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)
664```
665
666**描述**
667
668从特定的NNRt设备描述信息实例获取NNRt设备名称。
669
670**起始版本:** 10
671
672
673**参数:**
674
675| 参数项 | 描述 |
676| -- | -- |
677| const [NNRTDeviceDesc](capi-mindspore-nnrtdevicedesc.md) *desc | 指向NNRt设备描述信息实例的指针。 |
678
679**返回:**
680
681| 类型 | 说明 |
682| -- | -- |
683| OH_AI_API const char * | NNRt设备名称,指向一个常量字符串的指针,该常量字符串由desc持有,调用者无需单独释放此指针。 |
684
685### OH_AI_GetTypeFromNNRTDeviceDesc()
686
687```
688OH_AI_API OH_AI_NNRTDeviceType OH_AI_GetTypeFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)
689```
690
691**描述**
692
693从特定的NNRt设备描述信息实例获取NNRt设备类型。
694
695**起始版本:** 10
696
697
698**参数:**
699
700| 参数项 | 描述 |
701| -- | -- |
702| const [NNRTDeviceDesc](capi-mindspore-nnrtdevicedesc.md) *desc | 指向NNRt设备描述信息实例的指针。 |
703
704**返回:**
705
706| 类型                                                                     | 说明 |
707|------------------------------------------------------------------------| -- |
708| OH_AI_API [OH_AI_NNRTDeviceType](capi-types-h.md#oh_ai_nnrtdevicetype) | [OH_AI_NNRTDeviceType](capi-types-h.md#oh_ai_nnrtdevicetype) NNRt设备类型。 |
709
710### OH_AI_CreateNNRTDeviceInfoByName()
711
712```
713OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByName(const char *name)
714```
715
716**描述**
717
718查找指定名称的NNRt设备,根据找到的第一个设备信息,创建NNRt设备信息。
719
720**起始版本:** 10
721
722
723**参数:**
724
725| 参数项 | 描述 |
726| -- | -- |
727| const char *name | 目标NNRt设备名。字符串长度跟随系统限制。 |
728
729**返回:**
730
731| 类型 | 说明 |
732| -- | -- |
733| OH_AI_API [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
734
735### OH_AI_CreateNNRTDeviceInfoByType()
736
737```
738OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByType(OH_AI_NNRTDeviceType type)
739```
740
741**描述**
742
743查找指定类型的NNRt设备,根据找到的第一个设备信息,创建NNRt设备信息。
744
745**起始版本:** 10
746
747
748**参数:**
749
750| 参数项 | 描述 |
751| -- | -- |
752| [OH_AI_NNRTDeviceType](capi-types-h.md#oh_ai_nnrtdevicetype) type | [OH_AI_NNRTDeviceType](capi-types-h.md#oh_ai_nnrtdevicetype) 目标NNRt设备类型。 |
753
754**返回:**
755
756| 类型 | 说明 |
757| -- | -- |
758| OH_AI_API [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
759
760### OH_AI_DeviceInfoSetDeviceId()
761
762```
763OH_AI_API void OH_AI_DeviceInfoSetDeviceId(OH_AI_DeviceInfoHandle device_info, size_t device_id)
764```
765
766**描述**
767
768设置NNRt设备ID,仅NNRt设备可用。
769
770**起始版本:** 10
771
772
773**参数:**
774
775| 参数项 | 描述 |
776| -- | -- |
777| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
778| size_t device_id | NNRt设备ID。 |
779
780### OH_AI_DeviceInfoGetDeviceId()
781
782```
783OH_AI_API size_t OH_AI_DeviceInfoGetDeviceId(const OH_AI_DeviceInfoHandle device_info)
784```
785
786**描述**
787
788获取NNRt设备ID,仅NNRt设备可用。
789
790**起始版本:** 10
791
792
793**参数:**
794
795| 参数项 | 描述 |
796| -- | -- |
797| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
798
799**返回:**
800
801| 类型 | 说明 |
802| -- | -- |
803| OH_AI_API size_t | NNRt设备ID。 |
804
805### OH_AI_DeviceInfoSetPerformanceMode()
806
807```
808OH_AI_API void OH_AI_DeviceInfoSetPerformanceMode(OH_AI_DeviceInfoHandle device_info, OH_AI_PerformanceMode mode)
809```
810
811**描述**
812
813设置NNRt性能模式,仅NNRt设备可用。
814
815**起始版本:** 10
816
817
818**参数:**
819
820| 参数项 | 描述 |
821| -- | -- |
822| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
823| [OH_AI_PerformanceMode](capi-types-h.md#oh_ai_performancemode) mode | [OH_AI_PerformanceMode](capi-types-h.md#oh_ai_performancemode) NNRt性能模式。 |
824
825### OH_AI_DeviceInfoGetPerformanceMode()
826
827```
828OH_AI_API OH_AI_PerformanceMode OH_AI_DeviceInfoGetPerformanceMode(const OH_AI_DeviceInfoHandle device_info)
829```
830
831**描述**
832
833获取NNRt性能模式,仅NNRt设备可用。
834
835**起始版本:** 10
836
837
838**参数:**
839
840| 参数项 | 描述 |
841| -- | -- |
842| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
843
844**返回:**
845
846| 类型                                                                       | 说明 |
847|--------------------------------------------------------------------------| -- |
848| OH_AI_API [OH_AI_PerformanceMode](capi-types-h.md#oh_ai_performancemode) | [OH_AI_PerformanceMode](capi-types-h.md#oh_ai_performancemode) NNRt性能模式。 |
849
850### OH_AI_DeviceInfoSetPriority()
851
852```
853OH_AI_API void OH_AI_DeviceInfoSetPriority(OH_AI_DeviceInfoHandle device_info, OH_AI_Priority priority)
854```
855
856**描述**
857
858设置NNRt任务优先级,仅NNRt设备可用。
859
860**起始版本:** 10
861
862
863**参数:**
864
865| 参数项 | 描述 |
866| -- | -- |
867| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
868| [OH_AI_Priority](capi-types-h.md#oh_ai_priority) priority | [OH_AI_Priority](capi-types-h.md#oh_ai_priority) NNRt任务优先级。 |
869
870### OH_AI_DeviceInfoGetPriority()
871
872```
873OH_AI_API OH_AI_Priority OH_AI_DeviceInfoGetPriority(const OH_AI_DeviceInfoHandle device_info)
874```
875
876**描述**
877
878获取NNRt任务优先级,仅NNRt设备可用。
879
880**起始版本:** 10
881
882
883**参数:**
884
885| 参数项 | 描述 |
886| -- | -- |
887| const [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
888
889**返回:**
890
891| 类型 | 说明 |
892| -- | -- |
893| OH_AI_API [OH_AI_Priority](capi-types-h.md#oh_ai_priority) | [OH_AI_Priority](capi-types-h.md#oh_ai_priority) NNRt任务优先级。 |
894
895### OH_AI_DeviceInfoAddExtension()
896
897```
898OH_AI_API OH_AI_Status OH_AI_DeviceInfoAddExtension(OH_AI_DeviceInfoHandle device_info, const char *name,const char *value, size_t value_size)
899```
900
901**描述**
902
903向设备信息中添加键/值对形式的扩展配置。只对NNRt设备信息有效。<br> 注意:当前仅支持{"CachePath": "YourCachePath"},{"CacheVersion": "YouCacheVersion"},<br> {"QuantBuffer": "YourQuantBuffer"},{"ModelName": "YourModelName"},<br> {"isProfiling": "YourisProfiling"},{"opLayout": "YouropLayout"},<br> {"InputDims": "YourInputDims"},{"DynamicDims": "YourDynamicDims"},<br> {"QuantConfigData": "YourQuantConfigData"},{"BandMode": "YourBandMode"},<br> {"NPU_FM_SHARED": "YourNPU_FM_SHARED"}11种键值对配置,用户根据使用情况替换具体的值。
904
905**起始版本:** 10
906
907
908**参数:**
909
910| 参数项 | 描述 |
911| -- | -- |
912| [OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md) device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](capi-mindspore-oh-ai-DeviceInfoHandle.md)。 |
913| const char *name | 单个扩展项的键,格式为C字符串。字符串长度限制为128。 |
914| const char *value | 单个扩展项的值内容首地址。字符串长度跟随系统限制。 |
915| size_t value_size | 单个扩展项的值内容长度。 |
916
917**返回:**
918
919| 类型                                                      | 说明 |
920|---------------------------------------------------------| -- |
921| OH_AI_API [OH_AI_Status](capi-status-h.md#oh_ai_status) | [OH_AI_Status](capi-status-h.md#oh_ai_status) 执行状态码,若成功返回OH_AI_STATUS_SUCCESS,失败则返回具体错误码。 |
922
923
924