MCPcopy
hub / github.com/NVIDIA/TensorRT-LLM / allgather

Function allgather

tensorrt_llm/_torch/distributed/ops.py:267–300  ·  view source on GitHub ↗

Add an operation that performs a collective all-gather across the TP group. If 'sizes' is 'None', the input tensors in the different ranks must have the same shape. Otherwise, 'sizes[i]' must be 'input.shape[dim]' at rank i, and the input tensors in the different ranks can only dif

(
    input: Union[torch.Tensor, List[torch.Tensor]],
    mapping: Mapping,
    dim: int = -1,
    sizes: Optional[List[int]] = None,
)

Source from the content-addressed store, hash-verified

265
266
267def allgather(
268 input: Union[torch.Tensor, List[torch.Tensor]],
269 mapping: Mapping,
270 dim: int = -1,
271 sizes: Optional[List[int]] = None,
272) -> Union[torch.Tensor, List[torch.Tensor]]:
273 '''
274 Add an operation that performs a collective all-gather across the TP group.
275
276 If 'sizes' is 'None', the input tensors in the different ranks must have the same shape.
277 Otherwise, 'sizes[i]' must be 'input.shape[dim]' at rank i, and the input tensors in
278 the different ranks can only differ in shape at dimension `dim`.
279
280 The input tensors in the same TP group are concatenated at dimension 'dim' to produce the output tensor.
281 If 'sizes' is 'None', 'output.shape[dim] = input.shape[dim] * tp_group_size'.
282 Otherwise, 'output.shape[dim] = sum(sizes)'.
283
284 That operation is implemented using a torch op that wraps the NCCL all-gather collective operation or
285 the NCCL group call of a series of NCCL broadcast collective operations. See the following materials for details.
286 https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/usage/collectives.html#allgather,
287 https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/usage/collectives.html#broadcast,
288 https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/api/group.html.
289
290 Args:
291 input (Union[Tensor, List[Tensor]]): The input tensor or tensor list.
292 mapping (Mapping): The parallel mapping.
293 dim (int): Gather along given dimension. By default -1.
294 sizes(Optional[List[int]]): An optional list indicating 'input.shape[dim]' in all ranks. By default None.
295 Returns:
296 The gathered tensor or tensor list.
297 '''
298 group_boxed = mapping.tp_group_pg.boxed() if mpi_disabled() else None
299 return _allgather(input, mapping.tp_group, mapping.tp_rank, group_boxed,
300 dim, sizes)
301
302
303def cp_allgather(

Callers 15

dispatchMethod · 0.90
forwardMethod · 0.50
forwardMethod · 0.50
forward_chunkMethod · 0.50
forward_chunkMethod · 0.50
forward_chunkMethod · 0.50
forwardMethod · 0.50
forward_implMethod · 0.50
forward_chunkMethod · 0.50
draft_samplerMethod · 0.50
reduce_resultsMethod · 0.50
trtllm_allgatherFunction · 0.50

Calls 2

mpi_disabledFunction · 0.90
_allgatherFunction · 0.85

Tested by

no test coverage detected