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)

✕

√

boolean addDeviceInfo(AscendDeviceInfo ascendDeviceInfo)

√

✕

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,设置CPU线程数、CPU绑定模式。不开启异构并行。

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)

添加运行设备信息。

  • 参数

  • 返回值

    设备添加是否成功。

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,不绑核。