Skip to content

Cnuas

Cnuas Virtual AI HPC Infrastructure

Cnuas (pronounced Knoo-us, from the Irish Gaeilge word for "cluster") is a 100% software-emulated virtual AI and HPC infrastructure. It reproduces a full AI datacenter, switches, RDMA NICs, GPUs, and GPU fabric, entirely in software, so teams can teach and explore HPC, AI, and Networking (RDMA, RoCEv2, InfiniBand) without physical GPU clusters or InfiniBand switches.

Cnuas is built for Education and Research & Development, and lives at cnuas.io. It is developed under the internal Cnuas (High-performance Computing AI and Networking) engineering programme at Packet Five Networks.

Cnuas reference rack, front view modelled on OCP Open Rack v3

Cnuas reference rack, modelled on OCP Open Rack v3

The reference deployment maps 1:1 to a real Open Compute Project Open Rack v3. Two 1OU top-of-rack switches (CnuasSwitch for the RoCE and InfiniBand fabric, CnuasLink for the GPU peer fabric), a management host running the daemons, and eight 2OU VM blades acting as GPU compute nodes. Every blade is a QEMU guest with a virtual CnuasNIC and CnuasGPU, and the whole rack runs on a single workstation.

See the System Topology for the two-rack view, the animated traffic-flow diagram, and the full component walk.

Drive the whole rack from one tool

cnuas is the unified control plane. One command surface drives the switch fabric, the GPU fabric, GPUs, RDMA NICs, and VM lifecycle, and the same service layer is exposed as a REST API for automation.

cnuas - unified control plane
$ cnuas system health
┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━┓
┃ Component ┃ Available ┃ Detail  ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━┩
│ cnuasswitch  │ yes       │         │
│ cnuaslink    │ yes       │         │
│ cnuasgpu     │ yes       │         │
│ cnuasnic     │ yes       │         │
│ vm        │ yes       │         │
└───────────┴───────────┴─────────┘

$ cnuas switch set-mode 2 STRICT_IB
{ "status": "ok", "port": 2, "mode": "STRICT_IB" }

$ cnuas gpu list --json
[ { "gpu_id": 0, "sm_count": 32, "link_up": 1, "source": "ioctl" } ]

$ cnuas vm up vm-a --gpus 1
 vm-a is up  (ssh :2222, gpu 1, fabric /run/cnuas/port_0.sock)

$ cnuas api --host 0.0.0.0 --port 8080
# REST API live at http://0.0.0.0:8080  (Swagger UI at /docs)

Full command and endpoint reference is in Programmability (CLI & REST API), with an interactive Swagger UI and ReDoc API browser.

Documentation

Document Description
System Topology End-to-end map of host daemons, QEMU devices, guest stack, and fabric walks
Virtual Switch Design NIC fabric, RoCEv2 and InfiniBand, DCB (PFC/ETS/ECN)
CnuasLink Switch Design GPU fabric, CnuasLink protocol, ivshmem fast-path
CnuasGPU Design Virtual GPU, CnuasIR ISA, runtime, libraries, and tools
Driver & Userspace Design Kernel drivers, libibverbs provider, RDMA stack
OCP Rack Management Design OpenBMC, Redfish, and the ORV3 power shelf on RS-485
Facility Twin Design Procedural OpenUSD campus, TIA-942 rooms, and the campus power model
Control Plane Reference Management API, CLI commands, and Web UI REST API
Programmability (CLI & REST API) The cnuas CLI and REST API for end-to-end control
Product Roadmap Feature availability today versus planned, Epics, Tasks, GitHub Projects board
Validation Matrix Which test proves which feature, and whether it passes

Datasheets

Product-style datasheets summarise each emulated device's specifications on a single reference page.

Datasheet Description
Cnuas Platform The full virtual AI and HPC infrastructure, switches, NICs, GPUs, host requirements
CnuasSwitch 10-port virtual TOR RoCEv2 and InfiniBand switch with in-switch Subnet Manager
CnuasNIC RoCEv2 and native InfiniBand RDMA virtual NIC
CnuasGPU SIMT virtual GPU with CnuasIR ISA and CUDA-style runtime
CnuasLink GPU-to-GPU fabric interconnect
Cnuas Software Stack GPU runtime, compute backends, verbs provider, daemons, control plane, tooling

Components

Component Language Description
cnuas-vswitchd C (GNU C) Soft TOR switch daemon, 10-port RoCEv2 and InfiniBand fabric, runs on the host with no guest
cnuasgpu-link-switchd C (GNU C) CnuasLink soft GPU fabric switch, runs on the host with no guest
CnuasGPU C (GNU C) + LLVM SIMT accelerator, usable as a Soft-GPU in a host process or as a QEMU PCIe device
cnuas / cnuas-cli / cnuaslink-cli Python Unified and per-component management CLIs
cnuas-api Python (FastAPI) Unified REST API service for end-to-end control
cnuas-webui Python + Next.js Browser-based dashboard
RoCE-IB-vNIC C (QEMU) Custom PCIe virtual NIC
cnuas_net.ko / cnuas_ib.ko C (kernel) NIC and RDMA kernel drivers

Quick Start

Prerequisites

  • GCC (GNU C compiler)
  • Make
  • Python 3.10+ with pytest

Build & Test (one command)

./build_and_test.sh

Step by step

# Build the switch daemon
cd src/cnuasswitch/switch && make

# Run the switch daemon
./build/cnuas-vswitchd --run-dir /var/run/cnuas --foreground

# Run endpoint tests (separate terminal)
cd ../..
python3 -m pytest tests/ -v

Check port status (once CLI is built)

cnuas-cli port status

# Open Web UI (once WebUI is built)
cnuas-webui   # → http://localhost:8080

Building the Documentation

pip install mkdocs-material
mkdocs serve        # Live preview at http://localhost:8000
mkdocs build        # Static HTML output in site/