Model support matrix

July 15, 2026 · View on GitHub

This document summarizes which model families Primus targets per backend and lists representative checked-in model presets and example experiment YAML under the repository. It distinguishes curated examples from theoretical support (a preset or upstream stack may exist without a matching examples/ entry). Use the filesystem under primus/configs/models/ and examples/*/configs/ as the authoritative live inventory.

For how to add presets, see Adding model configurations. Backend parameter references: Megatron, TorchTitan, MaxText, Megatron Bridge.


Overview: Supported model families (high level)

The following aligns with the backend overview and the configs present in this tree.

BackendModel families (documentation / stack scope)
Megatron-LMLLaMA2 / LLaMA3 / LLaMA3.1 / LLaMA3.3 / LLaMA4 (sizes from small to 405B+), DeepSeek-V2 (including lite) and DeepSeek-V3, Mixtral MoE and large MoE recipe YAML, Qwen2.5 and Qwen3 (dense and MoE), Grok, GPT-OSS (20B / 120B), GLM, Kimi K2, LFM2, MiniMax, Zebra LLaMA, Mamba, and generic language_model.yaml bases.
TorchTitanLLaMA3 family (including 3.1), LLaMA4 examples, DeepSeek-V3 examples, and Qwen3 examples including 0.6B, 1.7B, 4B, 8B, 14B, and 32B variants where present. Additional presets exist under primus/configs/models/torchtitan/ without being exhaustively listed here.
MaxText (JAX)LLaMA2 / LLaMA3 / LLaMA3.3, DeepSeek-V2 16B, Mixtral-8x7B, Grok1, Qwen3 14B / 30B-A3B (per presets and examples). Broader coverage may exist in upstream MaxText; see MaxText.
Megatron BridgeQwen3 pretraining and post-training examples, plus post-training examples for Zebra LLaMA and Mamba where present. LLaMA 3.1 70B Bridge examples appear under MI355X.
HummingbirdXTRegistered backend with a post-training trainer and one checked-in example; user-facing support level still needs maintainer confirmation.

Interpretation: “Supported” in upstream code can exceed what this repository ships as YAML. Rows below reference representative files that exist under primus/configs/models/ and examples/; they should not be treated as a complete generated inventory.


Megatron model configs

Model presets live in primus/configs/models/megatron/. Example experiments that reference those presets appear under examples/megatron/configs/MI300X/, MI325X/, and MI355X/.

For TorchTitan, the MI300X, MI325X, and MI355X example directories carry the same model set (21 configs each). For Megatron, MI300X and MI325X are nearly identical except that MI325X omits qwen3_5_35B_A3B (BF16 and FP8)—so MI300X has 70 example configs while MI325X has 68—and MI355X is a superset (99 configs; it adds models such as glm5, gpt_oss_120B, kimi_k2, lfm2_8B_A1B, and minimax_m2.5). Each row's SKU list below reflects exactly which SKUs ship a curated example (see, for example, qwen3_5_35B_A3B, which is MI300X/MI355X only).

Model name (file)Preset pathRoleExample experiment dirsPrecision in examples
deepseek_v2.yamlprimus/configs/models/megatron/deepseek_v2.yamlDense model presetMI300X, MI325X, MI355XBF16, FP8
deepseek_v2_base.yamlprimus/configs/models/megatron/deepseek_v2_base.yamlBase fragment (extends only)
deepseek_v2_lite.yamlprimus/configs/models/megatron/deepseek_v2_lite.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
deepseek_v3.yamlprimus/configs/models/megatron/deepseek_v3.yamlMoE model presetMI300X, MI325X, MI355XBF16, FP8
deepseek_v3_base.yamlprimus/configs/models/megatron/deepseek_v3_base.yamlBase fragment
glm4_7.yamlprimus/configs/models/megatron/glm4_7.yamlModel presetNo curated example in this repo
glm5.yamlprimus/configs/models/megatron/glm5.yamlModel presetMI355XBF16, FP8
gpt_oss_20B.yamlprimus/configs/models/megatron/gpt_oss_20B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
gpt_oss_120B.yamlprimus/configs/models/megatron/gpt_oss_120B.yamlModel presetMI355XBF16, FP8
grok1.yamlprimus/configs/models/megatron/grok1.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
grok2.yamlprimus/configs/models/megatron/grok2.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
grok_base.yamlprimus/configs/models/megatron/grok_base.yamlBase fragment
hybrid_model_base.yamlprimus/configs/models/megatron/hybrid_model_base.yamlBase fragment
kimi_k2.yamlprimus/configs/models/megatron/kimi_k2.yamlMoE model presetMI355XBF16, FP8
language_model.yamlprimus/configs/models/megatron/language_model.yamlGeneric Megatron LM defaultsUsed via extends
lfm2_8B_A1B.yamlprimus/configs/models/megatron/lfm2_8B_A1B.yamlMoE model presetMI355XBF16, FP8
lfm_base.yamlprimus/configs/models/megatron/lfm_base.yamlBase fragment
llama2_7B.yamlprimus/configs/models/megatron/llama2_7B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama2_13B.yamlprimus/configs/models/megatron/llama2_13B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama2_70B.yamlprimus/configs/models/megatron/llama2_70B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama2_base.yamlprimus/configs/models/megatron/llama2_base.yamlBase fragment
llama_base.yamlprimus/configs/models/megatron/llama_base.yamlBase fragment
llama3_8B.yamlprimus/configs/models/megatron/llama3_8B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama3_70B.yamlprimus/configs/models/megatron/llama3_70B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama3_base.yamlprimus/configs/models/megatron/llama3_base.yamlBase fragment
llama3.1_8B.yamlprimus/configs/models/megatron/llama3.1_8B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama3.1_70B.yamlprimus/configs/models/megatron/llama3.1_70B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama3.1_405B.yamlprimus/configs/models/megatron/llama3.1_405B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama3.2_1B.yamlprimus/configs/models/megatron/llama3.2_1B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama3.2_3B.yamlprimus/configs/models/megatron/llama3.2_3B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama3.3_70B.yamlprimus/configs/models/megatron/llama3.3_70B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
llama4_17B128E.yamlprimus/configs/models/megatron/llama4_17B128E.yamlMoE model presetMI300X, MI325X, MI355XBF16, FP8
llama4_17B16E.yamlprimus/configs/models/megatron/llama4_17B16E.yamlMoE model presetMI300X, MI325X, MI355XBF16, FP8
llama4_base.yamlprimus/configs/models/megatron/llama4_base.yamlBase fragment
mamba_370M.yamlprimus/configs/models/megatron/mamba_370M.yamlModel presetMI300X, MI325X, MI355XSet in experiment overrides
mamba_base.yamlprimus/configs/models/megatron/mamba_base.yamlBase fragment
minimax_m2.5.yamlprimus/configs/models/megatron/minimax_m2.5.yamlMoE model presetMI355XBF16, FP8
mixtral_8x7B_v0.1.yamlprimus/configs/models/megatron/mixtral_8x7B_v0.1.yamlMoE model presetMI300X, MI325X, MI355XBF16, FP8
mixtral_8x22B_v0.1.yamlprimus/configs/models/megatron/mixtral_8x22B_v0.1.yamlMoE model presetMI300X, MI325X, MI355XBF16, FP8
mixtral_base.yamlprimus/configs/models/megatron/mixtral_base.yamlBase fragment
moe_515B.yamlprimus/configs/models/megatron/moe_515B.yamlLarge MoE templateNo curated example in this repo
moe_1T.yamlprimus/configs/models/megatron/moe_1T.yamlLarge MoE templateNo curated example in this repo
moe_2T.yamlprimus/configs/models/megatron/moe_2T.yamlLarge MoE templateNo curated example in this repo
moe_4T.yamlprimus/configs/models/megatron/moe_4T.yamlLarge MoE templateNo curated example in this repo
moe_proxy_single_node.yamlprimus/configs/models/megatron/moe_proxy_single_node.yamlMoE proxy / test templateNo curated example in this repo
primus_megatron_model.yamlprimus/configs/models/megatron/primus_megatron_model.yamlPrimus Megatron root defaultsUsed via extends
qwen2.5_3B.yamlprimus/configs/models/megatron/qwen2.5_3B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen2.5_7B.yamlprimus/configs/models/megatron/qwen2.5_7B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen2.5_14B.yamlprimus/configs/models/megatron/qwen2.5_14B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen2.5_32B.yamlprimus/configs/models/megatron/qwen2.5_32B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen2.5_72B.yamlprimus/configs/models/megatron/qwen2.5_72B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen2.5_base.yamlprimus/configs/models/megatron/qwen2.5_base.yamlBase fragment
qwen3_4B.yamlprimus/configs/models/megatron/qwen3_4B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen3_8B.yamlprimus/configs/models/megatron/qwen3_8B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen3_14B.yamlprimus/configs/models/megatron/qwen3_14B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen3_32B.yamlprimus/configs/models/megatron/qwen3_32B.yamlModel presetMI300X, MI325X, MI355XBF16, FP8
qwen3_30B_A3B.yamlprimus/configs/models/megatron/qwen3_30B_A3B.yamlMoE model presetMI300X, MI325X, MI355XBF16, FP8
qwen3_5_35B_A3B.yamlprimus/configs/models/megatron/qwen3_5_35B_A3B.yamlMoE model presetMI300X, MI355XBF16, FP8
qwen3_235B_A22B.yamlprimus/configs/models/megatron/qwen3_235B_A22B.yamlMoE model presetMI300X, MI325X, MI355XBF16, FP8
zebra_llama_1B.yamlprimus/configs/models/megatron/zebra_llama_1B.yamlModel presetMI300X, MI325X, MI355XSet in experiment overrides
zebra_llama_3B.yamlprimus/configs/models/megatron/zebra_llama_3B.yamlModel presetMI300X, MI325X, MI355XSet in experiment overrides
zebra_llama_8B.yamlprimus/configs/models/megatron/zebra_llama_8B.yamlModel presetMI300X, MI325X, MI355XSet in experiment overrides

Parallelism: Tensor, pipeline, and expert parallel sizes are not fixed in model presets; they are set in experiment overrides (for example tensor_model_parallel_size, pipeline_model_parallel_size, expert_model_parallel_size). MoE presets such as qwen3_235B_A22B.yaml typically require non-default expert parallelism in real runs—see the matching experiment YAML.


TorchTitan model configs

Presets: primus/configs/models/torchtitan/. Examples: examples/torchtitan/configs/MI300X/, MI325X/, and MI355X/.

Model name (file)Preset pathExample experiment dirsPrecision in examples
deepseek_v3_16b.yamlprimus/configs/models/torchtitan/deepseek_v3_16b.yamlMI300X, MI325X, MI355XBF16
deepseek_v3_16b-fp8.yamlprimus/configs/models/torchtitan/deepseek_v3_16b-fp8.yamlMI300X, MI325X, MI355XFP8
deepseek_v3_236b.yamlprimus/configs/models/torchtitan/deepseek_v3_236b.yamlMI300X, MI325X, MI355XBF16
deepseek_v3_236b-fp8.yamlprimus/configs/models/torchtitan/deepseek_v3_236b-fp8.yamlMI300X, MI325X, MI355XFP8
deepseek_v3_671b.yamlprimus/configs/models/torchtitan/deepseek_v3_671b.yamlMI300X, MI325X, MI355X(see experiment)
deepseek_v3_671b-fp8.yamlprimus/configs/models/torchtitan/deepseek_v3_671b-fp8.yamlPreset only; stock examples use deepseek_v3_671b.yaml
llama3_8B.yamlprimus/configs/models/torchtitan/llama3_8B.yamlNo example in this repo
llama3_8B-fp8.yamlprimus/configs/models/torchtitan/llama3_8B-fp8.yamlNo example in this repo
llama3_70B.yamlprimus/configs/models/torchtitan/llama3_70B.yamlNo example in this repo
llama3_70B-fp8.yamlprimus/configs/models/torchtitan/llama3_70B-fp8.yamlNo example in this repo
llama3.1_8B.yamlprimus/configs/models/torchtitan/llama3.1_8B.yamlMI300X, MI325X, MI355XBF16
llama3.1_8B-fp8.yamlprimus/configs/models/torchtitan/llama3.1_8B-fp8.yamlMI300X, MI325X, MI355XFP8
llama3.1_70B.yamlprimus/configs/models/torchtitan/llama3.1_70B.yamlMI300X, MI325X, MI355XBF16
llama3.1_70B-fp8.yamlprimus/configs/models/torchtitan/llama3.1_70B-fp8.yamlMI300X, MI325X, MI355XFP8
llama3.1_405B.yamlprimus/configs/models/torchtitan/llama3.1_405B.yamlMI300X, MI325X, MI355XBF16
llama3.1_405B-fp8.yamlprimus/configs/models/torchtitan/llama3.1_405B-fp8.yamlMI300X, MI325X, MI355XFP8
llama3.2_1B.yamlprimus/configs/models/torchtitan/llama3.2_1B.yamlNo example in this repo
llama3.3_70B.yamlprimus/configs/models/torchtitan/llama3.3_70B.yamlNo example in this repo
llama3.3_70B-fp8.yamlprimus/configs/models/torchtitan/llama3.3_70B-fp8.yamlNo example in this repo
llama4_17Bx128E.yamlprimus/configs/models/torchtitan/llama4_17Bx128E.yamlMoE; MI300X, MI325X, MI355XBF16
llama4_17Bx128E-fp8.yamlprimus/configs/models/torchtitan/llama4_17Bx128E-fp8.yamlMoE; MI300X, MI325X, MI355XFP8
llama4_17Bx16E.yamlprimus/configs/models/torchtitan/llama4_17Bx16E.yamlMoE; MI300X, MI325X, MI355XBF16
llama4_17Bx16E-fp8.yamlprimus/configs/models/torchtitan/llama4_17Bx16E-fp8.yamlMoE; MI300X, MI325X, MI355XFP8
qwen3_0.6b.yamlprimus/configs/models/torchtitan/qwen3_0.6b.yamlMI300X, MI325X, MI355X(see experiment)
qwen3_1.7b.yamlprimus/configs/models/torchtitan/qwen3_1.7b.yamlMI300X, MI325X, MI355X(see experiment)
qwen3_4b.yamlprimus/configs/models/torchtitan/qwen3_4b.yamlMI300X, MI325X, MI355X(see experiment)
qwen3_8b.yamlprimus/configs/models/torchtitan/qwen3_8b.yamlMI300X, MI325X, MI355X(see experiment)
qwen3_14b.yamlprimus/configs/models/torchtitan/qwen3_14b.yamlMI300X, MI325X, MI355X(see experiment)
qwen3_32b.yamlprimus/configs/models/torchtitan/qwen3_32b.yamlMI300X, MI325X, MI355X(see experiment)

Parallelism: Controlled by TorchTitan launch configuration and Primus module overrides (see TorchTitan patch notes and TorchTitan parameters); not embedded in the small job / model preset alone.


MaxText model configs

Presets: primus/configs/models/maxtext/. Examples: examples/maxtext/configs/MI300X/ and examples/maxtext/configs/MI355X/.

Model name (file)Preset pathExample experiment dirs
deepseek_v2_16B.yamlprimus/configs/models/maxtext/deepseek_v2_16B.yamlMI300X, MI355X
grok1.yamlprimus/configs/models/maxtext/grok1.yamlMI300X
llama2_7B.yamlprimus/configs/models/maxtext/llama2_7B.yamlMI300X, MI355X
llama2_70B.yamlprimus/configs/models/maxtext/llama2_70B.yamlMI300X, MI355X
llama3_8B.yamlprimus/configs/models/maxtext/llama3_8B.yamlMI300X, MI355X
llama3_70B.yamlprimus/configs/models/maxtext/llama3_70B.yamlMI300X, MI355X
llama3.1_405B.yamlprimus/configs/models/maxtext/llama3.1_405B.yamlMI355X
llama3.3_70B.yamlprimus/configs/models/maxtext/llama3.3_70B.yamlMI300X, MI355X
mixtral_8x7B.yamlprimus/configs/models/maxtext/mixtral_8x7B.yamlMI300X, MI355X
qwen3_14B.yamlprimus/configs/models/maxtext/qwen3_14B.yamlMI300X, MI355X
qwen3_30B_A3B.yamlprimus/configs/models/maxtext/qwen3_30B_A3B.yamlMI300X, MI355X
model_base.yamlprimus/configs/models/maxtext/model_base.yamlExtended by other presets (not a standalone run)

Parallelism: JAX / MaxText sharding is configured in experiment overrides (for example ici_fsdp_parallelism, ici_data_parallelism, dcn_* in sample experiments). See MaxText parameters.


Megatron Bridge model configs

Presets: primus/configs/models/megatron_bridge/. Examples: examples/megatron_bridge/configs/MI300X/ and examples/megatron_bridge/configs/MI355X/.

Model name (file)Preset pathRecipe / flavor (from preset)Example experiment dirs
qwen3_8b.yamlprimus/configs/models/megatron_bridge/qwen3_8b.yamlqwen.qwen3 / qwen3_8b_finetune_configMI300X pretrain, MI355X posttrain
qwen3_32b.yamlprimus/configs/models/megatron_bridge/qwen3_32b.yamlqwen.qwen3 / qwen3_32b_finetune_configMI300X, MI355X
llama31_70b.yamlprimus/configs/models/megatron_bridge/llama31_70b.yamlllama.llama3 / llama31_70b_finetune_configMI355X
zebra_llama_1B.yaml, zebra_llama_3B.yaml, zebra_llama_8B.yamlprimus/configs/models/megatron_bridge/Zebra LLaMA presetsMI300X posttrain
mamba_370M.yamlprimus/configs/models/megatron_bridge/mamba_370M.yamlMamba presetMI300X posttrain

Example filenames include *_pretrain.yaml, *_sft_posttrain.yaml, and *_lora_posttrain.yaml; precision such as bf16_mixed is set in experiment overrides.


Hardware compatibility (example directories)

Curated example layouts under examples/ use GPU SKU subdirectories. As of this document:

GPU SKUexamples/megatron/configs/examples/torchtitan/configs/examples/maxtext/configs/examples/megatron_bridge/configs/
MI300XYesYesYesYes
MI355XYesYesYesYes
MI325XYesYesNoNo

Megatron and TorchTitan ship MI325X example directories in addition to MI300X and MI355X examples. MaxText includes MI300X and MI355X examples, including MI355X-only entries such as llama3.1_405B-pretrain.yaml. Megatron Bridge MI300X examples include Qwen3 8B and 32B pretraining plus Qwen3 32B, Zebra LLaMA, and Mamba post-training examples; LLaMA 3.1 70B Bridge examples appear under MI355X.

Absence of a SKU directory for a given backend does not imply the backend cannot run there; it means this tree does not currently provide a checked-in example path to copy from.


Model architecture reference (Megatron presets)

Values below come from primus/configs/models/megatron/ presets (merged through extends). Vocabulary size is usually defined by the tokenizer / Hugging Face config, not duplicated in every YAML; context is max_position_embeddings where set in the chain. Use this table as a quick reference for common sizes—not an exhaustive spec of every parameter.

Model familyExample presetHidden sizeLayersAttention headsKV heads (GQA)Max position (context)
LLaMA 2 7Bllama2_7B.yaml4096323232 (no GQA)From llama2_base / tokenizer
LLaMA 3 8Bllama3_8B.yaml4096323288192 (llama3_base)
LLaMA 3 70Bllama3_70B.yaml8192806488192
LLaMA 3.1 405Bllama3.1_405B.yaml1638412612888192
Qwen3 8Bqwen3_8B.yaml409636328131072 (qwen2.5_base chain)
Mixtral 8x7Bmixtral_8x7B_v0.1.yaml409632324096
DeepSeek-V3 (MoE)deepseek_v3.yaml716861128 (MLA)See preset / HF
Mamba 370Mmamba_370M.yaml(Mamba stack)

For MoE and hybrid architectures (LLaMA 4, Qwen3-MoE, large moe_*.yaml templates), refer to the full YAML and upstream model cards; headline dimensions alone do not capture expert layout or MLA.