> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://fr.nvidia-localization.ferndocs.com/fr/nemo/rl/latest/nemo-rl-distributed-collectives/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/_mcp/server. # nemo\_rl.distributed.collectives ## Contenu du Module ### Fonctions | Nom | Description | | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | | [`rebalance_nd_tensor`](#nemorldistributedcollectivesrebalancendtensor) | Prend des tenseurs avec des tailles de premier axe variables (à dim=0) et les empile en un seul tenseur. | | [`gather_jagged_object_lists`](#nemorldistributedcollectivesgatherjaggedobjectlists) | Rassemble des listes de listes irrégulières d'objets sérialisables de tous les rangs et les aplatit en une seule liste. | ### Données `T` ### API ```python nemo_rl.distributed.collectives.T ``` **Valeur**: `TypeVar(...)` ```python nemo_rl.distributed.collectives.rebalance_nd_tensor( tensor: torch.Tensor, group: typing.Optional[torch.distributed.ProcessGroup] = None ) -> torch.Tensor ``` Prend des tenseurs avec des tailles de premier axe variables (à dim=0) et les empile en un seul tenseur. Cette fonction gère le cas où différents GPU ont des tenseurs avec des tailles de batch différentes et les combine en un seul tenseur équilibré sur tous les rangs. Par exemple, avec 3 GPU : GPU0 : tenseur de forme \[3, D] GPU1 : tenseur de forme \[5, D] GPU2 : tenseur de forme \[2, D] Après rééquilibrage : Tous les GPU auront le même tenseur de forme \[10, D] (3+5+2=10) REMARQUE : suppose que toutes les autres dimensions (non nulles) sont égales. ```python nemo_rl.distributed.collectives.gather_jagged_object_lists( local_objects: list[nemo_rl.distributed.collectives.T], group: typing.Optional[torch.distributed.ProcessGroup] = None ) -> list[nemo_rl.distributed.collectives.T] ``` Rassemble des listes de listes irrégulières d'objets sérialisables de tous les rangs et les aplatit en une seule liste. Cette fonction gère le cas où différents GPU ont des listes de longueurs différentes et les combine en une seule liste contenant tous les objets de tous les rangs. Par exemple, avec 3 GPU : GPU0 : \[obj0, obj1] GPU1 : \[obj2, obj3, obj4] GPU2 : \[obj5] Après le rassemblement : Tous les GPU auront : \[obj0, obj1, obj2, obj3, obj4, obj5] AVERTISSEMENT : synchrone Arguments : local\_objects : Liste des objets à rassembler du rang actuel group : Groupe de processus optionnel Retourne : Liste aplatie de tous les objets de tous les rangs dans l'ordre \[rang0, rang1, ...]