Skip to content

[ML/DeepLearning] Entraînement distribué sur plusieurs GPU : DDP et FSDP sous nccl, diagnostic du rang lent (suite de #18210) #19256

Description

@myia-ai-01

Grain: MED/notebook-python

Issue de suivi de #18210, ouverte avant sa fermeture. Elle porte le seul volet que #18210 avait mis à part dans ses contraintes : « Le volet multi-GPU est séparé. Il s'exécute sur une machine GPU de la flotte. »

Ce qui existe sur main

Les trois carnets de #18210 sont dans ML/DataScienceWithAgents/03-DeepLearning/ et tournent entièrement sur CPU (gloo, plusieurs processus) :

  • 3.11-Budget-Memoire-Entrainement : le budget mémoire calculé à la main, puis confronté à max_memory_allocated ;
  • 3.12-Les-Collectives : l'anneau all-reduce écrit à la main, comparé à l'appel natif ;
  • 3.13-Decouper-le-Modele-DDP-ZeRO-FSDP : DDP, les trois niveaux de ZeRO, FSDP, puis l'ordonnancement de GPipe et de 1F1B.

Ce qui manque

Le même geste sur de vraies cartes : l'étudiant n'a jamais vu nccl à l'œuvre, ni un rang qui attend les autres.

  1. DDP puis FSDP sur au moins deux GPU (nccl), avec la mémoire mesurée par rang et le temps par pas, et la comparaison chiffrée avec la version gloo de 3.13.
  2. Le diagnostic « mon GPU attend les autres » : un rang ralenti exprès, puis sa signature lue dans les mesures.

Contraintes

  • La machine est documentée dans le body de la PR (règle F, cas GPU seul). Sur ai-01, les GPU 0 et 1 portent le vLLM de la flotte : un run à deux cartes s'y négocie au registre gpu-reservation, et ne se lance jamais sans réservation.
  • Pas de nouveau carnet si une section de 3.13 suffit. Sinon, une lettre de la famille 3.13, sans renommer l'existant ([EPIC] Nommage canonique et parcours des notebooks — numéros, accrétions, noyaux et catalogue #5081).
  • Sorties committées (C.2), trois exercices conformes à C.1 si un carnet est créé.

See #18210 · See #18220 (pli 2) · See #1454 (rendez-vous GPU)

🤖 Generated with Claude Code

Activity

  1. jsboige commented on Oct 5, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2023:CoursIA -- DDP/FSDP nccl bi-GPU + diagnostic rang lent ; condition GPU mesuree OK (RTX 3080 Ti Laptop 16 Go + RTX 3090 24 Go) MAIS les deux cartes portent le run 27B #18112 en cours (pid 54516, 31/48 rollouts a 08:57Z, fin estimee ~11:10Z) -- preparation du grain maintenant, executions GPU apres la liberation des cartes (jamais en contention avec le run : les mesures de rang lent seraient fausseees par la contention). Grain: MED/notebook-python — lane myia-po-2023:CoursIA — prev: LIGHT/docs #19273

  2. jsboige commented on Oct 5, 2026

    @jsboige
    Owner

    [CLAIMED-AMEND] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/ML/DataScienceWithAgents/03-DeepLearning/3.13b-Deux-Cartes-Reelles-DDP-FSDP-nccl.ipynb

    Amendement de forme : la claim du 2026-10-05T09:16:41Z etait epic-wide sans
    clause paths:. Le livrable de ce grain est un seul carnet, donc la claim se
    borne a ce carnet -- les autres lanes ne sont plus bloquees sur #19256 alors
    qu'elles ne toucheront jamais ce fichier.

    Portee reelle : creation de 3.13b-Deux-Cartes-Reelles-DDP-FSDP-nccl.ipynb
    (DDP puis FSDP sous nccl sur deux cartes, memoire et temps par pas, diagnostic
    du rang lent). Aucun autre fichier de la serie 03-DeepLearning n'est modifie.

  3. jsboige commented on Oct 5, 2026

    @jsboige
    Owner

    [DELIVERED] lane myia-po-2023:CoursIA — PR #19327, head 1e32145

    Les deux livrables de l'issue sont couverts, execution reelle sur les deux
    cartes de po-2023 (reservation GPU annoncee a la lane gestionnaire avant le
    run, fermee apres) :

    1. DDP puis FSDP a monde=2 sous nccl, memoire par rang + pic CUDA + temps par
      pas mesures : DDP 4,00 P / 3 091 Mo / 402 ms — FSDP 2,00 P / 1 299 Mo /
      654 ms. Comparaison chiffree avec le gloo de 3.13 : memes rapports 4P/2P,
      verifies croises contre le releve committé de 3.13.
    2. Diagnostic du rang lent : pause 50 ms sur le rang 0 — le rang sain passe
      de 402 a 444 ms (il paie la pause de l'autre), le dormant garde 394 ms.

    Contraintes : machine documentee dans le body PR (regle F) ; lettre 3.13b
    sans renommage ; sorties committes (C.2) ; 3 exercices C.1.

    See #18210

  4. added 2 commits that reference this issue on Oct 5, 2026
  5. added a commit that references this issue on Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions