安装指导
MT vGPU 驱动软件包
| 软件包名称 | 软件包描述 |
|---|---|
| MT_vGPU_HOST_DKMS_v2.9.1 | 适⽤DKMS的deb包和rpm包,Host端使⽤,驱动GPU,可将物理GPU切分成多个虚拟GPU(vGPU),并发支持多个虚拟机使用 |
| MT_vGPU_WINDOWS_GUEST_v2.9.1 | GPU Windows Guest驱动安装包,Guest端使⽤ |
| MT_vGPU_LINUX_GUEST_v2.9.1 | GPU Linux Guest驱动安装包,Guest端使⽤ |
| MT_vGPU_GMI_v2.9.1 | 摩尔线程GPU管理工具使用手册 |
| MT_vGPU_MTML_v2.9.1 | GPU管理函数库 |
| MT_vGPU_DirectStream_v2.9.1 | 屏幕抓取及GPU硬件编码SDK,在Windows Guest中工作,调用GPU的硬件能力对数 据进行编码 |
| MT_vGPU_MTAPI_v2.9.1 | virtual display、⾃定义分辨率等设置⼯具,Guest端使⽤ |
| DCGM 0.1.1 | GPU健康状态检查工具,Host端使⽤ |
驱动获取请联系:developers@mthreads.com
准备工作
服务器 BIOS 设置
-
超4G地址空间译码:开启;详细设置方法参考对应服务器操作手册
-
VMX(Intel)/ SVM(AMD):开启;详细设置方法参考对应服务器操作手册
-
Intel VT-d(IOMMU):开启;详细设置方法参考对应服务器操作手册
-
SR-IOV:开启;详细设置方法参考对应服务器操作手册
注:如果BIOS有ARIForwarding配置项需要将其Enable
操作系统设置
- 更新操作系统grub文件,开启iommu,以intel服务器为例
在/etc/default/grub 中添加 intel_iommu=on
GRUB_CMDLINE_LINUX="...... intel_iommu=on"
- 更新grub,方法根据当前操作系统手动更新
grub2-mkconfig -o /boot/efi/EFI/$(vendor)/grub.cfg
注-o目录需要根据当前系统实际启动方式(uefi/legacy)修改,legacy启动时为/boot/grub2/grub.cfg
更新后重启服务器
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正常情况下,对应显卡的显示内容应该如上所示
驱动安装和使用
安装 Host 端显卡驱动
Host驱动分为GOLDEN和DKMS两种驱动,DKMS驱动所有用户都可以安装,GOLDEN驱动为针对某个内核版本的定制驱动,二者功能无差异,选择其一即可
操作
-
DKMS通用驱动安装
$ rpm -ivh ~/xxx_xxx_dkms_mtvgpu_2.9.1_amd64.rpmVerifying... ################################# [100%]Preparing... ################################# [100%]Updating / installing...1:mtvgpu-2.9.1-1 ################################# [100%]Loading new mtgpu-2.9.1-000 DKMS files...Building for 4.18.0-193.14.2.el8_2.x86_64Building initial module for 4.18.0-193.14.2.el8_2.x86_64Done.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工具
验证
- 列出所有当前加载的包含内核模块,过滤输出,只显示包含
mtgpu字符串的行
$ lsmod | grep "mtgpu"
mtgpu 1634304 0
mdev 24576 2 mtgpu,vfio_mdev
drm_kms_helper 184320 3 mtgpu
kvm 663552 2 mtgpu,kvm_intel
drm 491520 3 mtgpu,drm_kms_helper
看到上述内容表示内核驱动已经加载。
- 使用摩尔线程GPU管理工具mthreads-gmi确认内核驱动模块已经工作
$ mthreads-gmi -cf
Wed Jul 31 03:13:00 2024
---------------------------------------------------------------
mthreads-gmi:2.0.4 Driver Version:2.9.1-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
---------------------------------------------------------------
vGPU 切分
vGPU 切分支持两种方式
- mdevctl 工具
- 直接操作设备文件
两种方式的本质都是对设备文件进行操作以达到对vGPU 设备管理的目的。MT vGPU支持的显卡切分类型参考附录 MTT S系列显卡支持的vGPU切分类型。
切分方式一:推荐使用mdevctl工具对显卡进行切分操作,使用mdevctl工具切分显卡的流程如下:
-
查看GPU PCI设备BDF地址
$ lspci -d 1ed5:03:00.0 3D controller: Moore Threads Technology Co.,Ltd MTT S300003:00.0 为GPU的BDF地址
$ virsh nodedev-list --cap pci| grep 03_00_0pci_0000_03_00_0完整的标识地址为0000:03:00.0
-
创建 vGPU
$ mdevctl start -u c4f702ca-c69d-4d7d-a526-5fdcf78d3428 -p 0000:03:00.0 --type mtgpu-1101c4f702ca-c69d-4d7d-a526-5fdcf78d3428是UUID,是vGPU设备的唯一标识;此ID可以是固定的ID, 也可以通过uuidgen工具生成:uuidgen=> xxxxxxx-pGPU PCI设备的BDF地址-typevGPU切分类型
-
查看创建的 vGPU 设备
$ mdevctl listc4f702ca-c69d-4d7d-a526-5fdcf78d3428 0000:03:00.0 mtgpu-1101
切分方式2: 操作设备文件
-
查看并操作文件设备
$ 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$ 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、funtion为0
-
查看切分出的 vGPU 设备
$ ls /sys/bus/mdev/devices/c4f702ca-c69d-4d7d-a526-5fdcf78d3428
安装 Guest 端显卡驱动
创建带有 MT vGPU 的 QEMU 虚拟机——方法 1
使用 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 的参数
创建带有 MT vGPU 的 QEMU 虚拟机——方法 2
使用 virsh 命令行
- 在虚拟机的xml配置文件中添加如下配置:
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'>
<source>
<address uuid='c4f702ca-c69d-4d7d-a526-5fdcf78d3428'/>
</source>
</hostdev>
- 启动虚拟机:
$ virsh create vm.xml
在虚拟机中安装 vGPU 驱动
vGPU 需要安装驱动才能作为 3D 加速设备进行工作。未安装摩尔线程 Windows 驱动的 vGPU 设备如下图所示:

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

安装成功,如下图所示:

安装完成后重启虚拟机,即可正常使用 vGPU 加速
附录
MTT S 系列显卡支持的 vGPU 切分类型
| Type-ID | Type-vRAM | 虚拟机内vRAM大小 | 最大分辨率 | 建议最大分辨率 | 虚拟显示器数量 | S3000/S3000E可用数量 |
|---|---|---|---|---|---|---|
| mtgpu-1100 | 1024MB | 854MB | 1920x1200 | 1920x1080 | 1 | 32 |
| mtgpu-1101 | 1024MB | 982MB | 4096x2160 | 2560x1440 | 2 | 28 |
| mtgpu-1102 | 2048MB | 1734MB | 4096x2160 | 3840x2160 | 2 | 16 |
| mtgpu-1104 | 4096MB | 3478MB | 4096x2160 | 3840x2160 | 2 | 8 |
| mtgpu-1108 | 8192MB | 6966MB | 4096x2160 | 3840x2160 | 2 | 4 |
| mtgpu-1116 | 16384MB | 14870MB | 4096x2160 | 3840x2160 | 2 | 2 |
| mtgpu-1132 | 32768MB | 30334MB | 7680×4320 | 3840x2160 | 2 | 1 |

