Shop is live

We build Workstation AI machines for websites, AI agents, and LLM training — configure and buy online.

Enter the shop
AI Products
AI LabsOpenAI AgentsClaude AgentsGrok BotWorkstation AI native CRMMarketingAll Products
AI Solutions
Applied AIAI AgentsGenerative AIAI AutomationAI UpskillingAI SME PackagesEnterprise AI LabAI WorkstationsNVIDIA Hardware & SoftwarePrivate AIGPU ClustersEdge AIAI by Industry
AI Services
Platform ModernisationDigital EngineeringData Foundations & AIAutonomous OperationsAI ConsultancyDevOps AutomationCyber SecuritySoftware DevelopmentAgent BuildingMLOps Setup
About Us
Our StoryPartnersCustomer Stories
AI InsightsJev seriesBenchmark LabModel selection
Articles
Documentation
ToolsWSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7
News
Blog
Contact UsSign in

AI workstations, AI Multi Agentic Software, GPU infrastructure, and intelligent agent solutions for modern businesses.

Contact Us

AI Solutions

Applied AIAI AgentsGenerative AIAI AutomationAI UpskillingAI SME PackagesEnterprise AI LabAI by Industry

Products

All ProductsWorkstation AI native CRM & ERPMarketingOpenAI AgentsWSL ProxyRing PromoterWSL VaultJobshoutSysOps 24/7

Company

About UsWhy WorkstationPartnersCustomer StoriesPricingContactTenthMatrix

Resources

AI InsightsArticlesDocumentationBlogSearchSitemap
UK Office
77-79 Marlowes, Hemel Hempstead HP1 1LFDirections - Take Junction 20 off M25 Outer LondonCompany No: 11641870Mon - Fri: 9:00 AM - 6:00 PM GMT
+44 7515 356 146
Belgium Office
Workstation SRL, Rue Vanderkindere 34, 1180 Uccle, BrusselsBE 0751.518.683Mon - Fri: 9:00 AM - 6:00 PM CET
+32 492 45 67 46
India Office
#159 Sector 9, Pocket 1, DDA Flats, 110077 Dwarka, New Delhi
+91 98881 98841

© 2026 Workstation AI. All rights reserved.

PrivacyData DeletionCookiesTerms of ServiceWebsite Sitemap
Home / Articles / Technology
AIHardwareArchitecture

Inside a 32-GPU HGX B300 AI Factory: Compal SGX30-2 Nodes, a Rail-Optimised 800G Fabric and the Workflows It Runs

Bill of materials, node architecture, four networks, the software stack, model-sizing maths and the acceptance tests we run before handover

November 2, 2026Technology14 min read

This tech note describes a 32-GPU NVIDIA HGX B300 AI factory built from four Compal SGX30-2 servers: the bill of materials, the architecture of one node, the four networks around it, the software stack, the workflows it runs from data to production, model-sizing maths, and the bring-up and acceptance tests we use before handover. For the business view without the commands, read the companion blog post.

Inside a 32-GPU HGX B300 AI factory: four Compal SGX30-2 nodes with eight Blackwell Ultra GPUs on NVLink each, wired through eight ConnectX-8 800G ports per node to eight fabric rails, plus storage, front-end and management networks.

TL;DR. Four air-cooled 10U SGX30-2 nodes give 32 Blackwell Ultra GPUs, 8.4 TB of HBM3e, 12 TB of DDR5 and about 123 TB of local NVMe in roughly 60 kW. Each GPU has its own onboard ConnectX-8 at 800 Gb/s, cabled rail by rail, so collectives stay on one switch hop. Keep four networks separate (GPU fabric, storage via BlueField-3, front-end, out-of-band management). Accept the system only after DCGM level-3 diagnostics, NCCL all-reduce inside and across nodes, RDMA bandwidth per rail, NVMe throughput and a thermal soak all pass.

1. Bill of materials

Per node, as configured:

ItemPer nodeNotes
ChassisCompal SGX30-2, 10U, air cooled447 × 800 × 442 mm; NVIDIA-Certified for HGX B300 8-GPU
GPU baseboardNVIDIA HGX B300 NVL8, 8 × Blackwell Ultra SXM288 GB HBM3e per GPU; NVIDIA lists 2.1 TB per board
CPU2 × Intel Xeon 6 (6767P, 6776P or 6768P)6700P series, 8 DDR5 channels per socket
Memory32 × 96 GB DDR5-6400 ECC RDIMM3 TB; two DIMMs per channel (see §2.3)
Boot2 × 960 GB M.2 NVMeSoftware RAID 1
Data8 × 3.84 TB NVMe E1.S, PCIe Gen530.72 TB raw per node
GPU fabric NICs8 × ConnectX-8 SuperNIC (onboard)8 × 800G OSFP; InfiniBand XDR 800G or 2 × 400GbE per NIC
DPUNVIDIA BlueField-3 B3240Storage and front-end traffic
Expansion2 × FHFL PCIe Gen5 x16Spare
Management2 × 1GbE BMC, 1 × 1GbE hostOut-of-band network
Power12 × 3200 W 80 PLUS Titanium, 6+6A/B feeds; plan for roughly 14 kW per node
Warranty3-year return-to-baseHandled through Workstation

Rack totals for four nodes:

ResourceTotal
GPUs32 × Blackwell Ultra (4 NVLink domains of 8)
GPU memory8.4 TB HBM3e (4 × 2.1 TB)
FP4 Tensor Core576 PFLOPS sparse, 432 PFLOPS dense (4 × NVIDIA's 144 | 108 per board)
FP8 Tensor Core288 PFLOPS sparse (4 × 72)
CPU cores8 sockets of 64 cores (512 cores) with the listed SKUs
System memory12 TB DDR5
Local NVMe122.9 TB raw E1.S + 7.7 TB boot
GPU fabric ports32 × 800G
Rack space and power40U of compute, around 60 kW (published four-node B300 reference figure) plus network

One point to plan around: Blackwell Ultra trades double precision for AI throughput. NVIDIA rates HGX B300 at 10 TFLOPS FP64 per board, against 296 TFLOPS for HGX B200. This rack is for AI work. If you also run FP64 simulation codes, put them on B200 or GB200 nodes.

2. Node architecture

Compal SGX30-2 block diagram: eight Blackwell Ultra GPUs on the HGX B300 NVL8 baseboard joined by NVLink 5 switches at 1.8 TB/s per GPU, each paired with a ConnectX-8 SuperNIC and 800G OSFP port; two Xeon 6 CPUs with 16 DDR5 DIMMs each; eight E1.S NVMe drives; a BlueField-3 B3240 DPU; out-of-band management; twelve 3200 W PSUs in 6+6.

2.1 GPUs and NVLink

The eight GPUs share fifth-generation NVLink through NVLink switches on the baseboard: 1.8 TB/s per GPU and 14.4 TB/s across the board. Inside a node, every GPU reaches every other at full NVLink speed, so tensor parallelism of up to 8 is cheap. Beyond 8 GPUs, traffic crosses the 800G fabric, which is roughly an order of magnitude slower per GPU than NVLink. That boundary is the main design constraint for how you split models (§5).

The NVLink fabric must be initialised before CUDA will use the GPUs. Install the NVIDIA Fabric Manager package matching your driver version and enable its service. If nvidia-smi -q does not show the fabric as completed, jobs will fail or fall back to slow paths.

2.2 One NIC per GPU

On HGX B300 the eight ConnectX-8 SuperNICs sit on the GPU baseboard, each paired with one GPU, and each exposes one 800G OSFP cage at the front of the SGX30-2. ConnectX-8 includes its own PCIe switch, so the GPU-to-NIC path for GPUDirect RDMA is short and does not cross the CPU. Each port runs either InfiniBand XDR at 800 Gb/s or Ethernet as 2 × 400GbE (for Spectrum-X). Confirm NIC-to-GPU affinity with nvidia-smi topo -m: each GPU should show its NIC on the closest path.

2.3 CPUs and memory

The Xeon 6 6700P parts listed (6767P, 6776P, 6768P) are 64-core processors with eight DDR5 channels each. Thirty-two DIMMs therefore means two DIMMs per channel. That configuration prioritises capacity (3 TB, more than the 2.1 TB of HBM) over peak memory speed: two DIMMs per channel usually runs below the DIMMs' 6400 MT/s rating, so check the speed the BIOS reports and do not assume 6400. The capacity earns its keep in data loading, CPU offload of optimiser state during fine-tuning, and KV-cache offload for long-context serving.

Set the BIOS for performance (power profile, no deep C-states on serving nodes) and keep NUMA in mind. Pin data-loader processes to the socket closest to the GPUs they feed.

2.4 Storage

Eight Gen5 E1.S drives give 30.72 TB raw per node. We use them as a local tier, not as the system of record:

  • Dataset staging: shards copied from shared storage before a run, so training reads at local NVMe speed.
  • Checkpoint burst buffer: checkpoints land locally first, then drain asynchronously to shared storage, which keeps the GPUs from waiting on the network.
  • Model cache: serving containers (NIM, vLLM, TensorRT-LLM engines) load weights from local disk, which cuts cold-start time.

A simple layout is one RAID 0 or striped LVM volume across the eight drives (XFS or ext4), treated as scratch, with anything precious replicated to shared storage. The two M.2 drives are mirrored for the OS.

2.5 BlueField-3 and management

The BlueField-3 B3240 carries storage and front-end traffic so it never shares a port with GPU collectives. It can also enforce network isolation for multi-tenant clusters and offload encryption. The BMC sits on a separate out-of-band network for power control, firmware and sensor telemetry.

2.6 Power and cooling

Twelve 3200 W Titanium supplies in 6+6 means each node survives the loss of a whole A or B feed. NVIDIA rates its own 8-GPU Blackwell Ultra system, DGX B300, at about 14 kW. Use that as the planning figure per node, and around 60 kW for four nodes, then confirm with power measurements during burn-in. The node is air cooled, so the hall needs high-density airflow with hot-aisle containment rather than a liquid loop.

3. Four networks

One rack, four networks: a rail-optimised 800G GPU fabric with rails 0 to 7; a storage network through BlueField-3; a front-end network where users and agents reach models through WSL Proxy with secrets in WSL Vault; and an out-of-band management network. Platform services: Kubernetes or Slurm, Run:ai, NIM, Dynamo, vLLM, NCCL, DCGM telemetry to SysOps247 and Ring Promoter roll-outs.

3.1 GPU fabric (east-west)

The fabric is rail-optimised: NIC n on every node connects to rail n. In an all-reduce, GPU n on each node mostly talks to GPU n on the other nodes, so traffic stays within one rail and one switch hop. Cross-rail traffic goes through NVLink inside the node instead of the network. NCCL is aware of this topology and uses it automatically when it is cabled consistently.

  • One rack (32 ports): a single 64-port 800G switch, such as a Spectrum-X SN5600, or a Quantum-X800 InfiniBand switch hosts all eight rails with room for a second rack. With one switch, a "rail" is a logical grouping of ports, and the cabling discipline still matters for growth.
  • A scalable unit (up to 32 nodes, 256 GPUs): dedicated leaf switches per rail group plus a spine layer, non-blocking. Reserve spine ports and cable pathways from day one.

InfiniBand versus Spectrum-X Ethernet is a choice of operations model more than raw speed: both run at 800 Gb/s per GPU here. InfiniBand has the longest track record for large training. Spectrum-X suits multi-tenant factories and teams that run Ethernet everywhere else. With Ethernet, enable RoCE with the NVIDIA-recommended congestion control settings. Default Ethernet settings are not good enough for AI collectives.

3.2 Storage network

Shared storage (a parallel file system or NVMe-over-Fabrics appliance) connects through the BlueField-3 ports on a separate network or VLAN. Size it for checkpoint bursts: four nodes writing a large model's full checkpoint at once is the peak to design for, not the average read rate.

3.3 Front-end network (north-south)

Users, applications and agents reach model endpoints through this network. We put WSL Proxy in front of every endpoint for TLS, authentication and web-application firewalling, and keep API keys, model-registry credentials and database passwords in WSL Vault, injected at runtime rather than baked into images.

3.4 Management network (out of band)

BMCs, switch management ports and PDUs go on an isolated management VLAN reachable only from admin jump hosts. Firmware updates, power cycling and sensor monitoring all happen here, so a misbehaving workload cannot lock you out of the hardware.

4. Software stack

LayerWhat we deploy
OS and driversUbuntu LTS or RHEL; NVIDIA data-centre driver, CUDA, Fabric Manager; DOCA / OFED for ConnectX-8 and BlueField-3
CommunicationNCCL with the topology above; GPUDirect RDMA; SHARP where InfiniBand supports in-network reduction
OrchestrationKubernetes with the NVIDIA GPU Operator and Network Operator, or Slurm with Pyxis/Enroot containers; both on the same cluster is common
SchedulingRun:ai or Slurm partitions and quotas so teams share GPUs fairly; overnight training on capacity that serves staff by day
TrainingNeMo, PyTorch FSDP or Megatron-style parallelism; Transformer Engine for FP8 and NVFP4
ServingNVIDIA NIM, Dynamo for disaggregated serving, vLLM, TensorRT-LLM
DataCuration and embedding pipelines, a vector database for retrieval
ObservabilityDCGM exporter, node and fabric telemetry (UFM or NetQ) into Prometheus and Grafana, alerting to SysOps247
DeliveryRing Promoter promotes models and services int → test → acc → prod with approvals and rollback
SecurityWSL Proxy at the edge, WSL Vault for secrets, SSO for the platform UIs, audit logging

5. Workflows: what the factory delivers

The production line: Ingest, Train, Evaluate (promote with Ring Promoter), Serve (behind WSL Proxy, keys in WSL Vault) and Improve, with a feedback loop back to Ingest.

5.1 Ingest and prepare

Source data is pulled from document stores, ticketing systems, databases and code repositories into shared storage. Pipelines then de-duplicate, filter, redact personal data where policy requires, tokenise and shard it. For retrieval, documents are chunked and embedded on the GPUs and written to the vector database with their access-control metadata, so search results respect the same permissions as the source systems.

5.2 Train and fine-tune

Memory needed for full fine-tuning with an Adam-style optimiser in mixed precision is roughly 16 bytes per parameter before activations (weights, gradients and two optimiser moments plus a master copy), sharded across GPUs with FSDP or ZeRO-3:

Model sizeFull fine-tune state (~16 B/param)Fits in
8B~128 GBOne GPU (288 GB), or a slice of a node
70B~1.1 TBOne node (2.1 TB) with sharding
405B~6.5 TBThe whole rack (8.4 TB), with activation checkpointing and CPU offload to the 12 TB of DDR5

Parameter-efficient methods such as LoRA need a small fraction of this, which is why most enterprise fine-tuning fits on one node. For parallelism, keep tensor parallelism inside a node (TP ≤ 8, on NVLink) and use data or pipeline parallelism across nodes (on the fabric). Checkpoint to the local E1.S tier, then drain to shared storage in the background.

5.3 Evaluate and promote

Every candidate model runs an evaluation suite (task accuracy on your own test sets, safety and refusal tests, latency and cost per request) before promotion. Ring Promoter moves the model and its serving configuration through int, test, acceptance and production rings, each with its own gates and approvals. A bad release is rolled back by promoting the previous version, not by hand-editing servers.

5.4 Serve

Weights-only memory is parameters × bytes per parameter (FP8 = 1 byte, NVFP4 ≈ 0.5 byte plus small scaling factors). On 288 GB GPUs:

ModelPrecisionWeightsMinimum GPUs for weightsPractical layout
70B denseFP8~70 GB11–2 GPUs per replica, several replicas per node
405B denseFP8~405 GB2TP 4 or 8 in one node, for KV-cache headroom
~670B mixture-of-expertsFP8~670 GB3One full node (TP or expert parallel 8)
~1T mixture-of-expertsNVFP4~500–550 GB2One full node

The KV cache, not the weights, usually sets concurrency. Its size per token is 2 × layers × KV heads × head dimension × bytes. For Llama 3.1 405B (126 layers, 8 KV heads, head dimension 128) with an FP8 cache, that is 2 × 126 × 8 × 128 × 1 ≈ 258 KB per token, or about 33 GB for a single 128k-token conversation. That is why long-context serving benefits from big HBM, and from offloading cold KV blocks to the 3 TB of host DDR5 or to local NVMe, which Dynamo and recent vLLM versions support.

For high-traffic services, consider disaggregated serving: prefill (reading the prompt, compute-bound) and decode (writing the answer, memory-bandwidth-bound) on separate GPU pools, which Dynamo orchestrates. On a four-node rack a common starting split is one node for embeddings, retrieval and smaller models, two for the main assistant and agents, and one flexible node that serves by day and fine-tunes by night.

5.5 Retrieval and agents

Staff questions go through the front-end network to a retrieval service, which searches the vector database (filtered by the user's permissions), reranks the results and passes the best passages to the model with citations. Agents add tool calls: each tool is an API behind WSL Proxy, with credentials fetched from WSL Vault at call time and every call logged. Keep agents' permissions as narrow as a junior employee's, and log every action they take.

5.6 Operate and improve

DCGM health checks run continuously, with XID errors, ECC errors, NVLink errors, thermals and power alerting into SysOps247. Fabric telemetry from UFM or NetQ catches link flaps and congestion. Usage and quality signals (thumbs up and down, corrections, escalations) are captured and fed back as new training and evaluation data, which closes the loop in §5.1.

6. Bring-up and acceptance tests

We run these on every node and across the rack before handover, and record the results for your acceptance report.

6.1 Inventory and topology

nvidia-smi -L                          # 8 GPUs per node
nvidia-smi -q | grep -iA3 fabric       # NVLink fabric state: completed
nvidia-smi topo -m                     # GPU-NIC affinity and NVLink paths
nvidia-smi nvlink -s                   # all links up
ibstat | grep -E "State|Rate"          # 8 ports Active at 800 Gb/s (InfiniBand)
dmidecode -t memory | grep -c "Size: 96 GB"   # 32 DIMMs
nvme list                              # 8 x E1.S + 2 x M.2

6.2 GPU diagnostics and burn-in

dcgmi diag -r 3                        # extended diagnostics, every node
# then a 24-48 h soak with sustained GPU load while logging temperatures,
# clocks, power draw and XID/ECC events with dcgmi dmon

6.3 NCCL inside and across nodes

# single node, 8 GPUs over NVLink
./build/all_reduce_perf -b 8 -e 16G -f 2 -g 8

# four nodes, 32 GPUs over the fabric (one rank per GPU)
mpirun -np 32 -N 8 --hostfile hosts \
  -x NCCL_DEBUG=INFO -x NCCL_IB_HCA=mlx5 \
  ./build/all_reduce_perf -b 8 -e 16G -f 2 -g 1

Compare the bus bandwidth at large message sizes against the reference figures for the platform and the fabric. A single slow rail shows up as a ceiling on the multi-node result. Check NCCL_DEBUG output to confirm NCCL found all eight NICs and is using GPUDirect RDMA.

6.4 Per-rail RDMA

# server on node-1, client on node-2, repeat for each NIC (rail 0..7)
ib_write_bw -d mlx5_0 --report_gbits -a
ib_write_bw -d mlx5_0 --report_gbits -a node-1

6.5 Storage

fio --name=seqread --filename=/scratch/fio --rw=read --bs=1M \
    --size=64G --numjobs=8 --iodepth=32 --direct=1 --group_reporting
fio --name=seqwrite --filename=/scratch/fio --rw=write --bs=1M \
    --size=64G --numjobs=8 --iodepth=32 --direct=1 --group_reporting

Then time a real checkpoint write and drain to shared storage. That number, not the synthetic one, tells you whether checkpoints will stall training.

6.6 End-to-end

Finally, serve a reference model through the full path (WSL Proxy, the serving stack, the GPUs) and run a load test at the expected number of concurrent users, recording latency to first token, tokens per second per user and total throughput. This becomes the baseline that SysOps247 alerts against.

7. Growing beyond one rack

Because the rack is built to a reference design, growth is repetitive rather than creative: add identical racks of four SGX30-2 nodes, extend the rails through leaf switches and a spine, and grow shared storage for checkpoint bandwidth. A scalable unit of 32 nodes (256 GPUs) is the natural next boundary. Beyond that, or if one model needs an NVLink domain larger than 8 GPUs, GB300 NVL72 racks can join the same storage, scheduler and front-end, as their own 72-GPU NVLink domains.

8. Supply, warranty and compliance

  • Availability: the SGX30-2 is available to order only. HGX B300 is allocated by NVIDIA and the server makers, and lead times are measured in months. We confirm the date on a written quote.
  • Warranty: 3-year return-to-base on the server, handled through us. On-site cover and local spares can be quoted.
  • Export controls: advanced NVIDIA GPUs are controlled under UK and US rules. We need the end user, the intended use and the installation site before confirming supply.

Where to go next

  • The business view: What an AI factory actually delivers.
  • Platform pages: Compal SGX30-2, HGX B300 32-GPU rack, AI factory networking and all AI factory solutions.
  • Order: Compal SGX30-2 in the shop.
  • Questions about your own design? Talk to an engineer.
Share this article

More in Technology

Technote: OpsAPI Single Sign-On for Java, PHP, Python, Rust and Go Apps, with Zero-Trust Admin Access

Technote: OpsAPI Single Sign-On for Java, PHP, Python, Rust and Go Apps, with Zero-Trust Admin Access

The request path, the sign-in contract with real Java, PHP, Python, Rust and Go code, configuration, zero-trust admin access, testing and lessons learned

Read more
An IP Allowlist Isn't a Login: VPN Edges, DNS Failover and OpsAPI SSO for Lower Environments

An IP Allowlist Isn't a Login: VPN Edges, DNS Failover and OpsAPI SSO for Lower Environments

AllowedIPs and hub NAT for every failover edge, the OpsAPI hosted sign-in contract, silent SSO, and a test plan

Read more
An IP Allowlist Is Not a VPN Check: Zero Trust Access Profiles with wslvpn and WSLProxy

An IP Allowlist Is Not a VPN Check: Zero Trust Access Profiles with wslvpn and WSLProxy

Zero Trust access profiles with wslvpn and WSLProxy: CIDR, identity, fail-closed behaviour and debug headers

Read more