perf-moe-hardware-configs

Par nvidia · skills

Guides d'entraînement MoE représentatifs par plateforme matérielle et famille de modèles. Résume les plages de débit arrondies, les schémas de parallélisme et les piles de réglage courantes.

npx skills add https://github.com/nvidia/skills --skill perf-moe-hardware-configs

Référence de Configuration du Matériel MoE

Docs stables : @docs/training/moe-optimization.md Fiche : @skills/perf-moe-hardware-configs/card.yaml

Playbook Rapide par Plateforme

Plateforme Stratégie MoE typique Ce qui compte généralement le plus
H100 DeepEP + PP plus fort + TP modéré chevauchement de communication et efficacité PP
B200 DeepEP + MXFP8 + disposition PP soignée qualité du conteneur et paramètres comm ajustés
GB200 HybridEP + graphes CUDA partiels + nettoyage CPU surcharge hôte, dispatch tenant compte de la topologie, espace mémoire
GB300 HybridEP + FP8 plus récent et pile de kernels même playbook GB200, généralement avec un plafond plus élevé

Bandes de Performance Arrondies

Elles sont intentionnellement arrondies pour que le document reste durable au fil du temps. Traitez-les comme des plages de planification, pas comme des promesses exactes.

Famille de charge Matériel Bande typique Forme représentative
DSV3, grande échelle H100 centaines faibles à moyennes TFLOPS/GPU, MFU dans les hautes dizaines TP2, EP64, PP8, DeepEP
DSV3, grande échelle B200 centaines élevées TFLOPS/GPU, MFU dans les dizaines moyennes TP1, EP32, PP8, DeepEP
DSV3, grande échelle GB200 environ 1K TFLOPS/GPU, MFU faible-20s TP1, EP64, PP4, HybridEP
DSV3, grande échelle GB300 au-dessus de la bande GB200, souvent MFU mid-20s TP1, EP64, PP4, HybridEP
Qwen3 235B H100 faibles 300s TFLOPS/GPU, environ 30% MFU TP2, EP32, PP8, DeepEP
Qwen3 235B GB200 centaines élevées TFLOPS/GPU dans les exécutions ajustées TP1 ou TP2, EP32-64, PP4, HybridEP
Qwen3 30B H100 faibles 200s TFLOPS/GPU TP1, EP8, PP1, DeepEP
Qwen3-Next 80B GB200 faibles 300s TFLOPS/GPU dans les exécutions de classe BF16 TP1, EP32, PP2, HybridEP

Familles de Configuration Représentatives

DSV3 sur H100

Dispatcher: DeepEP
TP=2  EP=64  PP=8  VPP=4
Routing: forcer l'équilibre
Recompute: recompute sélectif léger à modéré
Priority: chevauchement de la communication et maintien de l'efficacité PP

DSV3 sur B200

Dispatcher: DeepEP
TP=1  EP=32  PP=8  VPP=2 ou similaire
Precision: classe MXFP8
Recompute: recompute sélectif autour de la up-projection MLA et des modules côté MLP
Priority: qualité du conteneur, disposition PP et ajustage SMS DeepEP

DSV3 sur GB200 ou GB300

Dispatcher: HybridEP
TP=1  EP=64  PP=4  VPP=4
Precision: classe MXFP8
CUDA Graph: attn + moe_router + moe_preprocess
Priority: HybridEP, optimisation CPU et formes statiques conviviales aux graphes

Qwen3 235B sur H100

Dispatcher: DeepEP
TP=2  EP=32  PP=8  VPP=4
Recompute: recompute sélectif côté norm et activation
Priority: chevauchement de communication et nettoyage du chemin router

Qwen3 235B sur GB200

Dispatcher: HybridEP
TP=1 ou 2  EP=32 à 64  PP=4
CUDA Graph: attn + moe_router + moe_preprocess
Recompute: moe_act, mlp, ou norm selon la pression mémoire
Priority: équilibrer le débit par rapport à l'espace mémoire disponible

Qwen3-Next 80B sur GB200

Dispatcher: HybridEP
TP=1  EP=32  PP=2  VPP autour de 4
CUDA Graph: attn + moe_router + moe_preprocess
Priority: disposition du pipeline et qualité GEMM groupé

Motifs Transversaux

Disposition PP

  • E = embedding
  • t = transformer
  • m = MTP
  • L = loss
  • | = limite de stage

La plus grande différence entre plateformes n'est généralement pas seulement le dispatcher. C'est la combinaison du dispatcher, de la forme PP et du fait que VPP garde chaque stage équilibré.

Stratégie de recompute

Pression mémoire Point de départ
faible aucun ou un ensemble sélectif très étroit
modérée moe_act, mlp, norm, ou modules sélectifs similaires
élevée up-projection spécifique au modèle plus modules MoE et MLP sélectifs
extrême ou long-context recompute complet seulement si le chemin sélectif ne rentre toujours pas

Variables d'environnement

CUDA_DEVICE_MAX_CONNECTIONS=1
CUDA_DEVICE_MAX_CONNECTIONS=32   # courant quand le chevauchement EP et les graphes CUDA sont combinés
PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
NCCL_GRAPH_REGISTER=0

Ajustage côté CPU

Sur GB200 et GB300, l'affinité CPU et le nettoyage général de la surcharge hôte peuvent faire bouger l'aiguille presque autant qu'un changement de dispatcher. Traitez-les comme du travail d'ajustage de première classe, pas comme des ajouts de dernière minute.

Pièges

  1. Ne pas copier aveuglément une ligne du tracker : la config gagnante dépend généralement du mode de routing, du conteneur et de la disposition PP autant que du nom du matériel.

  2. La qualité du conteneur compte : de grandes régressions peuvent provenir de la pile logicielle plutôt que de la recette du modèle.

  3. VPP doit être intentionnel : une mauvaise division VPP peut annuler le gain d'un meilleur dispatcher.

  4. Comparer le débit absolu, pas seulement la MFU : la MFU peut induire en erreur lors du passage entre BF16, FP8 et d'autres modes de précision.

  5. Le routing force-balance est plus sûr pour les benchmarks de référence : maintenez le mode de routing fixe lors de la comparaison de matériel ou de piles de dispatcher.

Skills similaires