PyTorch中的rendezvous后端是一种服务,它帮助分布式训练作业中的进程相互发现并协商角色和等级。它还提供了一个屏障和一个一致的作业成员和状态视图。
rendezvous后端是作为torch.distributed.elastic.rendezvous.RendezvousHandler的子类实现的,它定义了创建、加入和销毁rendezvous的接口。rendezvous后端还需要为rendezvous提供容错和弹性,这意味着它可以处理节点故障和训练过程中节点数量的变化。
PyTorch提供了一些内置的rendezvous后端,例如:
C10dRendezvousBackend:使用C10d存储(默认为TCPStore)作为rendezvous后端。使用C10d存储的主要优点是它不需要第三方依赖(如etcd)来建立rendezvous2。
EtcdRendezvousBackend:使用启用了v2 api的etcd服务器作为rendezvous后端。使用etcd的优点是它为rendezvous提供了容错和弹性2。
要在PyTorch中使用rendezvous后端,你需要在使用torchrun或torch.distributed.launch启动你的训练脚本时指定一些选项。
这些选项包括:
–rdzv_id:一个唯一的作业id(由参与作业的所有节点共享)
–rdzv_backend:用于处理rendezvous的后端的名称
–rdzv_endpoint:rendezvous后端运行的端点;通常以host:port的形式
附官方文档链接:https://pytorch.org/docs/stable/elastic/rendezvous.html
(1) Rendezvous — PyTorch 2.0 documentation. https://pytorch.org/docs/stable/elastic/rendezvous.html.
(2) pytorch/c10d_rendezvous_backend.py at main - GitHub. https://github.com/pytorch/pytorch/blob/main/torch/distributed/elastic/rendezvous/c10d_rendezvous_backend.py.
(3) torchrun (Elastic Launch) — PyTorch 2.0 documentation. https://pytorch.org/docs/stable/elastic/run.html.
标签:https,elastic,后端,pytorch,Pytorch,PyTorch,rendezvous,分布式 From: https://www.cnblogs.com/sddai/p/17451054.html