[源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler 目录 [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler 0x00 摘要 0x01 数据加载 1.1 加速途径 1.2 并行处理 1.3 流水线 1.4 GPU 0x02 PyTorch分布式加载 2.1 DDP 2.2 分布式加载 0x03 DistributedSampler 3.1 初始化 3.2 迭代方法 3.3 shuffle数据集 3.3…
[源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 目录 [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 0x00 摘要 0x01 前情回顾 0x02 DataLoader 2.1 初始化 2.2 关键函数 2.3 单进程加载 2.3.1 区分生成 2.3.2 迭代器基类 2.3.3 单进程迭代器 2.3.4 获取样本 2.4 多进程加载 2.4.1 总体逻辑 2.4.2 初始化 2.4.3 业务重置 2.4.4 获取 inde…
[源码解析] PyTorch分布式优化器(2)----数据并行优化器 目录 [源码解析] PyTorch分布式优化器(2)----数据并行优化器 0x00 摘要 0x01 前文回顾 0x02 DP 之中的优化器 2.1 流程 2.2 使用 0x03 DDP 之中的优化器 3.1 流程 3.2 优化器状态 3.3 使用 0x04 Horovod 的优化器 4.1 hook 同步梯度 4.1.1 注册 hooks 4.1.2 归并梯度 4.1.2.1 MPI 函数 4.1.2.2 原理图 4.2 s…
[源码解析] PyTorch 分布式(1)------历史和概述 目录 [源码解析] PyTorch 分布式(1)------历史和概述 0x00 摘要 0x01 PyTorch分布式的历史 1.1 Multiprocessing 1.2 THD 底层库 1.3 torch.distributed 库 1.4 c10d库 1.5 RPC框架 1.6 弹性训练 1.7 流水线训练 0x02 分布式概述 2.1 引论 2.1.1 torch.distributed 包 2.1.2 知识链接 2.2…
[源码解析] PyTorch 分布式(2) ----- DataParallel(上) 目录 [源码解析] PyTorch 分布式(2) ----- DataParallel(上) 0x00 摘要 0x01 综述 1.1 从流程上看 1.2 从模式角度看 1.3 从操作系统角度看 1.4 低效率 0x02 综述 2.1 示例 2.2 相关知识 0x03 定义 3.1 定义 3.2 负载均衡 0x04 前向传播 4.1 总述 4.2 分发(输入) 4.2.1 scatter_kwargs 4.2.…
[源码解析] PyTorch 分布式(5) ------ DistributedDataParallel 总述&如何使用 目录 [源码解析] PyTorch 分布式(5) ------ DistributedDataParallel 总述&如何使用 0x00 摘要 0x01 数据并行 0x02 DDP 运行逻辑 0x03 VS DataParallel 3.1 本质区别 3.2 实现区别 0x04 使用 4.1 基本示例 4.1.1 设置进程组 4.1.2 简单模型 4.1.3 处理速度偏…
[源码解析] PyTorch 分布式(10)------DistributedDataParallel之Reducer静态架构 目录 [源码解析] PyTorch 分布式(10)------DistributedDataParallel之Reducer静态架构 0x00 摘要 0x01 引论 1.1 调用 0x02 Reducer 定义 0x03 Bucket 3.1 设计 3.2 定义 3.2.1 BucketReplica有几个 3.2.2 关键 3.2.3 具体定义 3.3 设置 0x03…
[源码解析] PyTorch 分布式 Autograd (3) ---- 上下文相关 0x00 摘要 我们已经知道 dist.autograd 如何发送和接受消息,本文再来看看如何其他支撑部分,就是如何把发送接受两个动作协调起来,如何确定每个发送/接受节点,如何确定每一个消息交互Session. 通过本文大家可以了解:AutogradMetadata 用来在不同节点间传递 autograd 元信息,DistAutogradContext 代表一个分布式autograd 相关信息,DistAuto…
[源码解析] PyTorch分布式优化器(1)----基石篇 目录 [源码解析] PyTorch分布式优化器(1)----基石篇 0x00 摘要 0x01 从问题出发 1.1 示例 1.2 问题点 0x01 模型构造 1.1 Module 1.2 成员变量 1.3 _parameters 1.3.1 构建 1.3.2 归类 1.3.3 获取 1.4 Linear 1.4.1 使用 1.4.2 定义 1.4.3 解释 0x02 Optimizer 基类 2.1 初始化 2.2 添加待优化变量 2.…
[源码解析] PyTorch 分布式(15) --- 使用分布式 RPC 框架实现参数服务器 目录 [源码解析] PyTorch 分布式(15) --- 使用分布式 RPC 框架实现参数服务器 0x00 摘要 0x01 综述 0x02 基础网络 0x03 辅助函数 0x04 启动 4.1 启动方式 4.2 启动脚本 4.3 启动参数服务器 4.4 启动worker 4.5 建立参数服务器 0x05 TrainerNet 5.1 总体代码 5.2 生成参数服务器 5.3 建立rref 5.4 前向…