cupyx.distributed.init_process_group#
- cupyx.distributed.init_process_group(n_devices, rank, *, backend='nccl', host=None, port=None, use_mpi=False)[源代码][源代码]#
启动 cupyx.distributed 并获取一个通信器。
此调用初始化分布式环境,它需要在参与通信的每个进程中调用。
每个返回的通信只允许一个设备。在创建和使用通信器之前,设置适当的GPU是用户的责任。
目前,用户需要指定每个进程的等级和总进程数,并在不同的主机上手动启动所有进程。
排名为0的进程将使用子进程启动一个TCP服务器,该服务器监听由环境变量 CUPYX_DISTRIBUTED_PORT 指定的端口,排名0的进程必须在由环境变量 CUPYX_DISTRIBUTED_HOST 确定的宿主机上执行。如果这些变量的值未指定,默认将使用 ‘127.0.0.1’ 和 13333。
请注意,此功能预计将在受信任的集群环境中使用。
示例
>>> import cupy >>> def process_0(): ... import cupyx.distributed ... cupy.cuda.Device(0).use() ... comm = cupyx.distributed.init_process_group(2, 0) ... array = cupy.ones(1) ... comm.broadcast(array, 0) ... >>> def process_1(): ... import cupyx.distributed ... cupy.cuda.Device(1).use() ... comm = cupyx.distributed.init_process_group(2, 1) ... array = cupy.zeros(1) ... comm.broadcast(array, 0) ... cupy.equal(array, cupy.ones(1))
- 参数:
- 返回:
用于执行通信的对象,遵循
Backend规范:- 返回类型:
Backend