mindspore_lite.Context

class mindspore_lite.Context(thread_num=None, inter_op_parallel_num=None, thread_affinity_mode=None, thread_affinity_core_list=None, enable_parallel=False)[源代码]

Context用于在执行期间传递环境变量。

在运行程序之前,应配置context。如果没有配置,默认情况下将根据设备目标进行自动设置。

说明

如果同时设置 thread_affinity_core_listthread_affinity_mode 在同一个context中,则 thread_affinity_core_list 生效, 但 thread_affinity_mode 无效。

参数:
  • thread_num (int,可选) - 设置运行时的线程数。 thread_num 不能小于 inter_op_parallel_num 。将 thread_num 设置为0表示 thread_num 将基于计算机性能和核心数自动调整。默认值:None,等同于设置为0。

  • inter_op_parallel_num (int,可选) - 设置运行时算子的并行数。 inter_op_parallel_num 不能大于 thread_num 。将 inter_op_parallel_num 设置为0表示 inter_op_parallel_num 将基于计算机性能和核心数自动调整。默认值:None,等同于设置为0。

  • thread_affinity_mode (int,可选) - 设置运行时的CPU/GPU/NPU绑核策略模式。支持以下 thread_affinity_mode 。默认值:None,等同于设置为0。

    • 0 - 不绑核。

    • 1 - 绑大核优先。

    • 2 - 绑中核优先。

  • thread_affinity_core_list (list[int],可选) - 设置运行时的CPU/GPU/NPU绑核策略列表。例如:[0,1]在CPU设备上代表指定绑定0号CPU和1号CPU。默认值:None,等同于设置为[]。

  • enable_parallel (bool,可选) - 设置状态是否启用并行执行模型推理或并行训练。默认值:False。

异常:
  • TypeError - thread_num 既不是int类型也不是None。

  • TypeError - inter_op_parallel_num 既不是int类型也不是None。

  • TypeError - thread_affinity_mode 既不是int类型也不是None。

  • TypeError - thread_affinity_core_list 既不是list类型也不是None。

  • TypeError - thread_affinity_core_list 是list类型,但元素既不是int类型也不是None。

  • TypeError - enable_parallel 不是bool类型。

  • ValueError - thread_num 小于0。

  • ValueError - inter_op_parallel_num 小于0。

样例:

>>> import mindspore_lite as mslite
>>> context = mslite.Context(thread_num=1, inter_op_parallel_num=1, thread_affinity_mode=1,
...                          enable_parallel=False)
>>> print(context)
thread_num: 1,
inter_op_parallel_num: 1,
thread_affinity_mode: 1,
thread_affinity_core_list: [],
enable_parallel: False,
device_list: .
append_device_info(device_info)[源代码]

将一个用户定义的设备信息附加到上下文中。

说明

添加GPU设备信息后,必须在调用上下文之前添加CPU设备信息。因为当GPU不支持算子时,系统将尝试CPU是否支持该算子。此时,需要切换至带有CPU设备信息的上下文中。

添加Ascend设备信息后,在原始模型的输入format与转换生成的模型的输入format不一致的场景时,用户可以选择在调用上下文之前添加CPU设备硬件信息。因为在这种情况下,在Ascend设备上转换生成的模型中将包含 Transpose 节点,该节点目前需要在CPU上执行推理,因此需要切换至带有CPU设备信息的上下文中。

参数:
  • device_info (DeviceInfo) - 实例化的设备信息。

异常:
  • TypeError - device_info 不是DeviceInfo类型。

样例:

>>> import mindspore_lite as mslite
>>> context = mslite.Context()
>>> context.append_device_info(mslite.CPUDeviceInfo())
>>> print(context)
thread_num: 0,
inter_op_parallel_num: 0,
thread_affinity_mode: 0,
thread_affinity_core_list: [],
enable_parallel: False,
device_list: 0, .