torch.cuda.comm.scatter¶
- torch.cuda.comm.scatter(tensor, devices=None, chunk_sizes=None, dim=0, streams=None, *, out=None)[source][source]¶
將張量分散到多個 GPU。
- 引數
tensor (Tensor) – 要分散的張量。可以在 CPU 或 GPU 上。
devices (Iterable[torch.device, str or int], optional) – 一個 GPU 裝置的可迭代物件,用於分散張量。
chunk_sizes (Iterable[int], optional) – 要放置在每個裝置上的塊的大小。長度應與
devices匹配,並且總和應等於tensor.size(dim)。如果未指定,tensor將被平均分成塊。dim (int, optional) – 用於分割
tensor的維度。預設值:0。streams (Iterable[torch.cuda.Stream], optional) – 一個 Stream 的可迭代物件,用於執行分散操作。如果未指定,將使用預設 Stream。
out (Sequence[Tensor], optional, keyword-only) – 用於儲存輸出結果的 GPU 張量。這些張量的大小必須與
tensor匹配,除了dim維度,在該維度上,總大小必須等於tensor.size(dim)。
注意
必須且只能指定
devices和out中的一個。當指定out時,不得指定chunk_sizes,塊大小將從out的大小推斷。- 返回
- 如果指定了
devices, 一個元組,包含
tensor的塊,這些塊放置在devices上。
- 如果指定了
- 如果指定了
out, 一個元組,包含
out張量,每個張量都包含tensor的一個塊。
- 如果指定了