分布式AI系统-七-

分布式AI系统(七)

原文:Distributed AI Systems

译者:飞龙

协议:CC BY-NC-SA 4.0

  • 每月免费获得一本电子书或视频

  • 支持全文搜索,方便获取关键信息

  • 可复制、粘贴、打印内容并添加书签

在www.packtpub.com上,您还可以阅读一系列免费技术文章,订阅多种免费电子报,并获得Packt图书和电子书的专属折扣和优惠。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/distributed-ai-systems/img/522d0e44234972210ef66d7489ddbd04_541_0.png

其他您可能喜欢的图书

如果您喜欢这本书,您可能会对Packt的以下其他图书感兴趣:

使用C++和CUDA进行GPU编程

Paulo Motta

ISBN:9781805124542

  • 管理GPU设备并加速您的应用程序

  • 使用CUDA和C++有效应用并行性

  • 在现有库和自定义GPU解决方案之间做出选择

  • 将GPU代码打包为库以供Python使用

  • 探索CUDA流等高级主题

  • 实施优化策略以实现资源高效执行

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/distributed-ai-systems/img/522d0e44234972210ef66d7489ddbd04_542_0.png

Python实战软件工程

Brian Allbee

ISBN:9781835888018

  • 区分软件工程与通用编程

  • 分解SDLC的每个阶段并将其应用于Python系统

  • 在编写代码前创建系统模型以规划架构

  • 应用敏捷、Scrum和其他现代开发方法论

  • 使用dataclasses、pydantic和schemas进行稳健的数据建模

  • 使用GitHub Actions和云构建工具设置CI/CD流水线

  • 编写并组织单元测试、集成测试和端到端测试

  • 评估并集成Poetry、pytest和Docker等工具

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/distributed-ai-systems/img/522d0e44234972210ef66d7489ddbd04_543_0.png

Python图解

Maaike van Putten, Imke van Putten

ISBN:9781836646334

  • 配置Python并编写您的第一个程序

  • 理解变量、数据类型和条件语句

  • 使用循环、列表、字典和元组高效处理数据

  • 编写并使用函数创建可复用的代码

  • 管理文件并理解面向对象编程和继承

  • 调试您的Python代码以确保其完美运行

  • 探索如何在这本书之外继续学习和构建

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/distributed-ai-systems/img/522d0e44234972210ef66d7489ddbd04_544_0.png

Packt正在寻找像您这样的作者

如果您有兴趣成为Packt的作者,请访问authors.packt.com并立即申请。我们与成千上万的开发人员和技术专业人士(像您一样)合作,帮助他们与全球技术社区分享见解。您可以进行一般性申请,申请我们正在招募作者的特定热门主题,或提交您自己的想法。

分享您的想法

现在您已经读完了分布式AI系统,我们很想听听您的想法!扫描下方二维码直接进入本书的Amazon评论页面,分享您的反馈,或者在您购买本书的网站上留下评论。

https://packt.link/r/1807301710

您的评论对我们和技术社区都很重要,将帮助我们确保提供优质内容。

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/distributed-ai-systems/img/522d0e44234972210ef66d7489ddbd04_545_0.png

订阅 Deep Engineering

加入成千上万的开发者和架构师,一起了解软件正如何变化、深化自身专业能力,并构建经久耐用的系统。

Deep Engineering 是一份由专家主笔的每周通讯,面向经验丰富的从业者,提供原创分析、技术访谈,以及关于架构、系统设计和现代编程实践的精选洞见。

扫描二维码或访问下方链接,即可免费订阅。

https://packt.link/deep-engineering-newsletter

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/distributed-ai-systems/img/522d0e4423497222c10ef66d7489ddbd04_546_0.png

索引

符号

| 索引项 | 页码 |

| --- | --- |

| 1F1B(一次前向一次后向) | 232 |

| 2D 环形拓扑 | 73 |

| 3D 环形拓扑 | 73, 74 |

A

| 索引项 | 页码 |

| --- | --- |

| A/B 测试 | 413 |

| A/B 流量拆分 | 412 |

| AI 核心 | 76 |

| AI 集群 | 73 |

| AI 集群 > 推理需求 | 60 |

| AI 集群 > 训练需求 | 60 |

| AMD GPU | 85 |

| 昇腾 | 336 |

| AWS Trainium | 76 |

| AllGather | 37, 38, 86 |

| AllReduce | 36, 37, 85, 115, 116, 460 |

| AlltoAll | 46, 47 |

| 昇腾 SuperPoD | 79 |

| 准确度基准测试 | 464 |

| 激活检查点 | 193 |

| 激活检查点 > 使用 | 193, 194 |

| 激活内存 > 优化 | 197 |

| 激活输出 | 8–13 |

| 激活表 > 约定 | 11 |

| DDP 高级特性 > 通信钩子 | 156, 157 |

| DDP 高级特性 > 梯度钩子 | 156 |

| DDP 高级特性 > 使用 join() 处理不均匀输入 | 157, 158 |

| SLURM 高级特性 > 检查点 | 389 |

| SLURM 高级特性 > 作业数组,用于超参数调优 | 387, 388 |

| SLURM 高级特性 > 作业依赖 | 388 |

| SLURM 高级特性 > 作业恢复 | 389 |

| SLURM 高级特性 > salloc,用于交互式作业 | 388 |

| 智能体 AI | 486 |

| 智能体 AI > 分布式工具执行 | 487 |

| 智能体 AI > 推理智能体 | 488 |

| 智能体 > 对分布式的需求 | 486 |

| 聚合顺序读取 | 66 |

| 算法带宽 | 101 |

| all-gather | 172, 173, 294 |

| all-reduce | 294 |

| all-to-all 通信 | 236 |

| 原子检查点 | 155 |

| 自动扩缩容 | 415 |

| 可用性 | 63, 71 |

B

| 索引项 | 页码 |

| --- | --- |

| B200 | 71 |

| 全程 BF16 | 15 |

| Blackwell(2024) | 69 |

| Broadcast | 39 |

| 总线带宽 | 101 |

| 背压 | 415 |

| 反向预取 | 192 |

| 带宽测试 | 97 |

| 带宽最优 | 116 |

| 基准测试 | 452–454 |

| 基准测试 > 分析结果 | 452 |

| 基准测试 > 效率 | 453 |

| 基准测试 > 推理基准测试 | 461 |

| 基准测试 > 百分位延迟 | 453 |

| 基准测试 > 训练基准测试 | 454 |

| 块 | 82 |

| 缓冲区 | 117 |

C

| 索引项 | 页码 |

| --- | --- |

| CPU 核心 | 66 |

| CPU 卸载 | 194, 195 |

| CPU-GPU 交互 | 65 |

| CUDA > 内存层次结构 | 84 |

| CUDA > 线程索引 | 83 |

| CUDA > 使用 | 84, 85 |

| 寒武纪 MLU | 77 |

| 中央处理器(CPU) | 75, 64 |

| 中央处理器(CPU) > 架构 | 64 |

| 中央处理器(CPU) > NUMA 拓扑 | 65 |

| 中央处理器(CPU) > 分布式训练需求 | 66 |

| Colossal-AI | 242 |

| 上下文并行 | 89, 95, 233, 234 |

| c10d 后端 | 161 |

| 缓存感知策略 | 344 |

| 金丝雀部署 | 413 |

| 检查点 > 最佳实践 | 155 |

| 检查点 > 挑战 | 480 |

| 检查点 > 加载 | 153 |

| 检查点 > 保存 | 153 |

| 芯片编程系统 | 81 |

| 分布式连续批处理? | 292 |

| 集群吞吐量 | 62 |

| 集群 +113 | 59, 60 |

| 集群 > 用于 HPC 和 AI 训练 | 365 |

| 冷启动缓解 | 415 |

| 集合通信操作 | 36 |

| 集合通信操作 > AllGather | 37, 38 |

| 集合通信操作 > AllReduce | 36, 37 |

| 集合通信操作 > AlltoAll | 46, 47 |

| 集合通信操作 > Broadcast | 39 |

| 集合通信操作 > Gather | 42 |

| 集合通信操作 > Reduce | 40, 41 |

| 集合通信操作 > ReduceScatter | 45 |

| 集合通信操作 > Scatter | 43 |

| 集合通信操作 > 选择 | 48 |

| 列并行 | 294 |

| 列并行线性层 | 229 |

| 通信 > 优化 | 196 |

| 通信效率 | 62 |

| 通信钩子 | 156, 157 |

| 通信延迟 | 63 |

| 计算分片 > 与状态分片对比 | 228, 229 |

| 算力 | 57, 58 |

| 连续批处理 | 292 |

| 成本优化 | 416 |

| 每个词元/样本的成本 | 454 |

| 跨模态 | 481 |

D

| 索引项 | 页码 |

| --- | --- |

| DCP API | 187 |

| DDP 性能 > 桶大小调优 | 151 |

| DDP 性能 > 通信重叠优化 | 150 |

| DDP 性能 > 分析计算-通信重叠 | 145, 146 |

| DDP 性能 > 梯度累积 | 149 |

| DDP 性能 > 混合精度训练 | 148, 149 |

| DDP 性能 > 性能分析 | 141 |

| DDP 性能 > 静态图优化 | 152 |

| DDP 性能 > 使用 torch.profiler.profile | 141–143 |

| DDP 性能 > 查找未使用参数 | 151 |

| DDP 训练 > 调试与故障排除 | 133–141 |

| DGX(Deep GPU Xceleration) | 70 |

| 数据并行(DP)与分布式数据并行(DDP) | 113 |

| 数据并行注意力(DP Attention) | 348 |

| 数据并行 | 339, 340 |

| 数据并行(DP) | 85, 113, 295, 337 |

| 数据并行(DP) > 优势 | 297 |

| 数据并行(DP) > 与其他策略结合 | 296 |

| 数据并行(DP) > 复制式数据并行(DDP) | 89 |

| 数据并行(DP) > 分片数据并行(FSDP/ZeRO) | 89 |

| 数据并行(DP) > 权衡 | 297 |

| DataLoader > 单进程与多进程 | 124 |

| 仅解码器 Transformer 架构 | 277, 278 |

| DeepSpeed | 218 |

| DeepSpeed > 与 SLURM 配合使用 | 380–383 |

| DeepSpeed-Ulysses | 236–238 |

| 去分词器 | 325 |

| 差分隐私 | 484 |

| 分布式数据并行(DDP) | 48, 49, 202 |

| 分布式数据并行(DDP) > AllReduce 操作 | 115, 116 |

| 分布式数据并行(DDP) > 最佳实践 | 158, 159 |

| 分布式数据并行(DDP) > 缓冲区同步 | 117 |

| 分布式数据并行(DDP) > 常见模式 | 158, 159 |

| 分布式数据并行(DDP) > 通信-计算重叠 | 114, 115 |

| 分布式数据并行(DDP) > 计算-通信重叠实现 | 118 |

| 分布式数据并行(DDP) > 设备选择 | 125 |

| 分布式数据并行(DDP) > 前向传播实现 | 117 |

| 分布式数据并行(DDP) > 梯度分桶 | 114 |

| 分布式数据并行(DDP) > 梯度缩放 | 116 |

| 分布式数据并行(DDP) > 内部工作原理 | 111, 112 |

| 分布式数据并行(DDP) > 混合精度 | 116 |

| 分布式数据并行(DDP) > 单节点示例 | 126–128 |

| 分布式数据并行(DDP) > 与 Transformer 结合使用 | 162 |

| 分布式数据并行(DDP) > 与 SLURM 配合使用 | 377–379 |

| 分布式数据并行(DDP)工作流 > 反向传播 | 112 |

| 分布式数据并行(DDP)工作流 > 前向传播 | 112 |

| 分布式数据并行(DDP)工作流 > 梯度同步 | 112 |

| 分布式数据并行(DDP)工作流 > 参数更新 | 113 |

| DistributedSampler | 49, 125 |

| DistributedSampler > 使用 | 121–123 |

| 决策树 | 22 |

| 分布式 AI > 瓶颈 | 474 |

| 分布式 AI > 现状 | 473 |

| 分布式 AI > 新兴趋势 | 474 |

| 分布式 AI > 演进 | 473 |

| 分布式 AI 技术栈 | 31–33 |

| 分布式通信 | 85, 86 |

| 分布式推理 | 319 |

| 分布式作业 > 启动 | 50 |

| 分布式优化器 | 243 |

| 分布式系统 | 1 |

| 分布式训练 > 环境搭建 | 24, 25 |

| 分布式训练 > 扩展训练 | 28, 29 |

| 分布式训练 > 多 GPU 分布式训练 | 26 |

| 分布式训练 > 单 GPU 基线 | 25 |

| 分布式训练 > 吞吐量扩展 | 30 |

| 分布式训练框架 > 与 SLURM 配合使用 | 376 |

| 动态模型选择 | 412 |

E

| 索引项 | 页码 |

| --- | --- |

| Edge TPU | 77–79 |

| 弹性 MoE | 475 |

| 端到端请求延迟(e2e_latency) | 462 |

| 以太网 | 80 |

| 执行器 | 292 |

| 专家并行(EP) | 90–92, 95, 238–240, 293, 299, 337, 341 |

| 专家并行(EP) > 修改行为 | 303 |

| 边缘 AI | 476 |

| 支持边缘部署的模型 | 476 |

| 边缘云 | 477 |

| 效率 | 453 |

| 弹性 | 160 |

| 弹性代理 | 161 |

| 弹性数据并行 | 160 |

| 弹性训练 | 480 |

| 弹性训练 > 启动 | 161 |

| 弹性训练 > 使用 | 162 |

| 弹性训练 > 工作原理 | 160 |

| 能效 | 63 |

| 环境变量 | 121 |

F

| 索引项 | 页码 |

| --- | --- |

| 每瓦 FLOPS | 63 |

| FP8 训练 | 244 |

| FSDP 问题 > 死锁 | 201 |

| FSDP 问题 > 调试 | 201 |

| FSDP 问题 > 结果不正确 | 202 |

| FSDP 问题 > 内存不足(OOM) | 201 |

| FSDP 问题 > 训练缓慢 | 201 |

| FSDP 训练 > 性能分析 | 195, 196 |

| 通过 SPMD 的 FSDP | 172 |

| FSDP1 | 171, 176, 182 |

| FSDP1 > 策略 | 184 |

| FSDP1 > 与 FSDP2 对比 | 174, 175 |

| FSDP1 > 包装器 | 184 |

| FSDP2 | 172, 175–177, 182, 203, 240 |

| FSDP2 > 编译器集成 | 205 |

| FSDP2 > 设备网格 | 178 |

| FSDP2 > 分层分片 | 181 |

| FSDP2 > 混合精度策略 | 185 |

| FSDP2 > 其他集成 | 205 |

| FSDP2 > 参数 | 179, 180 |

| FashionMNIST | 26 |

| FedProx | 484 |

| 全分片数据并行(FSDP) | 171 |

| 全分片数据并行(FSDP) > 数据加载 | 204 |

| 全分片数据并行(FSDP) > 调试工具 | 202 |

| 全分片数据并行(FSDP) > 梯度裁剪 | 204 |

| 全分片数据并行(FSDP) > 初始化最佳实践 | 204 |

| 全分片数据并行(FSDP) > 混合精度 | 204 |

| 全分片数据并行(FSDP) > 实用技巧 | 203 |

| 全分片数据并行(FSDP) > 渐进式优化 | 204 |

| 全分片数据并行(FSDP) > 通过 SPMD 用于 TPU/XLA | 205 |

| 全分片数据并行(FSDP) > 与 SLURM 配合使用 | 379, 380 |

| 全分片数据并行(FSDP) > 工作原理 | 173 |

| 故障检测 | 480 |

| 容错 | 415 |

| 容错 | 160 |

| 基于特征的路由 | 412 |

| 联邦学习 | 482, 483, 486 |

| 联邦学习 > 用于 LLM | 485 |

| 联邦技术 | 484 |

| 细粒度多线程(FGMT) | 83 |

| 扁平参数设计 | 174 |

| 每秒浮点运算次数(FLOPS) | 57, 58 |

| 前向预取 | 191 |

| 基础模型 | 18 |

| 完整状态字典 | 190 |

G

| 索引项 | 页码 |

| --- | --- |

| GCP/Google 渠道 | 75 |

| GPU 工作节点 | 325 |

| GPU 硬件 > 检查 | 97, 98 |

| GPU 利用率 | 62 |

| GPUDirect RDMA | 80 |

| GPipe 调度 | 232 |

| Gather | 42 |

| Gemini | 242 |

| GenAI-Bench | 464 |

| 图形处理器(GPU) | 75, 64 |

| 图形处理器(GPU) > 架构特性 | 71, 72 |

| 图形处理器(GPU) > 架构里程碑 | 69 |

| 图形处理器(GPU) > 计算架构 | 66–68 |

| 图形处理器(GPU) > 分布式训练考量 | 69 |

| 图形处理器(GPU) > 内存架构 | 66–68 |

| 图形处理器(GPU) > 产品系列 | 70 |

| 图形处理器(GPU) > 选择 | 71 |

| 图形处理器(GPU) > 与神经网络处理器(NPU)对比 | 78 |

| 图形处理器(GPU) > 与张量处理单元(TPU)对比 | 74, 75 |

| 梯度累积 | 16 |

| 梯度分桶 | 114 |

| 梯度压缩 | 490 |

| 梯度钩子 | 156 |

| 梯度缩放 | 116 |

  • 网格 — 82

H

  • H100 — 71

  • H200 — 71

  • HGX(超大规模 GPU 交换) — 70

  • Hopper(2022) — 69

  • 华为昇腾 — 76

  • 混合并行 — 241, 249, 341

    • 配置模式 — 252

    • 选择配置 — 250, 251

    • 构建混合配置 — 250

    • 实际运营情况 — 251

    • 性能优化最佳实践 — 251

    • 双轴视图 — 249, 250

  • 硬件检查 — 97

  • 硬件拓扑

    • 检查 — 98
  • 异构性

    • 挑战 — 484
  • 层次并行 — 478

  • 层次分区(hpZ) — 226

  • 高速互连 — 79–81

  • 混合分片(HSDP) — 205

  • 超大规模云技术栈 — 79

I

  • InfiniBand — 80, 198

  • 智能推理调度 — 431, 435

  • 节点间(InfiniBand) — 63

  • Token 间延迟(ITL) — 463

  • 节点内(NVLink) — 63

  • 推理 — 20, 267

  • 推理 NPU

    • 与训练 NPU 的对比 — 77
  • 推理基准测试 — 461

    • 冷启动与热性能对比 — 465

    • 自定义推理基准 — 465

    • 验证推理精度 — 466, 467

    • 关键推理指标 — 461–464

    • 多步模型 — 466

    • 推理 — 466

    • 工具 — 464

  • 推理策略决策树 — 94, 95

    • 考量 — 96
  • GPU 间通信

    • 基准测试 — 100–102
  • 交错流水线 — 232

J

  • JAX — 73

K

  • KServe — 431

  • KV 缓存 — 267, 276

    • 解决方案 — 283–285
  • KV 缓存碎片问题 — 287, 288

  • KubeAI — 431

  • Kubernetes — 416

    • 部署 LLM 服务 — 417, 418

    • URL — 416

  • k3d — 419

    • 用于本地开发 — 419–421

    • URL — 419

    • 与 llm-d 对比 — 440, 441

    • 在 vLLM 上进行部署 — 421–423

L

  • LLM 服务

    • 部署,在 Kubernetes 上 — 417, 418
  • LatentMoE — 475

  • 学习阶段 — 20

  • 最少连接 — 412

  • 线性扩展 — 61

  • llm-d — 431, 434

    • 部署架构 — 433, 434

    • 分离式前缀缓存 — 432

    • 硬件支持 — 432

    • 智能推理调度 — 431

    • 监控与可观测性 — 436

    • 多模型服务 — 436–439

    • 路径选择 — 436

    • 预填充/解码分离 — 432, 435

    • 变体自动伸缩 — 432

    • 与 k3d 对比 — 440, 441

    • 清晰路径 — 435

    • 宽专家并行 — 435

  • 负载均衡 — 412

    • 最少连接 — 412

    • 轮询 — 412

    • 加权均衡 — 412

M

  • MIG(多实例 GPU) — 72

  • MTBF(平均故障间隔时间) — 63

  • MTTR(平均恢复时间) — 63

  • MXFP8 — 5

  • 矩阵乘法单元(MXU) — 73

  • Megatron — 217, 228

    • 完整训练示例 — 248

    • 上下文并行 — 234

    • 分布式优化器 — 243

    • 流水线并行 — 231, 232

    • 实际训练配置 — 245–248

    • 序列并行 — 233

    • 张量并行(TP) — 229, 230

  • Megatron Core — 242

  • Megatron-FSDP — 242

  • Megatron-LM

    • 与 SLURM 结合 — 383–387
  • MoE 架构 — 300

    • 解码器层结构 — 301

    • 专家结构 — 302

    • 路由机制 — 302, 303

  • MoSE(可精简专家混合) — 475

  • 模型 FLOPS 利用率(MFU) — 61

  • Mooncake — 336

    • PD 分离 — 350, 351
  • 多引擎路由 — 427–430

  • 多模型路由 — 424–427

  • 多节点 FSDP

    • 检查点 — 199

    • 网络配置 — 198

    • 扩展考量 — 200

    • 设置 — 198

    • SLURM 集成 — 199, 200

  • 手动分片检查点 — 188, 189

  • 内存 — 66

  • 内存效率 — 454

  • 内存碎片 — 286

  • 内存剖析 — 197

  • 指标收集 — 415

  • 微批次 — 231

  • 混合精度 — 15, 116, 184

  • 专家混合 — 475

  • 模态 — 482

  • 模型并行 — 85, 89, 113

    • 上下文并行 — 89

    • 专家并行(EP) — 90

    • 流水线并行(PP) — 90

    • 序列并行 — 89

    • 张量并行(TP) — 89

  • 模型资源需求

    • 估算 — 5

    • GPU — 17

    • 推理 — 16, 17

    • 内存 — 6–16

    • 实际考量 — 17

  • 模型选择 — 416

  • 现代 AI

    • 分布 — 2

    • 规模挑战 — 4

  • 现代 AI 模型生命周期 — 19, 20

    • 推理 — 20

    • 服务 — 21

    • 训练 — 20

  • 多智能体模式 — 487

    • 层次化处理 — 487

    • 并行处理 — 487

    • 顺序处理 — 487

  • 多节点 DDP — 128

    • 架构 — 129

    • 环境变量 — 132

    • 示例 — 132

    • 网络配置 — 131

    • 剖析 — 146–148

    • 使用 SLURM — 130

    • 训练 — 129, 130

  • 多节点 SGLang 部署 — 342

    • 缓存局部性 — 345

    • 容错 — 345

    • 负载均衡 — 344

    • 路由策略 — 344

    • 基于路由器的多节点部署 — 343, 344

    • 会话亲和性 — 345

    • 与张量并行结合 — 342

  • 多节点训练 — 233

  • 多进程数据加载

    • 工作原理 — 125
  • 多租户 GPU 共享 — 489

N

  • NCCL — 85

  • NIXL — 336

  • NVFP4 — 5

  • NVIDIA Nsight Systems — 456

  • NVLink — 79

  • NVLink-C2C — 72

  • NVMe 存储 — 66

  • NVSwitch — 80

  • 神经处理单元(NPU) — 76

    • 架构 — 77

    • 推理 — 77

    • 互连 — 78

    • 发展现状 — 79

    • 扩展 — 78

    • 意义 — 76

    • 软件栈 — 78

    • 训练 — 77

    • 与图形处理单元(GPU)的对比 — 78

O

  • 可观测性 — 415

    • 分布式追踪 — 415

    • 指标收集 — 415

    • 结构化日志 — 415

  • 不透明的 XLA 编译错误 — 75

  • 算子融合 — 326, 331

  • 光路交换(OCS) — 73, 74

  • 优化器状态 — 6, 7

  • 原始 FSDP — 175

  • 内存不足问题 — 291

P

  • P99 延迟 — 63

  • PCIe — 79

  • PCIe 通道 — 66

  • PUE(电源使用效率) — 63

  • PagedAttention — 287

    • 与分布式推理的关联 — 291

    • 消除填充 FLOPS — 289–291

    • 工作原理 — 288, 289

  • 流水线并行(PP) — 90–92, 95, 231, 232, 293, 298, 337–341

  • PyTorch profiler — 456

  • 并行 — 86, 478

    • 通信革命 — 478

    • 组合模式 — 90, 91

    • 数据并行 — 89

    • 确定 — 88

    • 层次并行 — 478

    • 模型并行 — 89

    • 选择正确策略 — 252–254

    • 环形注意力 — 479

    • 序列并行 — 479

    • 组合策略 — 90, 304–306

    • 分类表 — 87

  • 每 GPU 吞吐量 — 62

  • 逐参数分片 — 175

  • 百分位延迟 — 453

  • 性能基准测试 — 464

  • 流水线气泡问题 — 298

  • 策略 — 184

  • 二选一策略 — 345

  • 预测/生成阶段 — 20

  • 预取 — 191, 192

    • 反向预取 — 192

    • 前向预取 — 191

  • 预填充/解码(PD)分离 — 334, 335

    • 架构 — 335

    • 设置 — 336

    • 传输引擎 — 336

  • 进程组 — 34

    • 初始化 — 34, 35
  • 生产级 LLM 服务系统

    • 结构 — 407–411
  • 生产部署模式 — 348

  • 生产服务栈

    • API 网关 — 408

    • Model Runner — 408

    • 监控与可观测性 — 408

    • 分词器服务(可选) — 408

  • 生产系统 — 21

  • 编程模型 — 81

Q

  • 量化 — 291, 490

  • 量化梯度(qgZ) — 227

  • 量化权重(qwZ) — 226

R

  • RDMA(远程直接内存访问) — 80

  • RNG 状态

    • 保存 — 154
  • ROCm — 85

  • RadixAttention — 319, 326–328

  • ReMoE — 475

  • Reduce — 40, 41

  • ReduceScatter — 45, 85

  • 复制式数据并行(DDP) — 89–91

  • 请求队列 — 324

  • 每秒请求数(RPS) — 462

  • ResNet18 — 26

  • RoCE(基于融合以太网的 RDMA) — 80

  • Router — 325

  • ranks — 34

  • 归约-散播 — 172, 173

  • 可靠性指标 — 63, 415

  • 会合 — 160

  • 会合后端 — 161

  • 请求级并行 — 94

  • 请求级路由 — 320

  • 资源管理 — 489

  • 资源利用率 — 62

  • 环形 AllReduce — 115

  • 环形注意力 — 234, 479

  • 环形拓扑 — 115

  • 轮询 — 344, 412

  • 基于路由器的 DP — 341

  • 路由

    • A/B 流量拆分 — 412

    • 动态模型选择 — 412

    • 基于特征的路由 — 412

  • 行并行 — 294

  • 行并行线性层 — 229

S

  • SGLang — 319, 320

    • 架构 — 324, 325

    • 基本多节点部署 — 349

    • 数据并行注意力(DP Attention) — 348

    • 数据并行 — 339, 340

    • Docker 设置 — 320–323

    • MoE 模型的专家 — 346, 347

    • 混合并行 — 341

    • 安装 — 320

    • MoE 模型,结合 EP+TP — 352

  • 算子融合 — 331

  • 并行策略 — 337

  • PD 分离,基于 Mooncake — 350, 351

  • 流水线并行 — 339

  • 预填充/解码(PD)分离 — 334, 335

  • 前置条件 — 320

  • RadixAttention — 326 – 328

  • 基于路由器的分布式架构 — 332, 333

  • 会话亲和性,测试 — 351, 352

  • 投机解码 — 347

  • 张量并行 — 338

  • XGrammar — 329, 330

  • 零开销调度器 — 331, 332

  • SGLang 运行时(SRT) — 324

  • SGLang 模型网关

    • 架构 — 333
  • SIMD 执行单元 — 85

  • SIMT(单指令多线程) — 82

  • SIMT 与 SIMD 对比

    • 分支发散 — 83

    • 数据对齐 — 83

    • 动态分组 — 83

    • 编程模型 — 83

  • SLURM

    • 架构 — 367

    • 常见问题排查 — 394, 395

    • 分布式训练性能分析 — 392, 393

    • 环境变量 — 373 – 375

    • 用于 AI 训练 — 366

    • 作业监控 — 390

    • 日志记录与输出 — 391

    • 多节点集群模拟 — 369

    • 多 GPU 训练环境搭建 — 368

    • 安装与验证 — 370

    • 实用链接 — 396

    • 与 DDP 配合使用 — 377 – 379

    • 与 DeepSpeed 配合使用 — 380 – 383

    • 与 FSDP 配合使用 — 379, 380

    • 与 Megatron-LM 配合使用 — 383 – 387

  • SLURM 最佳实践

    • 检查点策略 — 393

    • 故障处理 — 394

    • 资源分配 — 393

  • SPMD(单程序多数据) — 81, 82, 294

    • 在分布式训练中 — 85
  • Scaffold — 484

  • Scatter — 43

  • 调度器 — 292, 325

  • 序列并行 — 89, 92, 231 – 233, 479

  • 分片数据并行(FSDP/ZeRO) — 89 – 91

  • 稀疏核心 — 73 – 75

  • SuperPOD — 70, 76

  • salloc 命令 — 388

  • sbatch

    • 批量提交 — 372, 373
  • 扩展计算能力 — 59

  • 扩展内存 — 59

  • 扩展存储 — 59

  • 扩展效率 — 454

  • 调度器-执行器-工作节点模式 — 292

  • 序列长度 — 233

  • 服务部署 — 21

  • 最短队列策略 — 345

  • 单 GPU 基线 — 182

  • 单 GPU 内存带宽

    • 测量 — 99, 100
  • 单节点 DDP

    • 环境搭建 — 118
  • slurmctld — 367

  • slurmd — 367

  • slurmdbd — 367

  • 投机解码 — 347

  • 竞价实例 — 416

  • squeue — 390

  • srun

    • 交互式执行 — 371, 372
  • 状态分片 — 217, 228

    • 与计算分片的对比 — 228, 229
  • 结构化日志 — 415

  • 脉动阵列 — 73

索引 — 519

T

  • T5(FLAN-T5) — 182

  • TPU 8t 工作负载 — 75

  • TPU 8t/8i — 73

  • TPU Pod

    • 架构 — 73
  • TPU7x/Ironwood — 73

  • 张量核心 — 71

  • 张量并行(TP) — 89, 92, 95, 228 – 230, 293, 294, 337, 338, 341

    • 优势 — 294

    • 使用方法 — 295

  • 张量处理单元(TPU) — 72

    • 架构 — 73

    • 产品代际 — 73

    • 编程模型 — 75

    • 重要意义 — 72

    • 稀疏核心 — 75

    • 与图形处理单元(GPU)对比 — 74, 75

  • 通过 XLA 使用 TensorFlow — 73

  • 帕斯卡架构(2016) — 69

  • 首 Token 延迟(TTFT) — 462

  • 分词器 — 324

  • 每秒 Token 数(TPS) — 462

  • Torch 分布式弹性(TDE) — 160

  • Torchcomms — 478

  • Trainium — 79

  • Trainium2 — 76

  • Transformer 引擎 — 71

  • Trillium — 73

  • 文本生成过程 — 279

    • 解码 — 281 – 283

    • 预填充 — 280

  • 线程 — 82

  • 吞吐量 — 62

  • top-k 稀疏化 — 490

  • torch.profiler.profile

    • 用于 DDP 分析 — 141 – 143
  • torchrun — 126

    • 使用方法 — 118 – 120
  • 流量切换 — 413

  • 训练 — 20, 267

  • 训练专用 NPU

    • 与推理专用 NPU 对比 — 77
  • 训练基准测试 — 454

    • 扩展瓶颈分析 — 460

    • 自定义训练基准 — 457

    • 分布式训练

      • 精度验证 — 458, 459
    • 关键训练指标 — 455

    • 网络与通信性能分析 — 459, 460

    • 扩展效率测量 — 458

  • 训练阶段 — 13 – 16

  • 训练策略

    • 决策树 — 91, 92

    • 考量因素 — 94

  • 树形 AllReduce — 115, 116

索引 — 520

  • 冯·诺依曼架构 — 64

W

  • Wan2.2 — 176

  • 线程束(warp) — 82

  • 线程束执行 — 82

  • 加权负载均衡 — 412

  • 清晰路径 — 435

  • 工作节点 — 293

  • 工作负载分配 — 489

  • 封装策略 — 184

X

  • XGrammar — 326, 329

    • 结构化输出解码 — 329, 330
  • XLA(加速线性代数) — 75

Z

  • ZeRO — 202

  • ZeRO++ — 226 – 228

  • ZeRO-1 — 218 – 220

  • ZeRO-2 — 220, 221

  • ZeRO-3 — 221

  • ZeRO-Infinity — 223 – 225

  • ZeRO-Offload — 222

  • 零开销调度器 — 319, 326, 331

索引 — 521

posted @ 2026-09-25 20:43  绝不原创的飞龙  阅读(9)  评论(0)    收藏  举报