Workloadhandleidingen
Plan een reproduceerbare PyTorch-run
Meet geheugen, kies een parallellisatiestrategie, test checkpointherstel en plan een PyTorch-trainingsrun met vaste termijn.
10 min leestijd · BijgewerktBewijs één volledige stap voordat u opschaalt
Vergrendel de model- en datasetrevisies, afhankelijkheidsversies, trainingsconfiguratie, willekeurige seeds en container-digest. Voer het laden van het model, een volledige trainingsstap, evaluatie, checkpoint-opslag en checkpoint-herstel uit op één accelerator.
Gebruik dezelfde sequentielengte en microbatchinstellingen als bedoeld voor de langere run. Een kleine pilot die optimizerstatus weglaat of kortere sequenties gebruikt, kan het geheugenprobleem verbergen dat u probeert te meten.
Meet een representatieve optimalisatiestap
Omring binnen uw bestaande trainingsprogramma een representatieve stap met een piekgeheugenmeting. Het voorbeeld gaat ervan uit dat model, batch en optimizer al op de GPU zijn geïnitialiseerd. Neem de optimizerstap op, omdat sommige toestand lazy wordt aangemaakt.
torch.cuda.reset_peak_memory_stats()
optimizer.zero_grad(set_to_none=True)
loss = model(**batch).loss
loss.backward()
optimizer.step()
torch.cuda.synchronize()
peak_gib = torch.cuda.max_memory_allocated() / 2**30
print(f"Peak tensor memory: {peak_gib:.2f} GiB")Dit rapporteert de piek-tensorallocatie, niet de volledige apparaatvoetafdruk. Inspecteer ook gereserveerd geheugen, runtime-overhead en het apparaatgeheugenrapport van het systeem.
Kies DDP of sharding om de juiste reden
DistributedDataParallel houdt een modelreplica op elk proces en synchroniseert gradiënten. Het is nuttig wanneer de volledige trainingsstatus op elke GPU past en u meer gegevens parallel wilt verwerken; het voegt VRAM niet samen tot één aaneengesloten pool.
Fully Sharded Data Parallel kan parameters, gradiënten en optimizerstatus verdelen. Gebruik het wanneer geheugendruk sharding rechtvaardigt, en houd rekening met extra communicatie en complexiteit van gedistribueerde checkpoints.
Mixed precision en activation checkpointing zijn afzonderlijke keuzes. Valideer het numerieke gedrag voor lagere precisie; meet de rekencosten van het herberekenen van activaties wanneer checkpointing geheugen bespaart.
Start een pilot met één node
Het trainingsscript moet gedistribueerde uitvoering initialiseren en één proces aan elke GPU toewijzen met behulp van de local-rank-informatie. Stem het aantal processen af op de zichtbare GPU's. Het volgende is een startvoorbeeld voor een distributiebewust script, geen volledige trainingsimplementatie.
torchrun --standalone --nproc-per-node=4 \
train.py --config configs/pilot.yamlVoer dit alleen uit op een ingerichte node. De lokale AnchorGPU-demo voert geen training uit en wijst geen externe GPU's toe.
Selecteer hardware op basis van het pilotresultaat
Gebruik A100 als goedkopere 80 GB CUDA-basislijn en test H100 als de workload een nuttig Hopper-specifiek pad heeft. H200 biedt een grotere CUDA-geheugenconfiguratie. MI300X biedt meer capaciteit per accelerator in deze catalogus, mits de volledige applicatie is gekwalificeerd op ROCm.
Controleer voor AMD aangepaste extensies, kernels, pakketversies en de met ROCm geteste PyTorch-image als één geheel. Compatibiliteit op frameworkniveau valideert niet elke optionele bewerking.
Vergelijk H200 met MI300XTest herstel, niet alleen opslaan
Leg model, optimizer, scheduler, trainingsstap, configuratie en mixed-precision-scalerstatus vast waar relevant. Sla een checkpoint op, beëindig het proces, herstel en hervat vervolgens voordat u zich aan de lange run committeert.
Gebruik een checkpointmethode die past bij gedistribueerde status. Test dat de opgeslagen artefacten onafhankelijk van het oorspronkelijke proces kunnen worden gelezen en dat de evaluatie-uitvoer binnen de verwachte tolerantie blijft.
Budgetteer voor de hele pijplijn
Neem downloads, voorverwerking, dataladen, validatie, checkpointing, export en het kopiëren van uitvoer van het knooppunt mee. Meet doorvoer samen met geheugen, dataload-vertragingen, communicatietijd, checkpointduur en validatiekwaliteit.
Een termijn van 7 dagen is nuttig voor een afgebakende compatibiliteits- en profileringsronde. Kies pas een reservering van 30 dagen nadat u het nuttige werk en de operationele buffer kunt inschatten. Meer GPU's helpen alleen wanneer extra rekenkracht opweegt tegen communicatie- en invoerpijplijnlimieten.
Facturering met vaste termijn begrijpen