context_c
#include<context_c.h>
context_c.h提供了操作Context的接口,Context对象用于保存执行中的环境变量。
公有函数
MSContextCreate
MSContextHandle MSContextCreate()
创建一个MSContext。
返回值
指向创建的MSContext的指针。
MSContextDestroy
void MSContextDestroy(MSContextHandle* context)
销毁一个MSContext。
参数
context
: 指向MSContext的指针。
MSContextSetThreadNum
void MSContextSetThreadNum(MSContextHandle context, int32_t thread_num);
设置运行时的线程数量,该选项仅MindSpore Lite有效。 若参数context为空则不会做任何操作,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。thread_num
: 运行时的线程数。
MSContextGetThreadNum
int32_t MSContextGetThreadNum(const MSContextHandle context)
获取MSContext的线程数量,该选项仅MindSpore Lite有效。 若参数context为空则不会做任何操作,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。
返回值
线程数量。
MSContextSetThreadAffinityMode
void MSContextSetThreadAffinityMode(MSContextHandle context, int mode)
设置运行时的CPU绑核策略,该选项仅MindSpore Lite有效。 若参数context为空则不会做任何操作,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。mode
: 绑核的模式,有效值为0-2,0为默认不绑核,1为绑大核,2为绑中核。
MSContextGetThreadAffinityMode
int MSContextGetThreadAffinityMode(const MSContextHandle context)
获取当前CPU绑核策略,该选项仅MindSpore Lite有效。 若参数context为空则返回-1,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。
返回值
当前CPU绑核策略,有效值为0-2,0为默认不绑核,1为绑大核,2为绑中核。
MSContextSetThreadAffinityCoreList
void MSContextSetThreadAffinityCoreList(MSContextHandle context, const int32_t* core_list, size_t core_num)
设置运行时的CPU绑核列表,如果同时调用了两个不同的SetThreadAffinity
函数来设置同一个MSContext,仅core_list
生效,而mode
不生效。该选项仅MindSpore Lite有效。
若参数context为空则不会做任何操作,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。core_list
: CPU绑核的列表。core_num
: 核的数量。
MSContextGetThreadAffinityCoreList
int32_t* MSContextGetThreadAffinityCoreList(const MSContextHandle context, size_t* core_num)
获取当前CPU绑核列表,该选项仅MindSpore Lite有效。
若参数context为空则会返回nullptr
,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。core_num
: 输出参数,表示返回值对应的数组的长度。
返回值
当前CPU绑核列表。
MSContextSetEnableParallel
void MSContextSetEnableParallel(MSContextHandle context, bool is_parallel)
设置运行时是否支持并行,该选项仅MindSpore Lite有效。 若参数context为空则不会做任何操作,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。is_parallel
: 为true则支持并行。
MSContextGetEnableParallel
bool MSContextGetEnableParallel(const MSContextHandle context)
获取当前是否支持并行,该选项仅MindSpore Lite有效。 若参数context为空则会返回false,并在日志中输出空指针信息。
参数
context
: 指向MSContext的指针。
返回值
返回值为为true,代表支持并行。
MSContextAddDeviceInfo
void MSContextAddDeviceInfo(MSContextHandle context, MSDeviceInfoHandle device_info)
添加运行设备信息。
参数
context
: 指向MSContext的指针。device_info
: 指向设备类型信息的指针。
MSDeviceInfoCreate
MSDeviceInfoHandle MSDeviceInfoCreate(MSDeviceType device_type)
新建运行设备信息,若创建失败则会返回nullptr
,并日志中输出信息。
参数
device_type
: 设备类型,具体见MSDeviceType。
返回值
指向创建的运行设备信息的指针。
MSDeviceInfoDestroy
void MSDeviceInfoDestroy(MSDeviceInfoHandle* device_info)
销毁一个运行设备信息对象。
参数
device_info
: 指向设备类型信息的指针。
MSDeviceInfoSetProvider
void MSDeviceInfoSetProvider(MSDeviceInfoHandle device_info, const char* provider)
设置设备生产商名称。若参数device_info为空则不会做任何操作,并在日志中输出空指针信息。
参数
device_info
: 指向设备类型信息的指针。provider
: 生产商名称。
MSDeviceInfoGetProvider
const char* MSDeviceInfoGetProvider(const MSDeviceInfoHandle device_info)
获取生产商设备名称。若参数device_info为空则输出nullptr
,并在日志中输出空指针信息。
参数
device_info
: 指向设备类型信息的指针。
返回值
生产商名称。
MSDeviceInfoSetProviderDevice
void MSDeviceInfoSetProviderDevice(MSDeviceInfoHandle device_info, const char* device)
设置供应商设备名称。若参数device_info为空则不会做任何操作,并在日志中输出空指针信息。
参数
device_info
: 指向设备类型信息的指针。device
: 供应商设备类型,例如"CPU"。
MSDeviceInfoGetProviderDevice
const char* MSDeviceInfoGetProviderDevice(const MSDeviceInfoHandle device_info)
获取生产商设备名。若参数device_info为空则不会做任何操作,并在日志中输出空指针信息。
参数
device_info
: 指向设备类型信息的指针。
返回值
生产商设备名。
MSDeviceInfoGetDeviceType
const char* MSDeviceType MSDeviceInfoGetDeviceType(const MSDeviceInfoHandle device_info)
获得生产商设备类型。若参数device_info为空则返回nullptr
,并在日志中输出空指针信息。
参数
device_info
: 指向设备类型信息的指针。
返回值
生产商设备类型。
MSDeviceInfoGetEnableFP16
bool MSDeviceInfoGetEnableFP16(const MSDeviceInfoHandle device_info)
获取是否开启float16推理模式,仅CPU/GPU设备可用。若参数device_info为空则返回flase,并在日志中输出空指针信息。
参数
device_info
: 指向设备类型信息的指针。
返回值
是否开启FP16。
MSDeviceInfoSetEnableFP16
void MSDeviceInfoSetEnableFP16(MSDeviceInfoHandle device_info, bool is_fp16)
设置是否开启float16推理模式,仅CPU/GPU设备可用。若参数device_info为空则不会做任何操作,并在日志中输出空指针信息。
参数
device_info
: 指向设备类型信息的指针。is_fp16
: 是否基于float16进行推理。
MSDeviceInfoSetFrequency
void MSDeviceInfoSetFrequency(MSDeviceInfoHandle device_info, int frequency)
设置NPU的频率类型,仅NPU设备可用。若参数device_info为空或者当前设备不为NPU则不会做任何操作,并在日志中输出具体信息。
参数
device_info
: 指向设备类型信息的指针。frequency
: 频率类型,取值范围为0-4,默认是3。1表示低功耗,2表示平衡,3表示高性能,4表示超高性能。
MSDeviceInfoGetFrequency
int MSDeviceInfoGetFrequency(const MSDeviceInfoHandle device_info)
获取NPU的频率类型,仅NPU设备可用。若参数device_info为空或者当前设备不为NPU则返回-1,并在日志中输出具体信息。
参数
device_info
: 指向设备类型信息的指针。
返回值
NPU的频率类型。