DL简记1---深度学习分布式训练模型的步骤及实现

目录

一、前言

二、分布式训练的详细步骤

2.1 环境准备

2.1.1 硬件准备

2.1.2 软件准备

三、分布式训练的核心概念

3. 1 进程组初始化

3.2 进程与 GPU 绑定

3.3 数据并行与同步

四、代码实例分析

4.1 train.py

4.2 trainer.py 

4.3 启动分布式训练

4.3.1 单机多卡

4.3.2 多机多卡

五、总结


一、前言

        对于很多数据量比较大且工作任务比较复杂的深度学习模型,只用一张GPU显卡训练太慢,我们就会想到用多张GPU来加速我们模型的训练。下面主要展示一台GPU服务器(3张3090GPU显卡)的应用实例,对于集群服务器(多机器)还是有所差异。

二、分布式训练的详细步骤

2.1 环境准备

2.1.1 硬件准备

  1. 至少需要一台多 GPU 的服务器,或者多台 GPU 服务器组成的集群。
  2. 确保各 GPU 支持 NCCL。

2.1.2 软件准备

        如果是新手,建议自己建个虚拟的conda环境来操作,不建议直接用原来的env虚拟环境,因为不同的项目,适配的pytorch版本也不同,这个过程并不难。

  1. 安装 Anaconda,创建虚拟环境。
  2. 安装 PyTorch 和相关依赖(pytorch version >= 1.8.0)。
# 创建 Python 虚拟环境
conda create -n deep2 python=3.8 -y
conda activate deep2

# 安装 PyTorch(主要看CUDA版本,python版本来装pytorch)
conda install pytorch torchvision torchaudio pytorch-cuda=11.4 -c pytorch -c nvidia

# 安装你项目需要的包 Torch Geometric等
pip install torch-geometric===2.1.0(这个包一定要注意版本问题)

三、分布式训练的核心概念

3. 1 进程组初始化

   1.  使用torch.distributed.init_process_group来初始化分布式环境。

   2. backend推荐使用nccl(GPU通信)。

   3. init_method指定进程组的通信方式,比如env://(通过环境变量通信)。

3.2 进程与 GPU 绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值