Skip to content

Cnuas Validation Matrix

Scope: Every Cnuas component, its validating tests, and their status · Version: `fd0f896-dirty` · Updated: 2026-08-03

This page answers one question: for each implemented feature, which test proves it works, and did that test pass?

The Product Roadmap records what is planned. This page records what is proven. The two are deliberately separate: a roadmap entry can be marked available only when a row here backs it with a named, passing test.

How to read this page

Column Meaning
Feature The capability being validated
Test The file or binary that validates it
Count Number of test cases
Status Result of the last recorded run
Gate What must be present for the test to execute
Status Meaning
Pass Ran and passed on the reference host
Gated Correctly skipped; needs hardware or a lab the reference host lacks
Manual Exists, but is a standalone script that pytest does not collect
None No automated test exists yet

Summary

Recorded on the reference host (cnuas1). The pytest rows were recorded on 2026-08-03; the CnuasGPU rows were recounted on 2026-08-06 after the CnuasIR and CnuasCC work landed.

Suite Collected Pass Gated
Superproject tests/ (switch data plane, RDMA end to end) 61 36 25
cnuas/ control plane 52 52 0
tools/ build, image, and VM lifecycle tooling 122 122 0
facility/ data-centre twin 59 59 0
src/cnuaslink/ fabric switch and client 18 18 0
Total pytest 312 287 25
CnuasGPU host C smoke binaries (8 binaries, cases counted) 442 442 0
CnuasGPU Python tool tests (CnuasIR tools, CnuasCC front end) 343 343 0
CnuasGPU device smoke binaries (7 binaries, need a guest with a device) 46 0 46

Reproduce with:

pytest tests/                                  # superproject
(cd cnuas    && PYTHONPATH=src pytest)         # control plane
(cd tools    && PYTHONPATH=src pytest)         # tooling
(cd facility && PYTHONPATH=src pytest)         # facility twin
(cd src/cnuaslink && make -C switch && pytest switch/tests cli/tests)

Build the switch first

The 35 switch data-plane cases spawn src/cnuasswitch/switch/build/cnuas-vswitchd. If that binary is absent the fixture skips them with a build hint rather than failing, so the counts above drop to 2 passed and 59 skipped. Run make -C src/cnuasswitch/switch first to exercise the data plane.

1. CnuasSwitch, virtual top-of-rack switch

See CnuasSwitch datasheet for the part level specification.

Feature Test Count Status Gate
Ethernet and InfiniBand frame classification, auto mode, runt drop tests/test_classification.py 3 Pass built cnuas-vswitchd
MAC learning, unicast forward, flood, ageing tests/test_eth_forwarding.py 4 Pass built cnuas-vswitchd
InfiniBand DLID routing through the linear forwarding table tests/test_ib_forwarding.py 2 Pass built cnuas-vswitchd
Data centre bridging: priority flow control, enhanced transmission selection, explicit congestion notification tests/test_dcb.py 5 Pass built cnuas-vswitchd
Management socket API: ports, forwarding database, linear forwarding table, priority flow control, telemetry, error handling tests/test_mgmt_api.py 21 Pass built cnuas-vswitchd
In-switch subnet manager, subnet administration path records none 0 None see roadmap Epic 1

2. CnuasNIC, RDMA network interface

Specified in the CnuasNIC datasheet, with the software split across the kernel modules and verbs provider sheets.

Feature Test Count Status Gate
RoCEv2 end to end: reliable connection pingpong, transmit and receive paths, completion queue entries tests/test_rocev2_e2e.py 15 Gated CNUAS_E2E=1 plus vm-a and vm-b
Native InfiniBand end to end pingpong tests/test_ib_e2e.py 4 Gated CNUAS_E2E=1 plus vm-a and vm-b
NCCL build and link against the Cnuas verbs provider tests/test_nccl_link.py 7 1 Pass, 6 Gated CUDA toolkit and an Nvidia GPU on the host
Kernel modules cnuas_net.ko and cnuas_ib.ko covered indirectly by the two end-to-end gates 0 Gated as above

CnuasNIC carries no tests inside its own repository. All of its validation lives in the superproject suite, because a meaningful test needs the switch, two guest virtual machines, and the verbs provider present at once.

3. CnuasGPU, virtual GPU and runtime

Specified in the CnuasGPU datasheet, with the host libraries covered by the CnuasRT and CnuasDev sheets.

Feature Test Count Status Gate
Compute backend selection, scalar, AVX2, and AVX-512 dispatch lib/test/compute_backend_smoke 1 Pass none, runs on the host
Shared-object backend loading through the dlopen loader lib/test/compute_so_smoke 1 Pass none, runs on the host
CnuasIR object header parse and every rejection path lib/test/cnuasir_object_smoke 26 Pass none, runs on the host
CnuasIR tools, object format, subset decoder cross checked against objdump, and the three commands tools/test/test_cnuasir_tools.py 230 Pass none; the objdump group skips without a RISC-V toolchain
CnuasCC front end, lexer, precedence, the conversions the checker inserts, every rejection with its message, and the driver exit codes tools/test/test_cnuascc.py 113 Pass none, runs on the host
CnuasBLAS column major convention, level 1, level 2, level 3 and every refusal lib/test/cnuasblas_host_smoke 39 Pass none, runs on the host
CnuasLink wire format, golden byte layout, round trip, and every rejection lib/test/cnuaslink_frame_smoke 45 Pass none, runs on the host
CnuasCCL bootstrap over four threaded ranks, membership refusals, and the collectives lib/test/cnuasccl_smoke 71 Pass none, runs on the host
CnuasIR interpreter, every instruction class, the four shipped kernels, and the encoders cross checked against the assembler lib/test/cnuasir_interp_smoke 242 Pass none; the assembler group skips without a RISC-V toolchain
Kernel module load, launch argument checks, and a launch carried through the interpreter lib/test/cnuasrt_module_smoke 17 Pass none, runs on the host
CnuasBLAS against real device memory lib/test/cnuasblas_smoke 39 Gated a cnuasgpu device in a guest
Runtime API: allocate, copy, launch, synchronise lib/test/cnuasrt_smoke 1 Gated a cnuasgpu device in a guest
Single-precision general matrix multiply through the tensor path lib/test/sgemm_smoke 1 Gated a cnuasgpu device in a guest
Device discovery and initialisation lib/test/compute_smoke 1 Gated a cnuasgpu device in a guest
Multi-GPU visibility and peer copy lib/test/multi_gpu_smoke 1 Gated two or more cnuasgpu devices
Kernel module load, ioctl surface, doorbell driver/test/cnuasgpu_smoke.c 1 Gated a guest with cnuasgpu.ko
CnuasLink send and receive from the driver driver/test/cnuasgpu_link_test.c, driver/test/cnuasgpu_link_recv.c 2 Gated a guest with two endpoints

The host tests above run as a set with make -C lib check in src/cnuasgpu, which treats exit code 77 as a skip and fails on anything else.

The gated smoke binaries stop with a clear message rather than a crash, for example FAIL cnuasInit(0) -> no CnuasGPU device found, which makes an absent device easy to tell apart from a genuine regression.

See CnuasLink datasheet for the part level specification.

Feature Test Count Status Gate
Management version handshake switch/tests/test_cnuaslink_phase1.py 1 Pass built cnuasgpu-link-switchd
Discovery learns the GPU forwarding database switch/tests/test_cnuaslink_phase1.py 1 Pass built cnuasgpu-link-switchd
Unicast frame forwarding between endpoints switch/tests/test_cnuaslink_phase1.py 1 Pass built cnuasgpu-link-switchd
Broadcast reaches peers and is not looped back to the sender switch/tests/test_cnuaslink_phase1.py 2 Pass built cnuasgpu-link-switchd
Port status, peer identifiers, and frame counters switch/tests/test_cnuaslink_phase1.py 1 Pass built cnuasgpu-link-switchd
A disabled port drops traffic and the drop is counted switch/tests/test_cnuaslink_phase1.py 2 Pass built cnuasgpu-link-switchd
Command line client: version, port status, forwarding database, telemetry, link up and down, bad socket handling cli/tests/test_cli_e2e.py 10 Pass built cnuasgpu-link-switchd

Both files were standalone scripts that defined main() and no test functions, so pytest collected zero cases from them and reported success. They are now real pytest modules: 18 collected, 18 passing, and they skip cleanly with a build hint when the daemon binary is absent rather than failing.

5. Control plane and platform software

Specified across the control plane, tools, and management tools sheets.

Feature Test Count Status Gate
Component adapters: switch, NIC, GPU, link, system inventory cnuas/tests/test_adapters.py 23 Pass none
REST API surface cnuas/tests/test_api.py 17 Pass none
cnuas command line cnuas/tests/test_cli.py 7 Pass none
Service lifecycle cnuas/tests/test_service.py 5 Pass none
Build, package, image, virtual machine lifecycle, release, deploy tooling tools/tests/ (16 files) 122 Pass none

6. Facility twin

See facility datasheet for the part level specification.

Feature Test Count Status Gate
Campus and data-hall layout generation facility/tests/test_layout.py 19 Pass none
Live telemetry bridge facility/tests/test_live.py 19 Pass none
Rack and facility power model facility/tests/test_power.py 8 Pass none
OpenUSD stage authoring facility/tests/test_usd.py 13 Pass none

7. Baseboard management and rack management

See CnuasBMC datasheet for the part level specification.

Feature Test Count Status Gate
OpenBMC images for sled, rack management controller, and top of rack build gate only, three images produced 0 Manual Yocto build
ORV3 power shelf over RS-485, IPMI, serial over LAN none 0 None see roadmap Epic 7

8. Accelerator software stack, state of each part

These appear in CnuasGPU Design as the intended software stack. Some are now implemented and appear with their tests in section 3 above; the rest have no code and therefore no tests. They are listed together so that the gap is explicit rather than implied. Each has a datasheet recording the specified design and what is built: cnuascc, CnuasIR, CnuasCCL, CnuasSHMEM, and the mathematics libraries.

Component Models State
cnuascc nvcc Front end implemented, no code generation
CnuasIR toolchain PTX Tools and interpreter implemented
CnuasCCL NCCL v0.1 implemented, host channel
CnuasSHMEM NVSHMEM Design only
CnuasBLAS cuBLAS v0.1 implemented over the shipped kernels, see section 3
CnuasDNN cuDNN Design only
CnuasFFT cuFFT Design only
CnuasSPARSE cuSPARSE Design only
CnuasSOLVER cuSOLVER Design only
cnuas-dcgmi, cnuas-dcgm dcgmi, dcgm Design only
cnuas-prof Nsight Compute Design only

9. Keeping this page current

This page is regenerated by hand after a change to any test suite. The rule is that a roadmap entry may move to available only when a row here names a test and records a pass. When adding a component, add its row here in the same change, even if the only honest entry is None.