Skip to content

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 is developed under the internal HiCAIN (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 (HiSwitch for the RoCE and InfiniBand fabric, HiLink 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 HiNIC and HiGPU, 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  ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━┩
│ hiswitch  │ yes       │         │
│ hilink    │ yes       │         │
│ higpu     │ yes       │         │
│ hinic     │ 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/hicain/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)
HiLink Switch Design GPU fabric, HiLink protocol, ivshmem fast-path
HiGPU Design Virtual GPU, HiIR ISA, runtime, libraries, and tools
Driver & Userspace Design Kernel drivers, libibverbs provider, RDMA stack
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

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
HiSwitch 10-port virtual TOR RoCEv2 and InfiniBand switch with in-switch Subnet Manager
HiNIC RoCEv2 and native InfiniBand RDMA virtual NIC
HiGPU SIMT virtual GPU with HiIR ISA and CUDA-style runtime
HiLink GPU-to-GPU fabric interconnect

Components

Component Language Description
hicain-vswitchd C (GNU C) Virtual TOR switch daemon, 10-port RoCEv2 and InfiniBand fabric
higpu-link-switchd C (GNU C) HiLink GPU fabric switch (planned)
HiGPU C (QEMU) + LLVM Virtual GPU PCIe device with SIMT execution model (planned)
cnuas / hicain-cli / hilink-cli Python Unified and per-component management CLIs
cnuas-api Python (FastAPI) Unified REST API service for end-to-end control
hicain-webui Python + Next.js Browser-based dashboard
RoCE-IB-vNIC C (QEMU) Custom PCIe virtual NIC
hicain_net.ko / hicain_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/hiswitch/switch && make

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

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

Check port status (once CLI is built)

hicain-cli port status

# Open Web UI (once WebUI is built)
hicain-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/