Skip to content

Add runtime-neutral hardware discovery profiles - #6

Open
sfloess wants to merge 33 commits into
mainfrom
feature/hardware-discovery-profile
Open

sfloess wants to merge 33 commits into
mainfrom
feature/hardware-discovery-profile

Conversation

@sfloess

@sfloess sfloess commented Oct 30, 2026

Copy link
Copy Markdown
Member

Summary

Implements Phase 1 of #5: runtime-neutral hardware discovery and a versioned, serializable profile.

Included

  • Standard-library profile dataclasses for host, CPU, and GPU facts.
  • Linux CPU/memory discovery from /proc and GPU enumeration from DRM sysfs.
  • PCI vendor/device IDs, bound kernel driver, and dedicated VRAM when exposed.
  • Explicit shared-or-unknown memory semantics for integrated GPUs.
  • Best-effort discovery of selected diagnostic/runtime executables on PATH.
  • JSON serialization and an explicit CLI:
    • python -m evaluation_ai.hardware discover
    • python -m evaluation_ai.hardware discover --json
  • Injectable proc/sys/etc roots for deterministic tests.
  • Documentation of schema semantics and the distinction between detection and backend qualification.

Design boundaries

  • No new runtime dependencies.
  • No hardware inspection at import time.
  • No driver installation, service launch, model download, or runtime configuration mutation.
  • GPU detection is not reported as runtime support or execution qualification.
  • Missing facts remain unknown rather than inferred.

Validation

Added tests for CPU/memory/distribution discovery, multiple GPUs, shared-memory reporting, and JSON serialization. The GitHub Actions matrix will provide the execution results; I have not run the suite in a local checkout.

Closes the Phase 1 implementation portion of #5; later qualification and runtime configuration phases remain open.

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant