EN|中文

一次设置,持续共享 GPU,无需日常运维

MTGPU 自动配置账户,并为位于任何地点的服务器提供内置的原生与容器化作业调度。只需简单配置,即可从单台服务器扩展到集群——无需部署独立的调度系统或目录服务。

下载 MTGPU 了解工作原理

MTGPU Server

将现有硬件变成共享基础设施

MTGPU 只需一份简单配置,就能把现有工作站或云主机变成多租户集群。几分钟即可完成安装,集群自动组成,用户账户在首次访问时自动开通,无需管理员逐一设置。内置作业调度器同时支持原生作业和容器作业,并自动故障切换——无需另外安装和维护独立的调度系统。从单台服务器到数千台的集群,安装方式和使用体验始终相同。需要时增加电脑或共享存储即可;用户文件的所有权在每台服务器上保持一致,无需迁移账户或数据。

默认保持私有服务器留在各自的私有网络中,用户随处可用。无需 VPN,无需开放防火墙端口。连接直达且加密。
首次访问即可使用租户账户和 SSH 密钥均由系统自动配置;已有系统账户可继续使用,不受影响。
两种布局都支持集群作业调度器把每个作业放到容量合适的节点——共享租户主目录或各节点独立主目录均可。
用户身份一致每位租户各自的 UID/GID 在所有 MTGPU 服务器上保持一致,无需 LDAP、NIS 或其他目录服务。

每台计算机一份文件

用一份简单的配置定义基础设施布局

MTGPU 通过一份配置文件来安装和管理每台计算机。少数几个设置就定义了计算机各自如何工作、又如何协同工作:

CLUSTER_MODE 与 CLUSTER_ID

指定服务器独立运行,还是作为集群成员运行。集群 ID 相同的服务器会自动组成一个集群,并自行选举出作业调度器。无论租户主目录是共享还是各自独立,作业都会被分派到最合适的成员。

TENANT_HOME_ROOT

指定账户主目录的根目录。MTGPU 为租户账户分配在所有服务器上唯一且一致的 UID/GID,从而可以无缝共享主目录。

已有的操作系统账户及其主目录继续照常工作,不受影响。

CONTAINERS.enabled

启用容器工作区。配套设置指定预选的工作区模板、从私有仓库预拉取的镜像、持久化缓存卷、网络访问与端口发布策略,以及是否允许用户使用自带镜像。

共享资源与保留策略

DATASETS_DIRECTORIES 和 PYTHON_INTERPRETERS 以只读方式向所有账户发布数据集和 Python 环境。USER_DISK_LIMIT、JOB_RETENTION_DAYS 和 TENANT_RETENTION_DAYS 分别指定每位用户的磁盘配额、已完成作业记录和数据的保留天数,以及不活跃账户的保留天数。MTGPU 执行这些策略,无需管理员干预。

几分钟即可就绪。同一份配置文件可以复制到多台计算机使用,必要时只需少量修改。安装完成后,集群自动组成,获得授权的用户即可从互联网上的任何地方开始访问和工作。无需再安装和管理任何其他系统:不需要 Slurm、Kubernetes 之类的调度系统,也不需要 LDAP、NIS 之类的目录服务。MTGPU 目前支持 Linux 和 Windows WSL2。

多租户共享,无需复杂管理

共享机器,边界清晰,按需扩展

每位授权用户都有私有的非特权操作系统账户。需要时可以随时添加新的计算机和共享存储,用户文件的所有权自动延续到每一台服务器。

单个开发者可以把它安装在工作站上,然后用笔记本电脑在任何地方工作。一组开发者可以把各自的工作站组成一个集群。每台主机都受到保护:成员以非特权租户账户工作,主目录彼此私有;在 Windows WSL 主机上,mtgpu-setup 默认将本机磁盘对租户隔离。

任意网络,无需 VPN服务器和客户端都可以位于防火墙之后的任意私有网络中,甚至在不同的城市或国家。服务器之间以及客户端与服务器之间的所有通信都是直接连接,可选自建中继作为后备,并端到端加密——无需 VPN,无需端口转发,也无需开放防火墙。了解 DirectLink 的工作原理。
大体量资源只存一份管理员只需发布一次数据集和准备好的 Python 环境,即可以只读方式供所有账户共享,无需把 CUDA 软件栈和 TB 级数据复制到每位用户的主目录。
缓存比工作区更长久持久化的用户专属卷让 pip 软件包和 Hugging Face 模型下载在工作区停止或重建后依然保留——每个账户拥有独立副本,无需每天重新下载数 GB 的内容。

交互式开发或作业执行

全面的容器支持

MTGPU 默认使用 Podman 运行无 root 权限的容器。每个容器都在工作区中以用户自己的账户身份运行,并挂载用户主目录和持久化缓存卷。计算资源在创建工作区时预留。

从任意镜像开始

工作区可来自管理员预选的模板、从私有仓库预拉取的镜像、公共 OCI 镜像、由您自定义工作区保存的镜像,或采用标准 Docker 容器规范的 devcontainer.json。

自动接线

GPU 可见性、挂载和生命周期均由 MTGPU 管理,并按您的选择发布端口——Jupyter、TensorBoard 或您自己的 Web 界面一键即达。

在其中开发,或在其中运行作业

手动创建工作区用于交互式开发:在其中打开终端,或将 Microsoft 的 Dev Containers 扩展连接到该工作区。容器化作业会根据作业规范自动创建工作区,并在作业结束后自动移除。

断线不断会话

面向项目开发的持久终端

每个 SSH 终端都运行在 GPU 主机上的 tmux 会话中,断开连接后会话仍会保留。Claude Code、Codex CLI 等工具中的 AI 编程会话和智能体任务会继续运行,训练循环以及交互式 Python 或调试器会话也一样。

从任何电脑重新连接窗口、正在运行的程序和输出都仍然保留——包括没有客户端连接期间打印的输出。
客户端无需配置tmux 由 mtgpu-setup 安装在 GPU 主机上,客户端自动接入。
用户可选,管理员可控用户可以按终端关闭它,管理员也可以通过一个设置将其设为按需启用或整体关闭。

内置集群调度

自动故障转移的作业调度器

集群作业提交实现高效的资源共享:调度器要么立即在可用节点上运行作业,要么把作业排入队列,等到有节点空出来再运行。MTGPU 同时支持原生作业和容器化作业。原生作业的命令在用户主目录环境中执行;容器化作业的命令在容器环境中执行,并挂载用户主目录和持久化缓存卷。作业写在一个类似 Slurm 批处理脚本的文件中:可选的容器、所需资源——GPU、CPU、最低显存和内存——以及要执行的命令。

灵活的资源预留

GPU 预留有三种模式:独占、在保证显存容纳的前提下共享、或以超配方式机会共享。作业可以按类型预留 GPU,例如 nvidia:1、amd:2 或 rtx4090:1,也可以用 server=<服务器名> 指定服务器。

仅配备 CPU 的服务器也可以加入集群,承接不需要 GPU 的作业。

基于实时遥测的调度

每个节点实时报告实测的 GPU、显存、CPU 和内存用量。调度器同时依据实测空闲容量和已承诺容量,把作业放到最合适的节点。所有合适的节点都繁忙时,作业按优先级进入队列;等待时间越长,优先级会逐步提升,确保低优先级作业最终也能运行。整个集群都不可能满足的请求会被立即拒绝。

多节点作业与数组作业

分布式训练需要同时使用多台 GPU 服务器。作业文件中写入 nodes=N,同一命令即在 N 个节点上运行:每个节点通过环境变量获得自己的 rank 和汇合地址,可直接用于 torchrun 或任何基于 NCCL 的启动器;整组作业要么一起启动,要么都不启动,任一节点失败则其余节点一并停止。对于每次运行相互独立的工作,array= 把一个文件展开为多个独立作业,每个索引一个,分散到有空闲的节点上执行。

这两个指令在原生作业和容器化作业中都受支持。

没有单点故障,为扩展而设计

集群节点自动选举能力最强的节点担任调度器,并持续复制其队列。调度器节点离线时,另一节点自动接管,作业无需重新提交。

随着集群扩大,调度器仍能高效运行。在模拟负载测试中,以一台 2012 年桌面 CPU(AMD FX-8350)作为基准下限,其上的调度器即可从容应对一千个节点和数千个租户账户,仍有余量;使用当前硬件,上限还会更高。

支持主流 GPU 品牌。MTGPU 自动检测每台机器上的 GPU,NVIDIA、AMD 和 Intel GPU 开箱即用;其他品牌会自动完成配置和测试,几乎无需管理员介入,详见用户手册。

两种存储布局都支持。采用共享主目录存储时,用户的主目录在每台计算机上都是同一个,容器化作业的容器镜像只需归档一次,由实际运行作业的节点从同一存储中取回。采用独立主目录存储时,作业首次在某节点上执行时,调度器会把镜像传送到该节点。

多集群。管理员可以在同一个管理员账户下运行多个集群——例如按团队、站点或硬件代际各建一个——每个集群拥有自己的集群 ID 和调度器。使用 mtcode-admin 将用户分配到不同的集群:用户只能看到并向获得授权的集群提交作业,一个用户也可以同时获得多个集群的授权。

兼容现有工具。MTGPU 不会把机器封闭起来:您的工作流程已经依赖的外部工具可以照常与 MTGPU 并行使用,无需任何改变。

在租用的云 GPU 或 VPS 上无界面安装。MTGPU 的安装和运行完全无需显示器,只要一个 SSH 终端即可。用 scp 把安装包复制到主机,或直接在 SSH 会话中下载,然后运行 mtgpu-setup install --yes 完成无人值守安装,并启用开机自动启动。

适应用户的工作方式

同样的访问方式,VS Code 或终端皆可

既可在 VS Code 中使用 MTGPU,也可从终端使用,支持 Windows、macOS 和 Linux。两个客户端发现同一批获得授权的服务器,并提供相同的核心访问和工作区操作。

面向 VS Code 的 Remote-GPU

发现服务器、比较实时使用率并创建交互式工作区。随后打开 SSH 终端,或启动 Microsoft 的 Remote - SSH 或 Dev Containers 扩展,并在同一面板中跟踪作业状态。该扩展可在 VS Code 中从 Visual Studio Marketplace 安装。

remotegpu-cli

无需 VS Code,通过键盘驱动的终端程序获得相似的服务器发现、实时使用率、SSH 访问、工作区管理和作业状态功能。remotegpu-cli 包含在 MTCode Portal 软件包中。

Remote-GPU 面板显示可用 GPU 服务器和实时使用率

在一个界面中查看所有获得授权的服务器:硬件信息、实时使用率、SSH 访问、交互式工作区和作业状态。

点击查看 remotegpu-cli

两种客户端通用的终端工具。无论 SSH 终端是从 VS Code 还是 remotegpu-cli 打开,用户都可以用 mt-job、mt-container、mt-podman 和 mt-python 管理自己的工作流;管理员则在服务器终端上用 mtgpu-admin 监控和管理服务器与用户。

让您已经拥有的 GPU 真正运转起来。

连接一台主机、邀请团队,然后从第一次交互式实验自然过渡到集群调度作业,无需更换平台。