MTML 2.3 API 参考
API 概览
MTML 2.3 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_INVALID_STATE | = 13 | 资源未处于执行所请求操作的正确状态。 |
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 字符串(包括空终止符)。