You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Epic Origami #18605 - Pli 2 followup] Mesure d'enveloppe VRAM NeRF/3D-01/3D-02 sur la RTX 3070 Ti 8 Go (etage pionnier) -- donnee qui manque a l'arc avant le Pli 3 #21626
Constat : la mesure d'enveloppe VRAM du premier étage manque encore pour la famille NeRF/3D-04/3D-05, et c'est ce qui arme l'étage pionnier de la Pli 2 (livrée) et de la Pli 3 (claimée par po-2023 sur RTX 3090 24 Go).
L'EPIC #18605 (Origami coord-based neural representations) a son Pli 1 livré (PR #18791, 3.4d-Fourier-Features-Biais-Spectral-Python.ipynb) et son Pli 2 livré (#19949, série GenAI/3D/ créée par #20231) — les 4 carnets NeRF (3D-01 à 3D-04) sont sur main. Le Pli 3 est claimé par myia-po-2023:CoursIA (#20390) et s'exécute sur l'eGPU RTX 3090 24 Go.
La donnée qui manque pour l'arc : l'enveloppe VRAM de la famille NeRF/3D-04 sur la petite carte 8 Go (RTX 3070 Ti). C'est exactement la même question que pour la famille 0,8 B (issue #21620) — mais sur un autre ordre de grandeur : NeRF est un réseau dense d'aiguillage spatial 5D (5 × 256 + 4 = 1 284 → 256 → 128 → 1), 100-200 itérations Adam, et 4 à 8 couches de positional encoding 2⁰-2¹⁰. La mesure d'enveloppe du Pli 1 (Fourier, sur la même 8 Go) avait déjà dépassé 5 Go sur ai-01, et le harness du Pli 2 (3D-01-NeRF-From-Scratch.ipynb) est conçu pour le même harnais Gradio/TensorBoard.
Livrable attendu
Une mesure d'enveloppe VRAM sur la RTX 3070 Ti 8 Go du siège myia-po-2028 (lane pionnière), avec :
Run borné du 3D-01-NeRF-From-Scratch.ipynb (paramètres de référence, scènes Lego / Saturne), sur GPU CUDA, avec un budget de 50-100 itérations — suffisant pour mesurer le pic VRAM et le débit sur petite carte.
Variante sur 3D-02-NeRF-Critic.ipynb (entraînement réduit) : confirme que l'enveloppe tient pour le volet évaluatif.
Comparaison avec la Pli 1 (Fourier) : les notebooks 3.0 et 3.4d partagent un harnais commun — leur profil VRAM sur 8 Go est-il compatible avec un même run conjoint, ou faut-il enchaîner les deux ? Le chiffre tranche.
Verdict pour l'étage pionnier : un lead NeRF complet (200 itérations, évaluations held-out) rentre-t-il dans 8 Go, ou bien l'étage moyen est-il d'emblée requis pour ce qui est la moitié de l'EPIC ?
Aucune modification de notebook. La mesure crée un manifeste JSON sous scripts/results/3d_enveloppe_8go/, comme la mesure ML de cette semaine. L'addition de 3D-04 (qui dépend du moteur gsplat, voir le constat de #21614) n'est pas dans ce grain : ce sera un autre sous-grain, et l'enveloppe 8 Go aura d'ici là une ligne de base.
Acceptance
3D-01 exécuté de bout en bout (C.2), pic VRAM mesuré, débit mesuré (it/s)
3D-02 (volet évaluatif) tourne sans OOM et donne un verdict lisible
Manifeste JSON committé sous scripts/results/3d_enveloppe_8go/
Verdict mesuré : un lead NeRF complet (200 itérations + eval) rentre-t-il sur 8 Go, ou faut-il l'étage moyen d'emblée ?
Hors scope : toute correction de carnet, tout ajout d'exercice, toute régression sur le contenu pédagogique. Le grain mesure l'enveloppe ; le reste est aux Plis 2-3.
Protocole
GPU : réservé avant tout chargement au ledger CoursIA-gpu-reservation-ledger (debt_ledger.py append --ledger gpu-reservation --entity myia-po-2028#gpu0), un seul job à la fois, abandon au-delà de 85 °C, released à la fin.
Grain: DEEP/training — lane myia-po-2028:CoursIA-2 — prev: DEEP/training #21624
[CLAIMED] lane myia-po-2028:CoursIA-2 -- paths: docs/genai/3d-enveloppe-vram-8go.md
Grain : mesurer l'enveloppe VRAM de la famille NeRF sur l'étage pionnier (8 Go) — la donnée qui manque à l'arc GPU de l'EPIC #18605 pour la moitié NeRF de l'EPIC, le Pli 3 (gsplat) restant sur l'eGPU 24 Go désigné.
Ce que je mesure, et rien de plus : le pic VRAM et le débit du harness 3D-01-NeRF-From-Scratch (puis 3D-02-NeRF-Critic, volet évaluatif) exécutés sur la RTX 3070 Ti 8 Go du siège, avec un budget borné, et une comparaison avec l'enveloppe de la Pli 1 (Fourier, 3.4d, qui partage le même harnais) — pour dire si un run NeRF complet (200 itérations + évaluations held-out) rentre dans 8 Go, ou si l'étage moyen est requis d'emblée.
Aucune modification de carnet. L'exécution se fait sur une copie hors dépôt ; le livrable est un manifeste JSON + une note de mesure. Les notebooks 3D-01/3D-02 du dépôt sont dans le scope de claims d'autres lanes (#21413, #20544) : je n'y touche pas.
Protocole : GPU réservé au ledger avant tout chargement (debt_ledger.py append --ledger gpu-reservation --entity myia-po-2028#gpu0, state: held, avec échéance), un seul job à la fois, abandon au-delà de 85 °C, released à la fin ; sortie nvidia-smi échantillonnée à 5 s pour le pic ; harness scripts/notebook_tools/notebook_tools.py execute (kernel python3, env mcp-jupyter, torch 2.8.0+cu126).
Périmètre : ni merge, ni clôture d'issue d'autrui, ni /coordinate.
La fidélité se rejoue une troisième fois : 21,92 dB sur ce poste (identique au run précédent), 21,85 dB sur la carte 16 Go de référence — 0,07 dB d'écart sur deux cartes.
La lecture qui sert la ventilation GPU de l'EPIC #18605. Le premier étage n'est pas un « petit GPU » générique, il est un étage à deux vitesses :
Pipeline
Pic sur 8 Go
Marge
Verdict
NeRF (3D-01, 2 000 it. + éval)
4 318 Mio (52,7 %)
47 %
tient largement — le pionnier peut défricher le socle A1
Conséquence opérationnelle : un lead RL part directement à l'étage moyen, même sur 0,8 B ; le pionnier garde sa vocation (défriche NeRF, Fourier, petits apprentissages). C'est exactement la donnée qui manquait pour armer la répartition.
Ce que ce grain ne couvre pas : le volet évaluatif 3D-02-NeRF-Critic n'est pas rejoué (il figurait dans l'acceptation de l'issue — reste à faire) ; le pipeline 3DGS/gsplat du Pli 3 n'est pas mesuré (moteur CUDA gsplat absent de ce poste, cf. #21614) — son enveloppe reste à prendre sur l'eGPU 24 Go désigné par l'EPIC. Ce n'est pas une mesure de performance ML : c'est une capacité d'étage.
Aucun carnet modifié : exécution sur une copie hors dépôt (3D-01 et 3D-02 sont dans le scope de claims d'autres lanes, PR #21413 et #20544). Livrable : manifeste de mesure (MyIA.AI.Notebooks/GenAI/3D/_measurements/3d01_enveloppe_8go.json) + note (docs/genai/3d-enveloppe-vram-8go.md), 2 fichiers, 142 lignes.
GPU : réservé au ledger avant tout chargement (obs-55b043a6b21cc586, held), relâché à la fin (obs-de952cd16191039d, released, 331 Mio résiduels).
Périmètre : ni merge, ni clôture d'issue d'autrui, ni /coordinate.
Grain: DEEP/training — lane myia-po-2028:CoursIA-2 — prev: DEEP/training #21624
[DELIVERED] lane myia-po-2028:CoursIA-2 -- PR #21630
Tranche 2 du grain : les deux volets de la famille NeRF sont mesurés, et la comparaison avec le Pli 1 demandée par le livrable est faite. Les quatre critères d'acceptation sont couverts.
Volet évaluatif (3D-02-NeRF-Critic) — le critère 2
Mesure
Valeur
Pic VRAM
7 740 Mio / 8 192 Mio = 94,5 %
Mémoire au repos (avant / après)
428 / 427 Mio
Température max
72 °C (seuil d'abandon 85 °C non franchi)
Utilisation GPU max
100 %
Durée du run complet
1 222,3 s (20,4 min)
Plateau de l'entraînement (scène jouet, puis Lego 100×100)
3 001 Mio, puis 4 217 Mio (51 % de la carte)
Fidélité — scène jouet, 1 600 it.
21,76 dB (96 s)
Fidélité — Lego, 3 000 it.
20,15 dB (L=0), 22,45 dB (L=4), 22,26 dB (L=10)
Fidélité — bruit de pose, 800 it.
19,84 dB (σ=0°) → 18,01 dB (σ=2°)
Fidélité — transfert de focale
19,76 dB (native→native), 18,92 dB (télé→télé), 6,66 dB (grand angle→native)
Coût du comptage de points
9,4 ms (N=8) → 15 084 ms (N=256, 1 048 576 points)
Pas d'OOM, run complet, 0 erreur, exception: null. Le point important n'est pas le total mais où le pic arrive : plateau stable à 4 200 Mio pendant les vingt minutes, puis une montée de 3 512 Mio dans les vingt dernières secondes — la cellule de comptage de points N=256. Entraîner un NeRF sur 8 Go n'est pas le problème ; évaluer un NeRF de façon dense l'est.
Comparaison avec le Pli 1 (Fourier 3.4d) — le critère 3 du livrable
L'issue demandait si les deux plis sont compatibles avec un même run conjoint ou s'il faut enchaîner. La mesure répond, mais pas par un chiffre de VRAM : le harnais du Pli 1 est CPU-borné en NumPy pur (Adam et gradient écrits à la main ; son propre verdict dit « sur CPU, en NumPy pur, en ~30 s »). Il n'importe ni torch ni aucun moteur CUDA.
Les figures rejouées sont celles du carnet committé : le run reproduit la référence (baseline 3,23e-01, écart de gradient 2,08e-07), il ne la modifie pas.
La conclusion est une non-concurrence de ressources : Fourier occupe 288 Mio de RAM hôte et zéro octet de VRAM ; la famille NeRF occupe 52,7 % puis 94,5 % de la carte. Un run conjoint est possible côté mémoire vidéo ; ce qui ne se partage pas, c'est la carte entre deux jobs CUDA. La question « run conjoint ou enchaînement ? » ne se pose donc pas en VRAM mais en temps GPU — et le Pli 1 n'en consomme pas.
Les quatre critères d'acceptation
#
Critère
État
1
3D-01 exécuté de bout en bout, pic VRAM et débit mesurés
3D-02 (volet évaluatif) tourne sans OOM et donne un verdict lisible
couvert — run complet, pic 7 740 Mio (94,5 %), aucun OOM, verdict sur les quatre axes (critic / bruit de pose / focales / comptage de points)
3
Manifeste JSON committé sous scripts/results/3d_enveloppe_8go/
couvert — 3d01_enveloppe_8go.json, 3d02_enveloppe_8go.json, 3d4d_fourier_8go.json dans ce répertoire (chemin littéral de l'acceptance)
4
Verdict mesuré : un lead NeRF complet rentre-t-il sur 8 Go, ou l'étage moyen est-il requis d'emblée ?
couvert — voir ci-dessous
Le verdict (critère 4)
Le socle NeRF rentre sur 8 Go ; l'évaluation dense, non. Un lead NeRF complet (2 000 itérations Lego + 1 000 it. jouet + évaluation, soit 3 000 itérations) tient à 4 318 Mio (52,7 %) avec 47 % de marge — la question « faut-il l'étage moyen d'emblée ? » reçoit donc non pour le socle, et oui dès que l'on ajoute l'évaluation dense : le comptage de points N=256 porte à lui seul 7 740 Mio (94,5 %), soit 5,5 % de marge, la même arithmétique que le run 0,8 B GRPO+QLoRA (95,7 %).
Autrement dit : l'étage pionnier défriche la famille NeRF (Pli 1 compris, qui ne consomme aucune carte), mais son évaluation dense doit monter d'un étage.
Deux versions de torch sur la même carte (2.8.0+cu126 pour 3D-01, 2.14.1+cu126 pour 3D-02) : l'effet de la version n'est pas isolé comme facteur du pic.
Issue #21626 (fille de l'EPIC #18605). GPU réservé au ledger CoursIA-gpu-reservation-ledgeravant tout chargement (obs-55b043a6b21cc586 pour 3D-01, obs-12e553f00d6132f3 pour 3D-02 ; held → released), un seul job à la fois, nvidia-smi échantillonné à 5 s. Le run du Pli 1 est le seul des trois à n'avoir pas réservé la carte : il ne charge aucun moteur CUDA — la réservation aurait immobilisé une ressource inutilement demandée ; la carte a néanmoins été échantillonnée à 2 s (c'est cette trace qui établit qu'elle reste au repos) et la RAM hôte suivie au même pas.
Activity
jsboige commentedon Oct 20, 2026
Grain: DEEP/training — lane myia-po-2028:CoursIA-2 — prev: DEEP/training #21624
[CLAIMED] lane myia-po-2028:CoursIA-2 -- paths: docs/genai/3d-enveloppe-vram-8go.md
Grain : mesurer l'enveloppe VRAM de la famille NeRF sur l'étage pionnier (8 Go) — la donnée qui manque à l'arc GPU de l'EPIC #18605 pour la moitié NeRF de l'EPIC, le Pli 3 (gsplat) restant sur l'eGPU 24 Go désigné.
Ce que je mesure, et rien de plus : le pic VRAM et le débit du harness
3D-01-NeRF-From-Scratch(puis3D-02-NeRF-Critic, volet évaluatif) exécutés sur la RTX 3070 Ti 8 Go du siège, avec un budget borné, et une comparaison avec l'enveloppe de la Pli 1 (Fourier,3.4d, qui partage le même harnais) — pour dire si un run NeRF complet (200 itérations + évaluations held-out) rentre dans 8 Go, ou si l'étage moyen est requis d'emblée.Aucune modification de carnet. L'exécution se fait sur une copie hors dépôt ; le livrable est un manifeste JSON + une note de mesure. Les notebooks
3D-01/3D-02du dépôt sont dans le scope de claims d'autres lanes (#21413, #20544) : je n'y touche pas.Protocole : GPU réservé au ledger avant tout chargement (
debt_ledger.py append --ledger gpu-reservation --entity myia-po-2028#gpu0,state: held, avec échéance), un seul job à la fois, abandon au-delà de 85 °C,releasedà la fin ; sortienvidia-smiéchantillonnée à 5 s pour le pic ; harnessscripts/notebook_tools/notebook_tools.py execute(kernelpython3, envmcp-jupyter,torch 2.8.0+cu126).Périmètre : ni merge, ni clôture d'issue d'autrui, ni
/coordinate.jsboige commentedon Oct 20, 2026
Grain: DEEP/training — lane myia-po-2028:CoursIA-2 — prev: DEEP/training #21624
[DELIVERED] lane myia-po-2028:CoursIA-2 -- PR #21630
L'enveloppe GPU de la famille NeRF sur l'étage pionnier 8 Go est mesurée.
nvidia-smià 5 s)La fidélité se rejoue une troisième fois : 21,92 dB sur ce poste (identique au run précédent), 21,85 dB sur la carte 16 Go de référence — 0,07 dB d'écart sur deux cartes.
La lecture qui sert la ventilation GPU de l'EPIC #18605. Le premier étage n'est pas un « petit GPU » générique, il est un étage à deux vitesses :
3D-01, 2 000 it. + éval)Conséquence opérationnelle : un lead RL part directement à l'étage moyen, même sur 0,8 B ; le pionnier garde sa vocation (défriche NeRF, Fourier, petits apprentissages). C'est exactement la donnée qui manquait pour armer la répartition.
Ce que ce grain ne couvre pas : le volet évaluatif
3D-02-NeRF-Criticn'est pas rejoué (il figurait dans l'acceptation de l'issue — reste à faire) ; le pipeline 3DGS/gsplatdu Pli 3 n'est pas mesuré (moteur CUDAgsplatabsent de ce poste, cf. #21614) — son enveloppe reste à prendre sur l'eGPU 24 Go désigné par l'EPIC. Ce n'est pas une mesure de performance ML : c'est une capacité d'étage.Aucun carnet modifié : exécution sur une copie hors dépôt (
3D-01et3D-02sont dans le scope de claims d'autres lanes, PR #21413 et #20544). Livrable : manifeste de mesure (MyIA.AI.Notebooks/GenAI/3D/_measurements/3d01_enveloppe_8go.json) + note (docs/genai/3d-enveloppe-vram-8go.md), 2 fichiers, 142 lignes.GPU : réservé au ledger avant tout chargement (
obs-55b043a6b21cc586,held), relâché à la fin (obs-de952cd16191039d,released, 331 Mio résiduels).Périmètre : ni merge, ni clôture d'issue d'autrui, ni
/coordinate.Fix(docs,#21626): indexe le doc d'enveloppe VRAM 8 Go dans docs/READM…
Add(measure,#21626): enveloppe VRAM du volet evaluatif 3D-02-NeRF-Cri…
Docs(measure,#21626): manifests de mesure sous scripts/results/3d_env…
Measure(3d,#21626): enveloppe du Pli 1 (Fourier 3.4d) -- harnais CPU,…
jsboige commentedon Oct 20, 2026
Grain: DEEP/training — lane myia-po-2028:CoursIA-2 — prev: DEEP/training #21624
[DELIVERED] lane myia-po-2028:CoursIA-2 -- PR #21630
Tranche 2 du grain : les deux volets de la famille NeRF sont mesurés, et la comparaison avec le Pli 1 demandée par le livrable est faite. Les quatre critères d'acceptation sont couverts.
Volet évaluatif (
3D-02-NeRF-Critic) — le critère 2Pas d'OOM, run complet, 0 erreur,
exception: null. Le point important n'est pas le total mais où le pic arrive : plateau stable à 4 200 Mio pendant les vingt minutes, puis une montée de 3 512 Mio dans les vingt dernières secondes — la cellule de comptage de pointsN=256. Entraîner un NeRF sur 8 Go n'est pas le problème ; évaluer un NeRF de façon dense l'est.Comparaison avec le Pli 1 (Fourier
3.4d) — le critère 3 du livrableL'issue demandait si les deux plis sont compatibles avec un même run conjoint ou s'il faut enchaîner. La mesure répond, mais pas par un chiffre de VRAM : le harnais du Pli 1 est CPU-borné en NumPy pur (Adam et gradient écrits à la main ; son propre verdict dit « sur CPU, en NumPy pur, en ~30 s »). Il n'importe ni
torchni aucun moteur CUDA.Les figures rejouées sont celles du carnet committé : le run reproduit la référence (baseline 3,23e-01, écart de gradient 2,08e-07), il ne la modifie pas.
La conclusion est une non-concurrence de ressources : Fourier occupe 288 Mio de RAM hôte et zéro octet de VRAM ; la famille NeRF occupe 52,7 % puis 94,5 % de la carte. Un run conjoint est possible côté mémoire vidéo ; ce qui ne se partage pas, c'est la carte entre deux jobs CUDA. La question « run conjoint ou enchaînement ? » ne se pose donc pas en VRAM mais en temps GPU — et le Pli 1 n'en consomme pas.
Les quatre critères d'acceptation
3D-01exécuté de bout en bout, pic VRAM et débit mesurésnvidia-smià 5 s, 0 erreur3D-02(volet évaluatif) tourne sans OOM et donne un verdict lisiblescripts/results/3d_enveloppe_8go/3d01_enveloppe_8go.json,3d02_enveloppe_8go.json,3d4d_fourier_8go.jsondans ce répertoire (chemin littéral de l'acceptance)Le verdict (critère 4)
Le socle NeRF rentre sur 8 Go ; l'évaluation dense, non. Un lead NeRF complet (2 000 itérations Lego + 1 000 it. jouet + évaluation, soit 3 000 itérations) tient à 4 318 Mio (52,7 %) avec 47 % de marge — la question « faut-il l'étage moyen d'emblée ? » reçoit donc non pour le socle, et oui dès que l'on ajoute l'évaluation dense : le comptage de points
N=256porte à lui seul 7 740 Mio (94,5 %), soit 5,5 % de marge, la même arithmétique que le run 0,8 B GRPO+QLoRA (95,7 %).Autrement dit : l'étage pionnier défriche la famille NeRF (Pli 1 compris, qui ne consomme aucune carte), mais son évaluation dense doit monter d'un étage.
Ce que cette livraison ne couvre pas
3D-04,3D-05, 3DGS/gsplat) : le moteur CUDAgsplatest absent de ce poste (nvccnon installé, cf. validate_lean_setup.py : crash d'encodage console cp1252, validation du mauvais cote apres une installation WSL, venv Python WSL non installe par le setup #21614). Son enveloppe reste à prendre sur l'eGPU 24 Go désigné par l'EPIC — c'est le reliquat de ce grain.3D-01, 2.14.1+cu126 pour3D-02) : l'effet de la version n'est pas isolé comme facteur du pic.3D-01et3D-02sont dans le scope de claims d'autres lanes — PR feat(lean,#17845): brique k4.3 -- NearInvariant (Lemme 1.5), cloture de la voie k4 #21413, fix(notebooks,#16472): fournée g1-residu-petits-domaines -- 3D-01/3D-02 à 0 finding + baseline regen 43→40 #20544 — et3D-04est claimé par po-2023). Le livrable est la mesure : 3 manifestes, la notedocs/genai/3d-enveloppe-vram-8go.mdet son entrée d'index — 5 fichiers, aucun code de production.Reproductibilité
Issue #21626 (fille de l'EPIC #18605). GPU réservé au ledger
CoursIA-gpu-reservation-ledgeravant tout chargement (obs-55b043a6b21cc586pour3D-01,obs-12e553f00d6132f3pour3D-02;held→released), un seul job à la fois,nvidia-smiéchantillonné à 5 s. Le run du Pli 1 est le seul des trois à n'avoir pas réservé la carte : il ne charge aucun moteur CUDA — la réservation aurait immobilisé une ressource inutilement demandée ; la carte a néanmoins été échantillonnée à 2 s (c'est cette trace qui établit qu'elle reste au repos) et la RAM hôte suivie au même pas.Voir #21630 · Relatif à #18605
Add(genai,#21626): enveloppe GPU de la famille NeRF sur l'etage pionn…