交流集

torch.cuda.comm.broadcast(tensor, devices)

向一些GPU广播张量。

参数:

  • tensor (Tensor) – 将要广播的张量
  • devices (Iterable) – 一个可以广播的设备的迭代。注意,它的形式应该像(src,dst1,dst2,...),其第一个元素是广播来源的设备。

返回: 一个包含张量副本的元组,放置在与设备的索引相对应的设备上。

torch.cuda.comm.reduce_add(inputs, destination=None)

将来自多个GPU的张量相加。

所有输入应具有匹配的形状。

参数:

  • inputs (Iterable[Tensor]) – 要相加张量的迭代
  • destination (int, optional) – 将放置输出的设备(默认值:当前设备)。

返回: 一个包含放置在destination设备上的所有输入的元素总和的张量。

torch.cuda.comm.scatter(tensor, devices, chunk_sizes=None, dim=0, streams=None)

打散横跨多个GPU的张量。

参数:

  • tensor (Tensor) – 要分散的张量
  • devices (Iterable[int]) – int的迭代,指定哪些设备应该分散张量。
  • chunk_sizes (Iterable[int], optional) – 要放置在每个设备上的块大小。它应该匹配devices的长度并且总和为tensor.size(dim)。 如果没有指定,张量将被分成相等的块。
  • dim (int, optional) – 沿着这个维度来chunk张量

返回: 包含tensor块的元组,分布在给定的devices上。

torch.cuda.comm.gather(tensors, dim=0, destination=None)

从多个GPU收集张量。

张量尺寸在不同于dim的所有维度上都应该匹配。

参数:

  • tensors (Iterable[Tensor]) – 要收集的张量的迭代。
  • dim (int) – 沿着此维度张量将被连接。
  • destination (int, optional) – 输出设备(-1表示CPU,默认值:当前设备)。

返回: 一个张量位于destination设备上,这是沿着dim连接tensors的结果。

results matching ""

    No results matching ""