|
| 1 | +# GB300 Windows ARM64 MXC qualification |
| 2 | + |
| 3 | +This directory is the repository-owned qualification contract for NVBug 6643699. |
| 4 | +It closes the test-plan ambiguity without treating it as a product defect. |
| 5 | + |
| 6 | +[`gb300-woa.json`](gb300-woa.json) is the authoritative coverage matrix. Every |
| 7 | +row declares its disposition, owner, architecture, hardware dependency, |
| 8 | +prerequisites, command, pass criteria, skip policy, and required artifact roles. |
| 9 | +[`validate.py`](validate.py) rejects a contract that weakens the required rows |
| 10 | +and validates retained evidence by SHA256. [`run-gb300-woa.ps1`](run-gb300-woa.ps1) |
| 11 | +executes the required native lane and produces that evidence. |
| 12 | + |
| 13 | +## Scope decisions |
| 14 | + |
| 15 | +- The release target is a **native GB300 Windows ARM64 host** using the MXC |
| 16 | + `process_container` backend. WSL and emulated/cross-built test execution do |
| 17 | + not receive credit. |
| 18 | +- OpenClaw is the one required agent application because this repository owns |
| 19 | + its MXC launch and dynamic-forwarding harness. The caller must supply a |
| 20 | + versioned ARM64 Node.js binary and OpenClaw package. |
| 21 | +- OpenShell does not choose or ship inference models. Model qualification and |
| 22 | + additional agent applications are optional, application-owned evidence and |
| 23 | + cannot replace an OpenShell/MXC gate. |
| 24 | +- NemoClaw's native-x64 qualification guard is a separate application lane. It |
| 25 | + cannot satisfy any GB300 ARM64 row. The bundled Node/OpenClaw install helper |
| 26 | + is also x64-only; GB300 runs must not use its Node.js output. |
| 27 | +- `isolation_session` is optional because it depends on the OS build, |
| 28 | + `IsoSessionApp.dll`, and the `wxc-exec` build. Its absence does not weaken the |
| 29 | + required ProcessContainer gate. |
| 30 | +- MXC process-policy mapping, GPU passthrough, and interactive exec/connect are |
| 31 | + unsupported. Windows Docker, Kubernetes, Podman, and VM drivers remain |
| 32 | + unsupported. Host GPU presence is not evidence of MXC GPU passthrough. |
| 33 | + |
| 34 | +## Coverage summary |
| 35 | + |
| 36 | +The JSON manifest contains the full prerequisites, pass/fail criteria, and |
| 37 | +artifact contract. This compact view makes the ownership boundary reviewable. |
| 38 | + |
| 39 | +| Disposition | Coverage IDs | Owner boundary | |
| 40 | +|---|---|---| |
| 41 | +| Required | `contract-integrity`, `source-provenance`, `gb300-arm64-host`, `arm64-msvc-check`, `arm64-release-build`, `arm64-native-tests`, `arm64-unsupported-driver-contracts`, `processcontainer-real-mxc`, `processcontainer-policy-e2e`, `openclaw-arm64-forward` | OpenShell development owns repository tests; GB300 QA owns host execution and evidence; the agent-app owner supplies versioned ARM64 OpenClaw inputs | |
| 42 | +| Optional | `isolation-session`, `provider-credential-injection`, `etw-ocsf-audit`, `local-inference-models`, `additional-agent-apps` | The named component or product owner decides whether to attach extra evidence | |
| 43 | +| Unsupported | `wsl`, `windows-non-mxc-drivers`, `mxc-process-policy`, `mxc-gpu-passthrough`, `mxc-interactive-exec` | No qualification claim is permitted | |
| 44 | +| Architecture-constrained | `nemoclaw-native-x64`, `node-openclaw-x64-installer`, `windows-x64-lanes` | Native x64 lanes stay separate and receive no GB300 ARM64 credit | |
| 45 | + |
| 46 | +Required coverage is fail-closed: a missing prerequisite, `SKIP`, non-zero exit, |
| 47 | +non-ARM64 result, missing artifact role, empty artifact, path outside the evidence |
| 48 | +root, or SHA256 mismatch fails validation. Generic real-MXC developer tasks remain |
| 49 | +skip-safe and are not qualification evidence. |
| 50 | + |
| 51 | +## Validate the contract |
| 52 | + |
| 53 | +Static validation and regression tests do not require Windows or MXC hardware: |
| 54 | + |
| 55 | +```text |
| 56 | +uv run python crates/openshell-driver-mxc/qualification/validate.py contract |
| 57 | +uv run pytest python/openshell/gb300_mxc_qualification_test.py |
| 58 | +``` |
| 59 | + |
| 60 | +## Execute on GB300 |
| 61 | + |
| 62 | +Start from a clean review commit based directly on the freshly fetched |
| 63 | +`origin/windows` tip. Run from elevated native ARM64 PowerShell: |
| 64 | + |
| 65 | +```powershell |
| 66 | +$env:OPENSHELL_GB300_BASE_SHA = '<full origin/windows SHA>' |
| 67 | +$env:OPENSHELL_GB300_HARDWARE_ATTESTATION = 'GB300' |
| 68 | +$env:OPENSHELL_WXC_EXEC_PATH = 'C:\mxc-kit\bin\wxc-exec.exe' |
| 69 | +$env:OPENSHELL_GB300_NODE_PATH = 'C:\path\to\arm64\node.exe' |
| 70 | +$env:OPENSHELL_GB300_OPENCLAW_DIR = 'C:\path\to\node_modules\openclaw' |
| 71 | +$env:OPENSHELL_GB300_EVIDENCE_DIR = 'D:\evidence\openshell-gb300-<run-id>' |
| 72 | +
|
| 73 | +mise run --skip-tools windows:qualify:mxc:gb300 |
| 74 | +``` |
| 75 | + |
| 76 | +The runner fetches `origin/windows`, rejects a moved or unrelated base, requires |
| 77 | +a clean worktree, verifies the PE machine for `wxc-exec.exe` and `node.exe`, and |
| 78 | +stages only tracked examples plus freshly built ARM64 binaries. It never treats |
| 79 | +an existing source tree or an earlier result bundle as current evidence. |
| 80 | + |
| 81 | +The evidence directory contains environment/source provenance, the MXC host |
| 82 | +probe, command logs with timings, ARM64 binary hashes, the complete MXC policy |
| 83 | +and OpenClaw bundles, `evidence.json`, and the final validation log. Do not put |
| 84 | +provider credentials in command lines or retained files. Optional credential |
| 85 | +coverage must use a scoped non-production credential and prove that retained |
| 86 | +artifacts contain no secret value. |
0 commit comments