TorchTitan:面向生产级 LLM 预训练的一站式 PyTorch 原生方案

本页为第 14 篇(训练、并行与 GPU Kernel 类),全部定量内容取自本地论文 PDF 14_TorchTitan_2410.06511.pdf(arXiv:2410.06511v3,cs.CL,2025-06-07 水印),并逐条标注 PDF 页码与章节;21 页已全部逐页核对。

快速标签与阅读说明

最后核验日期:(PDF 全部 21 页逐页核对;官方仓库已在线核验)。

证据完整度:关键定量结论均带 PDF 页码/表号与完整测试条件,未获取的字段一律写明「论文未明确披露」;仓库经在线核验(R);云上产品映射为示例(E,未逐一核验规格与价格);成本公式、编排与运维建议为参数化推断(I)。本页不设任何评分。

证据标签图例: P=论文 R=官方仓库 E=外部资料 I=编辑推断

1. 摘要与一句话判断

论文元数据 P(第 1 页)
标题TorchTitan: One-stop PyTorch native solution for production ready LLM pretraining(编辑译名:面向生产级 LLM 预训练的一站式 PyTorch 原生方案)
作者与机构Wanchao Liang、Tianyu Liu、Less Wright、Will Constable、Andrew Gu、Chien-Chin Huang、Iris Zhang、Wei Feng、Howard Huang、Junjie Wang、Sanket Purandare、Gokul Nadathur、Stratos Idreos;Meta(Purandare 为哈佛在读、工作完成于 Meta)与 Harvard University P(第 1 页)
arXiv / 版本arXiv:2410.06511v3(cs.CL),PDF 水印 2025-06-07;文内日期 June 10, 2025;未标注会议录用信息 P(第 1 页)
代码论文第 1 页明示 Code: https://github.com/pytorch/torchtitan,经在线核验(R,见 #links
评估范围Llama 3.1 家族 8B / 70B / 405B;8 → 512 GPU;1D → 4D 并行 P(第 1 页摘要、第 7 页 §3)
一句话判断(编辑推断):I TorchTitan 的价值主张不是某单项技术最快,而是把 4D 并行(FSDP2/HSDP、TP/SP、PP 六种调度、CP)、编译(torch.compile)、Float8、DCP 异步检查点与 Flight Recorder 调试统一进一个约 9K 行的 PyTorch 原生代码库,使「并行策略可组合、配方可比较、生产可运维」。对云平台团队,它适合作为自建 LLM 预训练平台的基座或对照物;是否选它,核心取决于能否接受 PyTorch nightly 节奏与 NVIDIA H100+ 硬件前提(见 #fit#security-ops)。

3 分钟速读

  1. 问题:现有分布式训练方案散落在多个库/仓库中,难以组合与比较,检查点扩展性、故障恢复与调试工具不足,维护工程量大 P(第 1-2 页 §1)。
  2. 方案:以 DTensor + DeviceMesh 为统一抽象,组合 FSDP2(默认 1D)、HSDP、TP/SP(含 Loss Parallel、AsyncTP)、PP(1F1B/交错 1F1B/ZeroBubble 等 6 种调度)、CP,叠加激活检查点三模式、regional compilation、Float8;生产侧集成 DCP 异步检查点与 Flight Recorder P(第 3-7 页 §2)。
  3. 论文声称的主要结果:在「已叠加此前全部技术」的优化基线上,Llama 3.1 8B(128 GPU、1D)加速 65.08%,70B(256 GPU、2D)经 AsyncTP 加速 12.59%,405B(512 GPU、3D)经交错 1F1B 加速 30%;CP+4D 支撑 262,144 token 上下文训练 P(第 1 页摘要;条件见 #experiments 表 E1-E6)。
  4. 云上含义:训练平台的吞吐来自「叠加式」优化(编译 → Float8 → AsyncTP → 调度),而平台可用性与故障恢复来自 DCP 异步检查点(开销降 5-15 倍,Llama 3.1 8B)与 Flight Recorder 排障 P(第 7-8 页);I 前者决定 GPU 租用成本,后者决定大集群下的有效训练时间占比。
  5. 主要限制:实验全部为 Llama 3.1 dense 模型、非标准 H100(作者自述不知确切峰值 TFLOPS);MoE 在论文时点为 Ongoing;Float8/AsyncTP 依赖 H100+ 与 NVSwitch;仓库要求 PyTorch nightly P(第 7 页脚注 1、第 20 页表 7、第 6 页 §2.2.3)+ R(README,2026-09-14 核验)。

2. 问题背景

规模背景:论文以 Llama 3.1(405B 参数、15T tokens、30.84M GPU 小时、16K H100 GPU)与 PaLM(540B 参数、0.8T tokens、9.4M TPU 小时、6144 TPUv4)说明前沿模型训练的资源量级;并指出大规模训练易发 GPU 故障,需要高效恢复机制与检查点策略来减少停机 P(第 1 页 §1)。I 对架构师而言,这意味着「算得快」与「坏得起、恢复得快」必须同时设计。

现有方案的五大不足(论文归纳):P(第 2 页 §1)

  1. 不可组合:难以把多种并行技术叠加,限制了多维探索与内存/计算优化的集成,训练效率受损。
  2. 架构不灵活:缺模块化与可扩展性,新方法、新优化、新硬件难以接入。
  3. 硬件利用率不足:未用好先进硬件特性,GPU 效率次优,且缺少可定制的检查点策略做内存-计算权衡。
  4. 生产训练支持不足:分布式检查点扩展性有限、故障恢复繁琐、调试工具缺乏,阻碍生产级工作流。
  5. 框架局限:依赖外部且维护不善的库,未能利用 PyTorch 优化 kernel、新特性与编译器支持,带来低效与兼容性问题。

根因:论文认为这些问题源于全栈缺少统一一致的张量与设备抽象,导致并行策略、检查点与效率优化彼此割裂 P(第 2 页 §1 末段)。

目标工作负载与约束:Llama 类 dense Transformer 的千亿参数、万亿 token 预训练;数千加速器规模;要求生产可用(检查点、恢复、调试、日志)P(第 1-3 页 §1-§2)。基线口径:性能对比的基线为「已包含此前全部叠加技术」的优化配置(stacked baselines),而非裸 eager P(第 8 页 §3.2)。

3. 核心机制

3.1 代码组织与统一抽象

3.2 四个并行维度(可自由组合至 4D)

并行维度一览(机制均为论文事实 P;「职责边界」列为编辑整理 I
维度实现机制通信与硬件前提论文定位
FSDP2 / HSDP(数据并行) FSDP2 以逐参数 DTensor 分片替代 FSDP1 的 FlatParameter;默认自动按 world size 分片;HSDP 构建 2D DeviceMesh(shard 组内跑 FSDP、replica 组间普通 DP,两者乘积为实际 DP world size)(第 4 页 §2.1.2、第 16-17 页附录 B.1/B.2) 参数 all-gather(BF16)+ 梯度 reduce-scatter(FP32);HSDP 增加副本组间梯度 allreduce;可跨节点走 RDMA 默认 1D 并行;通信快于计算时常可用到 512 GPU;Llama 2 7B 对比 FSDP1:内存约 −7%、吞吐约 +1.5%(第 4、9、16 页)
TP / SP(张量/序列并行) 用 RowwiseParallel/ColwiseParallel 把 attention/MLP 参数分片为 DTensor,不改模型代码;SP 对 norm/dropout 沿序列维分片;TP 与 SP 捆绑、由 TP degree 统一控制;Loss Parallel 按词元维分片交叉熵(默认启用)(第 4-5 页 §2.1.3、第 17 页附录 B.3) 引入 all-reduce/all-gather/reduce-scatter 同步中间激活,需节点内高速网络(NVLink),度数一般 ≤8(第 9 页 §3.3.2) 降低集合通信时延、缩小有效 batch、优化矩阵乘形状、为大模型/长序列降峰值内存(第 9 页 §3.3.2)
PP(流水线并行) 模型按切分点分 S 个 stage,各占一组设备;输入批切 microbatch;经 torch.distributed.pipelining 支持 1F1B、GPipe、交错 1F1B、ZeroBubble、Flexible-Interleaved-1F1B、Looped-BFS 共 6 种调度(pipeline IR 表达调度、编译 pass 插入/优化通信);PP 实验采用 ZeRO-2 语义(第 5 页 §2.1.4、第 17 页 B.4、第 20 页表 7 与 B.10.1) 阶段间仅点对点传边界激活/梯度,带宽需求小;效率取决于调度与 microbatch 大小(气泡)(第 10 页 §3.3.3) 应对更大规模或带宽受限集群,缓解 FSDP 通信时延(第 10 页 §3.3.3)
CP(上下文并行) 沿序列维分片 DTensor;上下文管理器动态替换 scaled_dot_product_attention 调用(不改模型代码);DTensor dispatcher 扩展支持 Ring Attention 与 causal 负载均衡(第 5 页 §2.1.5、第 18 页附录 B.5) Ring Attention P2P 轮转;与 FSDP/TP/PP、AC、torch.compile、DCP 全兼容;大规模训练时 TP 居最内维、CP 居次外维(第 10 页 §3.3.4) 主用于超长上下文:Llama 3.1 8B + 8 H100 支撑 262,144 token 上下文、MFU 随 CP 度仅轻微下降(第 5 页 §2.1.5)

3.3 内存与计算优化

3.4 生产级训练设施

控制面 / 数据面职责划分(编辑推断):I 论文未使用「控制面/数据面」术语。本页为便于云上理解作如下划分:控制面=TOML 配置解析、DeviceMesh 构建、调度选择、训练循环编排、检查点/恢复触发;数据面=数据加载、张量分片与集合/P2P 通信、优化器更新、检查点读写。该划分仅影响叙述方式,不改变组件职责的论文事实。

4. GPU/系统数据路径

TorchTitan 数据路径示意图:控制面由 TOML 配置构建 DeviceMesh 并行维度、选择流水线调度并驱动通用训练循环;数据面上 C4 数据经 tiktoken 分词与可检查点数据加载器进入训练,模型先在 meta 设备上分片初始化,microbatch 按流水线调度流经各 PP 阶段,阶段间仅点对点传递边界激活与梯度;单个阶段内部嵌套 TP/SP 分片计算(节点内 NVLink,AsyncTP 重叠)、FSDP2 参数 all-gather 与梯度 reduce-scatter(跨节点 RDMA,HSDP 增加副本组 allreduce)与 CP 序列维 Ring Attention;随后优化器以 FP32 更新;DCP 按 DTensor 布局分片保存检查点,异步模式以独立线程持久化并与训练迭代重叠,写入高吞吐存储;Flight Recorder 旁路记录所有集合与点对点通信事件用于故障诊断。
图 1:TorchTitan 4D 并行训练数据路径与控制面/数据面边界。实线=数据面(数据/张量/通信/检查点),虚线=控制面与调试旁路;编号 ①–⑨ 对应下方文字序列。依据论文第 4-7 页 §2.1-§2.3 与第 14-21 页附录 A/B 绘制 P;平面划分、配色与编号为编辑标注 I

端到端文字序列(与图中编号一致)

  1. ① 数据接入:C4(en 变体,Common Crawl 清洗语料)经 Llama 3.1 官方 tiktoken 分词,进入可检查点的 data loader(支持断点恢复读取)P(第 7 页 §3.1)。
  2. ② 初始化:模型先在 meta 设备上创建(仅元数据),按 pipeline_parallel_split_points 切分为 PP stage(looped 调度可得多个 model_parts),对每个 stage 依次应用 TP 计划、激活检查点、torch.compile、FSDP2 与混合精度,最后 to_empty(cuda) 落卡并以用户函数初始化权重(DTensor 保证分片布局与 RNG 正确)P(第 4 页 §2.1.1、第 14-15 页附录 A 代码)。
  3. ③ microbatch 流动:输入批切为 microbatch,按所选流水线调度(如交错 1F1B)在各 stage 间流动;stage 之间仅以 P2P 传边界激活(前向)与梯度(反向),末 stage 计算损失并启动反向;梯度归约只在最后一个 microbatch 后发生 P(第 5 页 §2.1.4、第 20 页 B.10.1)。
  4. ④ stage 内 TP/SP:attention/MLP 参数按列/行分片(RowwiseParallel/ColwiseParallel),中间激活经 all-gather/reduce-scatter 在节点内 NVLink 上同步;norm/dropout 沿序列维分片(SP);启用 AsyncTP 时矩阵乘被切小块、通信与计算微流水重叠(SymmetricMemory 直连 P2P)P(第 4 页 §2.1.3、第 6 页 §2.2.3、第 17 页 B.3)。
  5. ⑤ stage 内 FSDP2/HSDP:前向按需 all-gather 参数(BF16),本地计算后立即(除最后一个 TransformerBlock 外)reshard;反向梯度 reduce-scatter(FP32)并更新分片优化器状态;HSDP 形态下 shard 组内如上、副本组间再做梯度 allreduce P(第 4 页 §2.1.2、第 15-17 页附录 A/B.1/B.2)。
  6. ⑥ stage 内 CP:序列维分片时,attention 调用被上下文管理器替换为 CP 算子,经 Ring Attention P2P 轮转 KV/激活并做因果负载均衡;输入 ids/labels 等缓冲按 cp_seq_dims 声明参与分片 P(第 18 页附录 B.5 与第 15-16 页附录 A 代码)。
  7. ⑦ 反向与优化器:Loss Parallel 使交叉熵按词元维分片计算、免全量 gather 模型输出(默认启用);优化器状态 FP32 更新 P(第 5 页 Loss Parallel、第 6 页 §2.2.4、第 19 页 B.8)。
  8. ⑧ 检查点路径:DCP 按 DTensor 布局把分片模型/优化器状态写为内部格式存储;异步模式下持久化在独立线程执行、与后续训练迭代重叠(Llama 3.1 8B 开销较同步降 5-15 倍);加载时按当前并行布局匹配取回分片,可跨并行配置复用 P(第 7 页 §2.3.1)。
  9. ⑨ 调试旁路:训练全程 Flight Recorder 记录每个 collective/p2p 的 start/end/enqueue 时间与元数据(进程组、rank、张量尺寸、调用栈),作业卡死/崩溃时用于定位最后完成的 send/recv 或未调用集合通信的 rank P(第 7 页 §2.3.2)。
路径上的关键配置与容量事实(配置/机制口径,非性能结论;性能结论见 #experiments
事实/数值对象与条件论文定位
TP 度数一般 ≤8,限于节点内(NVLink);原文另有「Scaling beyond 4192 GPUs requires combining TP with PP」一句(数字 4192 系原文原样印出、无分隔符;编辑注:疑为排版笔误,不改动原文)ITP 扩展上限P 第 9 页 §3.3.2
HSDP:data_parallel_shard_degree × data_parallel_replicate_degree = 实际 DP world sizeHSDP 配置语义P 第 17 页 B.2
PP 实验用 ZeRO-2(ZeRO-3 每 microbatch 额外 all-gather、低效)PP + FSDP 组合口径P 第 20 页 B.10.1
CP 支撑 262,144 token 上下文(8B、8 GPU);4D 下 TP 居最内维、CP 居次外维长上下文训练P 第 5 页 §2.1.5、第 10 页 §3.3.4
异步检查点开销较同步降 5-15×(Llama 3.1 8B);硬件/检查点大小/存储介质:论文未明确披露DCP 异步检查点P 第 7 页 §2.3.1
每主机 8 GPU + NVSwitch;两主机一机架接 TOR;TOR 间后端 RDMA 互联实验集群拓扑P 第 7 页 §3.1
P 口径提醒(读数方式):论文吞吐为 tokens/s/GPU,每 10 次迭代记录、统一取第 90 次迭代读数;内存读数全程稳定、PP 各 rank 取最大值;启用 Float8 后因 BF16/FP8 Tensor Core 峰值 FLOPS 不同而不报告 MFU(仅给参照:1D 8B 不开 Float8 为 33%-42% MFU)P(第 8 页 §3.2 与脚注 1-2)。引用本页任何数字时必须保留这些口径。

5. 架构权衡

6. 云上部署映射

以下映射为厂商中立示例;具体产品命名/规格仅作说明并标 E,以厂商当时目录为准,未逐一在线核验。论文事实(集群拓扑、机制)单独标注 P

TorchTitan 组件 → 云上资源映射
论文需求云上映射(示例)证据与说明
计算节点:每主机 8 GPU + NVSwitch(TP/AsyncTP/SymmetricMemory 前提) E 8×H100/H200 整机实例:如 AWS p5/p5e 家族、Google Cloud a3-highgpu/a3-megagpu、Azure ND H100 v5 系列(示例命名) 硬件前提为论文事实 P(第 6-7 页 §2.2.3、§3.1);实例名为厂商目录示例 E
网络:节点内 NVLink/NVSwitch;节点间 RDMA 后端(TOR 互联) E GPU 组网选型:RDMA over Converged Ethernet(RoCEv2)或 InfiniBand 后端网络;TP 组必须同主机 论文实验拓扑 P(第 7 页 §3.1);带宽等级与云厂商组网规格需按目录核对 E
存储:DCP 分片检查点高吞吐读写;异步持久化与训练重叠 E 高吞吐对象存储或并行文件系统(如各云的 Lustre/GPFS 类托管服务、对象存储多 part 并发写);按租户/项目隔离的检查点桶 DCP 分片读写机制 P(第 7 页 §2.3.1);存储产品与吞吐规格为云示例 E
编排:多节点作业启动、失败重启、拓扑感知放置 E Slurm / Kubernetes(torchrun 风格 launcher)+ GPU 拓扑感知调度;作业级重试与节点替换 论文未指定编排器(实验为固定集群)P(第 7 页 §3.1);编排与放置建议为 I/E
弹性:改变并行度后继续训练;跨集群迁移 E 借 DCP「布局解耦」:缩容/换型后从旧检查点按新并行布局恢复;HSDP 度数调整作为弹性维度 DCP 跨布局复用为论文机制 P(第 7 页 §2.3.1);弹性操作流程为编辑建议 I
可观测:吞吐/内存日志 + Flight Recorder 通信事件 E 日志接入集中式监控(Prometheus/Grafana、云厂商托管监控);Flight Recorder 追踪文件按作业归档并设访问控制 内置日志指标与 Flight Recorder 为论文功能 P(第 7-8 页 §2.3.2、§3.2);监控接入为云实践 E
放置要点(编辑推断):I 依论文通信分层:TP/SP 维度必须整组落在同一主机的 NVSwitch 域内;PP 相邻 stage 尽量同机架(P2P 走 TOR);FSDP/HSDP 的 all-gather/reduce-scatter 与副本 allreduce 走后端 RDMA、按 rack/可用区分散副本组以兼顾容灾。放置错误(如 TP 跨主机)的后果不是变慢而是不可用——TP 依赖节点内高速互联。

7. 成本 / 性能 / SLO

7.1 训练场景的「SLO」口径

预训练没有在线时延 SLO,平台 SLA 通常转化为:I吞吐目标(tokens/s/GPU 或总 tokens/天);②有效训练时间占比(1 − 故障/检查点停机占比);③故障恢复时间 MTTR(作业崩溃到恢复训练的时长);④损失收敛里程碑(按计划达到目标 loss/下游指标)。论文对前三者给出机制与参考数字,对第④项给出收敛验证方法 P(第 8 页 §3.2、第 21 页 B.10.2)。

7.2 成本公式(参数化,编辑推断)

预计 GPU 时(小时)≈ 总 token 数 ÷ (单卡吞吐 tokens/s × 卡数 ÷ 3600)
算力成本 ≈ GPU 时 × 当时单价(记录查询日期)+ 节点溢价
存储成本 ≈ 检查点大小 × 保留副本数 × 保留时长 × 存储单价;检查点大小 ≈ (参数 + 优化器状态 + 临时缓冲) 字节数(与精度策略相关)
有效成本/GPU 时 ≈ 算力成本 ÷ 有效训练时间占比

I 公式中唯一由论文支撑的变量是单卡吞吐(带完整条件,见 #experiments)与检查点开销倍率(5-15×,第 7 页);单价、存储价、检查点大小均需按部署时数据填写,论文未披露、本页不给出伪精确数字。

7.3 敏感项排序(论文口径,条件互不可比)

P 在各自实验条件下,逐项叠加的吞吐增益为:Float8(8B:+50.35%/+65.08%,第 8 页表 1/2)>流水线调度换挡(405B:1F1B→交错 1F1B +30.00%,表 4)>AsyncTP(70B 2D:+12.59%,表 3)>torch.compile(8B:+6.64%/+14.82%,表 1/2)。I 成本治理含义:Float8 与调度选择的「免租金」收益最大,应最先纳入 PoC;各增益倍数基于不同模型/规模/基线,不可横向相乘或跨表比较

7.4 数据缺口

8. 安全与可运维性

8.1 安全

8.2 可运维性

9. 适用 / 不适用场景

适用(触发条件 + 理由)

  1. Llama 类 dense 模型的 8B–405B 预训练/继续预训练,8–512+ H100 GPU,团队愿意采用 PyTorch 原生栈。触发:模型可按 Llama 适配、硬件为 H100 主机(NVSwitch)+ RDMA 后端。理由:论文实验全覆盖该区间并给出叠加增益与收敛验证 P(第 1、7-9、21 页)。
  2. 长上下文训练(32K–262K)且单卡显存不足。触发:序列长度驱动 OOM、或模型质量目标要求超长上下文。理由:CP 把序列维分片并与 3D 并行组合,8B/8 GPU 支撑 262,144 token、405B/512 GPU 4D 同样可达 P(第 5 页 §2.1.5、第 9 页表 5/6)。
  3. 带宽受限集群或超大模型需要流水线并行。触发:FSDP 集合通信时延随 world size 线性上升、跨节点带宽成为瓶颈。理由:PP 仅 P2P 传边界激活/梯度,且提供 6 种调度按气泡/内存折中选型 P(第 9-10 页 §3.3.1/3.3.3、第 20 页表 7)。
  4. 追求吞吐上限且硬件达标(H100+ NVSwitch)。触发:可接受 Float8 治理成本与收敛验证流程。理由:compile+Float8+AsyncTP+交错 1F1B 的叠加增益均有条件化实验支撑 P(第 8 页表 1-4)。
  5. 大集群生产训练,故障恢复与排障是硬需求。触发:GPU 故障率高、NCCL 卡死定位成本高。理由:DCP 异步检查点(5-15× 开销降)+ Flight Recorder + 可检查点 data loader 构成恢复闭环 P(第 7 页 §2.3、§3.1)。
  6. 教学/研究:并行配方实验床。触发:需要系统性比较并行策略而维护成本可控。理由:核心 7K 行/全量 9K 行代码、三组件正交、TOML 配置 P(第 3 页 §2、第 20 页表 8)。

不适用(触发条件 + 理由)

  1. MoE 或非 Llama 类架构的「开箱即用」预期。触发:直接拿 MoE 模型按论文结果预估收益。理由:论文实验全部为 Llama 3.1 dense,MoE 行在其功能对比表中为 Ongoing P(第 7-9 页、第 20 页表 7)。
  2. 非 NVIDIA H100+ 或无 NVSwitch 的硬件。触发:A100/消费级卡、无节点内 NVSwitch 的整机。理由:Float8 需 H100 等较新硬件,AsyncTP/SymmetricMemory 依赖 NVSwitch,论文实验口径为非标准 H100 P(第 6 页 §2.2.3-2.2.4、第 7 页脚注 1)。
  3. 无法接受 PyTorch nightly 依赖的严苛生产环境。触发:变更管控要求「仅用稳定版/长期支持版」。理由:仓库明确要求 nightly 构建 R(README,2026-09-14 核验);I 若只能用稳定版,需评估当时稳定版已包含的 FSDP2/DCP 能力是否满足,等于放弃论文部分叠加增益。
  4. 期望托管式训练平台(UI、自动超参/并行搜索)。触发:用户需要产品化界面与自动化配方搜索。理由:TorchTitan 定位是训练系统/试验床,配置经 TOML 与命令行,无托管控制面 P(第 3 页 §2)+ I
  5. 推理服务场景。触发:拿它做在线 serving。理由:论文范畴为预训练系统,不含服务化组件 P(第 1、10 页)。

10. 实验与指标

10.1 实验设置与口径 P(第 7-8 页 §3.1-§3.2)

设置与指标口径(论文事实)
硬件NVIDIA H100、95 GiB 显存;非标准卡:HBM2e、更低 TDP,峰值 TFLOPS 介于 SXM 与 NVL 之间、作者不知道确切值(脚注 1);每主机 8 GPU + NVSwitch;两主机/机架 + TOR;TOR 间后端 RDMA(第 7 页 §3.1 与脚注 1)
数据与分词C4(en 变体);Llama 3.1 官方 tiktoken;可检查点 data loader(第 7 页 §3.1)
吞吐口径tokens/s/GPU,每 10 次迭代记录、取第 90 次迭代读数;内存读数全程稳定、PP 各 rank 取最大(脚注 2)(第 8 页 §3.2)
MFU 口径启用 Float8 后不报告 MFU(BF16/FP8 Tensor Core 峰值 FLOPS 不同、定义不明确);参照:1D 8B 不开 Float8 为 33%-42% MFU(第 8 页 §3.2)
基线公平性叠加式基线:更高维并行/新功能的基线总是包含此前全部技术(第 8 页 §3.2)
收敛验证图 5:Llama 3.1 8B、C4、local batch 4/global batch 32、3000 步、600 warmup;表 9 四组设置含 FSDP 8 基准(第 21 页 B.10.2)

10.2 论文实验结果(全量转录,条件逐表完整)

下表合并论文表 1-6;「—」表示该字段论文未明确披露。所有百分比为相对各自表内基线行(叠加式)的增幅;不同表之间不可横向比较

论文表 1-6 转录:吞吐与峰值显存(每 GPU;均为 P,第 8-9 页)
表/规模 技术栈(相对其表内基线) 吞吐 (Tok/s) 相对基线 显存 (GiB)
表 1:Llama 3.1 8B,8 GPU
混合精度 + 选择性 AC;local batch 2 / global 16;C4;序列长度 —
FSDP(基线)6,258100%81.9
+ torch.compile6,674+6.64%77.0
+ torch.compile + Float89,409+50.35%76.8
表 2:Llama 3.1 8B,128 GPU
混合精度 + 选择性 AC;local 2 / global 256;C4;序列长度 —
FSDP(基线)5,645100%67.0
+ torch.compile6,482+14.82%62.1
+ torch.compile + Float89,319+65.08%61.8
表 3:Llama 3.1 70B,256 GPU,2D(FSDP 32 / TP 8)
混合精度 + Full AC;local 16 / global 512;C4;序列长度 —;基线含 compile+Float8
2D(基线)897100%70.3
+ AsyncTP1,010+12.59%67.7
表 4:Llama 3.1 405B,512 GPU,3D(FSDP 4 / TP 8 / PP 16)
混合精度 + Full AC;local 32 / global 128;C4;序列长度 —;基线含 compile+Float8+AsyncTP
1F1B 调度(基线)100100%78.0
交错 1F1B 调度130+30.00%80.3
表 5:Llama 3.1 8B,8 GPU(FSDP + CP + compile + Float8)
混合精度 + Full AC;local 1 / global —;C4
FSDP 8, CP 1 @ 32,7683,89083.9
FSDP 4, CP 2 @ 65,5362,54084.2
FSDP 2, CP 4 @ 131,0721,07184.0
FSDP 1, CP 8 @ 262,14454884.5
表 6:Llama 3.1 405B,512 GPU,4D(1F1B,TP 8 / PP 8,含 compile+Float8+AsyncTP)
混合精度 + Full AC;local 8 / global —;C4
FSDP 8, CP 1 @ 32,7687675.3
FSDP 4, CP 2 @ 65,5364775.9
FSDP 2, CP 4 @ 131,0723177.1
FSDP 1, CP 8 @ 262,1441684.9
各实验的条件字段完整性与页码定位(缺项一律写「论文未明确披露」)
实验硬件模型精度批量IO(数据/序列)基线页码
表 1H100 95 GiB ×8(NVSwitch)Llama 3.1 8B混合精度 + 选择性 AClocal 2 / global 16C4;序列长度:论文未明确披露FSDP 行P 第 8 页
表 2H100 95 GiB ×128Llama 3.1 8B混合精度 + 选择性 AClocal 2 / global 256C4;序列长度:论文未明确披露FSDP 行P 第 8 页
表 3H100 95 GiB ×256Llama 3.1 70B混合精度 + Full AClocal 16 / global 512C4;序列长度:论文未明确披露2D(含 compile+Float8)行P 第 8 页
表 4H100 95 GiB ×512Llama 3.1 405B混合精度 + Full AClocal 32 / global 128C4;序列长度:论文未明确披露1F1B 行P 第 8 页
表 5H100 95 GiB ×8Llama 3.1 8B混合精度 + Full AC(compile+Float8)local 1 / global:论文未明确披露C4;序列 32,768–262,144表内 FSDP 8/CP 1 行(纵向对比)P 第 9 页
表 6H100 95 GiB ×512Llama 3.1 405B混合精度 + Full AC(4D,compile+Float8+AsyncTP)local 8 / global:论文未明确披露C4;序列 32,768–262,144表内 FSDP 8/CP 1 行(纵向对比)P 第 9 页
DCP 异步检查点 5-15×论文未明确披露(实验环境口径推断为同 §3.1 集群 ILlama 3.1 8B论文未明确披露论文未明确披露检查点保存 IO;大小/频率/介质:论文未明确披露同步分布式检查点P 第 7 页
FSDP2 vs FSDP1(−7% 内存 / +1.5% 吞吐)论文未明确披露Llama 2 7B论文未明确披露论文未明确披露论文未明确披露FSDP1P 第 4 页 §2.1.2、第 16 页 B.1
公平性限制(引用前必读):P ①硬件为非标准 H100,作者自述峰值 TFLOPS 未知(第 7 页脚注 1),MFU 结论不可外推到标准卡;②吞吐取第 90 次迭代单点读数(第 8 页),非全程均值;③基线为叠加式,各百分比分属不同模型/规模/基线,禁止跨表相加或与站内其他论文数字直接比较;④PP 各 rank 内存不同、表中为最大值(第 8 页脚注 2)。

10.3 建议复现步骤(编辑推断)

  1. I 锁定仓库 commit 与 PyTorch nightly 版本,记录 torchao 版本;用容器镜像 digest 固定环境。
  2. I 单机 8 GPU 跑 8B(表 1 配置:混合精度 + SAC,local 2/global 16),核对吞吐与显存是否与表 1 同数量级;若启 Float8,确认硬件支持。
  3. I 跑 3000 步收敛冒烟(对照图 5 条件:C4、local 4/global 32、600 warmup),确认 loss 曲线形态与论文一致 P(第 21 页)。
  4. I 逐维扩并行:先 FSDP 多机 → 加 TP(节点内)→ 加 PP(选调度)→ 需要长上下文再加 CP;每一步做一次故障演练(杀进程 → 从 DCP 检查点恢复 → 用 Flight Recorder 复盘一次人为注入的卡死)。
  5. I 固化配方为 TOML 基线并纳入版本管理;把吞吐/显存/恢复时长写进平台容量档案。

12. 给架构师的决策清单

I 以下为落地前的勾选项;标注(P)的条目对应论文证据,(R)对应仓库核验,其余为工程判断。

13. 证据台账

下表为核心结论的证据映射;逐条引文与在线核验记录见构建文件 sources/torchtitan.evidence.json。核验日期均为

关键结论 → 证据级别 → 定位 → 核验状态
关键结论级别定位核验状态
题名/作者/机构/arXiv v3(cs.CL,2025-06-07);代码 URL 印于第 1 页P第 1 页已核验(PDF 原页)
摘要级结论:+65.08%(8B/128 GPU/1D)、+12.59%(70B/256 GPU/2D)、+30%(405B/512 GPU/3D);4D 支撑长上下文P第 1 页摘要(另见第 3、8、10 页)已核验(PDF 原页;条件见 EV-23~26)
现有系统五大不足与「缺统一张量/设备抽象」根因P第 2 页 §1已核验(PDF 原页)
三组件正交 + TOML 配置;DTensor/DeviceMesh 统一抽象;meta device 初始化P第 3-4 页 §2、§2.1.1;第 14-15 页附录 A已核验(PDF 原页)
FSDP2 默认 1D:逐参数 DTensor 分片;vs FSDP1 内存约 −7%、吞吐约 +1.5%(Llama 2 7B)P第 4 页 §2.1.2、第 16 页 B.1已核验(PDF 原页;其余条件论文未明确披露)
HSDP 2D DeviceMesh;shard 度 × 副本度 = DP world sizeP第 4 页 §2.1.2、第 17 页 B.2已核验(PDF 原页)
TP/SP 捆绑由 TP degree 控制;Loss Parallel 默认启用;TP 度数一般 ≤8、限节点内P第 4-5 页 §2.1.3、第 9 页 §3.3.2、第 17 页 B.3已核验(PDF 原页;4192 句系原文原样)
PP 六种调度(含 ZeroBubble、Flexible-Interleaved-1F1B)、pipeline IR;PP 实验用 ZeRO-2P第 5 页 §2.1.4、第 17 页 B.4、第 20 页表 7 与 B.10.1已核验(PDF 原页)
CP:上下文至 262,144 tokens(8B/8 GPU);Ring Attention;TP 最内维、CP 次外维P第 5 页 §2.1.5、第 10 页 §3.3.4、第 18 页 B.5已核验(PDF 原页)
AC 三模式(full / op-level SAC / layer-level SAC);每隔一个 matmul 保存P第 5 页 §2.2.1、第 18-19 页 B.6已核验(PDF 原页)
regional compilation;AsyncTP/SymmetricMemory(H100+ NVSwitch);Float8(torchao,dynamic/delayed/static)P第 6 页 §2.2.2-2.2.4、第 19 页 B.7/B.8已核验(PDF 原页)
DCP:DTensor 布局解耦的分片保存/加载;异步检查点开销降 5-15×(Llama 3.1 8B)P第 7 页 §2.3.1已核验(PDF 原页;其余条件论文未明确披露)
Flight Recorder:记录 collective/p2p 起止与入队时间及元数据,定位卡死与缺失 collective 的 rankP第 7 页 §2.3.2已核验(PDF 原页)
实验环境:H100 95 GiB(非标准 HBM2e/低 TDP、峰值 TFLOPS 未知)×8/主机 NVSwitch;TOR + 后端 RDMA;C4(en)+ tiktoken;吞吐取第 90 次迭代;不报 MFU(参照 33%-42%)P第 7 页 §3.1 与脚注 1、第 8 页 §3.2 与脚注 2已核验(PDF 原页)
表 1-6 全部吞吐/显存数字与逐表条件(local/global batch、调度、并行度)P第 8-9 页表 1-6已核验(PDF 原页;缺项标「论文未明确披露」)
收敛验证:图 5(3000 步、600 warmup)与表 9 四组设置P第 21 页 B.10.2已核验(PDF 原页)
功能对比(表 7:FSDP+(TP+SP)+PP+CP、Flexible SAC、Float8 仅 TorchTitan 全 Yes;MoE=Ongoing)与代码量(表 8:7K/9K vs 93K/269K vs 94K/194K)P第 10 页 §4、第 20 页表 7/表 8已核验(PDF 原页)
官方仓库可达性、归属(pytorch 组织)、BSD-3-Clause、README 功能清单与 nightly 要求R论文第 1 页 “Code:” 给出的 URL已核验(2026-09-14 在线核验)
云实例/网络/存储映射示例(8×H100 NVSwitch 整机、RoCEv2/IB 后端、高吞吐对象/并行文件存储)E各云厂商公开目录未逐一在线核验;使用前按当时目录复核
成本公式、编排/弹性/监控映射、安全与回滚建议、复现步骤、控制面/数据面划分I本报告 §6-§10、§12编辑标注完成;不含伪精确数字