Modal 在 10 月 1 日宣布,试用了大约一年半的 Modal Clusters 正式提供。调用方式是一个装饰器 @modal.clustered。博文中的例子是 4 个节点、打开 RDMA,每个节点 8 张 B300。节点之间用 InfiniBand verbs 通信,最高 6.4 Tbps,并自动配好 PyTorch 和 NCCL。博文称,代码在发出请求后数秒内开始在集群上运行,按秒计费。GPU 健康检查和修复扩展到了 RDMA。别处的按需集群往往按小时付费或先预订。Modal 的说法是想跑就跑,只为所用的时间付费。

集群把调度单位从单节点改成 N 个节点。原来的调度器是贪心的:节点各自来领能放下的任务。多节点必须一次放下一组,所以他们另做了调度器,循环是观察、计划、执行:看完整支舰队和所有待运行的集群,按可用区把任务分到节点上,不够就拉新容量,再通知还活着的节点。博文称,它和平台上其他任务共用同一容量池,因此拿到集群只要数秒。文中「市场上最快」和「只有这里按真正的无服务器价格计费」是 Modal 的说法,不是独立测速。
[1]博文用两个例子说明为什么要 RDMA。GLM 4.7 的每一步训练要把大约 717 GB 的 BF16 权重从训练器同步到推演端:走 50 Gbps 的 TCP 接近两分钟,走 RDMA 不到两秒,而且要重复几千步。推理一侧,Llama 3.1 70B 做预填和解码分离时,每个 3.2 万 token 的提示要搬大约 10 GB 的 KV 缓存,并且得落在几百毫秒的首 token 时间里。RDMA 让 GPU 或 CPU 内存经网络直接传,不经过内核里的数据路径。博文写,单节点可以推到 6.4 Tbps。
他们把各家云不同的驱动和变量收进一个 rdma=True。今天,用 PyTorch 和 NCCL 的负载打开这个开关就可以跑。Modal 用 gVisor 而不是 runc。gVisor 原来没有 RDMA,他们自己加进去,并把改动交回上游。
博文举了三个客户,都是当事人的自述,不是第三方评测。Decagon 用 Miles 在 Modal Clusters 上微调最大到一万亿参数的开放模型,Modal 给 Miles 加了 LoRA 支持。1x 在多节点 B300 集群上预训练 NEO 的世界模型,大任务走 RDMA,评估则是一批单节点作业,并写到可以临时用到数百张 GPU。Runway 的 Gen-4.5 和 Aleph 2.0 把一次生成摊到多个节点上做推理。
Clusters 今天对所有工作区开放。集群能有多大,受套餐里的 GPU 上限约束。博文没有给出各档上限的数字。
[1]要点
- Clusters 正式提供。示例是 4 个节点、每节点 8 张 B300,并打开 RDMA。
- 节点间 InfiniBand 最高 6.4 Tbps,为 PyTorch 和 NCCL 自动配置,按秒计费。
- 博文举例:GLM 4.7 每步同步约 717 GB 权重,50 Gbps TCP 近两分钟,RDMA 不到两秒。
- 今天所有工作区可用。集群规模受套餐 GPU 上限约束,文中没有列出各档数字。