PyTorch 1.0 中文官方教程:使用PyTorch编写分布式应用程序

本教程介绍PyTorch的分布式软件包,演示如何在多进程和计算机集群中并行化计算,包括设置分布式环境、使用不同通信策略及包内部工作原理。
部署运行你感兴趣的模型镜像

译者:firdameng

作者Soumith Chintala

在这个简短的教程中,我们将讨论PyTorch的分布式软件包。 我们将看到如何设置分布式设置,使用不同的通信策略,并查看包的内部部分。

开始

PyTorch中包含的分布式软件包(即torch.distributed)使研究人员和从业人员能够轻松地跨进程和计算机集群并行化他们的计算。 为此,它利用消息传递语义,允许每个进程将数据传递给任何其他进程。 与多处理(torch.multiprocessing)包相反,进程可以使用不同的通信后端,并且不限于在同一台机器上执行。

开始我们需要能够同时运行多个进程。 如果您有权访问计算群集,则应使用本地sysadmin进行检查,或使用您喜欢的协调工具。 (例如,pdsh,clustershell或其他)为了本教程的目的,我们将使用单个机器并使用以下模板建立多个进程。

"""run.py:"""
#!/usr/bin/env python
import os
import torch
import torch.distributed as dist
from torch.multiprocessing import Process

def run(rank, size):
    """ Distributed function to be implemented later. """
    pass

def init_processes(rank, size, fn, backend='tcp'):
    """ Initialize the distributed environment. """
    os.environ['MASTER_ADDR'] = '127.0.0.1'
    os.environ['MASTER_PORT'] = '29500'
    dist.init_process_group(backend, rank=rank, world_size=size)
    fn(rank, size)

if __name__ == "__main__":
    size = 2
    processes = []
    for rank in range(size):

阅读全文/改进本文

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值