API 参考手册
摩尔线程 GPU 管理库 (MTML)
主页
基本概念
支持的平台
| 处理器架构 | 操作系统 |
|---|---|
| x86_64 | Ubuntu 20.04,UOS 20,Kylin V10,Windows 10 Pro 21H |
| AArch64 | Kylin V10 SP |
不透明对象类型
MTML 库使用几种核心不透明对象类型。每种数据类型都代表用户可与之交互的特定功能实体。下面定义的大多数函数都将一个或多个不透明对象作为输入参数。
- MtmlLibrary 代表 MTML 库本身,是访问和创建其他不透明对象的入口。
- MtmlSystem 代表运行该库的系统环境。
- MtmlDevice 代表安装在系统中的摩尔线程设备(包括虚拟设备)。
- MtmlGpu 表示摩尔线程设备的图形单元,负责三维和计算工作负载。
- MtmlMemory 代表摩尔线程设备上的显存单元。
- MtmlVpu 代表摩尔线程设备的视频编解码器单元,负责处理视频编码和解码任务。
上述不透明对象类型之间的关系是分层的,这意味着某些类型 “包含 ”其他类型。上述不透明对象类型的层次结构可概括如下。
Library
|--- System
|--- Device
|--- GPU
|--- Memory
|--- VPU
初始化和释放
在将不透明对象作为参数调用其他函数之前,必须对其进行正确的初始化。不透明对象类型之间的层次关系决定了它们的初始化顺序。例如,要初始化 MtmlGpu 结构,用户应首先初始化 MtmlLibrary 结构,然后从 MtmlLibrary 初始化 MtmlDevice 结构,最后从 MtmlDevice 结构初始化 MtmlGpu 结构。
不透明对象的初始化是通过调用 mtml***Init***() 函数完成的。如果不透明对象 1 和对象 2 指向相同的资源,表达式 (object1 == object2) 的值将始终为 true。
虚拟化
在使用 MTML 库提供的设备虚拟化管理功能之前,建议先了解一些基本概念。
虚拟化功能有两个主要功能:虚拟化类型管理和虚拟设备管理。更具体地说,将介绍几个概念:
- 可虚拟化:这是一个用来描述物理设备是否支持虚拟化的概念。因此,可虚拟化设备被定义为可以创建虚拟资源的物理设备。
- 虚拟化类型:虚拟化类型是一种限制虚拟资源(如设备显存)分配的规范模板。通常,一个可虚拟化的设备支持多种虚拟化类型,因此可以创建具有相应规格的虚拟设备(见下文)。
- 虚拟设备:根据指定的虚拟化类型,从可虚拟化设备创建虚拟设备。注意虚拟设备是一个仅适用于 host 的概念,即只有当 MTML 库在支持虚拟化的 host 环境中运行时,才能初始化代表虚拟设备的
MtmlDevice不透明对象。
编解码器会话
编解码会话是视频流的独立编码/解码过程。摩尔线程设备的视频编解码单元可支持的并发编解码会话数称为编解码容量。解码容量和编码容量分别表示并发解码器会话和编码器会话的最大限制。
每个编解码器会话都有一个唯一的积分值,称为会话 ID。对于解码器会话,会话 ID 的范围是 0 ∼(解码容量-1),而对于编码器会话,会话 ID 的范围是 0 ∼(编码容量-1)。
编解码 会话的另一个重要方面是其状态。编解码会话的状态定义如下:
- 不活动(闲置): 该会话没有分配视频工作量。
- 活动:有视频编码/解码工作负载分配给此会话。在任何给定的时间点,都可以查询编解码器会话的状态。如果编解码器会话处于活动状态,则可查询其指标信息。
有关可行的示例代码,请参阅 sample/basic/basic_sample.cpp 中的 videoMonApp() 示例。
多主核(MPC)
MPC 是 Multiple Primary Core 的缩写,是 Moore Threads 专有的 GPU 硬件虚拟化技术,支持将单个功能强大的 GPU 设备划分为多个功能较弱的 GPU 设备,并具有物理资源隔离功能。简单地说,当在设备上启用 MPC 时,即使只安装了一个物理设备,系统中也会存在多个称为 MPC 实例的设备。每个 MPC 实例都拥有物理设备的部分 GPU 内核和显存资源。这些实例可以独立使用,提供的功能如同安装了多个物理设备。为了管理 MPC 实例,每个启用 MPC 的物理设备都会引入一个模拟设备,称为 MPC 父设备。MPC 父设备负责控制 MPC 功能,并充当全局级管理接入点。在具有单个支持 MPC 的物理设备的系统中,如果启用了 MPC,将有 N+1 个设备可通过 mtml API 访问。由于前面提到的原因,这包括 N 个 MPC 实例设备和 1 个 MPC 父设备。
MPC 父设备的数量保持固定,但 MPC 实例的数量可根据用户需求进行配置。要确定单个物理设备可创建的 MPC 实例的最大数量,有必要了解 MPC 配置文件 和 MPC 配置 的概念。
MPC 配置文件定义了 MPC 实例设备的资源分配模式。因此,根据相同的 MPC 配置文件创建的 MPC 实例将获得相同的资源分配。MPC 配置文件定义的最重要属性是 GPU 内核和显存(VRAM)的分配数量。这些属性直接反映在 MPC 配置文件的名称中。
例如,名为 “4C+8GB ”的 MPC 配置文件表示,使用该配置文件创建的 MPC 实例将分配 4 个 GPU 内核和 8 GB 显存。通常,支持 MPC 的物理设备支持一系列 MPC 配置文件,这些配置文件可用于定义 MPC 实例的特性。不同型号的物理设备可用的 MPC 配置文件可能会有所不同。
由于物理设备上可用的资源总量保持不变,因此选择一个合适的方案将这些资源分配给 MPC 实例至关重要。 在 MPC 实例之间分配资源的适当方案,以确保没有资源闲置,这一点至关重要。
这就是MPC 配置发挥作用的地方。MPC 配置是 MPC 配置文件的组合,可应用于具有 MPC 功能的特定物理设备,以创建 MPC 实例。预设多个 MPC 配置可涵盖特定 MPC 物理设备支持的所有可能的资源分配计划。
例如,让我们考虑一个具有 8 个 GPU 内核和 32 GB 显存的 MPC 物理设备。该设备支持的 MPC 配置文件如下:
| MPC 配置文件名称 | 说明 |
|---|---|
| 8C+32GB | 指定具有 8 个 GPU 内核和 32 GB 显存的 MPC 实例 |
| 4C+16GB | 指定具有 4 个 GPU 内核和 16 GB 显存的 MPC 实例 |
| 2C+8GB | 指定具有 2 个 GPU 内核和 8 GB 显存的 MPC 实例 |
| 1C+4GB | 指定具有 1 个 GPU 内核和 4 GB 显存的 MPC 实例 |
支持的 MPC 配置如下:
| MPC 配置名称 | 包含的 MPC 配置文件 | 说明 |
|---|---|---|
| 8-8 | 8C+32GB | 包括一个具有 8 个 GPU 内核和 32 GB 显存的 MPC 实例 |
| 8-44 | (4C+16GB)∗2 | 包括两个具有 4 个 GPU 内核和 16 GB 显存的 MPC 实例 |
| 8-422 | 4C+16GB, (2C+8GB)∗2 | 包括一个具有 4 个 GPU 内核和 16 GB 显存的 MPC 实例,以及两个 MPC 实例(每个实例具有 2 个 GPU 内核和 8 GB 显存) |
| 8-4211 | 4C+16GB, 2C+8GB, (1C+4GB)∗2 | 包括一个具有 4 个 GPU 内核和 16 GB 显存的 MPC 实例,一个具有 2 个 GPU 内核和 8 GB 显存的 MPC 实例,以及两个各具有 1 个 GPU 内核和 4 GB 显存的 MPC 实例 |
| 8-41111 | 4C+16GB, (1C+4GB)∗4 | 包括一个具有 4 个 GPU 内核和 16 GB 显存的 MPC 实例,以及四个 MPC 实例(每个实例具有 1 个 GPU 内核和 4 GB 显存) |
| 8-2222 | (2C+8GB)∗4 | 包括四个 MPC 实例,每个实例有 2 个 GPU 内核和 8 GB 显存 |
| 8-22211 | (2C+8GB)∗3, (1C+4GB)∗2 | 包括三个 MPC 实例(每个实例有 2 个 GPU 内核和 8 GB 显存)和两个 MPC 实例(每个实例有 1 个 GPU 内核和 4 GB 显存) |
| 8-221111 | (2C+8GB)∗2, (1C+4GB)∗4 | 包括两个 MPC 实例(每个实例有 2 个 GPU 内核和 8 GB 显存)以及四个 MPC 实例(每个实例有 1 个 GPU 内核和 4 GB 显存) |
| 8-2111111 | 2C+8GB, (1C+4GB)∗ 6 | 包括一个具有 2 个 GPU 内核和 8 GB 显存的 MPC 实例,以及六个 MPC 实例(每个实例具有 1 个 GPU 内核和 4 GB 显存) |
| 8-11111111 | (1C+4GB)∗8 | 包括 8 个 MPC 实例,每个实例有 1 个 GPU 内核和 4 GB 显存 |
默认情况下,当系统启动或重新安装设备驱动程序时,支持 MPC 的 GPU 设备处于禁用状态。在这种禁用状态下,设备可作为普通 GPU 设备使用,不具备 MPC 功能。如果安装的驱动程序支持 MPC,则可使用 libmtml API 或 mthreads-gmi 实用 程序在这些设备上启用 MPC 功能。在物理设备上启用 MPC 后,默认情况下将只创建一个 MPC 实例,该实例可访问该物理设备的所有资源,但 MPC 父设备除外。在前面提到的例子中,创建的唯一 MPC 实例将基于 8C+32GB MPC 配置文件,表明应用的默认 MPC 配置为 8-8。
启用或禁用该功能以及修改支持 MPC 的设备上的 MPC 配置会导致系统内的设备编号发生变化。这些设备编号的变化会影响 libmtml 使用的设备枚举和排序逻辑。因此,在执行这些操作后,有必要重新初始化 libmtml,方法是将其关闭,然后再次初始化。重新初始化可确保 libmtml 在更新后的设备集中正常运行。用户在使用时应仔细阅读相关 MTML API 的文档,包含重要说明。
Deprecated List
成员 MTML_DEVICE_VBIOS_VERSION_BUFFER_SIZE
更名为 MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE
成员 mtmlDeviceFreeGpu (MtmlGpu* gpu)
GPU 不透明对象所管理的资源,使其无法使用。
适用于所有产品。
成员 mtmlDeviceFreeMemory (MtmlMemory* mem)
释放显存不透明对象所管理的资源。
成员 mtmlDeviceFreeVirtDevice (MtmlDevice* virtDev)
释放虚拟设备的不透明对象所管理的资源。
此功能仅适用于支持虚拟化的设备,请参阅 MtmlDeviceProperty.virtCap 以确定设备是否可虚拟化。
成员 mtmlDeviceFreeVpu (MtmlVpu* vpu)
释放 VPU 不透明对象所管理的资源。
成员 mtmlDeviceGetVbiosVersion (const MtmlDevice* dev, char* version, unsigned int length)
更名为 mtmlDeviceGetMtBiosVersion,能够更准确地描述。
成员 mtmlLibraryFreeDevice (MtmlDevice* dev)
释放设备不透明对象管理的资源。
成员 mtmlLibraryFreeSystem (MtmlSystem* sys)
释放 MtmlSystem 不透明对象管理的资源,使其无法使用。
成员 MtmlPciInfo::busWidth
该值设为零。
模块文档
常量定义
宏
- #define MTML_LIBRARY_VERSION_BUFFER_SIZE 32
- #define MTML_DRIVER_VERSION_BUFFER_SIZE 80
- #define MTML_DEVICE_NAME_BUFFER_SIZE 32
- #define MTML_DEVICE_UUID_BUFFER_SIZE 48
- #define MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE 64
- #define MTML_DEVICE_VBIOS_VERSION_BUFFER_SIZE MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE
- #define MTML_DEVICE_PATH_BUFFER_SIZE 64
- #define MTML_DEVICE_PCI_SBDF_BUFFER_SIZE 32
- #define MTML_VIRT_TYPE_ID_BUFFER_SIZE 16
- #define MTML_VIRT_TYPE_CLASS_BUFFER_SIZE 32
- #define MTML_VIRT_TYPE_NAME_BUFFER_SIZE 32
- #define MTML_VIRT_TYPE_API_BUFFER_SIZE 16
- #define MTML_DEVICE_PCI_BUS_ID_FMT "%08X:%02X:%02X.0"
- #define MTML_LOG_FILE_PATH_BUFFER_SIZE 200
- #define MTML_MPC_PROFILE_NAME_BUFFER_SIZE 32
- #define MTML_MPC_CONF_NAME_BUFFER_SIZE 32
- #define MTML_MPC_CONF_MAX_PROF_NUM 16
- #define MTML_DEVICE_SLOT_NAME_BUFFER_SIZE 32
- #define MTML_MEMORY_VENDOR_BUFFER_SIZE 64
- #define MTML_DEVICE_SERIAL_NUMBER_BUFFER_SIZE 64
枚举
- MtmlReturn
enum MtmlReturn {
MTML_SUCCESS = 0,
MTML_ERROR_DRIVER_NOT_LOADED,
MTML_ERROR_DRIVER_FAILURE,
MTML_ERROR_INVALID_ARGUMENT,
MTML_ERROR_NOT_SUPPORTED,
MTML_ERROR_NO_PERMISSION,
MTML_ERROR_INSUFFICIENT_SIZE,
MTML_ERROR_NOT_FOUND,
MTML_ERROR_INSUFFICIENT_MEMORY,
MTML_ERROR_DRIVER_TOO_OLD,
MTML_ERROR_DRIVER_TOO_NEW,
MTML_ERROR_TIMEOUT,
MTML_ERROR_UNKNOWN = 999 }
- MtmlBrandType
enum MtmlBrandType {
MTML_BRAND_MTT = 0,
MTML_BRAND_UNKNOWN,
MTML_BRAND_COUNT }
- MtmlMemoryType
enum MtmlMemoryType {
MTML_MEM_TYPE_LPDDR4,
MTML_MEM_TYPE_GDDR6 }
- MtmlCodecType
enum MtmlCodecType {
MTML_CODEC_TYPE_AVC = 0,
MTML_CODEC_TYPE_VC1 = 1,
MTML_CODEC_TYPE_MPEG2 = 2,
MTML_CODEC_TYPE_MPEG4 = 3,
MTML_CODEC_TYPE_H263 = 4,
MTML_CODEC_TYPE_DIV3 = 5,
MTML_CODEC_TYPE_RV = 6,
MTML_CODEC_TYPE_AVS = 7,
MTML_CODEC_TYPE_RSVD1 = 8,
MTML_CODEC_TYPE_THO = 9,
MTML_CODEC_TYPE_VP3 = 10,
MTML_CODEC_TYPE_VP8 = 11,
MTML_CODEC_TYPE_HEVC = 12,
MTML_CODEC_TYPE_VP9 = 13,
MTML_CODEC_TYPE_AVS2 = 14,
MTML_CODEC_TYPE_RSVD2 = 15,
MTML_CODEC_TYPE_AV1 = 16,
MTML_CODEC_TYPE_COUNT }
- MtmlCodecSessionState
enum MtmlCodecSessionState {
MTML_CODEC_SESSION_STATE_UNKNOWN = -1,
MTML_CODEC_SESSION_STATE_IDLE = 0,
MTML_CODEC_SESSION_STATE_ACTIVE,
MTML_CODEC_SESSION_STATE_COUNT }
- MtmlVirtCapability
enum MtmlVirtCapability {
MTML_DEVICE_NOT_SUPPORT_VIRTUALIZATION = 0,
MTML_DEVICE_SUPPORT_VIRTUALIZATION }
- MtmlVirtRole
enum MtmlVirtRole {
MTML_VIRT_ROLE_NONE,
MTML_VIRT_ROLE_HOST_VIRTDEVICE,
MTML_VIRT_ROLE_COUNT }
- MtmlDeviceTopologyLevel
enum MtmlDeviceTopologyLevel {
MTML_TOPOLOGY_INTERNAL = 0,
MTML_TOPOLOGY_SINGLE = 1,
MTML_TOPOLOGY_MULTIPLE = 2,
MTML_TOPOLOGY_HOSTBRIDGE = 3,
MTML_TOPOLOGY_NODE = 4,
MTML_TOPOLOGY_SYSTEM = 5 }
- MtmlLogLevel
enum MtmlLogLevel {
MTML_LOG_LEVEL_OFF = 0,
MTML_LOG_LEVEL_FATAL,
MTML_LOG_LEVEL_ERROR,
MTML_LOG_LEVEL_WARNING,
MTML_LOG_LEVEL_INFO }
- MtmlMpcMode
enum MtmlMpcMode {
MTML_DEVICE_MPC_DISABLE = 0,
MTML_DEVICE_MPC_ENABLE }
- MtmlMpcCapability
enum MtmlMpcCapability {
MTML_DEVICE_NOT_SUPPORT_MPC = 0,
MTML_DEVICE_SUPPORT_MPC }
- MtmlMpcType
enum MtmlMpcType {
MTML_MPC_TYPE_NONE,
MTML_MPC_TYPE_PARENT,
MTML_MPC_TYPE_INSTANCE }
详细说明
本组介绍常量定义。
宏定义文档
MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE
#define MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE 64
建议的缓冲区大小(以字节为单位),保证足以容纳 MTBIOS 版本字符串(包括空结束符)。
MTML_DEVICE_NAME_BUFFER_SIZE
#define MTML_DEVICE_NAME_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足以容纳设备名称字符串(包括空结束符)。
MTML_DEVICE_PATH_BUFFER_SIZE
#define MTML_DEVICE_PATH_BUFFER_SIZE 64
建议的缓冲区大小(以字节为单位),保证足以容纳设备路径字符串(包括空结束符)。
MTML_DEVICE_PCI_BUS_ID_FMT
#define MTML_DEVICE_PCI_BUS_ID_FMT "%08X:%02X:%02X.0"
PCI BUS ID 的格式字符串。
MTML_DEVICE_PCI_SBDF_BUFFER_SIZE
#define MTML_DEVICE_PCI_SBDF_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足以容纳设备的 PCI SBDF 字符串(包括空结束符)。
MTML_DEVICE_SERIAL_NUMBER_BUFFER_SIZE
#define MTML_DEVICE_SERIAL_NUMBER_BUFFER_SIZE 64
建议的缓冲区大小(以字节为单位),保证足以容纳设备序列号的名称字符串(包括空结束符)。
MTML_DEVICE_SLOT_NAME_BUFFER_SIZE
#define MTML_DEVICE_SLOT_NAME_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足以容纳设备插槽名称的名称字符串(包括空结束符)。
MTML_DEVICE_UUID_BUFFER_SIZE
#define MTML_DEVICE_UUID_BUFFER_SIZE 48
建议的缓冲区大小(以字节为单位),保证足以容纳设备的 UUID 字符串(包括空结束符)。
MTML_DEVICE_VBIOS_VERSION_BUFFER_SIZE
#define MTML_DEVICE_VBIOS_VERSION_BUFFER_SIZE MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE
已停用:已更名为 MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE
MTML_DRIVER_VERSION_BUFFER_SIZE
#define MTML_DRIVER_VERSION_BUFFER_SIZE 80
建议的缓冲区大小(以字节为单位),保证足以容纳驱动程序版本字符串(包括空结束符)。
MTML_LIBRARY_VERSION_BUFFER_SIZE
#define MTML_LIBRARY_VERSION_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足以容纳 MTML 库版本字符串(包括空结束符)。
MTML_LOG_FILE_PATH_BUFFER_SIZE
#define MTML_LOG_FILE_PATH_BUFFER_SIZE 200
以字节为单位的推荐缓冲区大小,保证足够容纳文件路径的名称字符串(包括空结束符)。
MTML_MEMORY_VENDOR_BUFFER_SIZE
#define MTML_MEMORY_VENDOR_BUFFER_SIZE 64
建议的缓冲区大小(以字节为单位),保证足以容纳显存供应商的名称字符串(包括空结束符)。
MTML_MPC_CONF_MAX_PROF_NUM
#define MTML_MPC_CONF_MAX_PROF_NUM 16
表示当前配置可容纳的最大配置文件数量。
MTML_MPC_CONF_NAME_BUFFER_SIZE
#define MTML_MPC_CONF_NAME_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足以容纳配置名称的名称字符串(包括空结束符)。
MTML_MPC_PROFILE_NAME_BUFFER_SIZE
#define MTML_MPC_PROFILE_NAME_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足以容纳配置文件名称的名称字符串(包括空结束符)。
MTML_VIRT_TYPE_API_BUFFER_SIZE
#define MTML_VIRT_TYPE_API_BUFFER_SIZE 16
建议的缓冲区大小(以字节为单位),保证足以容纳虚拟化类型的 API 字符串(包括空结束符)。
MTML_VIRT_TYPE_CLASS_BUFFER_SIZE
#define MTML_VIRT_TYPE_CLASS_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足够容纳虚拟化类型的类字符串(包括空结束符)。
MTML_VIRT_TYPE_ID_BUFFER_SIZE
#define MTML_VIRT_TYPE_ID_BUFFER_SIZE 16
建议的缓冲区大小(以字节为单位),保证足够容纳虚拟化类型的 ID 字符串(包括空结束符)。
MTML_VIRT_TYPE_NAME_BUFFER_SIZE
#define MTML_VIRT_TYPE_NAME_BUFFER_SIZE 32
建议的缓冲区大小(以字节为单位),保证足够容纳虚拟化类型的名称字符串(包括空结束符)。
枚举类型文档
MtmlBrandType
enum MtmlBrandType
设备的品牌。
枚举器
| MTML_BRAND_MTT | MTT 系列 |
| MTML_BRAND_UNKNOWN | 未知品牌 |
| MTML_BRAND_COUNT | 品牌数量 |
MtmlCodecSessionState
enum MtmlCodecSessionState
视频编解码器会话状态。
MtmlCodecType
enum MtmlCodecType
视频编解码器类型。
枚举器
| MTML_CODEC_TYPE_RSVD1 | 无效数据 |
| MTML_CODEC_TYPE_RSVD2 | 无效数据 |
MtmlDeviceTopologyLevel
enum MtmlDeviceTopologyLevel
枚举器
| MTML_TOPOLOGY_INTERNAL | 内部创建的拓扑路径,例如单个 S2000 卡上的 2 台设备 |
| MTML_TOPOLOGY_SINGLE | 拓扑路径最多包含一个 PCIe 交换机/桥接器 |
| MTML_TOPOLOGY_MULTIPLE | 拓扑路径包含多个 PCIe 交换器/桥接器(但没有主机桥接器) |
| MTML_TOPOLOGY_HOSTBRIDGE | 拓扑路径包含 PCIe 交换机/桥接器以及单个主机桥接器 |
| MTML_TOPOLOGY_NODE | 拓扑路径包含 PCIe 交换机/桥接器以及 NUMA 节点内的多个主机桥接器 |
| MTML_TOPOLOGY_SYSTEM | 包含 PCIe 交换机/桥接器以及跨 NUMA 节点的多个主机桥接器的运行路径 |
MtmlLogLevel
enum MtmlLogLevel
所有支持的日志级别。
枚举器
| MTML_LOG_LEVEL_OFF | 禁用所有级别的日志 |
| MTML_LOG_LEVEL_FATAL | 非常严重的错误事件,可能会导致应用程序中止 |
| MTML_LOG_LEVEL_ERROR | 错误信息,但应用程序将继续运 行 |
| MTML_LOG_LEVEL_WARNING | 代表应用程序错误的信息,但应用程序将继续运行 |
| MTML_LOG_LEVEL_INFO | 主要用于表示当前的应用进展 |
MtmlMemoryType
enum MtmlMemoryType
显存类型。
| MTML_MEM_TYPE_LPDDR4 | 一种低功耗动态随机存取显存:LPDDR4 |
| MTML_MEM_TYPE_GDDR6 | 一种高带宽的图形显存:GDDR6 |
MtmlMpcCapability
enum MtmlMpcCapability
MPC 功能。
枚举器
| MTML_DEVICE_NOT_SUPPORT_MPC | 设备不具备 MPC 功能 |
| MTML_DEVICE_SUPPORT_MPC | 设备具 有 MPC 功能 |
MtmlMpcMode
enum MtmlMpcMode
MPC 模式。
枚举器
| MTML_DEVICE_MPC_DISABLE | 禁用 MPC 模式 |
| MTML_DEVICE_MPC_ENABLE | 启用 MPC 模式 |
MtmlMpcType
enum MtmlMpcType
mpc 设备的类别。
枚举器
| MTML_MPC_TYPE_NONE | 不支持或已禁用 MPC 功能的设备 |
| MTML_MPC_TYPE_PARENT | 可创建 MPC 实例的设备 |
| MTML_MPC_TYPE_INSTANCE | MPC 实例设备 |