Reference-faithful NVIDIA DGX SuperPOD designs as code: YAML spec to NetBox model, draw.io, BOM, cable map, IP plan, Blender renders and a fabric configurator.
  • Python 77.5%
  • JavaScript 19.7%
  • CSS 2.4%
  • HTML 0.2%
  • Shell 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Joan Marc Riera Duocastella 4f8ef7cfc8 feat: DGX SuperPOD as code — reference-faithful designs generated from YAML
Spec -> topology generator -> NetBox model, draw.io, BOM, cable map, IP plan, Blender
renders and the Fabric Atlas configurator. Three designs: 2-SU H200, GB300 NVL72 SU,
mixed liquid pod.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012VhweeGBN67HAX7HxehgBw
2026-10-16 10:29:05 +01:00
.github/workflows feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
bin feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
blender feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
catalog feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
docs feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
reference feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
spec feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
src/dgxnb feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
tests feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
viewer/atlas feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
.gitignore feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
.python-version feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
cliff.toml feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
LICENSE feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
NOTICE feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
pyproject.toml feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
README.md feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00
uv.lock feat: DGX SuperPOD as code — reference-faithful designs generated from YAML 2026-10-16 10:29:05 +01:00

DGX SuperPOD as code

A reference-faithful design of NVIDIA DGX SuperPODs, written as data and generated into everything an architect needs to review or build from: a NetBox model, draw.io drawings, rack elevations, a bill of materials, a cable map, an IP plan and photoreal 3D renders.

Mixed pod, hero view

The problem

Designing a 500-GPU-class SuperPOD from NVIDIA's reference architecture means getting several interlocking things right at once, and keeping them right when a number changes:

  • Four networks. A rail-optimised InfiniBand compute fabric (8 rails per node), a storage fabric, an in-band Ethernet network and a 1 GbE out-of-band network, each with its own switch counts, oversubscription rules and cable types.
  • Power. Three discrete power paths per rack, rPDU-to-PSU mapping, per-rack budgets against the reference circuit sizes.
  • Cooling. Hot-aisle containment for air-cooled H200, rear-door heat exchangers and direct liquid for GB300 NVL72, with CDUs and a plant.
  • Racks and hall. Rack-unit placement, rack counts, aisle widths and cable paths.

A spreadsheet drifts. A drawing goes stale. This repo derives all of them from one source.

Approach

spec/*.yaml  ->  topology generator (src/dgxnb)  ->  NetBox (source of truth, optional)
                                                 ->  draw.io pages, rack elevations
                                                 ->  BOM, cable map, IP plan, NVIDIA Air topology
                                                 ->  scene.json  ->  Blender renders
  • The spec holds the choices (SU count, GPU generation, storage tiers, power, hall layout). Every sizing number cites its section of the reference architecture in docs/ra-notes*.md; every judgement call is labelled CHOICE with its reason in docs/design-choices.md.
  • The generator is a pure function from spec to a desired-state model, tested offline.
  • A reconciler applies that model to a NetBox instance idempotently by natural key, and prunes only what it owns. NetBox is optional: every output below is generated without it.
  • Unsourced values are listed, with what was used and where to look, in docs/not-found.md.

What the model enforces

The offline tests (tests/) and the live validator (bin/validate, needs a NetBox) check, among others:

  • node, GPU, switch and rack counts equal the reference architecture's scale tables (1 to 4 SUs);
  • every DGX has 8 compute cables to 8 distinct leaf switches, one per rail, and each leaf serves one rail only;
  • no leaf has more downlinks than uplinks (non-blocking fat tree);
  • every cable has two terminations and no port is cabled twice;
  • every DGX PSU lands on a free outlet of the right type, two PSUs per rPDU, three power paths;
  • peak draw per rack stays inside its budget;
  • no two devices overlap in a rack, and nothing exceeds the rack height;
  • the generated output is deterministic.

The three designs

Design Spec Compute Racks Cables
2-SU DGX H200 (reference architecture RA-11336-001) spec/superpod.yaml 63 DGX H200 = 504 GPUs 38 2,445
1-SU DGX GB300 NVL72 spec/gb300-su.yaml 8 NVL72 racks, 144 trays = 576 GPUs 12 3,876
Mixed liquid pod: 1 SU H200 with rear-door heat exchangers + 1 SU GB300 on direct liquid, one cooling plant spec/superpod-mixed.yaml 31 DGX + 144 trays = 824 GPUs 33 5,310

The generator's cable count includes the power cords (about 620 for the H200 design) and the storage and management cabling it models in full; the Fabric Atlas counts a narrower scope, data cables only (compute, storage, in-band, out-of-band) without power cords, from its own sizing rules. For the same 2-SU H200 the Atlas reports 1,812 cables and 35 racks against the generator's 2,445 and 38, so the numbers differ by design.

Outputs for the H200 design are in docs/; the other two are in docs/dgx-gb300-su/ and docs/dgx-superpod-mixed/. Each has a draw.io file (open in diagrams.net), a cable map CSV, a BOM, an IP plan and an NVIDIA Air topology.

Hot-aisle view

Fabric Atlas

A single-file configurator for DGX SuperPODs from H100 to GB300: pick generation, cooling, SU count and workload, and get live GPU, switch, cable, rack and power counters, topology, rack elevations and a BOM where each line is tagged RA, DERIVED, CHOICE or NON-RA. It runs entirely in the browser; saved scenarios use local storage.

Fabric Atlas

Build it with python3 viewer/atlas/build.py (output: viewer/dist/fabric-atlas.html).

Run it offline

uv run pytest                              # generator tests (no NetBox needed)
node --test viewer/atlas/test.mjs          # Atlas engine reproduces the RA scale tables
bin/dgxnb export                           # H200: cable map, BOM, IP plan, draw.io, scene.json
bin/dgxnb export --spec spec/gb300-su.yaml
bin/dgxnb export --spec spec/superpod-mixed.yaml
python3 viewer/atlas/build.py              # Fabric Atlas

Python 3.9+ with uv. To apply a design to your own NetBox, set NETBOX_URL and NETBOX_TOKEN and run bin/dgxnb plan (a read-only diff) before bin/dgxnb apply. The Blender pipeline is described in blender/README.md.

Design choices

Every place the reference architecture is silent or ambiguous is recorded with the options and the reason for the pick in docs/design-choices.md. For example: the rack-unit layout of rPDUs, the tier-1 storage count and its documented alternative, and the training-first workload assumption.

What this is not

  • Not an NVIDIA product, and not endorsed by NVIDIA.
  • Not a validated deployment. It is a design exercise that follows the public reference architecture closely; where it had to choose, it says so.
  • Not a pricing tool. The BOM counts parts; it does not price them.
  • Device-type files for third-party gear are community library definitions or labelled stand-ins; docs/not-found.md lists every unsourced value.

Built with Claude Code as a pair programmer; the design choices and review are mine.

Licence

Code: MIT (LICENSE). Documentation and renders: CC BY 4.0 (docs/LICENSE-docs). See NOTICE.