MSContext

import com.mindspore.config.MSContext;

MSContext类用于配置运行时的上下文配置。

公有成员函数

function

boolean init()

boolean init(int threadNum, int cpuBindMode)

boolean init(int threadNum, int cpuBindMode, boolean isEnableParallel)

boolean addDeviceInfo(int deviceType, boolean isEnableFloat16)

boolean addDeviceInfo(int deviceType, boolean isEnableFloat16, int npuFreq)

void free()

long getMSContextPtr()

void setThreadNum(int threadNum)

int getThreadNum()

void setInterOpParallelNum(int parallelNum)

int getInterOpParallelNum()

void setThreadAffinity(int mode)

int getThreadAffinityMode()

void setThreadAffinity(ArrayList<Integer> coreList)

ArrayList<Integer> getThreadAffinityCoreList()

void setEnableParallel(boolean isParallel)

boolean getEnableParallel()

DeviceType

CpuBindMode

init

public boolean init()

使用默认参数初始化MSContext,2线程,不绑核,不开启异构并行。

  • 返回值

    初始化是否成功。

public boolean init(int threadNum, int cpuBindMode)

使用线程数和绑&模式初始化MSContext。

public boolean init(int threadNum, int cpuBindMode, boolean isEnableParallel)

初始化MSContext。

  • 参数

    • threadNum: 线程数。

    • cpuBindMode: CPU绑定模式,cpuBindModecom.mindspore.config.CpuBindMode中定义。

    • isEnableParallel: 是否开启异构并行。

  • 返回值

    初始化是否成功。

addDeviceInfo

boolean addDeviceInfo(int deviceType, boolean isEnableFloat16)

添加运行设备信息。

  • 参数

  • 返回值

    设备添加是否成功。

boolean addDeviceInfo(int deviceType, boolean isEnableFloat16, int npuFreq)

添加运行设备信息。

  • 参数

    • deviceType: 设备类型,deviceTypecom.mindspore.config.DeviceType中定义。

    • isEnableFloat16: 是否开启fp16。

    • npuFreq: NPU运行频率,仅当deviceType为npu才需要。

  • 返回值

    设备添加是否成功。

getMSContextPtr

public long getMSContextPtr()

获取MSContext底层运行指针。

  • 返回值

    MSContext底层运行指针。

free

public void free()

释放MSContext运行过程中动态分配的内存。

setThreadNum

void setThreadNum(int threadNum)

设置运行时的线程数量,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。

  • 参数

    • threadNum: 运行时的线程数。

getThreadNum

int getThreadNum()

获取当MSContext的线程数量设置,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则会返回-1,并在日志中输出空指针信息。

  • 返回值

    线程数量

setInterOpParallelNum

void setInterOpParallelNum(int parallelNum)

设置运行时的算子并行推理数目,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。

  • 参数

    • parallelNum: 运行时的算子并行数。

getInterOpParallelNum

int getInterOpParallelNum()

获取当前算子并行数设置,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则会返回-1,并在日志中输出空指针信息。

  • 返回值

    当前算子并行数设置。

setThreadAffinity

void setThreadAffinity(int mode)

设置运行时的CPU绑核策略,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。

  • 参数

    • mode: 绑核的模式,有效值为0-2,0为默认不绑核,1为绑大核,2为绑小核。

getThreadAffinityMode

 int getThreadAffinityMode()

获取当前CPU绑核策略,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则返回-1,并在日志中输出空指针信息。

  • 返回值

    当前CPU绑核策略,有效值为0-2,0为默认不绑核,1为绑大核,2为绑小核。

setThreadAffinity

void setThreadAffinity(ArrayList<Integer> coreList)

设置运行时的CPU绑核列表,如果同时调用了两个不同的SetThreadAffinity函数来设置同一个的MSContext,仅coreList生效,而mode不生效。该选项仅MindSpore Lite有效。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。

  • 参数

    • coreList: CPU绑核的列表。

getThreadAffinityCoreList

ArrayList<Integer> getThreadAffinityCoreList()

获取当前CPU绑核列表,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则会返回长度为0的ArrayList,并在日志中输出空指针信息。

  • 返回值

    当前CPU绑核列表

setEnableParallel

void setEnableParallel(boolean isParallel)

设置运行时是否支持并行,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。

  • 参数

    • isParallel: 为true则支持并行。

getEnableParallel

boolean getEnableParallel()

获取当前是否支持并行,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则会返回false,并在日志中输出空指针信息。

  • 返回值

    返回值为为true,代表支持并行。

DeviceType

import com.mindspore.config.DeviceType;

设备类型。

公有成员变量

public static final int DT_CPU = 0;
public static final int DT_GPU = 1;
public static final int DT_NPU = 2;

DeviceType的值为0,指定设备类型为CPU。

DeviceType的值为1,指定设备类型为GPU。

DeviceType的值为2,指定设备类型为NPU。

CpuBindMode

import com.mindspore.config.CpuBindMode;

绑核策略。

公有成员变量

public static final int MID_CPU = 2;
public static final int HIGHER_CPU = 1;
public static final int NO_BIND = 0;

CpuBindMode的值为2,优先绑定中核。

CpuBindMode的值为1,优先绑定大核。

CpuBindMode的值为0,不绑核。