summaryrefslogtreecommitdiffstats
path: root/docs/06-portability
diff options
context:
space:
mode:
Diffstat (limited to 'docs/06-portability')
-rw-r--r--docs/06-portability/hardware-software-matrix.md32
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 |