用户指南
本文面向系统管理员和运维人员,介绍 MT vGPU 的安装配置、虚拟 GPU 管理、状态监控、驱动维护,以及热迁移、休眠恢复和超分等高级功能的使用方法。
安装和配置 MT vGPU
步骤 1:确认驱动软件包
| 软件包名称 | 软件包描述 |
|---|---|
| MT_vGPU_HOST_DKMS_v2.9.2 | 适用 DKMS 的 deb 包和 rpm 包,Host 端使用,驱动 GPU,可将物理 GPU 切分成多个虚拟 GPU(vGPU),并发支持多个虚拟机使用。 |
| MT_vGPU_WINDOWS_GUEST_v2.9.2 | GPU Windows Guest 驱动安装包,Guest 端使用。 |
| MT_vGPU_LINUX_GUEST_v2.9.2 | GPU Linux Guest 驱动安装包,Guest 端使用。 |
| MT_vGPU_GMI_v2.9.2 | 摩尔线程 GPU 管理工具使用手册。 |
| MT_vGPU_MTML_v2.9.2 | GPU 管理函数库。 |
| MT_vGPU_DirectStream_v2.9.2 | 屏幕抓取及 GPU 硬件编码 SDK,在 Windows Guest 中工作,调用 GPU 的硬件能力对数据进行编码。 |
| MT_vGPU_MTAPI_v2.9.2 | virtual display、自定义分辨率等设置工具,Guest 端使用。 |
| MT_vGPU_DCGM_v2.9.2 | GPU 健康状态检查工具,Host 端使用。 |
驱动获取请联系:developers@mthreads.com。
步骤 2:准备安装环境
1. 设置服务器 BIOS
-
超 4G 地址空间译码:开启;详细设置方法参考对应服务器操作手册。
-
VMX(Intel)/ SVM(AMD):开启;详细设置方法参考对应服务器操作手册。
-
Intel VT-d(IOMMU):开启;详细设置方法参考对应服务器操作手册。
-
SR-IOV:开启;详细设置方法参考对应服务器操作手册。
注:如果 BIOS 有 ARIForwarding 配置项,需要将其开启。
2. 设置操作系统
1. 更新 GRUB 配置
更新操作系统 GRUB 文件,开启 IOMMU。以 Intel 服务器为例,在 /etc/default/grub 中添加 intel_iommu=on:
GRUB_CMDLINE_LINUX="...... intel_iommu=on"
2. 生成 GRUB 配置
根据当前操作系统手动更新 GRUB 配置:
grub2-mkconfig -o /boot/efi/EFI/$(vendor)/grub.cfg
-o 目录需要根据当前系统实际启动方式(UEFI/Legacy)修改,Legacy 启动时为 /boot/grub2/grub.cfg。
更新后重启服务器。
3. 确认 IOMMU 已开启
服务器重启后,确认 IOMMU 已开启。
可通过如下命令确认启动参数已生效:
$ cat /proc/cmdline | grep -E "intel_iommu=on|amd_iommu=on"
可通过如下命令确认系统已创建 IOMMU 分组:
$ ls /sys/kernel/iommu_groups/
若命令返回多个数字编号目录,表示系统已识别 IOMMU 分组。 也可通过如下命令查看内核 IOMMU 初始化日志:
$ dmesg | grep -Ei "DMAR|IOMMU|vgpu mm"
[ 8.011691] perf/amd_iommu: Detected AMD IOMMU #7 (2 banks, 4 counters/bank).
[ 8.496306] intel_iommu=on
[ 12.488279] vgpu mm iommu mode: ENABLE
[ 12.488281] vgpu mm iommu mapping mode: 2
3. 查询 PCIe 设备基本信息
-
为确保服务器和操作系统已经识别 MTT S 系列 GPU,在 Host 操作系统中输入
lspci -d 1ed5:命令查询设备 ID。# MTT S3000$ lspci -d 1ed5:03:00.0 3D controller: Moore Threads Technology Co.,Ltd MTT S300003:00.1 Multimedia audio controller: Moore Threads Technology Co.,Ltd MTT HDMI/DP Audio正常情况下,对应显卡的显示内容应该如上所示。
步骤 3:安装并验证 Host 驱动
Host 驱动分为 GOLDEN 和 DKMS 两种驱动,DKMS 驱动所有用户都可以安装,GOLDEN 驱动为针对某个内核版本的定制驱动,二者功能无差异,选择其一即可。
1. 安装 DKMS 通用驱动
$ rpm -ivh ~/xxx_xxx_dkms_mtvgpu_2.9.2_amd64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:mtvgpu-2.9.2-1 ################################# [100%]
Loading new mtgpu-2.9.2-000 DKMS files...
Building for 4.18.0-193.14.2.el8_2.x86_64
Building initial module for 4.18.0-193.14.2.el8_2.x86_64
Done.
mtgpu.ko.xz:
Running module version sanity check.
Running the pre_install script:
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.18.0-193.14.2.el8_2.x86_64/kernel/drivers/gpu/drm/mthreads/
Running the post_install script:
depmod....
DKMS: install completed.
Starting postinst...
postinst finished.
注:DKMS 驱动需要先安装 DKMS 工具。
2. 确认内核模块已加载
列出当前加载的 vGPU 相关内核模块,确认 mtgpu 相关模块已加载。
$ lsmod | grep "mtgpu"
mtgpu 4530176 0
mtvgpu_basic 81920 1 mtgpu
drm_display_helper 237568 1 mtgpu
vfio 73728 3 mtgpu,vfio_iommu_type1,mtvgpu_basic
kvm 1380352 2 mtgpu,kvm_intel
drm_kms_helper 270336 2 mtgpu,drm_display_helper
drm 811008 5 mtgpu,drm_kms_helper,drm_shmem_helper,drm_display_helper
看到上述内容表示内核驱动已经加载。
3. 确认内核驱动工作正常
使用摩尔线程 GPU 管理工具 mthreads-gmi 确认内核驱动模块已经工作。
$ mthreads-gmi -cf
Wed Jul 31 03:13:00 2024
---------------------------------------------------------------
mthreads-gmi:2.3.4 Driver Version:2.9.2-000
---------------------------------------------------------------
ID Name |PCIe |%GPU Mem
Device Type |Pcie Lane Width |Temp MPC Capable
| ECC Mode
+-------------------------------------------------------------+
0 MTT S3000 |00000000:5e:00.0 |58% 30094MiB(32768MiB)
MPC Parent |16x(16x) |57C YES
| N/A
---------------------------------------------------------------
步骤 4:切分 vGPU
vGPU 切分支持两种方式:
- mdevctl 方式。
- 设备文件方式。
两种方式的本质都是对设备文件进行操作以达到对 vGPU 设备管理的目的。更多关于 MT vGPU 支持的显卡切分类型,请参见 MTT S 系列显卡支持的 vGPU 性能和参数。
mdevctl 方式
1. 查看 GPU PCI 设备 BDF 地址
$ lspci -d 1ed5:
03:00.0 3D controller: Moore Threads Technology Co.,Ltd MTT S3000
03:00.0 为 GPU 的 BDF 地址。
$ virsh nodedev-list --cap pci| grep 03_00_0
pci_0000_03_00_0
完整的标识地址为 0000:03:00.0。
2. 创建 vGPU
$ mdevctl start -u c4f702ca-c69d-4d7d-a526-5fdcf78d3428 -p 0000:03:00.0 --type mtgpu-1101
c4f702ca-c69d-4d7d-a526-5fdcf78d3428是 UUID,是 vGPU 设备的唯一标识;此 ID 可以是固定的 ID,也可以通过 uuidgen 工具生成:uuidgen=> xxxxxxx。-pGPU PCI 设备的 BDF 地址。--type:vGPU 切分类型。
3. 查看创建的 vGPU 设备
$ mdevctl list
c4f702ca-c69d-4d7d-a526-5fdcf78d3428 0000:03:00.0 mtgpu-1101
设备文件方式
1. 定位 mdev 设备文件
$ find /sys/ -name mdev_supported_types
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/mdev_supported_types
$ echo c4f702ca-c69d-4d7d-a526-5fdcf78d3428 > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/mdev_supported_types/mtgpu-1101/create
设备文件实际地址可 按照这种方式定位:
/sys/class/mdev_bus/domain\:bus\:slot.function/mdev_supported_types/。以上面的地址0000:03:00.0为例,domain 为0000、bus 为03、slot 为00、function 为0。
2. 查看切分出的 vGPU 设备
$ ls /sys/bus/mdev/devices/
c4f702ca-c69d-4d7d-a526-5fdcf78d3428
步骤 5:创建带有 MT vGPU 的虚拟机
QEMU 命令行
1. 使用 QEMU 命令创建虚拟机
使用 QEMU 命令行的参考命令如下:
$ qemu-kvm -name 'Moore Threads GPU' \
-machine q35,accel=kvm,usb=on \
-cpu host -smp 4,sockets=1 -m 4G \
-hda win10-vdi-snapshot.qcow2 \
-usb -device usb-tablet \
-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/c4f702ca-c69d-4d7d-a526-5fdcf78d3428 \
-vnc :01 \
-net user -net nic \
-device intel-hda \
-device hda-duplex
其中,-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/c4f702ca-c69d-4d7d-a526-5fdcf78d3428 为增加的 vGPU 的参数。
virsh XML
1. 在虚拟机 XML 配置中添加 vGPU 设备
在虚拟机的 XML 配置文件中添加如下配置:
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'>
<source>
<address uuid='c4f702ca-c69d-4d7d-a526-5fdcf78d3428'/>
</source>
</hostdev>
2. 启动虚拟机
$ virsh create vm.xml
步骤 6:安装 Guest 端显卡驱动
vGPU 需要安装 Guest 驱动才能作为 3D 加速设备进行工作。
Windows
未安装摩尔线程 Windows 驱动的 vGPU 设备如下图所示:

使用 MT_vGPU_WINDOWS_GUEST 安装包安装方法如下:
在虚拟机中,运行 PES 安装包 musa-desktop-win10-64bit_vdi.exe,安装 Windows 10 vGPU 驱动:

安装成功,如下图所示:

安装完成后重启虚拟机,并在 设备管理器 > 显示适配器 中确认摩尔线程 vGPU 设备显示正常、 无黄色感叹号,即可正常使用 vGPU 加速。
Linux
未安装摩尔线程 Linux 驱动的 vGPU 设备如下图所示:
使用 MT_vGPU_LINUX_GUEST 安装包安装方法如下:
在虚拟机中,运行 musa_2.9.x-release-amd64.deb 安装包,安装 Linux Guest vGPU 驱动。
说明:以下 Linux Guest 安装界面截图中的版本号仅作示意,可能与当前发布的安装包版本不一致,请以实际安装包版本为准。
安装成功,如下图所示:
安装完成后重启虚拟机。
重启后,可通过如下命令确认 Guest 驱动工作正常:
$ mthreads-gmi
Mon Jun 9 06:31:58 2025
----------------------------------------------------------------------
mthreads-gmi:2.3.4 Driver Version:2.9.2
----------------------------------------------------------------------
ID Name |PCIe |%GPU Mem
Device Type |Pcie Lane Width |
+--------------------------------------------------------------------+
0 MTT S3000 MtvGPU-1101 |00000000:00:0d.0 |0% 0MiB(1024MiB)
Virtual |16x(16x) |
----------------------------------------------------------------------
若系统包含图形桌面,也可进一步确认虚拟显示已经正常创建。
管理 MT vGPU
查询 vGPU
mdevctl 方式
$ mdevctl list
c4f702ca-c69d-4d7d-a526-5fdcf78d3428 0000:03:00.0 mtgpu-1101
设备文件方式
$ ls /sys/bus/mdev/devices/
c4f702ca-c69d-4d7d-a526-5fdcf78d3428
删除 vGPU
mdevctl 方式
$ mdevctl stop -u c4f702ca-c69d-4d7d-a526-5fdcf78d3428
设备文件方式
$ echo 1 > /sys/bus/mdev/devices/c4f702ca-c69d-4d7d-a526-5fdcf78d3428/remove
配置调度方式
摩尔线程的 vGPU 支持两种调度方式:性能最优调度方式和时间切片调度方式。
注意:默认配置为性能最优调度方式。
| 调度方式 | 参数值 | 说明 |
|---|---|---|
| 性能最优调度方式(Best-effort scheduling) | 0 | 跨多个 vGPU 来平衡性能。每个 vGPU 独占整个 GPU 处理周期,当前周期完成后其他 vGPU 才会继续使用。在某些极端场景下,某个 vGPU 渲染任务多且重,可能导致其他 vGPU 无法获得时间片。 |
| 时间切片调度方式(Time-sliced scheduling) | 1 | 激活的 vGPU 会等分当前 GPU 的算力,即 equal share mode。 |
步骤 1:创建调度配置文件
调度方式通过安装驱动时进行修改。
在 /etc/modprobe.d 目录下创建 mtgpu.conf 文件。
步骤 2:设置调度策略
在配置文件中,通过参数 mtgpu_vgpu_scheduling_policy 选择调度方式。
参考如下配置:
options mtgpu mtgpu_vgpu_scheduling_policy=0
说明:如果选择了 Time Sliced Scheduling,
mtgpu_vgpu_time_sliced_value的值会决定时分复用的时间,以毫秒为单位。
步骤 3:重新加载驱动
重新加载 mtgpu 驱动或重启服务器,使配置生效。
限制最大分辨 率
mtgpu-1101 类型默认可以支持 4K 显示,由于 4K 对 GPU 资源消耗较多,并发时可能会影响其他用户的体验,因此 mtgpu-1101 类型 4k 显示功能可以在加载驱动阶段禁用。
步骤 1:创建显示配置文件
在 /etc/modprobe.d 目录下创建 mtgpu.conf 文件,并在配置文件中添加如下内容:
options mtgpu vgpu_1g_support_4k=0
步骤 2:重新加载驱动
重新加载 mtgpu 驱动或重启服务器,使配置生效。
禁用 Guest 驱动自动升级
Host 驱动升级后 Guest 默认会收到升级提醒,可以通过配置文件关闭升级提醒。
步骤 1:创建升级配置文件
在 /etc/modprobe.d 目录下创建 mtgpu.conf 文件,并在配置文件中添加如下内容:
options mtgpu vgpu_upgrade_mode=0
步骤 2:重新加载驱动
重新加载 mtgpu 驱动或重启服务器,使配置生效。
说明:2.5.0 升级到 2.5.6 仍然需要删除
/var/local/mthreads/wddm_driver.zip关闭 Guest 升级服务,2.5.6 升级到更高版本时可以通过vgpu_upgrade_mode=0配置关闭。
使用 MT Virtual Display
查看 MT-virt 显示器标号。例如,MT-virt 显示器为 2 号显示器时,在 屏幕设置 中将显示方式设置为 仅在 2 上显示。

手动选择程序 GPU 加速
在单 GPU 模式且没有其他显示设备的场景下,所有应用都会默认使用摩尔线程 vGPU 作为加速,在有其他显示设备时需要设置为仅在 MT Virtual Display 上显示。
查看 MT-virt 显示器标号。例如,MT-virt 显示器为 2 号显示器时,在 屏幕设置 中将显示方式设置为 仅在 2 上显示。

监控 MT vGPU
使用 MT GPU 管理工具
通过摩尔线程 GPU 管理接口工具 mthreads-gmi 可以实现 GPU 和 vGPU 管 理和监控。
显示帮助信息
$ mthreads-gmi --help
监控 GPU 整卡概括信息
$ mthreads-gmi -cf
监控 vGPU 解码详细信息
$ mthreads-gmi vgpu -ds
监控 vGPU 编码详细信息
$ mthreads-gmi vgpu -es
监控 vGPU 使用率
$ mthreads-gmi vgpu -u
监控 vGPU 详细信息
$ mthreads-gmi vgpu -q
更多命令,参见 mthreads-gmi 命令参考。
维护驱动
卸载驱动
Host
步骤 1:关闭虚拟机
关闭所有使用 vGPU 设备的虚拟机。
步骤 2:卸载 Host 驱动
$ rmmod mtgpu
$ rmmod mtvgpu_basic
$ rpm -e mtvgpu
说明:若系统未加载
mtvgpu_basic模块,可先通过lsmod确认;未加载时可跳过该命令。
Windows Guest
步骤 1:卸载 Windows Guest 驱动
打开 控制面板 > 程序 > 卸载程序,卸载 PES Control Center。

Linux Guest
步骤 1:卸载 Linux Guest 驱动
以 root 权限运行:
$ dpkg -P musa