N Neurarch Try it See it Changes Bot Pricing API Open app

Models / nemotron_h_puzzle

NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-NVFP4: GPU memory to fine-tune

Fine-tuning NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-NVFP4 at batch 1 and 2048 tokens takes about 8.52 TB of GPU memory for a full fine-tune (at least 70 x H200 sharded), and 893 GB with LoRA r=16 on a bf16 base (at least 8 x H200 sharded). Estimated from the model's structure, not measured. What fits on which card.

Reconstructed from its own config.json with no weights read. 156K downloads on Hugging Face.

Our count against the checkpoint

The left number comes from the graph. The right one is the number of scalars in the published weight files. Nothing on this page was tuned to make them agree.

Derived from structure
443B
443,337,265,152 parameters
In the published checkpoint
44.54B
44,539,891,200 scalars · safetensors.total, read 2026-07-07
Delta
+895%

quantized This checkpoint is stored quantized (modelopt). The tensor count in the file counts stored elements under a packing scheme, not logical parameters, so the two numbers below are not measuring the same thing in either direction.

What it costs to run

Cost is a roofline estimate on the priced GPU for 10 epochs at batch 32, 2048 tokens over 50,000 samples (assumed; no dataset attached).

Layers
87
Will it forward-pass
Yes
Priced on
A10G (24GB)
Est. one run
$1933.04

Memory: what fits on which card

Largest batch per card. Training is sized at 2048 tokens per sample, serving at 4096 tokens per sequence.

Full fine-tune, batch 1 at 2048 tokens
8.52 TB
LoRA r=16, batch 1 at 2048 tokens
893 GB
Serve: bf16 weights
887 GB
Serve: KV cache, 4096 tokens
50 MB
CardFull fine-tuneLoRA r=16Serve bf16, 4096 tokens
T4 16 GBdoes not fit at batch 1does not fit at batch 1does not fit at batch 1
L4 24 GBdoes not fit at batch 1does not fit at batch 1does not fit at batch 1
A100 40 GBdoes not fit at batch 1does not fit at batch 1does not fit at batch 1
A100 / H100 80 GBdoes not fit at batch 1does not fit at batch 1does not fit at batch 1
H200 141 GBdoes not fit at batch 1does not fit at batch 1does not fit at batch 1
Sharded, by memory aloneat least 70 x H200 or 123 x 80 GBat least 8 x H200 or 13 x 80 GBat least 8 x H200 or 13 x 80 GB

Training: 2048 tokens per sample (2048, or the model's context when shorter; the structure table is at the config's maximum, 262144), AdamW with bf16 autocast, SDPA attention (no score matrix stored), 1.15x headroom on every card. Full fine-tune holds weights, gradients and optimizer state (1.2 x 16 bytes per parameter) plus activations. LoRA is r=16 on every linear layer but the head, base frozen in bf16 (2 bytes per parameter), adapters at full AdamW state, same activations. A two-card split is a contiguous layer cut (pipeline parallel), computed only where one card cannot hold batch 1. "Sharded" is a floor: the batch-1 peak with headroom divided across cards as if it split perfectly evenly (FSDP / ZeRO-3 for training, tensor parallel for serving), with no communication buffers counted. Serving: bf16 weights plus the KV cache of 4096 tokens per sequence; prefill working set, CUDA context and framework reserve not counted.

These are estimates from the graph, not measurements. Against measured runs, held out by architecture, the estimate flagged 113 of the 131 jobs that did not fit their card and said "fits" on the other 18. Every measured run.

Structure

90 nodes. Output shapes are propagated from the input shape, batch dimension excluded, at 262144 tokens: the config's maximum context, not the 2048 the memory above is sized at.

LayerTypeOutput shape
1InputInput1 × 262144
2EmbeddingEmbedding1 × 262144 × 4096
3Positional_EmbeddingLearned Pos Embed1 × 262144 × 4096
4LayerNorm_1_1LayerNorm1 × 262144 × 4096
5Attention_1Grouped Query Attn1 × 262144 × 4096
6Add_1_attnAdd1 × 262144 × 4096
7LayerNorm_1_2LayerNorm1 × 262144 × 4096
8MoE_1Shared-Expert MoE1 × 262144 × 4096
9Add_1_ffnAdd1 × 262144 × 4096
10LayerNorm_2_1LayerNorm1 × 262144 × 4096
11Attention_2Grouped Query Attn1 × 262144 × 4096
12Add_2_attnAdd1 × 262144 × 4096
13LayerNorm_2_2LayerNorm1 × 262144 × 4096
14MoE_2Shared-Expert MoE1 × 262144 × 4096
15Add_2_ffnAdd1 × 262144 × 4096
16LayerNorm_3_1LayerNorm1 × 262144 × 4096
17Attention_3Grouped Query Attn1 × 262144 × 4096
18Add_3_attnAdd1 × 262144 × 4096
19LayerNorm_3_2LayerNorm1 × 262144 × 4096
20MoE_3Shared-Expert MoE1 × 262144 × 4096
21Add_3_ffnAdd1 × 262144 × 4096
22LayerNorm_4_1LayerNorm1 × 262144 × 4096
23Attention_4Grouped Query Attn1 × 262144 × 4096
24Add_4_attnAdd1 × 262144 × 4096
25LayerNorm_4_2LayerNorm1 × 262144 × 4096
26MoE_4Shared-Expert MoE1 × 262144 × 4096
27Add_4_ffnAdd1 × 262144 × 4096
28LayerNorm_5_1LayerNorm1 × 262144 × 4096
29Attention_5Grouped Query Attn1 × 262144 × 4096
30Add_5_attnAdd1 × 262144 × 4096
31LayerNorm_5_2LayerNorm1 × 262144 × 4096
32MoE_5Shared-Expert MoE1 × 262144 × 4096
33Add_5_ffnAdd1 × 262144 × 4096
34LayerNorm_6_1LayerNorm1 × 262144 × 4096
35Attention_6Grouped Query Attn1 × 262144 × 4096
36Add_6_attnAdd1 × 262144 × 4096
37LayerNorm_6_2LayerNorm1 × 262144 × 4096
38MoE_6Shared-Expert MoE1 × 262144 × 4096
39Add_6_ffnAdd1 × 262144 × 4096
40LayerNorm_7_1LayerNorm1 × 262144 × 4096
41Attention_7Grouped Query Attn1 × 262144 × 4096
42Add_7_attnAdd1 × 262144 × 4096
43LayerNorm_7_2LayerNorm1 × 262144 × 4096
44MoE_7Shared-Expert MoE1 × 262144 × 4096
45Add_7_ffnAdd1 × 262144 × 4096
46LayerNorm_8_1LayerNorm1 × 262144 × 4096
47Attention_8Grouped Query Attn1 × 262144 × 4096
48Add_8_attnAdd1 × 262144 × 4096
49LayerNorm_8_2LayerNorm1 × 262144 × 4096
50MoE_8Shared-Expert MoE1 × 262144 × 4096
51Add_8_ffnAdd1 × 262144 × 4096
52LayerNorm_9_1LayerNorm1 × 262144 × 4096
53Attention_9Grouped Query Attn1 × 262144 × 4096
54Add_9_attnAdd1 × 262144 × 4096
55LayerNorm_9_2LayerNorm1 × 262144 × 4096
56MoE_9Shared-Expert MoE1 × 262144 × 4096
57Add_9_ffnAdd1 × 262144 × 4096
58LayerNorm_10_1LayerNorm1 × 262144 × 4096
59Attention_10Grouped Query Attn1 × 262144 × 4096
60Add_10_attnAdd1 × 262144 × 4096
61LayerNorm_10_2LayerNorm1 × 262144 × 4096
62MoE_10Shared-Expert MoE1 × 262144 × 4096
63Add_10_ffnAdd1 × 262144 × 4096
64LayerNorm_11_1LayerNorm1 × 262144 × 4096
65Attention_11Grouped Query Attn1 × 262144 × 4096
66Add_11_attnAdd1 × 262144 × 4096
67LayerNorm_11_2LayerNorm1 × 262144 × 4096
68MoE_11Shared-Expert MoE1 × 262144 × 4096
69Add_11_ffnAdd1 × 262144 × 4096
70LayerNorm_12_1LayerNorm1 × 262144 × 4096
71Attention_12Grouped Query Attn1 × 262144 × 4096
72Add_12_attnAdd1 × 262144 × 4096
73LayerNorm_12_2LayerNorm1 × 262144 × 4096
74MoE_12Shared-Expert MoE1 × 262144 × 4096
75Add_12_ffnAdd1 × 262144 × 4096
76MTP_1_HiddenNormLayerNorm1 × 262144 × 4096
77MTP_1_EmbeddingNormLayerNorm1 × 262144 × 4096
78MTP_1_ConcatConcatenate1 × 262144 × 8192
79MTP_1_ProjectionLinear1 × 262144 × 4096
80LayerNorm_MTP_1_1LayerNorm1 × 262144 × 4096
81Attention_MTP_1Grouped Query Attn1 × 262144 × 4096
82Add_MTP_1_attnAdd1 × 262144 × 4096
83LayerNorm_MTP_1_2LayerNorm1 × 262144 × 4096
84MoE_MTP_1Shared-Expert MoE1 × 262144 × 4096
85Add_MTP_1_ffnAdd1 × 262144 × 4096
86MTP_1_NormLayerNorm1 × 262144 × 4096
87Final_LayerNormLayerNorm1 × 262144 × 4096
88LM_HeadLinear1 × 262144 × 131072
89OutputOutput1 × 262144 × 131072
90MTP_1_OutputOutput1 × 262144 × 4096

What the verifier says

infoAt 13 stacked attention layers, residual-branch outputs add up; unscaled init lets activation variance grow with depth. GPT-2/LLaMA-family models scale the residual projections by depth (N(0, 0.02 / √(2L))). Fix: Scale residual output projections by depth: nn.init.normal_(w, std=0.02 / math.sqrt(2 * n_layers))
deep-attention-default-init

What changed upstream

The change tracker follows nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-NVFP4: every revision it has read, what changed in the config, tokenizer, chat template or weights between them, and an OSV advisory per change.

Do this to your own model

Same numbers, on a model in your repo, in one command. No account.

pip install neurarch-trace
neurarch-trace nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-NVFP4 --plan --share