MSContext
import com.mindspore.config.MSContext;
MSContext类用于配置运行时的上下文。
公有成员函数
| function | 云侧推理是否支持 | 端侧推理是否支持 | 
|---|---|---|
| √ | √ | |
| √ | √ | |
| boolean init(int threadNum, int cpuBindMode, boolean isEnableParallel) | √ | √ | 
| boolean addDeviceInfo(int deviceType, boolean isEnableFloat16) | √ | √ | 
| boolean addDeviceInfo(int deviceType, boolean isEnableFloat16, int npuFreq) | ✕ | √ | 
| √ | ✕ | |
| √ | √ | |
| √ | √ | |
| √ | √ | |
| √ | √ | |
| √ | ✕ | |
| √ | ✕ | |
| √ | √ | |
| √ | √ | |
| √ | √ | |
| √ | √ | |
| √ | √ | |
| ✕ | √ | |
| √ | √ | |
| √ | √ | 
init
public boolean init()
初始化MSContext,采用默认配置:2线程,不绑核,不开启异构并行。
- 返回值 - 初始化是否成功。 
public boolean init(int threadNum, int cpuBindMode)
初始化MSContext,设置CPU线程数、CPU绑定模式。不开启异构并行。
- 参数 - threadNum: 线程数。
- cpuBindMode: CPU绑定模式,- cpuBindMode在com.mindspore.config.CpuBindMode中定义。
 
- 返回值 - 初始化是否成功。 
public boolean init(int threadNum, int cpuBindMode, boolean isEnableParallel)
初始化MSContext,设置CPU线程数、CPU绑定模式、是否开启异构并行。
- 参数 - threadNum: 线程数。
- cpuBindMode: CPU绑定模式,- cpuBindMode在com.mindspore.config.CpuBindMode中定义。
- isEnableParallel: 是否开启异构并行。
 
- 返回值 - 初始化是否成功。 
addDeviceInfo
public boolean addDeviceInfo(int deviceType, boolean isEnableFloat16)
添加运行设备信息。
- 参数 - deviceType: 设备类型,- deviceType在com.mindspore.config.DeviceType中定义。
- isEnableFloat16: 是否开启fp16。
 
- 返回值 - 设备添加是否成功。 
public boolean addDeviceInfo(int deviceType, boolean isEnableFloat16, int npuFreq)
添加运行设备信息。
- 参数 - deviceType: 设备类型,- deviceType在com.mindspore.config.DeviceType中定义。
- isEnableFloat16: 是否开启fp16。
- npuFreq: NPU运行频率,仅当deviceType为npu才需要。
 
- 返回值 - 设备添加是否成功。 
public boolean addDeviceInfo(AscendDeviceInfo ascendDeviceInfo)
添加运行设备信息。
- 参数 - ascendDeviceInfo: Ascend后端设备信息。
 
- 返回值 - 设备添加是否成功。 
getMSContextPtr
public long getMSContextPtr()
获取MSContext底层运行指针。
- 返回值 - MSContext底层运行指针。 
free
public void free()
释放MSContext运行过程中动态分配的内存。
setThreadNum
public void setThreadNum(int threadNum)
设置运行时的线程数量。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。
- 参数 - threadNum: 运行时的线程数。
 
getThreadNum
public int getThreadNum()
获取MSContext的线程数量设置,该选项仅MindSpore Lite有效。 若未初始化 MSContext 则会返回-1,并在日志中输出空指针信息。
- 返回值 - 线程数量。 
setInterOpParallelNum
public void setInterOpParallelNum(int parallelNum)
设置运行时的算子并行推理数目。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。
- 参数 - parallelNum: 运行时的算子并行数。
 
getInterOpParallelNum
public int getInterOpParallelNum()
获取当前算子并行数设置。 若未初始化 MSContext 则会返回-1,并在日志中输出空指针信息。
- 返回值 - 当前算子并行数设置。 
setThreadAffinity
public void setThreadAffinity(int mode)
设置运行时的CPU绑核策略。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。
- 参数 - mode: 绑核的模式,有效值为0-2,0为默认不绑核,1为绑大核,2为绑小核。
 
getThreadAffinityMode
public int getThreadAffinityMode()
获取当前CPU绑核策略。 若未初始化 MSContext 则返回-1,并在日志中输出空指针信息。
- 返回值 - 当前CPU绑核策略,有效值为0-2,0为默认不绑核,1为绑大核,2为绑小核。 
setThreadAffinity
public void setThreadAffinity(ArrayList<Integer> coreList)
设置运行时的CPU绑核列表,如果同时调用了两个不同的SetThreadAffinity函数来设置同一个的MSContext,仅coreList生效,而mode不生效。该选项仅MindSpore Lite有效。
若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。
- 参数 - coreList: CPU绑核的列表。
 
getThreadAffinityCoreList
public ArrayList<Integer> getThreadAffinityCoreList()
获取当前CPU绑核列表。
若未初始化 MSContext 则会返回长度为0的ArrayList,并在日志中输出空指针信息。
- 返回值 - 当前CPU绑核列表。 
setEnableParallel
public void setEnableParallel(boolean isParallel)
设置运行时是否使能异构并行。 若未初始化 MSContext 则不会做任何操作,并在日志中输出空指针信息。
- 参数 - isParallel: 为true则使能异构并行。
 
getEnableParallel
public boolean getEnableParallel()
获取当前是否使能异构并行。 若未初始化 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;
public static final int DT_ASCEND = 3;
DeviceType的值为0,指定设备类型为CPU。
DeviceType的值为1,指定设备类型为GPU。
DeviceType的值为2,指定设备类型为NPU。
DeviceType的值为3,指定设备类型为Ascend。
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,不绑核。