Skip to content
Back to skills

017 Reference 79699501

ASecurity

Complete reference for all configuration options in Megatron Memory Estimator.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 11, 2026
code-qualityperformance

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 017-reference_79699501 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 017 Reference 79699501?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 017 Reference 79699501
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-017-reference-79699501/badge)](https://www.skillsdirectory.com/skills/tools-only-017-reference-79699501)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Configuration Guide

Complete reference for all configuration options in Megatron Memory Estimator.

## Model Section

### Architecture Parameters

**num_layers** (required)
- Number of transformer layers
- Example: 32 for most 7B models, 80+ for larger models
- Impact: Linear effect on parameters and memory

**hidden_size** (required)
- Hidden dimension size
- Common values: 2048, 4096, 5120, 8192
- Must be divisible by num_attention_heads
- Impact: Quadratic effect on parameters

**num_attention_heads** (required)
- Number of attention heads
- Common values: 32, 40, 64
- Must divide hidden_size evenly
- Impact: Affects attention computation memory

**num_query_groups** (optional, default: num_attention_heads)
- Number of query groups for Grouped Query Attention (GQA)
- Set to < num_attention_heads for GQA
- Example: num_attention_heads=32, num_query_groups=8 for Mixtral
- Impact: Reduces KV cache size

**ffn_hidden_size** (required)
- Feed-forward network intermediate dimension
- Common formula: 4 × hidden_size or (8/3) × hidden_size for MoE
- Example: 11008 for LLaMA, 14336 for Mixtral
- Impact: Major contributor to parameter count

### MoE Parameters

**num_experts** (optional, default: null)
- Number of experts in MoE layer
- Set to null for dense models
- Common values: 8 (Mixtral), 64 (DeepSeek-V3), 128+
- Must be divisible by expert_model_parallel_size

**moe_router_topk** (optional, default: 2)
- Number of experts activated per token
- Common values: 2 (Mixtral), 6 (DeepSeek-V3)
- Higher values = more computation but potentially better quality

**moe_ffn_hidden_size** (optional, default: ffn_hidden_size)
- FFN dimension for each expert
- Usually same as ffn_hidden_size
- Can be different for specialized architectures

**moe_shared_expert_intermediate_size** (optional, default: null)
- Enable shared experts (always activated)
- Example: 5632 for DeepSeek-V3
- Null = no shared experts

### Vocabulary Parameters

**vocab_size** (required)
- Vocabulary size
- Common values: 32000 (LLaMA), 128256 (Llama 3)
- Rounded to multiples of 128 or 256 for efficiency

**max_position_embeddings** (required)
- Maximum sequence length support
- Common values: 2048, 4096, 8192, 32768
- Must be >= seq_length used in training

### Other Model Parameters

**normalization** (optional, default: "RMSNorm")
- Layer normalization type
- Options: "RMSNorm", "LayerNorm"
- RMSNorm is more efficient

**layernorm_epsilon** (optional, default: 1e-5)
- Epsilon for numerical stability
- Common values: 1e-5, 1e-6

**activation_func** (optional, default: "swiglu")
- Activation function
- Options: "swiglu", "gelu"
- SwiGLU requires gated_linear_unit: true

**gated_linear_unit** (optional, default: true)
- Use gated activation (SwiGLU, GeGLU)
- Set to true for modern architectures

**qk_layernorm** (optional, default: false)
- Apply layernorm to queries and keys
- Used in some architectures for stability

**multi_latent_attention** (optional, default: false)
- Enable Multi-Latent Attention (MLA)
- Advanced feature, rarely used

## Parallelism Section

### Tensor Parallelism (TP)

**tensor_model_parallel_size** (required)
- Split weights across TP GPUs
- Common values: 1, 2, 4, 8
- Best for: Large hidden dimensions
- Trade-off: More communication, better memory distribution

### Pipeline Parallelism (PP)

**pipeline_model_parallel_size** (required)
- Split layers across PP stages
- Common values: 1, 2, 4, 8, 16, 32
- Best for: Deep models with many layers
- Trade-off: Pipeline bubbles, lower GPU utilization
- Tip: With high gradient accumulation steps, larger PP can better hide pipeline bubbles

**Uneven Layer Distribution** (optional)

Use these parameters when `num_layers` is not evenly divisible by PP:

- **num_layers_in_first_pipeline_stage**: Specify layers in the first stage (useful when embedding layers need extra memory headroom)
- **num_layers_in_last_pipeline_stage**: Specify layers in the last stage

Example: 61 layers with PP=4
- Option A: First stage gets 16, others get 15 (set first=16)
- Option B: Last stage gets 16, others get 15 (set last=16)
- Tip: Place extra layers in the last stage. **Reason**: Stage 1 faces the highest dynamic memory pressure due to activation lifespan. It must hold the first micro-batch's activations until the backward pass signal returns from the last stage (waiting for the full pipeline cycle). **Exception**: If first layers are dense (like DeepSeek-V3), their lower static parameter memory may allow for extra layers.

### Expert Parallelism (EP)

**expert_model_parallel_size** (optional, default: 1)
- Split experts across EP GPUs (MoE only)
- Common values: 2, 4, 8, 16
- num_experts must be divisible by this value
- Best for: Models with many experts

**expert_tensor_parallel_size** (optional, default: 1)
- Apply TP within each expert
- Usually 1, only use for very large experts
- Adds communication overhead

### Context Parallelism (CP)

**context_parallel_size** (optional, default: 1)
- Split sequence dimension across CP GPUs
- Common values: 1, 2, 4
- Requires sequence_parallel: true
- Best for: Long sequences

### Virtual Pipeline Parallelism

**virtual_pipeline_model_parallel_size** (optional, default: null)
- Interleaved pipeline schedule
- Reduces pipeline bubbles
- Example: PP=4, VP=2 means 8 model chunks
- Advanced feature, use with caution

### Parallelism Constraints

**Critical constraint:**

For **Attention** part:
```
world_size = pp × tp × cp × dp
```

For **MoE** part:
```
world_size = pp × ep × etp × edp
```

where `etp` and `edp` are the tensor parallel and data parallel sizes for experts (called `expert_tensor_parallel_size` and computed automatically, respectively).

**Example calculation (Attention):**
- world_size = 64
- pp = 2, tp = 4, cp = 1
- dp = 64 / (2 × 4 × 1) = 8

**Example calculation (MoE):**
- world_size = 64
- pp = 2, ep = 4, etp = 1
- edp = 64 / (2 × 4 × 1) = 8

## Training Section

### Batch Configuration

**micro_batch_size** (required)
- Batch size per GPU per forward pass
- Common values: 1, 2, 4
- Lower = less memory, slower training
- Higher = more memory, faster training

**seq_length** (required)
- Sequence length for training
- Must be <= max_position_embeddings
- Common values: 2048, 4096, 8192
- Impact: Quadratic memory growth (attention)

### Optimizer Configuration

**use_distributed_optimizer** (optional, default: true)
- Shard optimizer states across data parallel ranks
- Highly recommended: reduces memory by ~6 bytes/param
- Minimal performance impact

**sequence_parallel** (optional, default: false)
- Shard activations along sequence dimension
- Requires tensor_model_parallel_size > 1
- Reduces activation memory by factor of TP

### Activation Recomputation

**recompute_granularity** (optional, default: null)
- Enable activation checkpointing
- Options:
  - null: No recomputation (highest memory)
  - "full": Recompute entire layers (significant memory savings)
  - "selective": Recompute specific modules (balanced)

**recompute_method** (optional, default: null)
- How to select layers for recomputation
- Options:
  - "uniform": Recompute every N layers
  - "block": Recompute first/last N layers
- Only used with recompute_granularity: "full"

**recompute_num_layers** (optional, default: 0)
- Number of layers to NOT recompute
- With "block": keep first N layers in memory
- With "uniform": recompute every N layers

### Infrastructure

**world_size** (required)
- Total number of GPUs
- Must satisfy parallelism constraint
- Example: 8, 16, 32, 64, 128

## Precision Section

**params_dtype** (optional, default: "bf16")
- Parameter data type
- Options: "bf16", "fp16"
- BF16 recommended for modern hardware (better numerical stability)

**fp8** (optional, default: false)
- Enable FP8 computation
- Requires H100 or newer
- Experimental feature

## Memory Impact Summary

**High impact (quadratic or higher):**
- seq_length (quadratic for attention)
- hidden_size (quadratic for weights)
- num_layers (linear but large coefficient)

**Medium impact:**
- micro_batch_size (linear on activation)
- ffn_hidden_size (linear on weights)
- num_experts (linear, but offset by EP)

**Low impact:**
- vocab_size (only affects embedding layer)
- num_attention_heads (minor effect with GQA)

## Memory Optimization Priority

1. **Enable use_distributed_optimizer** (free 6 bytes/param)
2. **Enable recompute_granularity: "full"** (50-70% activation memory reduction)
3. **Enable sequence_parallel** (reduce activation by factor of TP)
4. **Increase EP** for MoE models (linear memory reduction)
5. **Increase PP** (splits model across more GPUs)
6. **Reduce micro_batch_size** (last resort, hurts throughput)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.