context.h
概述
提供了Context相关的接口,可以配置运行时信息,该接口是非线程安全的。
引用文件: <mindspore/context.h>
库: libmindspore_lite_ndk.so
系统能力: SystemCapability.Ai.MindSpore
起始版本: 9
相关模块: MindSpore
汇总
结构体
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_AI_ContextHandle | void* | MindSpore Lite上下文信息的指针,该指针会指向Context。 |
| OH_AI_DeviceInfoHandle | void* | MindSpore Lite运行设备信息的指针。 |
函数
函数说明
OH_AI_ContextCreate()
OH_AI_API OH_AI_ContextHandle OH_AI_ContextCreate()
描述
创建一个上下文的对象。注意:此接口需跟OH_AI_ContextDestroy配套使用。
起始版本: 9
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_ContextHandle | 指向上下文信息的OH_AI_ContextHandle。 |
OH_AI_ContextDestroy()
OH_AI_API void OH_AI_ContextDestroy(OH_AI_ContextHandle *context)
描述
释放上下文对象。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_ContextHandle *context | 指向OH_AI_ContextHandle的二级指针,上下文销毁后会对context置为空指针。 |
OH_AI_ContextSetThreadNum()
OH_AI_API void OH_AI_ContextSetThreadNum(OH_AI_ContextHandle context, int32_t thread_num)
描述
设置运行时的线程数量。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
| int32_t thread_num | 运行时的线程数量。长度跟随系统限制。 |
OH_AI_ContextGetThreadNum()
OH_AI_API int32_t OH_AI_ContextGetThreadNum(const OH_AI_ContextHandle context)
描述
获取线程数量。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API int32_t | 当前的线程数量。 |
OH_AI_ContextSetThreadAffinityMode()
OH_AI_API void OH_AI_ContextSetThreadAffinityMode(OH_AI_ContextHandle context, int mode)
描述
设置运行时线程绑定CPU核心的策略,按照CPU物理核频率分为大、中、小三种类型的核心,并且仅需绑大核或者绑中核,不需要绑小核。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
| int mode | 绑核策略。一共有三种策略,0为不绑核,1为大核优先,2为中核优先。 |
OH_AI_ContextGetThreadAffinityMode()
OH_AI_API int OH_AI_ContextGetThreadAffinityMode(const OH_AI_ContextHandle context)
描述
获取运行时线程绑定CPU核心的策略。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API int | 绑核策略。一共有三种策略,0为不绑核,1为大核优先,2为中核优先。 |
OH_AI_ContextSetThreadAffinityCoreList()
OH_AI_API void OH_AI_ContextSetThreadAffinityCoreList(OH_AI_ContextHandle context, const int32_t *core_list,size_t core_num)
描述
设置运行时线程绑定CPU核心的列表。
例如:当core_list=[2,6,8]时,则线程会在CPU的第2,6,8个核心上运行。
如果对于同一个上下文对象,调用了OH_AI_ContextSetThreadAffinityMode和OH_AI_ContextSetThreadAffinityCoreList。
这两个函数,则仅OH_AI_ContextSetThreadAffinityCoreList的core_list参数生效,而OH_AI_ContextSetThreadAffinityMode的mode参数不生效。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
| const int32_t *core_list | CPU绑核的列表。 |
| size_t core_num | 核的数量,它就代表core_list的长度。 |
OH_AI_ContextGetThreadAffinityCoreList()
OH_AI_API const int32_t *OH_AI_ContextGetThreadAffinityCoreList(const OH_AI_ContextHandle context, size_t *core_num)
描述
获取CPU绑核列表。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
| size_t *core_num | 该参数是输出参数,表示核的数量。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API const int32_t * | CPU绑核列表。此列表对象由OH_AI_ContextHandle管理,调用者无须手动释放。 |
OH_AI_ContextSetEnableParallel()
OH_AI_API void OH_AI_ContextSetEnableParallel(OH_AI_ContextHandle context, bool is_parallel)
描述
设置运行时是否支持并行。此接口特性当前未开启,设置无效。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
| bool is_parallel | 是否支持并行。true为支持并行,false为不支持并行。 |
OH_AI_ContextGetEnableParallel()
OH_AI_API bool OH_AI_ContextGetEnableParallel(const OH_AI_ContextHandle context)
描述
获取是否支持算子间并行。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API bool | 是否支持并行。true为支持并行,false为不支持并行。 |
OH_AI_ContextAddDeviceInfo()
OH_AI_API void OH_AI_ContextAddDeviceInfo(OH_AI_ContextHandle context, OH_AI_DeviceInfoHandle device_info)
描述
将一个用户定义的运行设备信息附加到推理上下文中。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_ContextHandle context | 指向上下文信息实例的OH_AI_ContextHandle。 |
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
OH_AI_DeviceInfoCreate()
OH_AI_API OH_AI_DeviceInfoHandle OH_AI_DeviceInfoCreate(OH_AI_DeviceType device_type)
描述
创建一个设备信息对象。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceType device_type | 设备类型,具体见OH_AI_DeviceType。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_DeviceInfoHandle | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
OH_AI_DeviceInfoDestroy()
OH_AI_API void OH_AI_DeviceInfoDestroy(OH_AI_DeviceInfoHandle *device_info)
描述
释放设备信息实例。注意:设备信息实例被添加到context后,无须调用者手动释放。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle *device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
OH_AI_DeviceInfoSetProvider()
OH_AI_API void OH_AI_DeviceInfoSetProvider(OH_AI_DeviceInfoHandle device_info, const char *provider)
描述
设置生产商的名称。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| const char *provider | 生产商的名称。字符串长度跟随系统限制。 |
OH_AI_DeviceInfoGetProvider()
OH_AI_API const char *OH_AI_DeviceInfoGetProvider(const OH_AI_DeviceInfoHandle device_info)
描述
获取生产商的名称。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API const char * | 生产商的名称。 |
OH_AI_DeviceInfoSetProviderDevice()
OH_AI_API void OH_AI_DeviceInfoSetProviderDevice(OH_AI_DeviceInfoHandle device_info, const char *device)
描述
设置生产商设备的名称。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| const char *device | 生产商设备名称。例如: CPU。字符串长度跟随系统限制。 |
OH_AI_DeviceInfoGetProviderDevice()
OH_AI_API const char *OH_AI_DeviceInfoGetProviderDevice(const OH_AI_DeviceInfoHandle device_info)
描述
获取生产商设备的名称。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API const char * | 生产商设备的名称。 |
OH_AI_DeviceInfoGetDeviceType()
OH_AI_API OH_AI_DeviceType OH_AI_DeviceInfoGetDeviceType(const OH_AI_DeviceInfoHandle device_info)
描述
获取设备的类型。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_DeviceType | 生产商设备类型。 |
OH_AI_DeviceInfoSetEnableFP16()
OH_AI_API void OH_AI_DeviceInfoSetEnableFP16(OH_AI_DeviceInfoHandle device_info, bool is_fp16)
描述
设置是否开启float16推理模式,仅CPU/GPU设备可用。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| bool is_fp16 | 是否开启float16推理模式。true为开启float16推理模式,false为不开启float16推理模式。 |
OH_AI_DeviceInfoGetEnableFP16()
OH_AI_API bool OH_AI_DeviceInfoGetEnableFP16(const OH_AI_DeviceInfoHandle device_info)
描述
获取是否开启float16推理模式,仅CPU/GPU设备可用。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API bool | 是否开启float16推理模式。true为开启float16推理模式,false为不开启float16推理模式。 |
OH_AI_DeviceInfoSetFrequency()
OH_AI_API void OH_AI_DeviceInfoSetFrequency(OH_AI_DeviceInfoHandle device_info, int frequency)
描述
设置NPU的频率,仅NPU设备可用。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| int frequency | 频率类型,取值范围为0-4,默认是3。0表示不设置,由系统调节;1表示低功耗;2表示平衡;3表示高性能;4表示超高性能。 |
OH_AI_DeviceInfoGetFrequency()
OH_AI_API int OH_AI_DeviceInfoGetFrequency(const OH_AI_DeviceInfoHandle device_info)
描述
获取NPU的频率类型,仅NPU设备可用。
起始版本: 9
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API int | NPU的频率类型。取值范围为0-4,0表示不设置,由系统调节;1表示低功耗;2表示平衡;3表示高性能;4表示超高性能。 |
OH_AI_GetAllNNRTDeviceDescs()
OH_AI_API NNRTDeviceDesc *OH_AI_GetAllNNRTDeviceDescs(size_t *num)
描述
获取系统中所有NNRt硬件设备的描述信息。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| size_t *num | 输出参数,返回设备数量。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API NNRTDeviceDesc * | 指向NNRt设备描述信息实例数组的指针。当获取失败时,返回NULL。 |
OH_AI_GetElementOfNNRTDeviceDescs()
OH_AI_API NNRTDeviceDesc *OH_AI_GetElementOfNNRTDeviceDescs(NNRTDeviceDesc *descs, size_t index)
描述
获取NNRt设备描述信息数组中的元素指针。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| NNRTDeviceDesc *descs | NNRt设备描述信息数组。 |
| size_t index | 数组元素索引。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API NNRTDeviceDesc * | NNRt设备描述信息类型指针。 |
OH_AI_DestroyAllNNRTDeviceDescs()
OH_AI_API void OH_AI_DestroyAllNNRTDeviceDescs(NNRTDeviceDesc **desc)
描述
销毁从OH_AI_GetAllNNRTDeviceDescs获取的NNRt描述信息实例数组。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| NNRTDeviceDesc **desc | 指向NNRt设备描述信息实例数组的二重指针。销毁结束,desc指向内容会被置为NULL。 |
OH_AI_GetDeviceIdFromNNRTDeviceDesc()
OH_AI_API size_t OH_AI_GetDeviceIdFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)
描述
从特定的NNRt设备描述信息实例获取NNRt设备ID。注意,此ID只对NNRt有效。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| const NNRTDeviceDesc *desc | 指向NNRt设备描述信息实例的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API size_t | NNRt设备ID。 |
OH_AI_GetNameFromNNRTDeviceDesc()
OH_AI_API const char *OH_AI_GetNameFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)
描述
从特定的NNRt设备描述信息实例获取NNRt设备名称。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| const NNRTDeviceDesc *desc | 指向NNRt设备描述信息实例的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API const char * | NNRt设备名称,指向一个常量字符串的指针,该常量字符串由desc持有,调用者无需单独释放此指针。 |
OH_AI_GetTypeFromNNRTDeviceDesc()
OH_AI_API OH_AI_NNRTDeviceType OH_AI_GetTypeFromNNRTDeviceDesc(const NNRTDeviceDesc *desc)
描述
从特定的NNRt设备描述信息实例获取NNRt设备类型。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| const NNRTDeviceDesc *desc | 指向NNRt设备描述信息实例的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_NNRTDeviceType | OH_AI_NNRTDeviceType NNRt设备类型。 |
OH_AI_CreateNNRTDeviceInfoByName()
OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByName(const char *name)
描述
查找指定名称的NNRt设备,根据找到的第一个设备信息,创建NNRt设备信息。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| const char *name | 目标NNRt设备名。字符串长度跟随系统限制。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_DeviceInfoHandle | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
OH_AI_CreateNNRTDeviceInfoByType()
OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByType(OH_AI_NNRTDeviceType type)
描述
查找指定类型的NNRt设备,根据找到的第一个设备信息,创建NNRt设备信息。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_NNRTDeviceType type | OH_AI_NNRTDeviceType 目标NNRt设备类型。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_DeviceInfoHandle | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
OH_AI_DeviceInfoSetDeviceId()
OH_AI_API void OH_AI_DeviceInfoSetDeviceId(OH_AI_DeviceInfoHandle device_info, size_t device_id)
描述
设置NNRt设备ID,仅NNRt设备可用。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| size_t device_id | NNRt设备ID。 |
OH_AI_DeviceInfoGetDeviceId()
OH_AI_API size_t OH_AI_DeviceInfoGetDeviceId(const OH_AI_DeviceInfoHandle device_info)
描述
获取NNRt设备ID,仅NNRt设备可用。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API size_t | NNRt设备ID。 |
OH_AI_DeviceInfoSetPerformanceMode()
OH_AI_API void OH_AI_DeviceInfoSetPerformanceMode(OH_AI_DeviceInfoHandle device_info, OH_AI_PerformanceMode mode)
描述
设置NNRt性能模式,仅NNRt设备可用。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| OH_AI_PerformanceMode mode | OH_AI_PerformanceMode NNRt性能模式。 |
OH_AI_DeviceInfoGetPerformanceMode()
OH_AI_API OH_AI_PerformanceMode OH_AI_DeviceInfoGetPerformanceMode(const OH_AI_DeviceInfoHandle device_info)
描述
获取NNRt性能模式,仅NNRt设备可用。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_PerformanceMode | OH_AI_PerformanceMode NNRt性能模式。 |
OH_AI_DeviceInfoSetPriority()
OH_AI_API void OH_AI_DeviceInfoSetPriority(OH_AI_DeviceInfoHandle device_info, OH_AI_Priority priority)
描述
设置NNRt任务优先级,仅NNRt设备可用。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| OH_AI_Priority priority | OH_AI_Priority NNRt任务优先级。 |
OH_AI_DeviceInfoGetPriority()
OH_AI_API OH_AI_Priority OH_AI_DeviceInfoGetPriority(const OH_AI_DeviceInfoHandle device_info)
描述
获取NNRt任务优先级,仅NNRt设备可用。
起始版本: 23
参数:
| 参数项 | 描述 |
|---|---|
| const OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_Priority | OH_AI_Priority NNRt任务优先级。 |
OH_AI_DeviceInfoAddExtension()
OH_AI_API OH_AI_Status OH_AI_DeviceInfoAddExtension(OH_AI_DeviceInfoHandle device_info, const char *name,const char *value, size_t value_size)
描述
向设备信息中添加键/值对形式的扩展配置。只对NNRt设备信息有效。
当前仅支持配置以下11种键:{"CachePath": "YourCachePath"},{"CacheVersion": "YourCacheVersion"},
{"QuantBuffer": "YourQuantBuffer"},{"ModelName": "YourModelName"},
{"isProfiling": "YourProfilingSwitch"},{"opLayout": "YourOpLayout"},
{"InputDims": "YourInputDims"},{"DynamicDims": "YourDynamicDims"},
{"QuantConfigData": "YourQuantConfigData"},{"BandMode": "YourBandMode"},
{"NPU_FM_SHARED": "YourNPU_FM_SHARED"},用户可根据使用情况配置各个键对应的值。
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AI_DeviceInfoHandle device_info | 指向设备信息实例的OH_AI_DeviceInfoHandle。 |
| const char *name | 单个扩展项的键,格式为C字符串。字符串长度限制为128。 |
| const char *value | 单个扩展项的值内容首地址。字符串长度跟随系统限制。 |
| size_t value_size | 单个扩展项的值内容长度。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AI_API OH_AI_Status | OH_AI_Status 执行状态码,若成功返回OH_AI_STATUS_SUCCESS,失败则返回具体错误码。 |
你可能感兴趣的鸿蒙文章
openharmony 鸿蒙 capi-mindspore-oh-ai-callbackparam
openharmony 鸿蒙 capi-mindspore-oh-ai-shapeinfo
openharmony 鸿蒙 capi-mindspore-oh-ai-contexthandle
openharmony 鸿蒙 capi-mindspore-oh-ai-traincfghandle
openharmony 鸿蒙 capi-mindspore-oh-ai-allocatorhandle