Technology

How VDC Emulates a Datacenter

A custom virtual hardware stack — virtual GPUs, virtual NVLink, virtual InfiniBand switches and virtual RDMA NICs — built from scratch in C around QEMU, so unmodified Linux guests run real distributed workloads on simulated silicon.

Read the White Paper (PDF)
Approach

Real APIs, Emulated Silicon

VDC does not use host-based shortcuts like Linux bridges or Soft-RoCE. Instead it builds custom QEMU PCIe devices and their corresponding Linux kernel drivers, so the guest sees a real RDMA HCA and a real GPU on its PCIe bus. From the application's point of view it is talking to hardware — even though every byte is moving through software.

  • Custom PCIe Vendor / Device IDs registered for HiNIC and HiGPU
  • MMIO BARs, doorbells and interrupts modelled in QEMU C device code
  • Kernel drivers (hicain_net.ko, hicain_ib.ko) probe the device, register with ib_core
  • Standard libibverbs works unmodified — ibv_rc_pingpong, perftest, NCCL all run
  • Host UNIX-domain sockets act as the "physical cable" between QEMU NICs and the virtual switch

Why emulation, not virtualisation?

A student cannot bring home a $200,000 InfiniBand switch or a 4× H100 server. Existing Linux virt approaches (bridges, Soft-RoCE) hide the hardware semantics that matter — DCB, ECN marking, IB LIDs, GPU peer DMA. VDC keeps those semantics in software so what you learn here transfers directly to NVIDIA, AMD or Intel production hardware.

Four Core Components

Each component is its own open-source project under PacketFive. VDC ties them together as the integration / orchestration repository.

🔌

HiNIC — Virtual RoCE-IB NIC

PCIe device model exposing standard BARs, doorbells, and DMA queues. The companion kernel drivers register a netdev and an RDMA HCA. Guest applications use libibverbs as if it were Mellanox/NVIDIA hardware.

🔀

HiSwitch — Virtual TOR Fabric

Standalone C daemon acting as a top-of-rack switch. epoll event loop listens on per-port UNIX sockets, classifies frames (Ethernet / RoCEv2 / InfiniBand LRH), and forwards using a per-pipeline forwarding table. JSON-over-UDS control plane.

🖥️

HiGPU — Virtual GPU

QEMU PCIe device with a SIMT execution model — Streaming Multiprocessors, tensor units, shared memory, HBM-equivalent device memory. Plus a complete NVIDIA-equivalent userland: HCC (CUDA-equivalent), hi-smi, hcc compiler, HiCCL (NCCL-equivalent).

HiLink — GPU Peer Fabric

Independent GPU-to-GPU interconnect (NVSwitch-equivalent). A VM with a HiGPU but no HiNIC can still do GPU peer DMA. Uses ivshmem as the fast-path for cross-VM shared memory.

Topology

Modelled on OCP Open Rack v3

The reference deployment follows the Open Compute Project Open Rack v3 — the rack design the modern AI buildout was created around. Two 1OU TOR switches (HiSwitch + HiLink) at the top of the rack, a management host, and eight 2OU VM "blades" acting as GPU compute nodes. The U-heights are visual in the emulator, but the layout maps 1:1 to real ORv3 deployments — making the same diagrams useful for teaching, design and real lab build-outs.

  • 10-port RoCEv2 + InfiniBand virtual TOR (HiSwitch)
  • 8-port GPU peer fabric (HiLink)
  • 8 GPU compute "blades" — each a QEMU guest with HiNIC + HiGPU
  • DCB (PFC/ETS/ECN) modelled end-to-end across the fabric

Two independent fabrics

The HiSwitch fabric carries every Ethernet frame, including RoCEv2/RDMA (UDP/4791) — the same path NCCL's IB transport, perftest and ibv_rc_pingpong flow over. The HiLink fabric is independent and carries only GPU-to-GPU peer traffic. A guest can use one, the other, or both — exactly as in a real GPU rack.

Built for Education & Research

VDC is the lab environment behind the HiCAIN training programme. Students run real distributed-training workloads, RDMA microbenchmarks and MPI collectives against the emulated fabric — building the skills modern AI cluster operations demands, on a laptop.

🎓

Accessible Lab

No physical GPUs, NICs, or switches required. A multi-node GPU cluster fits on a single workstation.

🔬

Realistic Semantics

IB LIDs, GRH/LRH headers, DCB pause frames, ECN marking — all the things that matter for real production debugging.

🛠️

Research Platform

Open-source, modifiable, reproducible. Ideal for academic networking and HPC research where commercial silicon is a black box.

VDC on GitHub ↗ HiCAIN Training ↗