diff options
Diffstat (limited to 'docs/06-portability')
| -rw-r--r-- | docs/06-portability/hardware-software-matrix.md | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/docs/06-portability/hardware-software-matrix.md b/docs/06-portability/hardware-software-matrix.md index 442e099..b8393f4 100644 --- a/docs/06-portability/hardware-software-matrix.md +++ b/docs/06-portability/hardware-software-matrix.md @@ -33,7 +33,7 @@ require configuration + verification, not new code.** | Guest | Status | |---|---| -| Linux x86_64 (stock `nvidia.ko`, CUDA) | **Reference** (initialization; execution in progress) | +| Linux x86_64 (stock `nvidia.ko`, CUDA) | **Experimental** (bring-up; probe and `nvidia-smi` work, but there is no continuous guest testing and context creation is currently blocked — see §6.1) | | Linux aarch64 | **Target** | | Windows x86_64 (WDDM driver, CUDA, 3D) | **Target** | | Other Unix (FreeBSD, ...) | Out of scope until demand | @@ -82,18 +82,44 @@ tree, add configuration/handlers, re-run the ladder. ## 6. Version matrix (maintained in the repository) -The authoritative matrix lives in `config/`: +The version/hardware configuration lives in `config/`: ``` config/ hardware/<arch>.yaml # PCI IDs, BARs, memory geometry, engine lists versions/<driver>.yaml # RPC/control inventories, capability tables - profiles/<name>.yaml # (hardware, driver, firmware) combinations we test ``` +There is no `profiles/` directory today. Note also that the code currently +hardcodes the TU104 profile, so the YAML surface is the intended interface +rather than the path the module reads at load time — treating it as +authoritative is aspirational until the profiles are wired in. + A profile is the unit of support: "hardware X + driver family Y + firmware Z = profile P, tested at rung R on date D." Releases publish the profile table. +### 6.1 Userspace driver facts + +* **Guest CUDA driver** (`libcuda`) under test: **570.144** (md5 + `ed5b2fc0044df6052df1d5113754c499`). +* **Host oracle**: `libcuda` **570.211.01** with CUDA toolkit **12.0**, used + for A/B comparisons against the guest. +* **Versioned surface**: the RM ioctl / class / control interface the userspace + driver issues — not a stable public API — see + [`../../userspace/cuda/docs/03-driver-and-gpu-interface.md`](../../userspace/cuda/docs/03-driver-and-gpu-interface.md). + +### 6.2 Engine-list portability + +The engine inventory, and how it is filtered by the class list (classDB), are +per-architecture and per-driver data. Today's gap is concrete: the emulated +list lacks the async copy engine (`COPY14`), which blocks context creation +(`cuCtxCreate` returns `rc=999`). Engine inventory belongs in the hardware +profile, validated against the host oracle per combination. For the +re-analysis workflow see +[`../../userspace/cuda/docs/07-version-upgrade-playbook.md`](../../userspace/cuda/docs/07-version-upgrade-playbook.md); +start at +[`../../userspace/cuda/READ-ME-FIRST.md`](../../userspace/cuda/READ-ME-FIRST.md). + ## 7. Architecture properties that enable portability | Property | Why it matters | |
