← 新闻

摩尔线程开源pymtml:全功能GPU的Python管理助手

摩尔线程开源pymtml:全功能GPU的Python管理助手

▼ 关注摩尔线程开发者公众号,及时获取摩尔线程开发者各类服务信息 ▼

在AI推理与训练系统中,GPU状态监控是保障稳定运行和优化资源利用的重要环节。显存占用、温度、功耗、多卡拓扑、P2P检测等信息,直接关系到性能问题的定位与资源调度的效率。

为了让Python开发者能以更高效的方式管理摩尔线程GPU,pymtml应运而生。它将底层的C接口封装为完整的Python绑定,使开发者告别繁琐的底层调用,以其熟悉的Pythonic风格轻松完成GPU资源的深度监控与调度。

原生赋能

全栈监控与安全的GPU管理

pymtml是摩尔线程GPU管理库(MTML)的Python绑定,底层通过ctypes动态加载 libmtml.so共享库,为开发者提供对摩尔线程GPU设备的监控与管理能力。该项目已在GitHub开源。

pymtml核心特性包括:

▼原生能力,全栈监控:

完整封装libmtml.so C库函数,提供原生MTML API。支持设备信息查询、GPU/显存/VPU利用率监控、多卡拓扑查询、P2P状态检测、MTLink互连检测等全面的GPU管理能力。

▼资源安全,开发友好:

内置智能上下文管理器 (mtmlGpuContext, mtmlMemoryContext, mtmlVpuContext),通过with语句自动管理GPU、显存、VPU子组件的生命周期,确保资源被正确初始化和释放,避免内存泄漏。

pymtml核心能力一览:

图片

快速上手

pymtml的安装与使用

▼环境配置

硬件需使用摩尔线程全功能GPU并安装正确驱动,系统支持Python 3.7+及MTML库(2.2.0+)。可通过以下指令检查环境:

#检查 libmtml.so 是否可用
ldconfig -p | grep libmtml

#检查 GPU 设备
ls /dev/dri/render*

▼极简安装

方式一:推荐通过pip直接安装

pip install mthreads-ml-py

方式二:从源码安装

git clone https://github.com/MooreThreads/mthreads-ml-py.git
cd mthreads-ml-py
pip install -e .

方式三:构建wheel后安装

make build
pip install dist/*.whl

▼典型案例

这段代码展示了基于pymtml获取底层硬件信息的原生调用方式。

仅需数行,即可完成运行库的初始化,并快速遍历查询当前系统中所有摩尔线程GPU的数量、名称与UUID。

from pymtml import *
mtmlLibraryInit()
device_count = mtmlLibraryCountDevice()
print(f"Found {device_count} GPU(s)")
for i in range(device_count):
  device = mtmlLibraryInitDeviceByIndex(i)
  name = mtmlDeviceGetName(device)
  uuid = mtmlDeviceGetUUID(device)
  print(f"Device {i}: {name} ({uuid})")
mtmlLibraryShutDown() 

功能多样化

pymtml库MTML API一览

除了上述案例外,pymtml库还提供了直接对应摩尔线程底层管理库(MTML)功能的Python接口,主要包含三个部分:

▼pymtml库生命周期与设备管理:如 mtmlLibraryInit(初始化库)、mtmlLibraryCountDevice(获取GPU数量)等,是使用任何功能的基础。

图片

▼GPU、显存(Memory)、视频处理单元(VPU)等子组件的监控:提供了查询利用率、温度、时钟、带宽等详细信息的专用函数。由于GPU、Memory、VPU是设备的子组件,需先初始化、用完后释放。这里推荐使用上下文管理器,避免资源泄漏。

#使用上下文管理器自动管理 GPU/Memory 子组件的初始化和释放
# GPU
with mtmlGpuContext(device) as gpu:
    util = mtmlGpuGetUtilization(gpu)
    temp = mtmlGpuGetTemperature(gpu)
    clock = mtmlGpuGetClock(gpu)

# Memory
with mtmlMemoryContext(device) as memory:
    total = mtmlMemoryGetTotal(memory)
    used = mtmlMemoryGetUsed(memory)
    util = mtmlMemoryGetUtilization(memory)
    bandwidth = mtmlMemoryGetBandwidth(memory)

# VPU(视频处理单元)
with mtmlVpuContext(device) as vpu:
    clock = mtmlVpuGetClock(vpu)
enc_cap, dec_cap = mtmlVpuGetCodecCapacity(vpu)

▼多卡系统的高级功能:包括查询多卡互连(MTLink)状态、检测设备间拓扑关系、以及对等(P2P)通信能力等。拓扑层级包括同一GPU、单PCIe交换机、多PCIe交换机、主桥、同一NUMA节点、跨NUMA节点等多样化信息。

图片

pymtml通过调用MTML原生能力,解决了GPU管理代码迁移的核心痛点,是连接现有AI生态与国产算力平台的关键桥梁。摩尔线程将持续深耕开发者生态,助力每一位开发者实现技术突破。

了解更多摩尔线程pymtml信息,请访问:

▼摩尔线程博客:

https://blog.mthreads.com/blog/musa/2026-02-28-pymtml/

▼摩尔线程GitHub官方仓库:

https://github.com/MooreThreads/mthreads-ml-py