@SuJinYan123: NV72: Each tray has 4 GPUs, each tray is equipped with 2 NVIDIA Grace (ARM Neoverse V2, 72 cores, total 144 cores, 3.39 GHz), single CPU ~480 GB LPDDR5X, so 4 GPUs...

X AI KOLs Timeline News

Summary

The article provides a detailed analysis of the tray design in the NV72 architecture, where every 4 GPUs are paired with 2 Grace CPUs. It discusses optimizing inference performance under coding workloads using parallel strategies such as EP64 and TP8, as well as the complexity of KV cache management and routing algorithms.

NV72: Each tray has 4 GPUs, each tray is equipped with 2 NVIDIA Grace (ARM Neoverse V2, 72 cores, total 144 cores, 3.39 GHz), single CPU ~480 GB LPDDR5X, so 4 GPUs get ~956 GB CPU memory (~239 GB/GPU). Each tray has 4 CX8 network cards, PCIe 6.0 (128 GB/s). So a common concern about traffic conflict between p/d (prefill/decode) and EP all-to-all can be fully resolved by routing P/D traffic over RDMA and EP traffic over NVLink. For NV72, but for example GLM5.2 has 256 experts, which is not divisible. Forcing 72 can use something like redundant experts for EPLB, adding some complexity. On the other hand, should prefill and decode be colocated? If colocated, how to handle very long prefill? Can NV72 communicate with another NV72? (Seems complicated). If colocated, something like green ctx can resolve some conflicts, but performance degrades when prefill is long. Another approach is to separate attention and FFN, which is also complicated, so we won't consider it for now. EP64 is just right in form factor; the remaining 8 cards can be used as something like TP8 to handle long prefill, while the remaining short prefill and decode run together. We need a specific quantitative number, assuming we serve coding traffic. https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces… Let's look at real coding traces from vllm's open-source codex running on swebench-pro, Assuming infinite KV cache, among requests that need prefill, 50% require prefill < 357 tokens, 72% require prefill < 2048 tokens, average context length is 63K. Coding agents are workloads with heavy KV cache hits (requiring excellent KV cache system support). Even if we use a 2K threshold and run 72% of requests together with decode, the remaining 28% are long prefill, supported only by TP8 (or other methods may not be sufficient). We can only hope they don't arrive all at once (this requires real traffic traces). For GLM5.2, let's look at KV cache capacity. After DP64 and EP64, a single B300 has close to 230GB of GPU KV cache memory. According to previous estimates, each GPU actually has only about the same CPU KV cache size, meaning that if the CPU uses a write-through strategy, it can barely bring any performance improvement. The B300 GPU memory is just too large. Assuming average context = 256K, FP8 KV cache, the GPU memory can hold 17 requests. If we want to do sparse batch sizing, then the CPU memory seems a bit small. So we must think about the significance of using CPU memory as KV cache, but that can be deferred. So the traffic might end up like this: for cold-start prefill, it will be routed to a prefill worker (supported by 8 cards), and P/D separation with the remaining 64 cards. Short prefill will be routed to the 64 cards. Here we need to select a DP worker (whether to enable TP on this DP worker is also a question; we need a sweet spot). The routing algorithm here will be quite complex, considering two aspects: one is decode balance, the other is prefill hot spots (who has the KV cache). On the other hand, if the 64 GPUs' KV cache is P2P, or the entire 64 can be logically seen as a single KV cache pool, then scheduling doesn't need to be cache-aware, leaning more towards decode balance. So we need a GPU P2P KV cache based on NVLink, which might complicate things. Short-term goal can utilize CPU P2P (already supported by Pegaflow), including prefill worker to normal worker (64 cards), also using Pegaflow P2P. The remaining part is the engine architecture on both sides: Prefill worker: TP8? TP8 + EP8? We need to answer which parallel strategy provides extreme throughput under long context. Normal worker: EP64, but whether the attention part is pure DP? If TP is enabled, it would cut heads (cutting by 64 is not friendly), but there are other ways to solve. How to write MoE all-to-all? It seems NVIDIA has written it, but not tested yet. Some scheduling, DP collaboration, MTP handling etc., are still quite complex. After building this, 72 cards should provide very amazing performance. To be continued.
Original Article
View Cached Full Text

Cached at: 07/12/26, 04:59 PM

NV72: 1 tray per 4 GPUs, each tray with 2 NVIDIA Grace (ARM Neoverse V2, 72 cores, 144 cores total, 3.39 GHz), single CPU ~480 GB LPDDR5X, which means 4 GPUs get ~956 GB CPU memory (~239 GB/GPU). NIC: 4 CX8 per tray, PCIe 6.0 (128 GB/s).

So a commonly mentioned issue, the conflict between p/d traffic and ep all-to-all traffic, can be completely resolved by having P/D go through RDMA and ep go through NVLink.

NV72, but for example, GLM5.2 has 256 experts, which doesn’t divide evenly. Forcing it onto 72 can use something like redundant experts for EPLB, which adds some system complexity. On the other hand, whether to put prefill and decode together; if together, how to handle very long prefills, and can an NV72 communicate with another NV72? (Seems complex.) If together, something like green ctx can resolve some conflicts but performance suffers with long prefills.

Another idea is to separate attn from ffn, which is also complex and not considered for now.

EP64 fits well morphologically; the remaining 8 cards can handle long prefill with something like TP8, while short prefills and decode run together. We need a specific quantified number, assuming we serve coding traffic.

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces…

Take a real coding trace from vLLM’s open-source codex running on SweBench-Pro.

Assume KV cache is infinite; among requests needing prefill, 50% need prefill < 357 tokens, 72% need prefill < 2048 tokens, average ctx length is 63K. Coding agents are heavy KV cache hit workloads (require excellent KV cache system support).

Even if we set a 2K threshold and run 72% of requests with decode, leaving 28% as long prefills handled only by TP8 (or other methods might not be sufficient), we can only hope they don’t arrive all at once (this requires real traffic traces).

For GLM5.2, look at KV cache capacity again. After DP64 EP64, a single B300 has nearly 230GB of GPU KV cache memory. According to previous estimates, each GPU also has roughly the same CPU KV cache size, meaning if CPU uses a write-through strategy, it brings almost no performance improvement. B300 memory is just too large.

Assume average ctx=256k, fp8 KV cache, memory can hold 17 requests. If we want to do sparse to increase BS, CPU seems a bit small.

So we must think about the significance of using CPU memory for KV cache, though this can be addressed later.

So the traffic might end up like this: for cold-start prefills, they route to prefill workers (supported by 8 cards), and the remaining 64 cards do P/D separation. Short prefills route to the 64 cards, where we need to select a DP worker (whether this DP worker uses TP is also a question; we need a sweet spot). The routing algorithm here will be complex, needing to consider two aspects: decode balance and prefill hot spots (who has the KV cache).

On the other hand, if the 64 GPU KV caches are P2P, or the entire 64 can be logically seen as one KV cache pool, then scheduling doesn’t need to be cache-aware, leaning more towards decode balance.

So we need a GPU P2P KV cache based on NVLink, which might complicate things. Short-term goal can leverage CPU P2P (PegaFlow already supports it), including prefill worker to normal worker (64 cards), also via PegaFlow P2P.

The remaining part is the engine form on both sides. Prefill worker: TP8? TP8 + EP8? The question is what parallelism strategy provides maximum throughput under long context. Normal worker: EP64, but for the attention part, is it pure DP? If using TP, we need to split heads (64-way split is not friendly), though there are other ways to solve it. How to write MoE all-to-all? NV might have written it, but not tested yet. Some scheduling, DP coordination, MTP handling—pretty complex.

After building this, the 72 cards should provide very impressive performance.

To be continued.


Inferact/codex_swebenchpro_traces · Datasets at Hugging Face

Source: https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces This is a dataset generated by real swebenchpro agentic workload trace + codex agent.


https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#1-eval-result-summary1. Eval Result Summary

MetricValue
Total trials731
Successful trials610
Failed trials120
No data (skipped)1
Passed329
Pass rate (of successful)53.9%

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#per-repo-breakdownPer-Repo Breakdown

RepoTotalSuccessFailedPassedPass%
ansible/ansible969336065%
internetarchive/openli918835259%
flipt-io/flipt858232632%
qutebrowser/qutebrowse797815672%
gravitational/teleport7640361230%
protonmail/webclients6506500%
future-architect/vuls625653155%
navidrome/navidrome575522545%
element-hq/element-web565422444%
nodebb/nodebb444031770%
tutao/tutanota202001260%

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#2-per-trial-statistics2. Per-Trial Statistics

Based on successful trials only.

MetricMeanP50P90P99
LLM calls per trial33305790
Total input tokens2,266,0551,637,0004,750,6919,030,908
Total cached tokens2,133,6871,525,3764,580,2248,781,952
Total computed tokens132,368116,991230,677512,315
Total output tokens17,23915,66629,96840,542
Starting context (1st call)12,36712,27812,81313,744
Ending context (last call)84,48280,488130,165180,943
Max context length84,51380,488130,165180,943
Context growth per turn2,2428805,96415,930

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#3-per-llm-call-statistics3. Per-LLM-Call Statistics

20,230 total LLM calls across 610 successful trials.

MetricMeanP50P90P99
Input tokens68,32963,917114,888166,322
Cached tokens64,33860,928112,512162,048
Computed (uncached) tokens3,9917588,73653,323
Output tokens5202461,1334,845

Context length per trial:

MetricMeanP50P90P99
Starting context (1st call)12,36712,27812,81313,744
Ending context (last call)84,48280,488130,165180,943
Max context84,51380,488130,165180,943

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#4-caching-analysis4. Caching Analysis

Overall cache hit rate: 94.2% (1,301.5M of 1,382.3M input tokens served from cache)

Only 80.7M tokens (5.8%) of all input required actual KV compute; the rest were cache hits.

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#41-intra-trial-cache-turn-by-turn4.1 Intra-Trial Cache (Turn-by-Turn)

TurnAvg Cache RateMedianN Trials
187.4%93.6%610
265.5%66.2%610
376.2%77.8%610
485.3%87.2%610
589.5%91.5%610
692.7%95.2%610
794.2%96.3%609
892.4%97.3%607
971.3%95.1%604
1084.6%96.2%598
1189.2%97.2%588
1293.7%98.1%576
1394.2%98.5%566
1494.5%98.8%557
1595.2%99.0%540
1694.9%99.3%524
1795.6%99.3%503
1896.3%99.4%489
1995.8%99.4%477
2095.7%99.4%461
2596.1%99.5%388
3096.4%99.5%310
3596.3%99.5%241
4098.1%99.6%183
4596.5%99.7%133
5097.8%99.6%93
5594.6%99.7%74
6094.9%99.7%52
6598.4%99.8%33
7098.4%99.7%31
7598.2%99.7%22
8099.3%99.8%15
8598.1%99.7%10

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#42-cross-trial-cache-1st-call-analysis4.2 Cross-Trial Cache (1st-Call Analysis)

The 1st LLM call of each trial can only have cache hits from other concurrent trials sharing the same system prompt prefix.

MetricValue
Total trials610
Trials WITH 1st-call cache hit572 (93.8%)
Trials WITHOUT 1st-call cache hit38 (6.2%)

Among trials with 1st-call cache hit:

MetricValue
Mean cache rate93.2%
Median cache rate93.8%

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#prefix-group-analysisPrefix Group Analysis

Cached Tokens# TrialsNotes
11,520568Main shared prefix
038Cache miss on 1st call
12,0322Variant
12,6721Variant
12,1601Variant

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#5-turn-timing–inter-call-delays5. Turn Timing & Inter-Call Delays

Time between consecutive LLM calls within a trial. Includes model response time + tool execution + agent processing.

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#per-trial-duration-first-to-last-llm-callPer-Trial Duration (first to last LLM call)

MetricMeanP50P90P99
Trial duration (seconds)336.8273.7637.81160.5
Avg inter-call delay per trial (s)10.29.714.522.8

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#inter-call-delay-distributionInter-Call Delay Distribution

MetricMeanP50P90P99
Inter-call delay (seconds)10.55.223.081.4

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#delay-by-turn-numberDelay by Turn Number

TurnAvg Delay (s)Median (s)N Trials
24.84.6610
35.74.6610
46.64.6610
58.74.9610
610.04.9610
711.44.9609
811.34.5607
913.05.3604
1010.95.0598
1113.05.3588
1211.55.0576
1311.75.4566
1411.85.2557
1511.15.0540
1612.25.2524
1712.35.0503
1811.35.0489
1910.75.4477
2011.15.4461
2511.04.6388
3010.35.1310
3511.16.0241
4014.16.4183
4512.46.3133
509.95.993
5511.05.674
6013.09.552
659.04.733
708.36.531
7511.55.022
8012.77.215
8510.57.310

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#6-workload-characteristics6. Workload Characteristics

  • 131:1 input:output ratio — massively prefill-dominated
  • Context grows ~2,242 tokens/turn on average
  • Cache:New-input ratio = 16.1:1 — for every 1 token of new compute, 16.1 tokens are served from cache
  • 20,230 total LLM calls across 610 trials, avg 33 sequential calls per trial
  • Avg output per call: 520 tokens (median 246)

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#compute-distribution-heavy-tailCompute Distribution (Heavy-Tail)

Uncached prefill compute is concentrated in a small fraction of calls:

Top % of Calls# Calls% of Uncached Compute
1%20220.5%
5%1,01149.6%
10%2,02364.2%
20%4,04680.0%

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#context-growth-by-phaseContext Growth by Phase

PhaseTurnsAvg Growth/Turn
Exploration (turns 2-5)2-5~6,166
Active coding (turns 6-12)6-12~2,535
Iteration (turns 13+)13-100~1,410

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#9-failed-trials-analysis9. Failed Trials Analysis

120 total failures out of 731 trials.

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#by-root-causeBy Root Cause

Root Cause# TrialsRepos Affected
Package not found108protonmail/webclients (65), gravitational/teleport (35), future-architect/vuls (5), element-hq/element-web (1), flipt-io/flipt (1), navidrome/navidrome (1)
Setup timeout7ansible/ansible (2), internetarchive/openli (2), element-hq/element-web (1), flipt-io/flipt (1), gravitational/teleport (1)
NonZeroAgentExitCodeError: Command failed (exit 1): set -euo pipefail; if ldd –version 2>&1grep -qi mus3
DownloadVerifierDirError: Failed to download verifier directory from environment2ansible/ansible (1), qutebrowser/qutebrowse (1)

https://huggingface.co/datasets/Inferact/codex_swebenchpro_traces#by-repoBy Repo

RepoErrorsTotal TrialsFailure Rate
protonmail/webclients6565100%
gravitational/teleport367647%
future-architect/vuls5628%
ansible/ansible3963%
flipt-io/flipt3854%
internetarchive/openli3913%
element-hq/element-web2564%
navidrome/navidrome2574%
qutebrowser/qutebrowse1791%

Downloads last month | 1,197

Similar Articles

@YRSM_Simon: Jensen's precision cuts so sharp it makes your teeth itch. NVIDIA promotes DGX Station: 748GB unified memory. Sounds like it crushes everything—4× RTX PRO 6000's 384GB? Not enough. But look closer—748GB = 252GB HBM3e + 496GB …

X AI KOLs Following

Reveals that the 748GB unified memory advertised for the NVIDIA DGX Station actually only has 252GB of high-speed HBM available. The remaining 496GB of slow LPDDR5X is essentially useless for large model inference, reflecting NVIDIA's precise product differentiation strategy.

@LinQingV: When exploring LLM inference chip architectures previously, I reviewed the architectures of the four major AI inference ASIC companies: Groq, SambaNova, Tenstorrent, and Cerebras. While the first three have different emphases, their underlying logic falls within the same framework: large on-chip SRAM + dataflow architecture + deterministic scheduling...

X AI KOLs Timeline

The article analyzes the AI inference ASIC architectures of Groq, SambaNova, Tenstorrent, and Cerebras, highlighting Cerebras's unique wafer-scale engine design. It discusses the benefits of deterministic latency and high bandwidth for LLM inference, while noting challenges like yield, cost, and KV cache bottlenecks.