首页 > 系统相关 >torch 多进程训练和分布式训练

torch 多进程训练和分布式训练

时间:2023-12-12 15:01:28浏览次数:32  
标签:同步 训练 梯度 torch DDP 进程 分布式

通常来说,多进程没有涉及到梯度同步的概念。
分布式则设计梯度同步。分布式中,如果用cpu,则指定gloo后端。用gpu,则指定nccl后端。

多进程训练

只需要mp.spawn即可,每个进程只负责自己的模型训练,不涉及梯度同步。

例子

https://www.geeksforgeeks.org/multiprocessing-in-python-and-pytorch/
(也可以用model.share_memory()来同步参数的更新)

chatgpt

分布式训练

需要init_process_group,以及使用DDP类包装model,使得梯度能够自动同步(DDP负责)。
还有,dataloader需要指定为dist_dataloadr版本,指定后,dis_dataloader自动为训练划分数据,从而做到自动数据并行的分布式训练。
因此,设计三部分修改:

  1. init_process_group 负责进程初始化
  2. DDP(DistributedDataParallel) 负责梯度同步
  3. 切分数据集或者指定dataloader(use_ddp=True), 负责切分数据集

例子

https://docs.dgl.ai/en/0.8.x/tutorials/multi/2_node_classification.html

https://github.com/pyg-team/pytorch_geometric/blob/master/examples/multi_gpu/distributed_sampling.py

chatgpt

标签:同步,训练,梯度,torch,DDP,进程,分布式
From: https://www.cnblogs.com/simpleminds/p/17896930.html

相关文章

  • 分布式学习记录:实践与体验
    第二天,我继续深入分布式学习的世界,通过实践来加深对分布式学习的理解。首先,我参与了一个分布式学习项目,负责其中一个计算节点的训练任务。这个项目使用了一种基于梯度下降的分布式学习算法,每个计算节点都拥有自己的数据子集,并独立进行模型训练。我负责其中一个节点的训练过程,通过不......
  • 分布式学习记录:探索与优化
    经过前面的学习,我对分布式学习有了基本的认识和理解。然而,分布式学习是一个充满挑战和机遇的领域,需要不断探索和优化。今天,我继续深入学习分布式学习,进一步了解其应用和优化方法。首先,我学习了分布式学习的调参技巧。在分布式学习中,参数的选择对学习效果有着重要的影响。我学习了如......
  • SQL server不同域之间搭建分布式可用性组
    配置AlwaysOn分布式可用性组要创建分布式可用性组,必须创建两个具有各自侦听程序的可用性组。然后将这些可用性组合并到分布式可用性组中。两个可用性组无需处于同一位置:它们可以跨物理机、虚拟机;跨内网、云上;跨有域、无域;甚至跨平台(如Linux、Windows)。只要两个可用性组可以......
  • 舍弃99%的参数,还能达到相同的性能!阿里团队发现大模型「合二为一」的黑魔法!而且不用GPU
    动漫《龙珠》里,构想了一种“美达摩星人融合术”,通过融合术舞步就可以让譬如悟空与贝吉塔合体,成为“究极超强合体战士”悟吉塔。在《X战警:天启》中,反派大Boss也拥有吸收他人能力化为己用的强大能力。哪怕在《超级马里奥》中,马里奥也拥有吃下蘑菇和花朵获得投掷火球的能力的设定。......
  • 使用PyTorch II的新特性加快LLM推理速度
    Pytorch团队提出了一种纯粹通过PyTorch新特性在的自下而上的优化LLM方法,包括:Torch.compile:PyTorch模型的编译器GPU量化:通过降低精度操作来加速模型推测解码:使用一个小的“草稿”模型来加速llm来预测一个大的“目标”模型的输出张量并行:通过在多个设备上运行模型来加速模......
  • 分布式配置中心
    为什么要有分布式配置中心:1、项目背景现在有一个项目,使用SSM进行开发的,配置文件的话我们知道是一个叫做application.properties的文件。#业务参数相关配置user.register.default.name=小强user.register.default.sex=男这个配置文件会在项目启动的时候被加载到内......
  • 分布式事务
    什么是分布式事务?对于分布式系统而言,需要保证分布式系统中的数据一致性,保证数据在子系统中始终保持一致,避免业务出现问题。简单的说,在分布式系统上,一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务节点上,且属于不同的应用,分布式事务需要保证这些小操作要么......
  • 分布式锁
    为什么需要分布式锁?在多线程环境中,如果多个线程同时访问共享资源(例如商品库存、外卖订单),会发生数据竞争,可能会导致出现脏数据或者系统问题,威胁到程序的正常运行。我们需要使用互斥操作对共享资源进行保护,即同一时刻只允许一个线程访问共享资源,其他线程需要等待当前线程释放后......
  • 架构核心技术之分布式消息队列
    Java全能学习+面试指南:https://javaxiaobear.cn今天我们来学习分布式消息队列,分布式消息队列的知识结构如下图。主要介绍以下内容:同步架构和异步架构的区别。异步架构的主要组成部分:消息生产者、消息消费者、分布式消息队列。异步架构的两种主要模型:点对点模型和发布订阅模型......
  • 定时器训练(UAV2101~UAV2105)
    例子001、51单片机定时器训练下面是一份基本的51定时器控制代码#include<reg52.h>//8051头文件//定义时钟频率为12MHz#defineFOSC12000000UL//定义波特率为9600#defineBAUDRATE9600//定义定时器重装值#defineTIMER_RELOAD_VALUE65535-50000+1sbitLE......