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.
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 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)¶
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