context_c

#include<context_c.h>

context_c.h提供了操作Context的接口,Context对象用于保存执行中的环境变量。

公有函数

function

MSContextHandle MSContextCreate()

void MSContextDestroy(MSContextHandle* context)

void MSContextSetThreadNum(MSContextHandle context, int32_t thread_num)

int32_t MSContextGetThreadNum(const MSContextHandle context)

void MSContextSetThreadAffinityMode(MSContextHandle context, int mode)

int MSContextGetThreadAffinityMode(const MSContextHandle context)

void MSContextSetThreadAffinityCoreList(MSContextHandle context, const int32_t* core_list, size_t core_num)

int32_t* MSContextGetThreadAffinityCoreList(const MSContextHandle context, size_t* core_num)

void MSContextSetEnableParallel(MSContextHandle context, bool is_parallel)

bool MSContextGetEnableParallel(const MSContextHandle context)

void MSContextAddDeviceInfo(MSContextHandle context, MSDeviceInfoHandle device_info)

MSDeviceInfoHandle MSDeviceInfoCreate(MSDeviceType device_type)

void MSDeviceInfoDestroy(MSDeviceInfoHandle* device_info)

void MSDeviceInfoSetProvider(MSDeviceInfoHandle device_info, const char* provider)

const char* MSDeviceInfoGetProvider(const MSDeviceInfoHandle device_info)

void MSDeviceInfoSetProviderDevice(MSDeviceInfoHandle device_info, const char* device)

const char* MSDeviceInfoGetProviderDevice(const MSDeviceInfoHandle device_info)

const char* MSDeviceType MSDeviceInfoGetDeviceType(const MSDeviceInfoHandle device_info)

void MSDeviceInfoSetEnableFP16(MSDeviceInfoHandle device_info, bool is_fp16)

bool MSDeviceInfoGetEnableFP16(const MSDeviceInfoHandle device_info)

void MSDeviceInfoSetFrequency(MSDeviceInfoHandle device_info, int frequency)

int MSDeviceInfoGetFrequency(const MSDeviceInfoHandle device_info)

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,并日志中输出信息。

  • 参数

  • 返回值

    指向创建的运行设备信息的指针。

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的频率类型。