openclaw / openclaw/openclaw-windows-node
Qualify NVIDIA GPUs by per-device CUDA compute capability
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.1k
- Forks
- 295
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 99
Description
Problem
The NVIDIA hardware probe records the global CUDA driver API version from nvmlSystemGetCudaDriverVersion_v2 and copies its major version onto every detected GPU as CudaMajorVersion.
Eligibility then compares that global driver value with the runtime CUDA version and reports CudaCapabilityTooLow:
The CUDA driver API version and a GPU's compute capability are different facts. The current code does not call the per-device nvmlDeviceGetCudaComputeCapability API and therefore does not prove that each selected GPU architecture is supported by the pinned llama-server CUDA build.
NVIDIA documents the per-device query here:
https://docs.nvidia.com/deploy/nvml-api/group__nvmlDeviceQueries.html
Impact
A sufficiently new installed driver can satisfy the global CUDA-version check without establishing that a particular GPU is compatible with the architecture set supported by the pinned runtime artifacts. On mixed-generation systems, eligibility can select a device without explicit per-device compatibility evidence and discover the incompatibility only after downloading and launching the runtime.
Expected behavior
- Record the CUDA driver API version separately and name it accordingly.
- Probe compute-capability major and minor for every NVML device.
- Define the minimum or supported compute capabilities for each pinned runtime variant.
- Require both a compatible driver and compatible selected device.
- Fail closed when required per-device capability evidence is unavailable.
- Keep selection and launch pinned to the same stable GPU UUID.
Tests
Add coverage for:
- Compatible driver and compatible GPU
- Compatible driver but unsupported GPU compute capability
- Mixed-generation multiple-GPU selection
- Missing or unsupported NVML compute-capability query
- Clear separation of driver-version and device-capability failure reasons
Tracking requested by @joelagnel.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/OpenClaw.Shared/Inference/NvmlHostHardwareProbe.cs and LocalInferenceEligibility.cs to trace how driver versions and selected GPU UUIDs are used. Add coverage for the five listed compatibility and failure cases, then verify that driver and per-device capability checks remain separate and selection fails closed when capability evidence is unavailable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- ai, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100