MTML 2.4 API 参考
API 概览
MTML 2.4 C API 可用于发现、监控和管理摩尔线程 GPU 设备。本文档介绍 API 函数、参数、返回值、数据类型、数据结构、字段、兼容性宏和已弃用 API。
基本调用流程
- 使用
mtmlLibraryInit初始化库。 - 发现设备并获取设备句柄。
- 查询所需的系统、设备、字段值或 MtLink 信息。
- 必要时,使用
mtmlErrorString将返回的错误转换为可读文本。 - 使用
mtmlLibraryShutDown释放库资源。
您可以按 API 模块查找接口,也可以通过数据类型、数据结构、字段、兼容性宏和已弃用 API 索引定位具体条目。
查找 API
API 模块
- 亲和性函数
- 常量定义
- 设备函数
- 设备虚拟化函数
- 错误报告
- 功能结构定义
- GPU 函数
- 库函数
- 日志函数
- 内存函数
- MPC 函数
- MtLink 函数
- 不透明数据结构定义
- P2P 函数
- 系统函数
- VPU 函数
常量定义
- 该组引入了常量定义。
枚举
MtmlReturn
说明
- MTML API 调用的返回值。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_SUCCESS | = 0 | 操作成功。 |
MTML_ERROR_DRIVER_NOT_LOADED | = 1 | Moore Threads 驱动程序未加载。 |
MTML_ERROR_DRIVER_FAILURE | = 2 | 访问驱动程序失败。 |
MTML_ERROR_INVALID_ARGUMENT | = 3 | 提供的一个或多个参数无效。 |
MTML_ERROR_NOT_SUPPORTED | = 4 | 请求的操作在目标设备上不可用。 |
MTML_ERROR_NO_PERMISSION | = 5 | 当前用户没有操作权限。 |
MTML_ERROR_INSUFFICIENT_SIZE | = 6 | 用户分配的空间不足以容纳所请求的数据。 |
MTML_ERROR_NOT_FOUND | = 7 | 查找资源的查询失败。 |
MTML_ERROR_INSUFFICIENT_MEMORY | = 8 | 系统内存不足,无法完成操作。 |
MTML_ERROR_DRIVER_TOO_OLD | = 9 | 由于安装的驱动程序太旧,操作失败。 |
MTML_ERROR_DRIVER_TOO_NEW | = 10 | 由于安装的驱动程序太新,导致操作失败。 |
MTML_ERROR_TIMEOUT | = 11 | 用户提供的超时已过。 |
MTML_ERROR_RESOURCE_IS_BUSY | = 12 | 当前启动无效并被忽略。 |
MTML_ERROR_UNKNOWN | = 999 | 发生内部未指定错误。 |
MtmlBrandType
说明
- 设备的品牌。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_BRAND_MTT | = 0 | MTT系列。 |
MTML_BRAND_UNKNOWN | = 1 | 未知品牌。 |
MTML_BRAND_COUNT | = 2 | 品牌数量。 |
MtmlMemoryType
说明
- 内存类型。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MEM_TYPE_LPDDR4 | = 0 | |
MTML_MEM_TYPE_GDDR6 | = 1 |
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 | = 17 |
MtmlCodecSessionState
说明
- 视频编解码器会话状态。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_CODEC_SESSION_STATE_UNKNOWN | = -1 | |
MTML_CODEC_SESSION_STATE_IDLE | = 0 | |
MTML_CODEC_SESSION_STATE_ACTIVE | = 1 | |
MTML_CODEC_SESSION_STATE_COUNT | = 2 |
MtmlVirtCapability
说明
- 虚拟化能力。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_DEVICE_NOT_SUPPORT_VIRTUALIZATION | = 0 | 该设备不支持虚拟化。 |
MTML_DEVICE_SUPPORT_VIRTUALIZATION | = 1 | 该设备支持虚拟化。 |
MtmlVirtRole
说明
- 虚拟设备的作用。
枚举值
| 值 | 初始 值 | 说明 |
|---|---|---|
MTML_VIRT_ROLE_NONE | = 0 | 该设备不是虚拟设备或其虚拟化角色未知。 |
MTML_VIRT_ROLE_HOST_VIRTDEVICE | = 1 | 该设备是在主机操作系统上可见的虚拟设备。 |
MTML_VIRT_ROLE_GUEST_VIRTDEVICE | = 2 | 物理设备的类型。此角色仅在主机操作系统中报告。该设备是在来宾操作系统上可见的虚拟设备 |
MTML_VIRT_ROLE_COUNT | = 3 | 虚拟化角色的数量。 |
MtmlDeviceTopologyLevel
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_TOPOLOGY_INTERNAL | = 0 | 内部创建的拓扑路径,例如单个 S2000 卡上的 2 个设备。 |
MTML_TOPOLOGY_SINGLE | = 1 | 最多包含一个 PCIe 交换机/桥的拓扑路径。 |
MTML_TOPOLOGY_MULTIPLE | = 2 | 包含多个 PCIe 交换机/桥(但没有主桥)的拓扑路径。 |
MTML_TOPOLOGY_HOSTBRIDGE | = 3 | 包含 PCIe 交换机/桥以及单个主桥的拓扑路径。 |
MTML_TOPOLOGY_NODE | = 4 | 包含 PCIe 交换机/桥以及 NUMA 节点内的多个主机桥的拓扑路径。 |
MTML_TOPOLOGY_SYSTEM | = 5 | 包含 PCIe 交换机/桥以及跨 NUMA 节点的多个主机桥的拓扑路径。 |
MtmlLogLevel
说明
- 所有支持的日志级别。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_LOG_LEVEL_OFF | = 0 | 所有级别的日志均已禁用。 |
MTML_LOG_LEVEL_FATAL | = 1 | 非常严重的错误事件,可能会导致应用程序中止。 |
MTML_LOG_LEVEL_ERROR | = 2 | 错误信息但会继续应用程序继续运行。 |
MTML_LOG_LEVEL_WARNING | = 3 | 表示应用程序中出现错误的信息,但应用程序将继续运行。 |
MTML_LOG_LEVEL_INFO | = 4 | 主要用于表示当前应用程序的进度。 |
MtmlMpcMode
说明
- MPC 模式。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_DEVICE_MPC_DISABLE | = 0 | 禁用多主核心模式。 |
MTML_DEVICE_MPC_ENABLE | = 1 | 启用多主核心模式。 |
MtmlMpcCapability
说明
- MPC 能力。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_DEVICE_NOT_SUPPORT_MPC | = 0 | 该设备不具备 MPC 能力。 |
MTML_DEVICE_SUPPORT_MPC | = 1 | 该设备具有 MPC 能力。 |
MtmlMpcType
说明
- mpc 设备的作用。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MPC_TYPE_NONE | = 0 | 不支持或已禁用 MPC 功能的设备。 |
MTML_MPC_TYPE_PARENT | = 1 | 可以从中创建 MPC 实例的设备。 |
MTML_MPC_TYPE_INSTANCE | = 2 | MPC 实例设备。 |
宏
MTML_LIBRARY_VERSION_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳 MTML 库版本字符串(包括空终止符)。
MTML_DRIVER_VERSION_BUFFER_SIZE
- 初始值:
80
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳驱动程序版本字符串(包括空终止符)。
MTML_DEVICE_NAME_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳设备名称字符串(包含 null 终止符)。
MTML_DEVICE_UUID_BUFFER_SIZE
- 初始值:
48
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳设备的 UUID 字符串(包括空终止符)。
MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE
- 初始值:
64
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳 MTBIOS 版本字符串(包括空终止符)。
MTML_DEVICE_VBIOS_VERSION_BUFFER_SIZE
- 初始值:
MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE
注
MTML_DEVICE_PATH_BUFFER_SIZE
- 初始值:
64
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳设备路径字符串(包括空终止符)。
MTML_DEVICE_PCI_SBDF_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳设备的 PCI SBDF 字符串(包含 null 终止符)。
MTML_VIRT_TYPE_ID_BUFFER_SIZE
- 初始值:
16
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳虚拟化类型的 ID 字符串(包括空终止符)。
MTML_VIRT_TYPE_CLASS_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳虚拟化类型的类字符串(包括空终止符)。
MTML_VIRT_TYPE_NAME_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳虚拟化类型的名称字符串(包括空终止符)。
MTML_VIRT_TYPE_API_BUFFER_SIZE
- 初始值:
16
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳虚拟化类型的 API 字符串(包括空终止符)。
MTML_DEVICE_PCI_BUS_ID_FMT
- 初始值:
"%08X:%02X:%02X.0"
说明
- PCI 总线 ID 的格式字符串。
MTML_LOG_FILE_PATH_BUFFER_SIZE
- 初始值:
200
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳文件路径的名称字符串(包含 null 终止符)。
MTML_MPC_PROFILE_NAME_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳配置文件名称的名称字符串(包括空终止符)。
MTML_MPC_CONF_NAME_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳配置名称的名称字符串(包括空终止符)。
MTML_MPC_CONF_MAX_PROF_NUM
- 初始值:
16
说明
- 指示当前配置中可以容纳的最大配置文件数量。
MTML_DEVICE_SLOT_NAME_BUFFER_SIZE
- 初始值:
32
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳设备插槽名称的名称字符串(包括空终止符)。
MTML_MEMORY_VENDOR_BUFFER_SIZE
- 初始值:
64
说明
- 建议的缓冲区大小(以字节为单位)保证足以容纳内存供应商的名称字符串(包括空终止符)。
MTML_DEVICE_SERIAL_NUMBER_BUFFER_SIZE
- 初始值:
64
说明
- 建议的缓冲区大 小(以字节为单位)保证足以容纳设备序列号的名称字符串(包括空终止符)。
功能结构定义
- 本组介绍功能结构。
数据结构
MtmlPciInfoMtmlPciSlotInfoMtmlPcieBar2MemoryInfoMtmlCodecUtilMtmlCodecSessionMetricsMtmlVirtTypeMtmlDevicePropertyMtmlLogConfigurationMtmlMpcProfileMtmlMpcConfigurationMtmlMtLinkSpecMtmlMtLinkLayoutMtmlDispIntfSpecMtmlPageRetirementCountMtmlPageRetirementMtmlPageRetirementPending
枚举
MtmlDeviceP2PStatus
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_P2P_STATUS_OK | = 0 | |
MTML_P2P_STATUS_CHIPSET_NOT_SUPPORTED | = 1 | |
MTML_P2P_STATUS_GPU_NOT_SUPPORTED | = 2 | |
MTML_P2P_STATUS_UNKNOWN | = 3 |
MtmlDeviceP2PCaps
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_P2P_CAPS_READ | = 0 | |
MTML_P2P_CAPS_WRITE | = 1 |
MtmlMtLinkState
说明
- MtLink 连接的可能状态。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MTLINK_STATE_DOWN | = 0 | 该链路处于非活动状态。 |
MTML_MTLINK_STATE_UP | = 1 | 该链路处于活动状态。 |
MTML_MTLINK_STATE_DOWNGRADE | = 2 | 该链路已降级。 |
MtmlMtLinkCap
说明
- MtLink 连接的能力。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MTLINK_CAP_P2P_ACCESS | = 0 | 点对点设备访问。 |
MTML_MTLINK_CAP_P2P_ATOMICS | = 1 | 支持 P2P 原子。 |
MTML_MTLINK_CAP_COUNT | = 2 |
MtmlMtLinkCapStatus
说明
- MtLink 能力的状态。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MTLINK_CAP_STATUS_NOT_SUPPORTED | = 0 | |
MTML_MTLINK_CAP_STATUS_OK | = 1 |
MtmlMtLinkCapability
说明
- MtLink 设备的能力。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_DEVICE_NOT_SUPPORT_MTLINK | = 0 | 该设备不支持 MtLink 能力。 |
MTML_DEVICE_SUPPORT_MTLINK | = 1 | 该设备支持 MtLink 能力。 |
MtmlDispIntfType
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_DISP_INTF_TYPE_DP | = 0 | |
MTML_DISP_INTF_TYPE_EDP | = 1 | |
MTML_DISP_INTF_TYPE_VGA | = 2 | |
MTML_DISP_INTF_TYPE_HDMI | = 3 | |
MTML_DISP_INTF_TYPE_LVDS | = 4 | |
MTML_DISP_INTF_TYPE_MAX | = 5 |
MtmlGpuEngine
说明
- GPU 引擎。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_GPU_ENGINE_GEOMETRY | = 0 | |
MTML_GPU_ENGINE_2D | = 1 | |
MTML_GPU_ENGINE_3D | = 2 | |
MTML_GPU_ENGINE_COMPUTE | = 3 | |
MTML_GPU_ENGINE_MAX | = 4 |
MtmlEccMode
说明
- ECC 模式。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MEMORY_ECC_DISABLE | = 0 | 禁用内存 ECC 模式。 |
MTML_MEMORY_ECC_ENABLE | = 1 | 启用内存 ECC 模式。 |
MtmlPageRetirementCause
说明
- 页面停用的原因
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_PAGE_RETIREMENT_CAUSE_MULTIPLE_SINGLE_BIT_ECC_ERRORS | = 0 | 由于多个单比特 ECC 错误,页面已停用。 |
MTML_PAGE_RETIREMENT_CAUSE_DOUBLE_BIT_ECC_ERROR | = 1 | 由于双比特 ECC 错误,页面已停用。 |
MTML_PAGE_RETIREMENT_CAUSE_MAX | = 2 |
MtmlRetiredPagesPendingState
说明
- 停用页面待处理状态枚举。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_RETIRED_PAGES_PENDING_STATE_FALSE | = 0 | |
MTML_RETIRED_PAGES_PENDING_STATE_TRUE | = 1 |
MtmlEccCounterType
说明
- ECC 计数器类型。
- 注意:每次驱动程序加载时,易失性计数都会重置。在 Windows 上,每次启动都会执行一次。在 Linux 上,这种情况可能更频繁。开启持久化模式后,聚合计数会持续存在。
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_VOLATILE_ECC | = 0 | 每次驱动程序加载时,易失性计数都会重置。 |
MTML_AGGREGATE_ECC | = 1 | 重新启动后聚合计数仍然存在(即在设备的生命周期内) |
MTML_ECC_COUNTER_TYPE_COUNT | = 2 | 内存计数器类型的数量。 |
MtmlMemoryErrorType
说明
- 内存错误类型
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MEMORY_ERROR_TYPE_CORRECTED | = 0 | 已更正的内存错误 对于 ECC 错误,这些是单比特错误 |
MTML_MEMORY_ERROR_TYPE_UNCORRECTED | = 1 | 未纠正的内存错误 对于 ECC 错误,这些是双比特错误 |
MTML_MEMORY_ERROR_TYPE_COUNT | = 2 | 内存错误类型的数量。 |
MtmlMemoryLocation
说明
枚举值
| 值 | 初始值 | 说明 |
|---|---|---|
MTML_MEMORY_LOCATION_DRAM | = 0x1 | 动态随机存储器。 |
不透明数据结构定义
- 该组引入了不透明数据结构。
类型别名
MtmlGpu
typedef struct MtmlGpu MtmlGpu
说明
- GPU 不透明数据结构。
MtmlMemory
typedef struct MtmlMemory MtmlMemory
说明
- 内存不透明数据结构。
MtmlVpu
typedef struct MtmlVpu MtmlVpu
说明
- VPU 不透明数据结构。
MtmlDevice
typedef struct MtmlDevice MtmlDevice
说明
- 设备不透明数据结构。
MtmlSystem
typedef struct MtmlSystem MtmlSystem
说明
- 系统不透明数据结构。
MtmlLibrary
typedef struct MtmlLibrary MtmlLibrary
说明
- 库不透明数据结构。
库函数
- 本组介绍库函数。
mtmlLibraryInit
MtmlReturn MTML_API mtmlLibraryInit(MtmlLibrary **lib)
说明
- 初始化库不透明对象并准备资源。成功后,初始化的对象可用于进一步访问其他功能。库不透明对象是顶层入口点,用户代码可以通过该入口点访问 MTML 库提供的其他函数。
- 适用于所有产品。
- 输出数据由MTML 库内部分配。当不再需要时,使用
mtmlLibraryShutDown()释放其资源。如果通过多次调用此 API 来初始化多个 MtmlLibrary 指针,则在使用这些指针进行相应次数的mtmlLibraryShutDown()调用之前,库不会关闭。使用mtmlLibraryShutDown()API 释放 MtmlLibrary 指针的顺序不一定必须与使用 API 初始化它们的顺序匹配。
参数
lib(MtmlLibrary**): [out] 指向已分配和初始化的库不透明 对象的双指针。
mtmlLibraryShutDown
MtmlReturn MTML_API mtmlLibraryShutDown(MtmlLibrary *lib)
说明
- 关闭先前由
mtmlLibraryInit()初始化的库不透明对象并释放其资源。该函数返回后,lib 指针将无法再使用。 - 适用于所有产品。
- 内部资源由全局所有库不透明对象共享。因此,要彻底关闭库,通过先前的
mtmlLibraryInit()API 调用返回的所有库不透明对象应分别传递给此 API。
参数
lib(MtmlLibrary*): [in] 指向需要关闭的库不透明对象的指针。
mtmlLibraryGetVersion
MtmlReturn MTML_API mtmlLibraryGetVersion(const MtmlLibrary *lib, char *version, unsigned int length)
说明
- 检索指定 MtmlLibrary 不透明数据的版本。
- 适用于所有产品。
- 版本标识符是字母数字字符串并保证为空终止符。
参数
lib(constMtmlLibrary*): [in] 指向库不透明数据的指针。version(char *): [out] 返回版本标识符的引用。length(unsigned int): [in] version 指向的缓冲区的长度。请参阅MTML_LIBRARY_VERSION_BUFFER_SIZE
mtmlLibraryInitSystem
MtmlReturn MTML_API mtmlLibraryInitSystem(const MtmlLibrary *lib, MtmlSystem **sys)
说明
- 初始化绑定到库不透明对象的 MtmlSystem 不透明指针。
- 适用于所有 产品。
- 初始化的MtmlSystem不透明对象可以与系统相关的函数一起使用。
参数
lib(constMtmlLibrary*): [in] 指向库不透明数据的指针。sys(MtmlSystem**): [out] 指向应分配和初始化的系统不透明数据的双指针。
mtmlLibraryFreeSystem
MtmlReturn MTML_API mtmlLibraryFreeSystem(MtmlSystem *sys)
说明
- 适用于所有产品。
参数
sys(MtmlSystem*): [in] 指向应释放的系统不透明对象的指针。
注
- 已弃用:释放 MtmlSystem 不透明对象 管理的资源并使其不可用。
mtmlLibraryCountDevice
MtmlReturn MTML_API mtmlLibraryCountDevice(const MtmlLibrary *lib, unsigned int *count)
说明
- 检索库不透明对象可以访问的设备数量。
参数
lib(constMtmlLibrary*): [in] 指向库不透明对象的指针。count(unsigned int *): [out] 返回可访问设备数量的引 用。
mtmlLibraryInitDeviceByIndex
MtmlReturn MTML_API mtmlLibraryInitDeviceByIndex(const MtmlLibrary *lib, unsigned int index, MtmlDevice **dev)
说明
- 初始化一个设备不透明对象来表示由其索引指定的设备。索引范围从 (0) 到 (deviceCount - 1),其中 deviceCount 是从
mtmlLibraryCountDevice()检索的。 - 适用于所有产品。
- 初始化的设备不透明对象可以与设备相关的函数一起使用。
参数
lib(constMtmlLibrary*): [in] 指向库不透明对象的指针。index(unsigned int): [in] 目标设备的索引。dev(MtmlDevice**): [out] 指向应分配和初始化的设备不透明对象的双指针。
另请参阅
mtmlLibraryInitDeviceByUuid
MtmlReturn MTML_API mtmlLibraryInitDeviceByUuid(const MtmlLibrary *library, const char *uuid, MtmlDevice **dev)
说明
- 初始化一个设备不透明对象来表示由其 UUID 指定的设备。有关设备 UUID 的更多信息,请参阅
mtmlDeviceGetUUID()。 - 适用于所有产品。
- 初始化的设备不透明对象可以与设备相关的函数一起使用。
参数
library(constMtmlLibrary*):[in] 指向库不透明对象的指针。uuid(const char *): [in] 目标设备的 UUID。dev(MtmlDevice**): [out] 指向应分配和初始化的设备不透明对象的双指针。
mtmlLibraryInitDeviceByPciSbdf
MtmlReturn MTML_API mtmlLibraryInitDeviceByPciSbdf(const MtmlLibrary *lib, const char *pciSbdf, MtmlDevice **dev)
说明
- 初始化一个设备不透明对象来表示由其 PCI Sbdf 指定的设备。 PCI Sbdf 格式如 00000000:3a:00.0,请参阅
MtmlPciInfo::sbdf。 - 适用于所有产品。
参数
lib(constMtmlLibrary*): [in] 指向库不透明对象的指针。pciSbdf(const char *): [in] 目标设备的 PCI 总线 ID。dev(MtmlDevice**):[out] 用于返回设备句柄的引用。
mtmlLibrarySetMpcConfigurationInBatch
MtmlReturn MTML_API mtmlLibrarySetMpcConfigurationInBatch(const MtmlLibrary *lib, unsigned int count, MtmlDevice **devices, unsigned int *mpcConfigIds)
说明
- 一次性为多个设备设置 MPC 配置。如果在任何支持的设备上禁用 MPC 模式,则此功能将在应用配置之前启用它。此函数可能需要相对较长的时间才能成功返回,在此期间任何其他并发操作都可能会遇到失败或未定义的行为。因此,建议在调用此函数之前暂停任何其他 API 调用。如果批量中的任何设备配置 MPC 模式失败,此函数将尝试将之前的设备回滚到 MPC 禁用状态。
- 重要: 调用此函数后,库分配的所有不透明指针(MtmlDevice、MtmlGpu 等,但不包括 MtmlLibrary 指针本身)将变得无效。继续使用这些指针是未定义的行为。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 中受支持。
参数
lib(constMtmlLibrary*): [in] 指向库不透明对象的指针。count(unsigned int): [in] 设备的大小。devices(MtmlDevice**): [in] 目标设备的标识符。mpcConfigIds(unsigned int *): [in] 设备 的 MPC 配置 ID。
mtmlLibraryFreeDevice
MtmlReturn MTML_API mtmlLibraryFreeDevice(MtmlDevice *dev)
说明
- 适用于所有产品。
参数
dev(MtmlDevice*): [in] 指向应释放的设备不透明对象的指针。
注
- 已弃用:释放设备不透明对象管理的资源并使其不可用。
系统函数
- 本组介绍系统功能。
mtmlSystemGetDriverVersion
MtmlReturn MTML_API mtmlSystemGetDriverVersion(const MtmlSystem *sys, char *version, unsigned int length)
说明
- 检索当前平台上安装的驱动程序的版本。
- 适用于所有产品。
- 版本标识符是字母数字字符串。
参数
sys(constMtmlSystem*): [in] 指向系统不透明对象的指针。version(char *): [out] 返回版本标识符的引用。length(unsigned int): [in] version 指向的缓冲区大小。请参阅MTML_DRIVER_VERSION_BUFFER_SIZE。
设备函数
- 本组介绍设备功能。
mtmlDeviceInitGpu
MtmlReturn MTML_API mtmlDeviceInitGpu(const MtmlDevice *dev, MtmlGpu **gpu)
说明
- 初始化 GPU 不透明对象来表示目标设备上由其索引指定的特定图形核心。
- 适用于所有产品。
- 初始化的GPU不透明对象可以与GPU相关的函数一起使用。
参数
dev(constMtmlDevice*): [in] 指向设备不透明对象的指针。gpu(MtmlGpu**): [out] 指向应分配和初始化的 GPU 不透明对象的双指针。
mtmlDeviceFreeGpu
MtmlReturn MTML_API mtmlDeviceFreeGpu(MtmlGpu *gpu)
参数
gpu(MtmlGpu*): [in] 指向应释放的 GPU 不透明对象的指针。
注
- 已弃用:由 GPU 不透明对象管理的资源并使其不可用。
mtmlDeviceInitMemory
MtmlReturn MTML_API mtmlDeviceInitMemory(const MtmlDevice *dev, MtmlMemory **mem)
说明
- 初始化一个内存不透明对象来表示目标设备上的内存。
- 适用于所有产品。
- 初始化的内存不透明对象可以与内存相关的函数一起使用。
参数
dev(constMtmlDevice*): [in] 指向设备不透明对象的指针。mem(MtmlMemory**): [out] 指向应分配和初始化的内存不透明对象的双指针。
mtmlDeviceFreeMemory
MtmlReturn MTML_API mtmlDeviceFreeMemory(MtmlMemory *mem)
说明
- 适用于所有产品。
参数
mem(MtmlMemory*): [in] 指向应释放的内存不透明对象的指针。
注
- 已弃用:由内存不透明对象管理的资源并使其不可用。
mtmlDeviceInitVpu
MtmlReturn MTML_API mtmlDeviceInitVpu(const MtmlDevice *dev, MtmlVpu **vpu)
说明
- 初始化 VPU 不透明对象来表示目标设备上的视频编解码器。
- 适用于所有产品。
- 初始化的VPU不透明对象可以与编解码器相关的函数一起使用。
参数
dev(constMtmlDevice*): [in] 指向设备不透明对象的指针。vpu(MtmlVpu**): [out] 指向应分配和初始化的内存不透明对象的双指针。
mtmlDeviceFreeVpu
MtmlReturn MTML_API mtmlDeviceFreeVpu(MtmlVpu *vpu)
说明
- 适用于所有产品。
参数
vpu(MtmlVpu*): [in] 指向应释放的 VPU 不透明对象的指针。
注
- 已弃用:由 VPU 不透明对象管理的资源并使其不可用。
mtmlDeviceGetIndex
MtmlReturn MTML_API mtmlDeviceGetIndex(const MtmlDevice *dev, unsigned int *index)
说明
- 检索与指定设备关联的索引。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向设备不透明对象的指针。index(unsigned int *): [out] 目标设备的索引。
mtmlDeviceGetUUID
MtmlReturn MTML_API mtmlDeviceGetUUID(const MtmlDevice *dev, char *uuid, unsigned int length)
说明
- 检索指定设备的 UUID。 UUID 是一个十六进制字符串,格式为 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个“x”是代表十六进制数字的 ASCII 字符。 UUID 对于每个设备来说都是全局唯一的,因此可用于物理上识别不同的设备。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 目标设备的标识符。uuid(char *): [out] 返回 UUID 的引用。length(unsigned int): [in] uuid 指向的缓冲区的大小。请参阅MTML_DEVICE_UUID_BUFFER_SIZE。
mtmlDeviceGetBrand
MtmlReturn MTML_API mtmlDeviceGetBrand(const MtmlDevice *dev, MtmlBrandType *type)
说明
- 检索设备的品牌。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。type(MtmlBrandType*): [out] 返回产品品牌类型的引用。请参阅MtmlBrandType。
mtmlDeviceGetName
MtmlReturn MTML_API mtmlDeviceGetName(const MtmlDevice *dev, char *name, unsigned int length)
说明
- 检索设备的名称。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。name(char *): [out] 返回产品名称的引用。length(unsigned int): [in] name 指向的缓冲区的大小。请参阅MTML_DEVICE_NAME_BUFFER_SIZE。
mtmlDeviceGetPciInfo
MtmlReturn MTML_API mtmlDeviceGetPciInfo(const MtmlDevice *dev, MtmlPciInfo *pci)
说明
- 检索设备的 PCI 属性。
- 适用于所有产品。
- 有关可用 PCI 信息的详细信息,请参阅
MtmlPciInfo。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。pci(MtmlPciInfo*): [out] 返回 PCI 信息的引用。
mtmlDeviceGetPowerUsage
MtmlReturn MTML_API mtmlDeviceGetPowerUsage(const MtmlDevice *dev, unsigned int *power)
说明
- 检索设备的用电量(以毫瓦为单位)(mW) 及其相关电路。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。power(unsigned int *): [out] 返回电量使用信息的引用。
mtmlDeviceGetGpuPath
MtmlReturn MTML_API mtmlDeviceGetGpuPath(const MtmlDevice *dev, char *path, unsigned int length)
说明
- 检索设备的 GPU 路径。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。path(char *): [out] 返回目标设备路径的引用。length(unsigned int): [in] path 指向的缓冲区的大小。请参阅MTML_DEVICE_PATH_BUFFER_SIZE。
mtmlDeviceGetPrimaryPath
MtmlReturn MTML_API mtmlDeviceGetPrimaryPath(const MtmlDevice *dev, char *path, unsigned int length)
说明
- 检索设备的主路径。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。path(char *): [out] 返回目标设备路径的引用。length(unsigned int): [in] path 指向的缓冲区的大小。请参阅MTML_DEVICE_PATH_BUFFER_SIZE。
mtmlDeviceGetRenderPath
MtmlReturn MTML_API mtmlDeviceGetRenderPath(const MtmlDevice *dev, char *path, unsigned int length)
说明
- 检索设备的渲染路径。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。path(char *): [out] 返回目标设备路径的引用。length(unsigned int): [in] path 指向的缓冲区的大小。请参阅MTML_DEVICE_PATH_BUFFER_SIZE。
mtmlDeviceGetVbiosVersion
MtmlReturn MTML_API mtmlDeviceGetVbiosVersion(const MtmlDevice *dev, char *version, unsigned int length)
说明
- 检索设备 VBIOS 的版本。
- 适用于所有产品。
- 版本标识符是字母数字字符串。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。version(char *): [out] 返回版本标识符的引用。length(unsigned int): [in] version 指向的缓冲区的大小。请参阅MTML_DEVICE_VBIOS_VERSION_BUFFER_SIZE。
注
- 已弃用:重命名为
mtmlDeviceGetMtBiosVersion,因为该名称更准确地描述了情况。
mtmlDeviceGetMtBiosVersion
MtmlReturn MTML_API mtmlDeviceGetMtBiosVersion(const MtmlDevice *dev, char *version, unsigned int length)
说明
- 检索设备的 MTBIOS 固件版本。
- 适用于所有产品。
- 版本标识符是字母数字字符串。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。version(char *): [out] 返回版本标识符的引用。length(unsigned int): [in] version 指向的缓冲区的大小。请参阅MTML_DEVICE_MTBIOS_VERSION_BUFFER_SIZE。
mtmlDeviceGetProperty
MtmlReturn MTML_API mtmlDeviceGetProperty(const MtmlDevice *dev, MtmlDeviceProperty *prop)
说明
- 检索设备的属性。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。prop(MtmlDeviceProperty*): [out] 返回目标设备属性的引用。
mtmlDeviceCountFan
MtmlReturn MTML_API mtmlDeviceCountFan(const MtmlDevice *dev, unsigned int *count)
参数
dev(constMtmlDevice*): [in] 目标设备的指针。count(unsigned int *): [out] 返回风扇数量的引用。
注
- 返回的值是设备上风扇控制通道的数量。
mtmlDeviceGetFanSpeed
MtmlReturn MTML_API mtmlDeviceGetFanSpeed(const MtmlDevice *dev, unsigned int index, unsigned int *speed)
说明
- 检索设备指定风扇的预期运行速度。报告的速度是预期的风扇速度。如果风扇被物理堵塞并且无法旋转,则输出将与实际风扇速度不匹配。
- 适用于所有带有专用风扇的分立产品。
- 风扇速度以产品最大噪声容限风扇速度的百分比表示。在某些情况下,该值可能会超过 100%。
参数
dev(constMtmlDevice*): [in] 目标设备的指针。index(unsigned int): [in] 目标风扇的索引,零索引。speed(unsigned int *): [out] 返回风扇速度百分比的引用。
mtmlDeviceGetFanRpm
MtmlReturn MTML_API mtmlDeviceGetFanRpm(const MtmlDevice *dev, unsigned int fanIndex, unsigned int *fanRpm)
说明
- 检索设备指定风扇的预期运行速度。报告的速度是预期的风扇速度。如果风扇被物理堵塞并且无法旋转,则输出将与实际风扇速度不匹配。
- 适用于所有带有专用风扇的分立产品。
- 风扇速度是实时速度值,表示每分钟转数(rpm)。
参数
dev(constMtmlDevice*): [in] 目标设备的指针。fanIndex(unsigned int): [in] 目标风扇的索引,零索引。fanRpm(unsigned int *): [out] 返回风扇实际速度的引用。
mtmlDeviceGetPcieSlotInfo
MtmlReturn MTML_API mtmlDeviceGetPcieSlotInfo(const MtmlDevice *dev, MtmlPciSlotInfo *slotInfo)
说明
- 检索指定设备所连接的 PCIe 接口的物理插槽信息。
参数
dev(constMtmlDevice*): [in] 指向设备不透明数据的指针。slotInfo(MtmlPciSlotInfo*): [out] 返回插槽信息的引用。
mtmlDeviceGetPcieBar2MemoryInfo
MtmlReturn MTML_API mtmlDeviceGetPcieBar2MemoryInfo(const MtmlDevice *dev, MtmlPcieBar2MemoryInfo *bar2MemInfo)
说明
- 获取 BAR2 内存的可用字节数、总字节数和已用字节数。 BAR2用于映射FB(设备内存),以便CPU或第3方设备(PCIE总线上的点对点)可以直接访问它。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向设备不透明数据的指针。bar2MemInfo(MtmlPcieBar2MemoryInfo*): [out] 指向 bar2MemInfo 的指针。请参阅MtmlPcieBar2MemoryInfo。
mtmlDeviceCountDisplayInterface
MtmlReturn MTML_API mtmlDeviceCountDisplayInterface(const MtmlDevice *device, unsigned int *count)
说明
- 检索指定设备的显示接口数量。
- 适用于所有产品。
参数
device(constMtmlDevice*): [in] 指向设备不透明数据的指针。count(unsigned int *): [out] 返回数字的引用。
mtmlDeviceGetDisplayInterfaceSpec
MtmlReturn MTML_API mtmlDeviceGetDisplayInterfaceSpec(const MtmlDevice *device, unsigned int intfIndex, MtmlDispIntfSpec *dispIntfSpec)
说明
- 检索设备指定显示接口的规格数据。
- 适用于所有产品。
参数
device(constMtmlDevice*): [in] 指向设备不透明数据的指针。intfIndex(unsigned int): [in] 要查询的显示接口的索引。dispIntfSpec(MtmlDispIntfSpec*): [out] 返回规范数据的引用。
mtmlDeviceGetSerialNumber
MtmlReturn MTML_API mtmlDeviceGetSerialNumber(const MtmlDevice *device, unsigned int length, char *serialNumber)
说明
- 检索指定设备的序列号。
- 适用于所有产品。
参数
device(constMtmlDevice*): [in] 指向设备不透明数据的指针。length(unsigned int): [in] serial 数字缓冲区的大小(以字节为单位)。请参阅MTML_DEVICE_SERIAL_NUMBER_BUFFER_SIZE。serialNumber(char *): [out] 返回序列号的引用。
mtmlDeviceCountGpuCores
MtmlReturn MTML_API mtmlDeviceCountGpuCores(const MtmlDevice *device, unsigned int *numCores)
说明
- 获取设备的核心数量。
参数
device(constMtmlDevice*): [in] 目标设备的标识符。numCores(unsigned int *): [out] 指定设备的核心数量。
设备虚拟化函数
- 本组介绍设备虚拟化功能。
mtmlDeviceCountSupportedVirtTypes
MtmlReturn MTML_API mtmlDeviceCountSupportedVirtTypes(const MtmlDevice *dev, unsigned int *count)
说明
- 获取虚拟化设备支持的所有虚拟化类型的数量。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。count(unsigned int *): [out] 返回支持的虚拟化类型数量的引用。
mtmlDeviceGetSupportedVirtTypes
MtmlReturn MTML_API mtmlDeviceGetSupportedVirtTypes(const MtmlDevice *dev, MtmlVirtType *types, unsigned int count)
说明
- 获取可虚拟化设备支持的虚拟化类型列表。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。types(MtmlVirtType*): [out] 返回支持的虚拟化类型的引用。count(unsigned int): [in] types 指向的数组的大小。
mtmlDeviceCountAvailVirtTypes
MtmlReturn MTML_API mtmlDeviceCountAvailVirtTypes(const MtmlDevice *dev, unsigned int *count)
说明
- 获取可虚拟化设备的虚拟化类型数量,可以从中创建虚拟设备。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。count(unsigned int *): [out] 返回可用虚拟化类型数量的引用 。
mtmlDeviceGetAvailVirtTypes
MtmlReturn MTML_API mtmlDeviceGetAvailVirtTypes(const MtmlDevice *dev, MtmlVirtType *types, unsigned int count)
说明
- 获取可虚拟化设备的虚拟化类型列表,可以从中创建虚拟设备。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。types(MtmlVirtType*): [out] 返回可用虚拟化类型的引用。count(unsigned int): [in] types 指向的数组的大小。
mtmlDeviceCountAvailVirtDevices
MtmlReturn MTML_API mtmlDeviceCountAvailVirtDevices(const MtmlDevice *dev, const MtmlVirtType *type, unsigned int *count)
说明
- 获取可从虚拟化设备支持的指定虚拟化类型创建的虚拟设备的数量。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。type(constMtmlVirtType*): [in] 指定的虚拟化类型。count(unsigned int *): [out] 返回可用虚拟化类型数量的引用。
mtmlDeviceCountActiveVirtDevices
MtmlReturn MTML_API mtmlDeviceCountActiveVirtDevices(const MtmlDevice *dev, unsigned int *count)
说明
- 获取在可虚拟设备上创建的活动虚拟设备的数量。如果虚拟设备已根据其虚拟化类型分配了资源,则该虚拟设备处于活动状态。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。count(unsigned int *): [out] 返回活动虚拟设备数量的引用。
mtmlDeviceGetActiveVirtDeviceUuids
MtmlReturn MTML_API mtmlDeviceGetActiveVirtDeviceUuids(const MtmlDevice *dev, char *uuids, unsigned int entryLength, unsigned int entryCount)
说明
- 获取在可虚拟设备上创建的所有活动虚拟设备的 UUIDs 列表。UUID 字符串在 uuids 参数中输出,该参数应指向一个连续内存块 ,其大小足以容纳所有内容。内存块由一系列首尾相接的缓冲区(条目)组成,每个缓冲区大小为 entryLength 字节。缓冲区数量由 entryCount 定义,因此 uuids 指向的内存块总大小应大于或等于 entryLength * entryCount。每个缓冲区用于保存一个以空字符结尾的 UUID 字符串;调用方必须确保缓冲区数量足以保存所有 UUID 字符串,且每个缓冲区大小足以保存一个 UUID 字符串。若 entryCount 大于活动虚拟设备的实际数量,多余条目将填充空字符串。虚拟设备按其虚拟化类型分配资源后即处于活动状态。该功能仅适用于支持虚拟化的设备。请参阅
MtmlDeviceProperty.virtCap确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。uuids(char *): [out] 指向保存所有输出 UUID 字符串的内存块的指针。entryLength(unsigned int): [in] uuids 中每个条目(每个缓冲区)的大小。entryCount(unsigned int): [in] uuids 中的条目数量。
mtmlDeviceCountMaxVirtDevices
MtmlReturn MTML_API mtmlDeviceCountMaxVirtDevices(const MtmlDevice *dev, const MtmlVirtType *type, unsigned int *virtDevicesCount)
说明
- 检索给定 vGPU 类型的设备上可创建的 vGPU 设备的最大数量。
- 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 目标设备的标识符。type(constMtmlVirtType*): [in] vGPU 类型句柄。virtDevicesCount(unsigned int *): [out] 获取 vGPU 实例最大数量的指针,可以在给 定 vgpuTypeId 的设备上创建该实例。
mtmlDeviceInitVirtDevice
MtmlReturn MTML_API mtmlDeviceInitVirtDevice(const MtmlDevice *dev, const char *uuid, MtmlDevice **virtDev)
说明
- 初始化可由 UUID 从可虚拟设备指定的活动虚拟设备。如 果虚拟设备已根据其虚拟化类型分配了资源,则该虚拟设备处于活动状态。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。 - 适用于所有产品。
参数
dev(constMtmlDevice*): [in] 指向目标设备的指针。uuid(const char *): [in] 虚拟设备的 UUID 字符串。virtDev(MtmlDevice**): [out] 指向应分配和初始化的内存不透明对象的双指针。
mtmlDeviceFreeVirtDevice
MtmlReturn MTML_API mtmlDeviceFreeVirtDevice(MtmlDevice *virtDev)
说明
- 适用于所有产品。
参数
virtDev(MtmlDevice*): [in] 指向应释放的设备不透明对象的指针。
注
- 已弃用:由虚拟设备的不透明对象管理的资源并使其不可用。该功能仅适用于支持虚拟化的设备。请参阅*
MtmlDeviceProperty.virtCap*来确定设备是否可虚拟化。
mtmlDeviceGetVirtType
MtmlReturn MTML_API mtmlDeviceGetVirtType(const MtmlDevice *virtDev, MtmlVirtType *type)
说明
- 获 取创建虚拟设备所基于的虚拟化类型。此功能仅适用于虚拟设备。虚拟设备可以通过
mtmlDeviceInitVirtDevice()进行初始化,并且始终具有MTML_VIRT_ROLE_HOST_VIRTDEVICE的虚拟化角色。请参阅MtmlVirtRole了解更多信息。 - 适用于所有产品。
参数
virtDev(constMtmlDevice*): [in] 指向目标虚拟设备的指针。type(MtmlVirtType*): [out] 返回虚拟化类型的引用。
mtmlDeviceGetPhyDeviceUuid
MtmlReturn MTML_API mtmlDeviceGetPhyDeviceUuid(const MtmlDevice *virtDev, char *uuid, unsigned int length)
说明
- 获取创建虚拟设备的物理设备。此功能仅适用于虚拟设备。虚拟设备可以通过
mtmlDeviceInitVirtDevice()进行初始化,并且始终具有MTML_VIRT_ROLE_HOST_VIRTDEVICE的虚拟化角色。请参阅MtmlVirtRole了解更多信息。 - 适用于所有产品。
参数
virtDev(constMtmlDevice*): [in] 指向目标虚拟设备的指针。uuid(char *): [out] 返回物理设备的 UUID 的引用。length(unsigned int): [in] uuid 指向的缓冲区的大小,以字节为单位。
P2P 函数
- 本组介绍 P2P 函数。
mtmlDeviceGetTopologyLevel
MtmlReturn MTML_API mtmlDeviceGetTopologyLevel(const MtmlDevice *dev1, const MtmlDevice *dev2, MtmlDeviceTopologyLevel *level)
说明
- 检索给定设备对之间的拓扑级别。对于所有产品。仅在 Linux 上受支持。
参数
dev1(constMtmlDevice*): [in] 第一个设备的标识符。dev2(constMtmlDevice*): [in] 第二个设备的标识符。level(MtmlDeviceTopologyLevel*): [out] 指示级别的MtmlDeviceTopologyLevel。
mtmlDeviceCountDeviceByTopologyLevel
MtmlReturn MTML_API mtmlDeviceCountDeviceByTopologyLevel(const MtmlDevice *dev, MtmlDeviceTopologyLevel level, unsigned int *count)
说明
- 检索在特定互连级别上最接近给定设备的设备数量集。对于所有产品。仅在 Linux 上受支持。
参数
dev(constMtmlDevice*): [in] 目标设备的标识符。level(MtmlDeviceTopologyLevel): [in]MtmlDeviceTopologyLevel级别搜索其他设备。count(unsigned int *): [out] 返回拓扑最近设备数量的引用。
mtmlDeviceGetDeviceByTopologyLevel
MtmlReturn MTML_API mtmlDeviceGetDeviceByTopologyLevel(const MtmlDevice *dev, MtmlDeviceTopologyLevel level, unsigned int count, MtmlDevice **deviceArray)
说明
- 检索在特定互连级别上最接近给定设备的设备集。
- 适用于所有产品。仅在 Linux 上受支持。
参数
dev(constMtmlDevice*): [in] 目标设备的标识符。level(MtmlDeviceTopologyLevel): [in]MtmlDeviceTopologyLevel级别搜索其他设备。count(unsigned int): [in] 返回拓扑最近设备数量的引用;请参阅mtmlDeviceCountDeviceByTopologyLevel。deviceArray(MtmlDevice**): [out] 在 level 找到的设备的设备句柄数组。
mtmlDeviceGetP2PStatus
MtmlReturn MTML_API mtmlDeviceGetP2PStatus(const MtmlDevice *dev1, const MtmlDevice *dev2, MtmlDeviceP2PCaps p2pCap, MtmlDeviceP2PStatus *p2pStatus)
说明
- 检索给定设备对之间给定 p2p 能力的状态。
参数
dev1(constMtmlDevice*): [in] 第一个设备。dev2(constMtmlDevice*): [in] 第二个设备。p2pCap(MtmlDeviceP2PCaps):[in]在 dev1 和 dev2 之间查找 P2P 能力。p2pStatus(MtmlDeviceP2PStatus*): [out] 返回 dev1 和 dev2 之间 p2pCap 状态的引用。
GPU 函数
- 本组介绍 GPU 函数。
mtmlGpuGetUtilization
MtmlReturn MTML_API mtmlGpuGetUtilization(const MtmlGpu *gpu, unsigned int *utilization)
说明
- 检索设备图形核心的当前利用率。
- 适用于所有产品。
参数
gpu(constMtmlGpu*): [in] 指向 GPU 不透明对象的指针。utilization(unsigned int *): [out] 返回利用率信息的引用。
mtmlGpuGetTemperature
MtmlReturn MTML_API mtmlGpuGetTemperature(const MtmlGpu *gpu, int *temp)
说明
- 检索设备图形核心的当前温度读数(以摄氏度为单位)。
参数
gpu(constMtmlGpu*): [in] 指向 GPU 不透明对象的指针。temp(int *): [out] 返回温度读数的引用。
mtmlGpuGetClock
MtmlReturn MTML_API mtmlGpuGetClock(const MtmlGpu *gpu, unsigned int *clockMhz)
说明
- 检索设备图形核心的当前时钟速度。
- 适用于所有产品。
参数
gpu(constMtmlGpu*): [in] 指向 GPU 不透明对象的指针。clockMhz(unsigned int *): [out] 返回时钟速度(以 MHz 为单位)的引用。
mtmlGpuGetMaxClock
MtmlReturn MTML_API mtmlGpuGetMaxClock(const MtmlGpu *gpu, unsigned int *clockMhz)
说明
- 检索设备图形核心支持的最大时钟速度。
- 适用于除 S3000E 之外的所有产品。
参数
gpu(constMtmlGpu*): [in] 指向 GPU 不透明对象的指针。clockMhz(unsigned int *): [out] 返回时钟速度(以 MHz 为单位)的引用。
mtmlGpuGetEngineUtilization
MtmlReturn MTML_API mtmlGpuGetEngineUtilization(const MtmlGpu *gpu, MtmlGpuEngine engine, unsigned int *utilization)
说明
- 检索设备图形核心的当前引擎利用率。
- 适用于所有产品。仅在 Linux 上受支持。
参数
gpu(constMtmlGpu*): [in] 指向 GPU 不透明对象的指针。engine(MtmlGpuEngine): [in] gpu 引擎值的类型。请参阅MtmlGpuEngine。utilization(unsigned int *): [out] 返回利用率信息的引用。
内存函数
- 本组介绍内存函数。
mtmlMemoryGetTotal
MtmlReturn MTML_API mtmlMemoryGetTotal(const MtmlMemory *mem, unsigned long long *total)
说明
- 检索设备上可用的总内存量(以字节为单位)。
- 适用于所有产品。
参数
mem(constMtmlMemory*): [in] 指向内存不透明对象的指针。total(unsigned long long *): [out] 返回总内存大小的引用。
mtmlMemoryGetUsed
MtmlReturn MTML_API mtmlMemoryGetUsed(const MtmlMemory *mem, unsigned long long *used)
说明
- 检索设备上已使用的内存量(以字节为单位)。
- 适用于所有产品。
参数
mem(constMtmlMemory*): [in] 指向内存不透明对象的指针。used(unsigned long long *): [out] 返回已用内存大小的引用。
mtmlMemoryGetUsedSystem
MtmlReturn MTML_API mtmlMemoryGetUsedSystem(const MtmlMemory *mem, unsigned long long *used)
说明
- 检索设备上使用的系统共享内存量(以字节为单位)。
- 适用于所有产品。
参数
mem(constMtmlMemory*): [in] 指向内存不 透明对象的指针。used(unsigned long long *): [out] 返回系统共享内存使用大小的引用。
mtmlMemoryGetUtilization
MtmlReturn MTML_API mtmlMemoryGetUtilization(const MtmlMemory *mem, unsigned int *utilization)
说明
- 检索设备的当前内存利用率。
- 适用于所有产品。
参数
mem(constMtmlMemory*): [in] 指向内存不透明对象的指针。utilization(unsigned int *): [out] 返回利用率信息的引用。
mtmlMemoryGetClock
MtmlReturn MTML_API mtmlMemoryGetClock(const MtmlMemory *mem, unsigned int *clockMhz)
说明
- 检索设备内存的当前时钟速度。
- 适用于所有产品。
参数
mem(constMtmlMemory*): [in] 指向 内存不透明对象的指针。clockMhz(unsigned int *): [out] 返回时钟速度(以 MHz 为单位)的引用。
mtmlMemoryGetMaxClock
MtmlReturn MTML_API mtmlMemoryGetMaxClock(const MtmlMemory *mem, unsigned int *clockMhz)
说明
- 检索设备内存支持的最大时钟速度。
- 适用于除 S3000E 之外的所有产品。
参数
mem(constMtmlMemory*): [in] 指向内存不透明对象的指针。clockMhz(unsigned int *): [out] 返回时钟速度(以 MHz 为单位)的引用。
mtmlMemoryGetBusWidth
MtmlReturn MTML_API mtmlMemoryGetBusWidth(const MtmlMemory *mem, unsigned int *busWidth)
说明
- 检索设备的内存总线宽度。
- 适用于所有产品。
参数
mem(constMtmlMemory*): [in] 目标设备的标识符。busWidth(unsigned int *): [out] 设备的内存总线宽度。
mtmlMemoryGetBandwidth
MtmlReturn MTML_API mtmlMemoryGetBandwidth(const MtmlMemory *mem, unsigned int *bandwidth)
说明
- 检索指定设备的总内存带宽。带宽以 GBps 表示。
参数
mem(constMtmlMemory*): [in] 指向内存不透明数据的指针。bandwidth(unsigned int *): [out] 返回带宽的引用。
mtmlMemoryGetSpeed
MtmlReturn MTML_API mtmlMemoryGetSpeed(const MtmlMemory *mem, unsigned int *speed)
说明
- 检索指定设备的内存速度。内存速度以 Mbps 表示。
参数
mem(constMtmlMemory*): [in] 指向内存不透明数据的指针。speed(unsigned int *): [out] 返回速度的引用。
mtmlMemoryGetVendor
MtmlReturn MTML_API mtmlMemoryGetVendor(const MtmlMemory *mem, unsigned int length, char *vendor)
说明
- 检索设备的内存芯片供应商名称。
参数
mem(constMtmlMemory*): [in] 指向内存不透明数据的指针。length(unsigned int): [in] vendor 缓冲区的大小(以字节为单位)。请参阅MTML_MEMORY_VENDOR_BUFFER_SIZE。vendor(char *): [out] 返回名称的引用。
mtmlMemoryGetType
MtmlReturn MTML_API mtmlMemoryGetType(const MtmlMemory *mem, MtmlMemoryType *type)
说明
- 检索设备的内存类型。
参数
mem(constMtmlMemory*): [in] 指向内存不透明数据的指针。type(MtmlMemoryType*): [out] 返回类型的引用。
VPU 函数
- 本组介绍 VPU 函数。
mtmlVpuGetUtilization
MtmlReturn MTML_API mtmlVpuGetUtilization(const MtmlVpu *vpu, MtmlCodecUtil *utilization)
说明
- 检索指定 VPU 的当前利用率。
- 适用于所有产品。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。utilization(MtmlCodecUtil*): [out] 返回使用信息的引用。
mtmlVpuGetClock
MtmlReturn MTML_API mtmlVpuGetClock(const MtmlVpu *vpu, unsigned int *clockMhz)
说明
- 检索指定 VPU 的当前时钟速度。
- 适用于所有产品。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。clockMhz(unsigned int *): [out] 返回时钟速度(以 MHz 为单位)的引用。
mtmlVpuGetMaxClock
MtmlReturn MTML_API mtmlVpuGetMaxClock(const MtmlVpu *vpu, unsigned int *clockMhz)
说明
- 检索指定 VPU 支持的最大时钟速度。
- 适用于除 S3000E 之外的所有产品。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。clockMhz(unsigned int *): [out] 返回时钟速度(以 MHz 为单位)的引用。
mtmlVpuGetCodecCapacity
MtmlReturn MTML_API mtmlVpuGetCodecCapacity(const MtmlVpu *vpu, unsigned int *encodeCapacity, unsigned int *decodeCapacity)
说明
- 检索指定VPU的容量,即支持的并发编解码器会话的最大数量。编解码会话是对独立视频流的处理,可以分为编码器会话和解码器会话。编码器会话是指视频编码处理,而解码器会话表示解码处理。
- 编码器会话可以通过其 ID (会话 ID) 引用,范围从 0 到 encodeCapacity - 1。解码器会话可以通过其 ID (会话 ID) 引用,范围从 0 到 decodeCapacity - 1。
- 适用于所有产品。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。encodeCapacity(unsigned int *): [out] 返回编码并发会话容量的引用。decodeCapacity(unsigned int *): [out] 返回解码并发会话容量的引用。
mtmlVpuGetEncoderSessionStates
MtmlReturn MTML_API mtmlVpuGetEncoderSessionStates(const MtmlVpu *vpu, MtmlCodecSessionState *states, unsigned int length)
说明
- 检索指定 VPU 上每个编码器会话的状态。输出 states 是一个
MtmlCodecSessionState数组,其中每个元素代表单个编码器会话的状态。编码器会话的状态填充在数组索引等于会话 ID 的位置,即 states[x] 将是编码器会话 x 的状态。如果 states 数组 N 的大小小于编码器会话容量,则将返回前 N 个(即,会话 ID 范围从 0 到 N-1)会话的状态。否则,如果 N 大于编码器会话容量,则 states 数组的额外空间将用 MTML_CODEC_SESSION_STATE_UNKNOWN 填充。 VPU 的编码器会话容量可以从mtmlVpuGetCodecCapacity()中检索,它可以用作 states 数组的适当大小来保存所有编码器会话的状态。 - 适用于所有产品。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。states(MtmlCodecSessionState*): [out] 返回编码器会话状态的引用。length(unsigned int): [in] state 数组的大小。
mtmlVpuGetEncoderSessionMetrics
MtmlReturn MTML_API mtmlVpuGetEncoderSessionMetrics(const MtmlVpu *vpu, unsigned int sessionId, MtmlCodecSessionMetrics *metrics)
说明
- 检索指定编码器会话的指标。如果会话不活动(没有附加到会话的系统进程),则输出 metrics 结构体的 pid 字段将设置为零。否则,会话被视为活动会话,并且输出 metrics 结构会填充有效数据。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。sessionId(unsigned int): [in] 要查询其指标的会话的 ID。metrics(MtmlCodecSessionMetrics*): [out] 指向保存会话指标的输出结构体的指针。
注
- 对于此版本,输出结构体中的延迟字段始终为 0。
- 如果 vpu 参数是虚拟 VPU,则此版本的输出结构体中的 pid 字段始终为 0。
mtmlVpuGetDecoderSessionStates
MtmlReturn MTML_API mtmlVpuGetDecoderSessionStates(const MtmlVpu *vpu, MtmlCodecSessionState *states, unsigned int length)
说明
- 检索指定 VPU 上每个解码器会话的状态。输出 states 是一个
MtmlCodecSessionState数组,其中每个元素代表单个解码器会话的状态。解码器会话的状态填充在数组索引等于会话 ID 的位置,即 states[x] 将是解码器会话 x 的状态。如果 states 数组 N 的大小小于解码器会话容量,则将返回前 N 个(即,会话 ID 范围从 0 到 N-1)会话的状态。否则,如果 N 大于解码器会话容量,则 states 数组的额外空间将用 MTML_CODEC_SESSION_STATE_UNKNOWN 填充。 VPU 的解码器会话容量可以从mtmlVpuGetCodecCapacity()中检索,它可以用作 states 数组的适当大小来保存所有解码器会话的状态。 - 适用于所有产品。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。states(MtmlCodecSessionState*): [out] 返回解码器会话状态的引用。length(unsigned int): [in] state 数组的大小。
mtmlVpuGetDecoderSessionMetrics
MtmlReturn MTML_API mtmlVpuGetDecoderSessionMetrics(const MtmlVpu *vpu, unsigned int sessionId, MtmlCodecSessionMetrics *metrics)
说明
- 检索指定解码器会话的指标。如果会话不活动(没有附加到会话的系统进程),则输出 metrics 结构的 pid 字段将设置为零。否则,会话被视为活动会话,并且输出 metrics 结构会填充有效数据。
参数
vpu(constMtmlVpu*): [in] 指向 VPU 不透明对象的指针。sessionId(unsigned int): [in] 要查询其指标的会话的 ID。metrics(MtmlCodecSessionMetrics*): [out] 指向保存会话指标的输出结构体的指针。
注
- 输出结构体中的延迟字段始终为 0。
- 如果 vpu 参数是虚拟 VPU,则此版本的输出结构体中的 pid 字段始终为 0。
日志函数
- 本组介绍日志函数。
mtmlLogSetConfiguration
MtmlReturn MTML_API mtmlLogSetConfiguration(const MtmlLogConfiguration *configuration)
说明
- 配置 MTML 日志记录器。
参数
configuration(constMtmlLogConfiguration*): [in] MTML 日志记录器的配置。
mtmlLogGetConfiguration
MtmlReturn MTML_API mtmlLogGetConfiguration(MtmlLogConfiguration *configuration)
说明
- 获取 MTML 日志记录器的配置。
参数
configuration(MtmlLogConfiguration*): [out] MTML 日志记录器的配置。
错误报告
- 该组引入了错误报告例程的辅助函数。
mtmlErrorString
const MTML_API char* mtmlErrorString(MtmlReturn result)
说明
- 将 MTML 错误代码转换为可读字符串的帮助方法。
- 适用于所有产品。
参数
result(MtmlReturn):要转换的 MTML 错误代码。
返回值
- 错误的字符串表示形式。
MPC 函数
- 本章介绍与多主核心 (MPC) 管理相关的 MTML 操作。
mtmlDeviceSetMpcMode
MtmlReturn MTML_API mtmlDeviceSetMpcMode(const MtmlDevice *device, MtmlMpcMode mode)
说明
- 设置设备的 MPC 模式。该模式决定是否可以创建MPC实例或配置设备。
- 重要: 调用此 API 后,库分配的所有不透明指针(例如 MtmlDevice、MtmlGpu 等,不包括 MtmlLibrary 指针本身)都将变得无效。因此,继续使用这些指针将导致未定义的行为。一旦此 API 调用返回,用户应释放所有这些指针并通过调用
mtmlLibraryShutDownAPI 关闭库。之后,如果需要,用户可以重新初始化库并根据需要从干净状态开始获取新的不透明指针。 - 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
device(constMtmlDevice*): [in] 目标设备的标识符。mode(MtmlMpcMode): [in] 要设置的模式。请参阅MtmlMpcMode。
mtmlDeviceGetMpcMode
MtmlReturn MTML_API mtmlDeviceGetMpcMode(const MtmlDevice *device, MtmlMpcMode *currentMode)
说明
- 获取设备的 MPC 模式。
- 适用于 CHUNXIAO 或较新的完全支持的设备。
参数
device(constMtmlDevice*): [in] 目标设备的标识符。currentMode(MtmlMpcMode*): [out] 返回当前模式。请参阅MtmlMpcMode。
mtmlDeviceCountSupportedMpcProfiles
MtmlReturn MTML_API mtmlDeviceCountSupportedMpcProfiles(const MtmlDevice *parentDevice, unsigned int *count)
说明
- 获取给定设备支持的配置文件数量。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 中受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。count(unsigned int *): [out] 返回设备支持的配置文件数量。
mtmlDeviceGetSupportedMpcProfiles
MtmlReturn MTML_API mtmlDeviceGetSupportedMpcProfiles(const MtmlDevice *parentDevice, unsigned int count, MtmlMpcProfile *info)
说明
- 获取给定设备支持的配置文件。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。count(unsigned int): [in] info 指向的缓冲区的大小。请参阅mtmlDeviceCountSupportedMpcProfiles。info(MtmlMpcProfile*): [out] 返回支持的配置文件信息。
mtmlDeviceCountSupportedMpcConfigurations
MtmlReturn MTML_API mtmlDeviceCountSupportedMpcConfigurations(const MtmlDevice *parentDevice, unsigned int *count)
说明
- 检索给定设备支持的配置数量。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。count(unsigned int *): [out] 返回配置数量的引用。
mtmlDeviceGetSupportedMpcConfigurations
MtmlReturn MTML_API mtmlDeviceGetSupportedMpcConfigurations(const MtmlDevice *parentDevice, unsigned int count, MtmlMpcConfiguration *info)
说明
- 检索给定设备的支持配置信息。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。count(unsigned int): [in] info 指向的缓冲区的大小。请参阅mtmlDeviceCountSupportedMpcConfigurations。info(MtmlMpcConfiguration*): [out] 返回支持配置信息。
mtmlDeviceGetMpcConfiguration
MtmlReturn MTML_API mtmlDeviceGetMpcConfiguration(const MtmlDevice *parentDevice, MtmlMpcConfiguration *config)
说明
- 检索目标设备的当前配置信息。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。config(MtmlMpcConfiguration*): [out] 返回当前配置。
mtmlDeviceGetMpcConfigurationByName
MtmlReturn MTML_API mtmlDeviceGetMpcConfigurationByName(const MtmlDevice *parentDevice, const char *configName, MtmlMpcConfiguration *config)
说明
- 检索与目标设备的配置名称相对应的配置信息。该接口只会返回当前设备支持的配置。请参阅
mtmlDeviceGetSupportedMpcConfigurations。 - 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。configName(const char *): [in] 对配置名称的引用。config(MtmlMpcConfiguration*): [out] 返回配置。
mtmlDeviceSetMpcConfiguration
MtmlReturn MTML_API mtmlDeviceSetMpcConfiguration(const MtmlDevice *parentDevice, unsigned int id)
说明
- 设置设备的有效 MPC 配置。
- 重要: 调用此 API 后,库分配的所有不透明指针(MtmlDevice、MtmlGpu 等,但不包括 MtmlLibrary 指针本身)将变得无效,因此继续使用这些指针是未定义行为。一旦该 API 返回,用户应通过调用
mtmlLibraryShutDownAPI 正确释放所有这些指针并关闭库。用户可以重新初始化库,然后根据需要获取不透明指针,就像重新开始一样。 - 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。id(unsigned int): [in] 指向配置 id。参见mtmlDeviceGetSupportedMpcConfigurations。
mtmlDeviceCountMpcInstancesByProfileId
MtmlReturn MTML_API mtmlDeviceCountMpcInstancesByProfileId(const MtmlDevice *parentDevice, unsigned int profileId, unsigned int *count)
说明
- 获取给定配置文件 ID 的预先存在的 MPC 实例数量。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。profileId(无符号整数):[in] 配置文件 ID。请参阅mtmlDeviceGetSupportedMpcProfiles。count(unsigned int *): [out] 返回带有目标配置文件 ID 的预先存在的 MPC 实例数量。
mtmlDeviceGetMpcInstancesByProfileId
MtmlReturn MTML_API mtmlDeviceGetMpcInstancesByProfileId(const MtmlDevice *parentDevice, unsigned int profileId, unsigned int count, MtmlDevice **mpcInstance)
说明
- 获取给定配置文件 ID 的预先存在的 MPC 实例。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 中受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用 。profileId(无符号整数):[in] 配置文件 ID。请参阅mtmlDeviceGetSupportedMpcProfiles。count(unsigned int): [in] mpcInstance 指向的缓冲区的大小。请参阅mtmlDeviceCountMpcInstancesByProfileId。mpcInstance(MtmlDevice**): [out] 返回具有目标配置文件 ID 的预先存在的 MPC 实例。
mtmlDeviceCountMpcInstances
MtmlReturn MTML_API mtmlDeviceCountMpcInstances(const MtmlDevice *parentDevice, unsigned int *count)
说明
- 获取给定设备预先存在的 MPC 实例数量。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。count(unsigned int *): [out] 预先存在的 MPC 实例数量。
mtmlDeviceGetMpcInstances
MtmlReturn MTML_API mtmlDeviceGetMpcInstances(const MtmlDevice *parentDevice, unsigned int count, MtmlDevice **mpcInstance)
说明
- 获取给定设备预先存在的 MPC 实例。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。count(unsigned int): [in] mpcInstance 指向的缓冲区大小。请参阅mtmlDeviceCountMpcInstances。mpcInstance(MtmlDevice**): [out] 返回预先存在的 MPC 设备。
mtmlDeviceGetMpcInstanceByIndex
MtmlReturn MTML_API mtmlDeviceGetMpcInstanceByIndex(const MtmlDevice *parentDevice, unsigned int index, MtmlDevice **mpcInstance)
说明
- 获取其父 MPC 设备下给定索引的 MPC 实例。
- 如果 MPC 实例被销毁,无论是明确的还是由于父设备的销毁、重置或解除绑定,必须再次发出对 MPC 实例的请求。必须再次请求重置或解除绑定父设备。句柄可以重复使用,并且它们的属性可以在此过程中改变。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 中受支持。
参数
parentDevice(constMtmlDevice*): [in] 对父 MPC 设备的引用。index(无符号整数):[in] MPC 实例的索引。mpcInstance(MtmlDevice**): [out] 对 MPC 实例的引用。
mtmlDeviceGetMpcParentDevice
MtmlReturn MTML_API mtmlDeviceGetMpcParentDevice(const MtmlDevice *mpcInstance, MtmlDevice **parentDevice)
说明
- 从 MPC 实例获取 MPC 父设备。在某些环境下,例如当 libmtml 在未映射相应父设备的容器中运行时,此 API 可能会返回未知错误。但是,需要注意的是,实例设备本身仍应正常运行,不会出现任何问题。在这种情况下,调用者应用程序有责任决定如何适当地解释和处理错误。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
mpcInstance(constMtmlDevice*): [in] 对 MPC 实例的引用。parentDevice(MtmlDevice**): [out] 对 MPC 父设备的引用。
mtmlDeviceGetMpcProfileInfo
MtmlReturn MTML_API mtmlDeviceGetMpcProfileInfo(const MtmlDevice *mpcInstance, MtmlMpcProfile *profileInfo)
说明
- 获取MPC实例的配置文件信息。
- 适用于 CHUNXIAO 或较新的 完全支持的设备。仅在 Linux 上受支持。
参数
mpcInstance(constMtmlDevice*): [in] 对 MPC 实例的引用。profileInfo(MtmlMpcProfile*): [out] MPC 实例配置文件 ID。
mtmlDeviceGetMpcInstanceIndex
MtmlReturn MTML_API mtmlDeviceGetMpcInstanceIndex(const MtmlDevice *mpcInstance, unsigned int *index)
说明
- 获取其父设备下的MPC实例索引。
- 适用于 CHUNXIAO 或较新的完全支持的设备。仅在 Linux 上受支持。
参数
mpcInstance(constMtmlDevice*): [in] 对 MPC 实例的引用。index(unsigned int *): [out] MPC 实例的索引。
MtLink 函数
- 本组介绍设备 MtLink 功能。
mtmlDeviceGetMtLinkSpec
MtmlReturn MTML_API mtmlDeviceGetMtLinkSpec(const MtmlDevice *device, MtmlMtLinkSpec *spec)
说明
- 检索指定设备的 MtLink 规格。适用于 QUYUAN 或更新的完全支持的设备。
参数
device(constMtmlDevice*): [in] 指向目标设备的指针。spec(MtmlMtLinkSpec*): [out] 返回规范的引用。
mtmlDeviceGetMtLinkState
MtmlReturn MTML_API mtmlDeviceGetMtLinkState(const MtmlDevice *device, unsigned int linkId, MtmlMtLinkState *state)
说明
- 检索指定链路的状态。适用于 QUYUAN 或更新的完全支持的设备。
参数
device(constMtmlDevice*): [in] 指向目标设备的指针。linkId(unsigned int): [in] 指定要查询的链路ID。state(MtmlMtLinkState*): [out]MtmlMtLinkState其中 MTML_MTLINK_STATE_DOWN 表示链路处于非活动状态,MTML_MTLINK_STATE_UP 表示链路处于活动状态。
mtmlDeviceGetMtLinkCapStatus
MtmlReturn MTML_API mtmlDeviceGetMtLinkCapStatus(const MtmlDevice *device, unsigned int linkId, MtmlMtLinkCap capability, MtmlMtLinkCapStatus *status)
说明
- 检索设备指定链路所请求能力的状态。具体可查询的能力请参阅
MtmlMtLinkCap结构体。 - 适用于 QUYUAN 或更新的完全支持的设备。
参数
device(constMtmlDevice*): [in] 指向目标设备的指针。linkId(unsigned int): [in] 指定要查询的链路ID。capability(MtmlMtLinkCap): [in] 指定要查询的MtmlMtLinkCap。status(MtmlMtLinkCapStatus*): [out] 所查询能力的可用状态结果。请参阅MtmlMtLinkCapStatus。
mtmlDeviceGetMtLinkRemoteDevice
MtmlReturn MTML_API mtmlDeviceGetMtLinkRemoteDevice(const MtmlDevice *device, unsigned int linkId, MtmlDevice **remoteDevice)
说明
- 检索通过指定链路直接连接的远程设备的句柄。
- 适用于 QUYUAN 或更新的完全支持的设备。
参数
device(constMtmlDevice*): [in] 指向目标设备的指针。linkId(unsigned int): [in] 指定要查询的链路ID。remoteDevice(MtmlDevice**): [out] 远程设备句柄。
mtmlDeviceCountMtLinkShortestPaths
MtmlReturn MTML_API mtmlDeviceCountMtLinkShortestPaths(const MtmlDevice *localDevice, const MtmlDevice *remoteDevice, unsigned int *pathCount, unsigned int *pathLength)
说明
- 检索两个设备之间的最短路径的数量和路径的长度。路径的长度定义为从本地设备到远程设备经过的节点数,包括本地设备和远程设备本身。例如,如果路径为:localDevice -> device1 -> device2 -> remoteDevice,则 pathLength 为 4。
- 适用于 QUYUAN 或更新的完全支持的设备。
参数
localDevice(constMtmlDevice*): [in] 指向本地设备的指针。remoteDevice(constMtmlDevice*): [in] 指向远程设备的指针。pathCount(unsigned int *): [out] 本地和远程设备之间的最短路径数量。pathLength(unsigned int *): [out] 形成最短路径的设备数量。
mtmlDeviceGetMtLinkShortestPaths
MtmlReturn MTML_API mtmlDeviceGetMtLinkShortestPaths(const MtmlDevice *localDevice, const MtmlDevice *remoteDevice, unsigned int pathCount, unsigned int pathLength, MtmlDevice **paths)
说明
- 检索两个设备之间的所有最短路径。注意:每个路径都表示为设备句柄的一维数组,其中第一个元素是“localDevice”句柄,后续元素是形成路径的设备句柄,直到最后一个元素是“remoteDevice”句柄。例如,路径可能类似于:
{localDevice, device1, device2, remoteDevice}为了容纳此 API 的输出,需要 MtmlDevice* 类型的二维数组。对于视觉表示:MtmlDevice* 路径[pathCount][pathLength]。对于 pathCount 和 pathLength,请参阅mtmlDeviceCountMtLinkShortestPaths。 - 适用于 QUYUAN 或更新的完全支持的设备。
参数
localDevice(constMtmlDevice*): [in] 指向本地设备的指针。remoteDevice(constMtmlDevice*): [in] 指向远程设备的指针。pathCount(unsigned int): [in] 本地和远程设备之间的最短路径数量。请参阅mtmlDeviceCountMtLinkShortestPaths。pathLength(unsigned int): [in] 形成最短路径的设备数量。请参阅mtmlDeviceCountMtLinkShortestPaths。paths(MtmlDevice**): [out] 返回路径的引用。
mtmlDeviceCountMtLinkLayouts
MtmlReturn MTML_API mtmlDeviceCountMtLinkLayouts(const MtmlDevice *localDevice, const MtmlDevice *remoteDevice, unsigned int *linkCount)
说明
- 检索两个直接连接的设备之间的链路数量。
- 适用于 QUYUAN 或更新的完全支持的设备。
参数
localDevice(constMtmlDevice*): [in] 指向本地设备的指针。remoteDevice(constMtmlDevice*): [in] 指向远程设备的指针。linkCount(unsigned int *): [out] 存储链路数量的引用。
mtmlDeviceGetMtLinkLayouts
MtmlReturn MTML_API mtmlDeviceGetMtLinkLayouts(const MtmlDevice *localDevice, const MtmlDevice *remoteDevice, unsigned int linkCount, MtmlMtLinkLayout *layouts)
说明
- 检索两个直接连接的设备之间的链路。
- 适用于 QUYUAN 或更新的完全支持的设备。
参数
localDevice(constMtmlDevice*): [in] 指向本地设备的指针。remoteDevice(constMtmlDevice*): [in] 指向目标设备的指针。linkCount(unsigned int): [in] 链路数量。layouts(MtmlMtLinkLayout*): [out] 返回链路数据的缓冲区。
亲和性函数
- 本组介绍设备亲和性功能。
mtmlDeviceGetMemoryAffinityWithinNode
MtmlReturn MTML_API mtmlDeviceGetMemoryAffinityWithinNode(const MtmlDevice *device, unsigned int nodeSetSize, unsigned long *nodeSet)
说明
- 检索具有 设备内理想内存亲和性的位掩码的无符号整数数组(大小为 nodeSetSize)。例如,如果 NUMA 节点 0、1 是设备的理想选择,并且 nodeSetSize == 1,则 result[0] = 0x3。
参数
device(constMtmlDevice*): [in] 目标设备的标识符。nodeSetSize(unsigned int): [in] 可安全访问的nodeSet 数组的大小。nodeSet(unsigned long *): [out] 数组引用,用于返回 NODE 位掩码,在 64 位计算机上每个 unsigned long 64 个节点,在 32 位计算机上每个 unsigned long 64 个节点。
注
- 如果请求的范围不适用于目标拓扑,API 将回退到报告设备的直接非 I/O 祖先的内存亲和性。
mtmlDeviceGetCpuAffinityWithinNode
MtmlReturn MTML_API mtmlDeviceGetCpuAffinityWithinNode(const MtmlDevice *device, unsigned int cpuSetSize, unsigned long *cpuSet)
说明
- 检索与设备具有理想 CPU 亲和力的位掩码的无符号整数数组(大小为 cpuSetSize)。例如,在 32 位机器中,如果处理器 0、1、33 和 34 非常适合该设备,并且 cpuSetSize == 2、result[0] = 0x3、result[1] = 0x6。
- 适用于 SUDI 或更新的完全支持的设备。仅 Linux 支持。
参数
device(constMtmlDevice*): [in] 目标设备的标识符。cpuSetSize(unsigned int): [in] 可安全访问的 cpuSet 数组的大小。cpuSet(unsigned long *):[out] 数组引用,用于返回 CPU 位掩码,64 位机器上每个 unsigned long 包含 64 个 CPU,32 位机器上包含 32 个 CPU。
mtmlDeviceReset
MtmlReturn MTML_API mtmlDeviceReset(const MtmlDevice *device)
说明
- 触发整个设备的重置。
- 重要: 在调用此 API 之前,请确保当前环境上没有 GPU 负载。
- 适用于所有设备。仅在 Linux 上受支持。
参数
device(constMtmlDevice*): [in] 目标设备的指针。
mtmlMemorySetEccMode
MtmlReturn MTML_API mtmlMemorySetEccMode(const MtmlMemory *mem, MtmlEccMode mode)
说明
- 设置内存的 ECC 模式。
- 适用于 PINGHU 或较新的完全支持的设备。
- 该操作在下次重新启动后生效。
参数
mem(constMtmlMemory*): [in] 目标内存的标识符。mode(MtmlEccMode): [in] 要设置的模式。请参阅MtmlEccMode。
mtmlMemoryGetEccMode
MtmlReturn MTML_API mtmlMemoryGetEccMode(const MtmlMemory *mem, MtmlEccMode *currentMode, MtmlEccMode *pendingMode)
说明
- 检索内存的当前和待处理的 ECC 模式。
- 适用于 PINGHU 或较新的完全支持的设备。
- 需要启用 ECC 模式。
参数
mem(constMtmlMemory*): [in] 目标内存的标识符。currentMode(MtmlEccMode*): [out] 返回当前 ECC 模式的引用。请参阅MtmlEccMode。pendingMode(MtmlEccMode*): [out] 返回待处理状态的引用。请参阅MtmlEccMode。
mtmlMemoryGetRetiredPagesCount
MtmlReturn MTML_API mtmlMemoryGetRetiredPagesCount(const MtmlMemory *mem, MtmlPageRetirementCount *count)
说明
- 获取给定内存的停用页面数量。
- 适用于 PINGHU 或较新的完全支持的设备。
- 需要启用 ECC 模式。
参数
mem(constMtmlMemory*): [in] 目标内存的标识符。count(MtmlPageRetirementCount*): [out] 返回内存已停用的页面数量。
mtmlMemoryGetRetiredPages
MtmlReturn MTML_API mtmlMemoryGetRetiredPages(const MtmlMemory *mem, MtmlPageRetirementCause cause, unsigned int count, MtmlPageRetirement *pageRetirements)
说明
- 按来源返回停用页面的列表,包括等待停用的页面 此 API 提供的地址信息是已停用页面的硬件地址。
- 适用于 PINGHU 或较新的完全支持的设备。
- 需要启用 ECC 模式。
参数
mem(constMtmlMemory*): [in] 目标内存的标识符。cause(MtmlPageRetirementCause): [in] 停用原因。请参阅MtmlPageRetirementCause。count(unsigned int): [in] pageRetirements 指向的缓冲区的大小。请参阅mtmlMemoryGetRetiredPagesCount。pageRetirements(MtmlPageRetirement*): [out] 返回页面停用信息的引用。请参阅MtmlPageRetirement。
mtmlMemoryGetRetiredPagesPendingStatus
MtmlReturn MTML_API mtmlMemoryGetRetiredPagesPendingStatus(const MtmlMemory *mem, MtmlRetiredPagesPendingState *isPending)
说明
- 验证是否有任何页面等待停用,需要重新启动才能完成该过程。
- 适用于 PINGHU 或较新的完全支持的设备。
- 需要启用 ECC 模式。
参数
mem(constMtmlMemory*): [in] 目标内存的标识符。isPending(MtmlRetiredPagesPendingState*):[out] 返回待处理状态的引用。请参阅MtmlRetiredPagesPendingState。
mtmlMemoryGetEccErrorCounter
MtmlReturn MTML_API mtmlMemoryGetEccErrorCounter(const MtmlMemory *mem, MtmlMemoryErrorType errorType, MtmlEccCounterType counterType, MtmlMemoryLocation locationType, unsigned long long *eccCounts)
说明
- 检索设备请求的内存 ECC 错误计数器。
- 适用于 PINGHU 或较新的完全支持的设备。
- 需要启用 ECC 模式。
参数
mem(constMtmlMemory*): 目标内存的标识符errorType(MtmlMemoryErrorType):指定错误类型的标志。counterType(MtmlEccCounterType):指定错误计数器类型的标志。locationType(MtmlMemoryLocation):指定计数器位置的位掩码。eccCounts(unsigned long long *):返回指定 ECC 错误的引用
mtmlMemoryClearEccErrorCounts
MtmlReturn MTML_API mtmlMemoryClearEccErrorCounts(const MtmlMemory *mem, MtmlEccCounterType counterType)
说明
- 清除内存的 ECC 错误和其他内存错误计数。
- 适用于 PINGHU 或较新的完全支持的设备。
- 需要启用 ECC 模式。
- 将所有指定的 ECC 计数器设置为 0,包括详细计数和总计数。
- 此操作立即生效。
参数
mem(constMtmlMemory*): [in] 目标内存的标识符。counterType(MtmlEccCounterType): [in] 指示应清除哪种类型的错误的标志。
mtmlDeviceGetMusaComputeCapability
MtmlReturn MTML_API mtmlDeviceGetMusaComputeCapability(const MtmlDevice *device, int *major, int *minor)
说明
- 检索设备的 MUSA 计算能力。
- 适用于所有产品。
- 返回设备支持的计算能力版本号。主要版本和次要版本相当于 MUSA 的 muDeviceGetAttribute() 返回的值。
参数
device(constMtmlDevice*): [in] 目标设备的标识符。major(int *): [in] 返回主要 MUSA 计算能力的引用。minor(int *): [out] 返回次要 MUSA 计算能力的引用。
数据结构
结构体
MtmlCodecSessionMetricsMtmlCodecUtilMtmlDevicePropertyMtmlDispIntfSpecMtmlLogConfigurationMtmlMpcConfigurationMtmlMpcProfileMtmlMtLinkLayoutMtmlMtLinkSpecMtmlPageRetirementMtmlPageRetirementCountMtmlPageRetirementPendingMtmlPcieBar2MemoryInfoMtmlPciInfoMtmlPciSlotInfoMtmlVirtType
MtmlCodecSessionMetrics
- 编解码器会话指标。
字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | unsigned int | 代码会话的唯一标识符。 |
pid | unsigned int | 进程 ID。 0 表示会话空闲,否则会话被认为是活动的。 |
hResolution | unsigned int | 水平分辨率(以像素为单 位)。这是指编码大小,可能与 FFmpeg 等视频应用程序中显示的存储大小不同。 |
vResolution | unsigned int | 垂直分辨率(以像素为单位)。这是指编码大小,可能与 FFmpeg 等视频应用程序中显示的存储大小不同。 |
frameRate | unsigned int | 每秒的帧数。 |
bitRate | unsigned int | 每秒的位数。 |
latency | unsigned int | 编解码器延迟(以微秒为单位)。 |
codecType | MtmlCodecType | 编解码器类型。例如,H.265 和 AV1。 |
rsvd | int | 保留以供将来扩展。 |
id
unsigned int MtmlCodecSessionMetrics::id
说明
- 代码会话的唯一标识符。
pid
unsigned int MtmlCodecSessionMetrics::pid
说明
- 进程ID。 0 表示会话空闲,否则会话被认为是活动的。
hResolution
unsigned int MtmlCodecSessionMetrics::hResolution
说明
- 以像素为单位的水平分辨率。这是指编码大小,可能与 FFmpeg 等视频应用程序中显示的存储大小不同。
vResolution
unsigned int MtmlCodecSessionMetrics::vResolution
说明
- 垂直分辨率(以像素为单位)。这是指编码大小,可能与 FFmpeg 等视频应用程序中显示的存储大小不同。
frameRate
unsigned int MtmlCodecSessionMetrics::frameRate
说明
- 每秒的帧数。
bitRate
unsigned int MtmlCodecSessionMetrics::bitRate
说明
- 每秒的位数。
latency
unsigned int MtmlCodecSessionMetrics::latency
说明
- 编解码器延迟(以微秒为单位)。
codecType
MtmlCodecType MtmlCodecSessionMetrics::codecType
说明
- 编解码器类型。例如,H.265 和 AV1。
rsvd
int MtmlCodecSessionMetrics::rsvd[4]
说明
- 保留供将来扩展。
MtmlCodecUtil
- 设备上的编解码器利用率百分比。
字段
| 字段 | 类型 | 说明 |
|---|---|---|
util | unsigned int | 编解码器在采样周期内的总体利用率。 |
period | unsigned int | 采样时间段,以微秒为单位。 |
encUtil | unsigned int | 采样周期内的编码器利用率。 |
decUtil | unsigned int | 采样周期内的解码器利用率。 |
rsvd | int | 保留以供将来扩展。 |
util
unsigned int MtmlCodecUtil::util
说明
- 编解码器在采样周期内的总体利用率。
period
unsigned int MtmlCodecUtil::period
说明
- 采样时间段,以微秒为单位。
encUtil
unsigned int MtmlCodecUtil::encUtil
说明
- 采样周期内的编码器利用率。
decUtil
unsigned int MtmlCodecUtil::decUtil
说明
- 采样周期内的解码器利用率。
rsvd
int MtmlCodecUtil::rsvd[2]
说明
- 保留供将来扩展。
MtmlDeviceProperty
- 设备的属性。
- 注意:不支持虚拟化的物理设备(例如 S10)可能仍然能够以直通方式使用。对于此类设备,其“virtCap”字段为“0 - 不可虚拟化”。
字段
| 字段 | 类型 | 说明 |
|---|---|---|
virtCap | unsigned int | 该字段表示设备的虚拟化能力(设备是否支持虚拟化):0表示不可虚拟化,1表示可虚拟化。请参阅MtmlVirtCapability。 |
virtRole | unsigned int | 该字段指示该设备在支持虚拟化的环境中扮演的角色。请参阅MtmlVirtRole。 |
mpcCap | unsigned int | 该字段指示该设备是否具有 MPC 能力。 0表示不具有MPC能力,1表示具有MPC能力。请参阅MtmlMpcCapability。 |
mpcType | unsigned int | 该字段指示该设备的 MPC 类型。 0 表示非 MPC 类型,1 表示 MPC 父类型,2 表示 MPC 实例类型。请参阅MtmlMpcType。 |
mtLinkCap | unsigned int | 该字段指示该设备是否具有 MtLink 能力。 0表示不支持MtLink能力,1表示支持MtLink能力。请参阅MtmlMtLinkCapability。 |
rsvd | unsigned int | 保留以供将来扩展。 |
rsvd2 | unsigned int | 保留以供将来扩展。 |
virtCap
unsigned int MtmlDeviceProperty::virtCap
说明
- 该字段表示设备的虚拟化能力(设备是否支持虚拟化):0表示不可虚拟化,1表示可虚拟化。请参阅
MtmlVirtCapability。
virtRole
unsigned int MtmlDeviceProperty::virtRole