摩尔线程 GPU 云原生套件
摩尔线程 GPU 容器套件
简介
摩尔线程公司简介
元计算是支撑下一代互联网应用的通用算力平台。摩尔线程致力于创新面向元计算应用的新一代 GPU,构建融合视觉计算、3D 图形计算、科学计算及人工智能计算的综合计算平台,建立基于云原生 GPU 计算的生态系统,助力驱动数字经济发展。公司研发设计全功能 GPU 芯片及相关产品,支持 3D 高速图形渲染、AI 训练推理加速、超高清视频编解码和高性能科学计算等多种组合工作负载,兼顾算力与算效,能够为中国科技生态合作伙伴提供强大的计算加速能力,广泛赋能数字经济多个领域。
摩尔线程 GPU 芯片和服务器端显卡简介
截止 2022 年 12 月 22 日,摩尔线程已经成功研发并上市两颗 GPU 芯片:“苏堤”和“春晓”,分别于 2022 年 3 月和 2022 年 11 月发布。围绕着两颗 GPU 芯片,摩尔线程打造了三款服务器 GPU 产品,分别是 MTT S2000,MTT S1000 和 MTT S3000。目前两颗芯片和三款 GPU 显卡均已完成量产上市。
摩尔线程“苏堤”
“苏堤“芯片基于摩尔线程第一代 MUSA 架构,具有现代图形渲染、AI 计算加速以及科学计算机物理仿真等功能引擎。是第一款支持 AV1 编解码的 GPU,支持视频云、直播、8K 游戏等智能多媒体应用。
摩尔线程“春晓”
2022 年 11 月,摩尔线程发布的“春晓”芯片同样基于第一代 MUSA 架构打造,其内部集成了 220 亿个晶体管,内置 MUSA 架构通用计算核心以及张量计算核心,可以支持 FP32、FP16 和 INT8 等计算精度。相较于摩尔线程此前发布的“苏堤”芯片,图形渲染能力平均提升 3 倍、编码能力提升 4 倍、解码能力提升 2 倍,AI 计算平均提升 4 倍,物理仿真性能提升 2.5 倍,同时可节约带宽 30%以上。
MTT S2000
MTT S2000 基于“苏堤”芯片打造,物理形态为全高 3/4 单槽的服务器显卡,显卡采用被动散热方式,整卡功耗 150W,外接供电线为标准 PCIe 6pin。S2000 内置两颗“苏堤”芯片,并通过内置的 PCIe Switch 进行连接,显卡与计算机主机连接的物理接口为 PCIe x16。目前 S2000 的整体状态为量产出货状态,配套的 GPU 容器化套件,可以满足以容器的方式直接调用 S2000 的计算、存储、编解码等资源,并兼容 Docker 等常用容器工具以及 K8s 生态兼容。
MTT S1000
MTT S1000 基于“苏堤“芯片,物理形态为半高半长单槽;显卡采用被动散热方式,整卡功耗 75W,无需额外的外部供电线。S1000 内置一颗“苏堤”芯片,显卡与计算机连接的物理接口为 PCIe x16。目前 S1000 以及处于量产出货状态,配套的 GPU 容器化套件,可以满足以容器的方式直接调用 S1000 的计算、存储、编解码等资源,并兼容 Docker 等常用容器工具以及 K8s 生态兼容。
MTT S3000
MTT S3000 基于“春晓”芯片,物理形态为全高 3/4 长双槽。做为一款服务器端专用显卡,S3000 采用被动散热方式,整卡功耗 250W,外接供电线为标准 CPU 8pin。显卡的物理接口为 PCIE x16 并具备 PCIe Gen4 x16 的传输速率。在一个全功能的春晓芯片的支持下,S3000 的整体渲染、编解码性能相对于上一代芯片均具备明显的能力提升。目前 S3000 即将进入量产阶段。配套的 GPU 容器化套件,可以满足以容器的方式直接调用 S1000 的计算、存储、编解码等资源,并兼容 Docker 等常用容器工具以及 K8s 生态兼容。
摩尔线程 GPU 容器化技术简介
随着微服务和云原生技术的普遍应用,GPU 作为算力中心中 90%算力的贡献者,GPU 厂商需要提供适用于云原生的技术方案,即 GPU 容器化。摩尔线程提供了标准的容器运行时技术和 K8S 生态融入技术满足并行计算、AI 训练、AI 推理、云渲染、视频云等业务的支持
摩尔线程容器运行时技术
GPU 容器运行时技术从功能上说是通过摩尔线程开发的内容对接容器运行时,runc、rkt、imctfy 等,使得容器在启动时刻,可以将主机端的驱动程序和设备节点挂载到容器中。容器中不用另外处理关于设备的内容就就可以直接使用 GPU 设备进行计算。这样容器镜像 可以保持为设备无关且无状态的属性,容器中的内容只关注于业务本身,便于后期的灵活扩展和跨设备,跨节点的技术特性。
摩尔线程 GPU 容器化技术特点
GPU 容器化符合标 Kubernetes 和容器生态的标准,研发者可以沿袭目前的开发、部署方式使用摩尔线程的 GPU,业务迁移发生在容器底层,因此能够在上层用户无感知的情况下,通过底层的技术替换,完成从其它 GPU 设备到摩尔线程 GPU 设备的迁移。除此之外,摩尔线程 GPU 容器化能够使用 vGPU 最为最小的颗粒度进行调度,相比较于目前市场上只能通过以单 GPU 为进行调度来说,GPU 可以更好的被复用;而且,vGPU 提供了良好的算力隔离、显存隔离,并支持算力的灵活且分,从而可以支持快算力+大显存,普通算力+大显存,快算力+小显存等不同场景的业务需求。
摩尔线程弹性 GPU
数据中心中,设备的利用率一直是关系到整个服务成本的关键因素。目前设备的利用率都很难达到满意,CPU 利用率在大型的云中的利用率只有 30%,而 GPU 的利用率更低。尤其是在 AI 推理应用场景,经常需要把一块卡分给一个服务,而且很多时候设备就被服务所绑定了,造成了资源不能释放,利用率较低。
针对于上述用户的痛点,摩尔线程开发了弹性 GPU 功能特性。功能特性的框架如下图所示:

弹性 GPU 相对于普通的 GPU 和 GPU 虚拟化,提供了算力任意切分的功能,即容器服务或者是普通进程服务都可以使用小数倍的 GPU 算力资源,更加精细化的分配资源,从而提高整个集群的资源利用率。另外弹性 GPU 的任意切分功能提供了动态调整功能,可以随时根据上层服务的使用情况和整体的调度策略,分配不同的算力资源给各个使用者。弹性 GPU 的功能特性与上述 GPU 容器化技术融合,可以在容器化和 K8S 生态中提供给用户更加灵活的调度策略。
软件兼容性
GPU 容器化套件作为连接服务容器负载和 GPU 算力之间的桥梁,对于底层的 CPU 和操作系统有一定的依赖性。摩尔线程 GPU 容器套件在驱动兼容的范围之内实现了对上层容器生成、GPU 设备透传、sGPU 驱动等功能的支持。目前已经支持的环境如下表所示:
| 兼容项 | 型号及说明 |
|---|---|
| 服务器型号 | 附录 1:服务器兼容列表 |
| CPU 及操作系统 | Intel CPU + Ubuntu 20.04.1 |
| CPU 及操作系统 | Hygon CPU + UOS v20 1050e |
| CPU 及操作系统 | Phytium S2500 系列 CPU + 麒麟 V10 SP2 |
| CPU 及操作系统 | Kunpeng 920 系列 CPU + openEuler 20.03 SP3 |
| GPU | MTT S2000 |
| GPU | MTT S1000 |
| GPU | MTT S3000 |
| 容器化环境 | Docker 20.10 and later |
| 容器化环境 | containerd 1.5 and later |
| 容器化环境 | CRI-O 1.32.5 and later |
软件包内容和安装方法
部署 MT Container Toolkit
先决条件
在开始之前,请确保已为您的 Linux 发行版安装了最新的摩尔线程显卡驱动。您可以通过以下命令来进行验证:
❯ mthreads-gmi
Thu Jul 10 11:52:47 2025
---------------------------------------------------------------
mthreads-gmi:2.0.0 Driver Version:3.0.0
---------------------------------------------------------------
ID Name |PCIe |%GPU Mem
Device Type |Pcie Lane Width |Temp MPC Capable
| ECC Mode
+-------------------------------------------------------------+
0 MTT S4000 |00000000:01:00.0 |0% 518MiB(49152MiB)
Physical |16x(16x) |89C YES
| N/A
---------------------------------------------------------------
---------------------------------------------------------------
Processes:
ID PID Process name GPU Memory
Usage
+-------------------------------------------------------------+
No running processes found
---------------------------------------------------------------
安装 Docker CE
sudo apt install docker.io
更多安装信息请参考官方文档。
安装摩尔线程容器运行时套件
使用 dpkg 包管理工具进行安装:
sudo dpkg -i mtml_2.0.0.deb mt-container-toolkit_2.0.0.deb
绑定摩尔线程容器运行时到 Docker,设置默认的容器运行时为 mthreads 并重启 Docker daemon:
$ (cd /usr/bin/musa && sudo ./docker setup $PWD)
您可以通过如下命令验证上述步骤是否成功:
❯ docker run --rm --env MTHREADS_VISIBLE_DEVICES=all ubuntu:20.04 mthreads-gmi
Thu Jul 10 11:52:47 2025
---------------------------------------------------------------
mthreads-gmi:2.0.0 Driver Version:3.0.0
---------------------------------------------------------------
ID Name |PCIe |%GPU Mem
Device Type |Pcie Lane Width |Temp MPC Capable
| ECC Mode
+-------------------------------------------------------------+
0 MTT S4000 |00000000:01:00.0 |0% 518MiB(49152MiB)
Physical |16x(16x) |89C YES
| N/A
---------------------------------------------------------------
---------------------------------------------------------------
Processes:
ID PID Process name GPU Memory
Usage
+-------------------------------------------------------------+
No running processes found
---------------------------------------------------------------
可以看到在容器内部已经能够获取到摩尔线程 GPU 设备。
卸载 MT Container Toolkit
恢复 Docker 默认的容器运行时并重启 Docker daemon:
$ (cd /usr/bin/musa && sudo ./docker cleanup $PWD)
通过 dpkg 包管理工具卸载摩尔线程容器运行时套件:
$ sudo dpkg -r mt-container-toolkit mtml sgpu-dkms
# 完全卸载并清除配置文件
$ sudo dpkg -P mt-container-toolkit mtml sgpu-dkms
MT GPU Operator 2.0.0 部署
先决条件
在安装 MT GPU Operator 前, 您应该确保 Kubernetes 集群满足一些先决条件:
-
节点必须配置容器引擎,例如 Docker CE/EE、containerd 或 cri-o。安装 Docker请参见安装 Docker Engine。
-
节点功能发现 (NFD) 是每个节点上 GPU Operator 的依赖项。默认情况下,NFD master 和 worker 由 GPU Operator 自动部署。如果在部署 GPU Operator 之前,NFD 已在集群中运行,则可以将 GPU Operator 配置为不安装 NFD。
-
要在 Kubernetes 1.13 和 1.14 中进行监控,请启用 kubelet
KubeletPodResources[a] 功能门。从 Kubernetes 1.15 开始,默认启用KubeletPodResources。 -
要在 Kubernetes 中收集 GPU 使用数据,必须在集群中部署 Prometheus。
$ export VERSION=$(curl -s https://api.github.com/repos/prometheus-operator/prometheus-operator/releases | grep tag_name | grep -v -- '-rc' | grep -v -- '-alpha' | sort -r | head -1 | awk -F': ' '{print $2}' | sed 's/,//' | xargs)$ echo $VERSION$ kubectl create -f https://github.com/prometheus-operator/prometheus-operator/releases/download/${VERSION}/bundle.yaml -
要自动安装 MT 驱动程序,必须在集群内的每个节点上手动安装以下软件包:
-
LightDM 是一个跨桌面显示管理器,可以使用以下命令进行安装:
$ sudo apt install -y lightdm -
libdrm2是内核直接渲染管理器 (DRM) 服务的用户空间接口,可以使用以下命令进行安装。$ sudo apt install -y libdrm2注意:所需的最低版本是
2.4.99。
-
-
GPU 调度器是基于 Scheduling Framework 构建的。如果要启用此功能,请确保 Kubernetes 的版本大于
1.19. -
为了确保 sGPU DEB 包的成功安装,需要首先在集群内的每个节点上安装所需的依赖包
dkms。-
dkms可以使用以下命令安装:$ sudo apt install -y dkms注意:所需的最低版本是
1.95。
-
要启用 Kubelet Pod Resources 功能门,请运行以下命令:
echo -e "KUBELET_EXTRA_ARGS=--feature-gates=KubeletPodResources=true" | sudo tee /etc/default/kubelet
安装 MT GPU Operator
先将部署包下载,然后解压:
$ unzip mt-gpu-operator-2.0.0.zip
$ rm mt-gpu-operator-2.0.0.zip
$ cd operator_2.0.0
$ tree
.
├── change_image_repo.sh
├── end-user-cn.md
├── mt-gpu-operator-2.0.0.tgz
├── mt-gpu-operator-custom-resources-2.0.0.tgz
├── mt-gpu-operator.yaml
├── mthreads_v1alpha4_clusterconfig.yaml
├── mthreads_v1beta2_clusterpolicy.yaml
└── sync_image.sh
0 directories, 8 files
$ tar -xvzf mt-gpu-operator-2.0.0.tgz
$ tar -xvzf mt-gpu-operator-custom-resources-2.0.0.tgz
$ tree
.
├── change_image_repo.sh
├── end-user-cn.md
├── mt-gpu-operator
│ ├── Chart.yaml
│ ├── crds
│ │ ├── biosconfigs.mthreads.com-crd.yaml
│ │ ├── clusterconfigs.mthreads.com-crd.yaml
│ │ ├── clusterpolicies.mthreads.com-crd.yaml
│ │ └── nodeconfigs.mthreads.com-crd.yaml
│ ├── templates
│ │ ├── _helpers.tpl
│ │ ├── mt-controller-manager-cm.yaml
│ │ ├── mt-controller-manager-deployment.yaml
│ │ ├── mt-controller-manager-metrics-service-svc.yaml
│ │ ├── mt-controller-manager-sa.yaml
│ │ ├── mt-gpu-operator-cleanup-crd-job.yaml
│ │ ├── mt-gpu-operator-namespace.yaml
│ │ ├── mt-gpu-operator-upgrade-crd-job.yaml
│ │ ├── mt-leader-election-rolebinding-rb.yaml
│ │ ├── mt-leader-election-role-role.yaml
│ │ ├── mt-manager-rolebinding-crb.yaml
│ │ ├── mt-manager-role-cr.yaml
│ │ ├── mt-metrics-reader-cr.yaml
│ │ ├── mt-mutating-webhook-configuration-mutatingwebhookconfiguration.yaml
│ │ ├── mt-proxy-rolebinding-crb.yaml
│ │ ├── mt-proxy-role-cr.yaml
│ │ ├── mt-published-device-cm.yaml
│ │ ├── mt-validating-webhook-configuration-validatingwebhookconfiguration.yaml
│ │ └── mt-webhook-service-svc.yaml
│ └── values.yaml
├── mt-gpu-operator-2.0.0.tgz
├── mt-gpu-operator-custom-resources
│ ├── Chart.yaml
│ ├── templates
│ │ ├── _helpers.tpl
│ │ ├── mt-gpu-cluster-config-clusterconfig.yaml
│ │ └── mt-gpu-cluster-policy-clusterpolicy.yaml
│ └── values.yaml
├── mt-gpu-operator-custom-resources-2.0.0.tgz
├── mt-gpu-operator.yaml
├── mthreads_v1alpha4_clusterconfig.yaml
├── mthreads_v1beta2_clusterpolicy.yaml
└── sync_image.sh
5 directories, 38 files
镜像使用
同步到用户镜像仓库
部署包中提供镜像同步脚本,用户可以将registry.mthreads.com上的镜像同步到自己的内网harbor中:
$ ./sync_image.sh registry.mthreads.com/mcconline <your.registry.com/repo>
部署包中提供了脚本 change_image_repo.sh 来为用户修改部署包下所有文件中的镜像仓库地址,使用方式如下:
$ ./change_image_repo.sh registry.mthreads.com/mcconline <your.registry.com/repo>
使用 Helm 安装
MT GPU Operator Helm charts 提供了多个可自定义的选项,可以根据您的环境进行配置。