本文简要介绍python语言中 torch.distributed.all_gather_object
的用法。
用法:
torch.distributed.all_gather_object(object_list, obj, group=None)
object_list(list[任何]) -输出列表。它的大小应该正确地调整为该集合的组大小,并将包含输出。
object(任何) -要从当前进程广播的可选 Python 对象。
group(ProcessGroup,可选的) -要处理的流程组。如果没有,将使用默认进程组。默认为
None
。
没有。如果调用等级是该组的一部分,则集合的输出将填充到输入
object_list
中。如果调用等级不是组的一部分,则传入的object_list
将不被修改。将整个组中的 picklable 对象收集到一个列表中。与
all_gather()
类似,但可以传入Python对象。请注意,该对象必须是可picklable的才能被收集。注意
请注意,此 API 与
all_gather()
集合略有不同,因为它不提供async_op
句柄,因此将是阻塞调用。注意
对于基于 NCCL 的处理组,对象的内部张量表示必须在通信发生之前移动到 GPU 设备。在这种情况下,使用的设备由
torch.cuda.current_device()
给出,用户有责任通过torch.cuda.set_device()
确保将其设置为每个等级都有单独的 GPU。警告
all_gather_object()
隐式使用pickle
模块,已知这是不安全的。可以构造恶意的 pickle 数据,该数据将在 unpickling 期间执行任意代码。仅使用您信任的数据调用此函数。>>> # Note: Process group initialization omitted on each rank. >>> import torch.distributed as dist >>> # Assumes world_size of 3. >>> gather_objects = ["foo", 12, {1: 2}] # any picklable object >>> output = [None for _ in gather_objects] >>> dist.all_gather_object(output, gather_objects[dist.get_rank()]) >>> output ['foo', 12, {1: 2}]
例子:
参数:
返回:
相关用法
- Python PyTorch all_gather用法及代码示例
- Python PyTorch all_reduce用法及代码示例
- Python PyTorch all_to_all用法及代码示例
- Python PyTorch allreduce_hook用法及代码示例
- Python PyTorch all用法及代码示例
- Python PyTorch allclose用法及代码示例
- Python PyTorch argsort用法及代码示例
- Python PyTorch addmm用法及代码示例
- Python PyTorch addmv用法及代码示例
- Python PyTorch apply_effects_tensor用法及代码示例
- Python PyTorch assert_close用法及代码示例
- Python PyTorch angle用法及代码示例
- Python PyTorch atanh用法及代码示例
- Python PyTorch annotate用法及代码示例
- Python PyTorch async_execution用法及代码示例
- Python PyTorch argmax用法及代码示例
- Python PyTorch atan用法及代码示例
- Python PyTorch as_strided用法及代码示例
- Python PyTorch acos用法及代码示例
- Python PyTorch avg_pool1d用法及代码示例
- Python PyTorch asin用法及代码示例
- Python PyTorch argmin用法及代码示例
- Python PyTorch any用法及代码示例
- Python PyTorch asinh用法及代码示例
- Python PyTorch add用法及代码示例
注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.distributed.all_gather_object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。