Skip to content

feat: add experimental GPU instance fingerprint collection - #100

Draft
functionstackx wants to merge 3 commits into
masterfrom
feat/experimental-gpu-instance-fingerprint
Draft

functionstackx wants to merge 3 commits into
masterfrom
feat/experimental-gpu-instance-fingerprint

Conversation

@functionstackx

@functionstackx functionstackx commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Changes

Add cmax gpu-fingerprint, an experimental, opt-in collector for numerical
GPU instance signatures. The P3 atomic-arrival-order kernel is adapted from
divagr18/gpu-instance-fingerprint,
with the upstream MIT notice retained in the distributed module.

  • Require --acknowledge-gpu-work and the existing host-role guard before work.
    Run on one selected CUDA-visible device inside the operator's allocation.
  • Keep collection outside all audit profiles and security grading. No remote
    dispatch, automatic dependency installation, network upload, or machine
    configuration changes.
  • Bound work and run CUDA in a subprocess with a timeout. Save a new mode-0600
    JSON file; reject existing paths and remove incomplete results.
  • Record protocol/kernel provenance, device model and software metadata, launch
    settings, replicate index and per-epoch rank vectors. Do not collect UUIDs,
    serials, hostnames or SM IDs.
  • Add CPU-only tests, a run guide and a hardware-validation checklist. NumPy is
    a test/development dependency; CuPy remains optional and is imported only by
    the explicitly started collector.

Scope and limits

This is a collection prototype, not an identity verifier. It does not include
the P1/P2 channels, passive torch.index_add_ experiment, enrollment database,
classifier, match threshold or fleet score.

The kernel and workload sequence differ from upstream, so this implementation
has a separate protocol ID. Upstream's reported accuracy does not qualify this
code. The upstream restart data describes container restarts, not physical
host reboot validation. A finite forgery sweep is not proof against software
replay or hostile-provider output substitution.

The draft must remain experimental until hardware testing measures repeatability,
same-model separation and false accepts/rejects under held-out sessions, load,
driver changes and separately tested restart/reboot conditions.

Validation

  • Full local suite: 2,390 tests and 1,306 subtests passed on Python 3.14.8.
  • 38 new fingerprint tests passed, including mocked device/rank collection,
    host-role refusal, explicit acknowledgment, worker timeout/interruption,
    output permissions, overwrite/symlink rejection and missing CuPy.
  • CLI and host-role regression tests passed with the new tests.
  • Wheel build passed and includes cmax/gpu_fingerprint.py with its MIT notice.
  • Public-data check and git diff --check passed.
  • GitHub Actions were still running when the PR was opened; local results are
    separate from CI status.
  • No CUDA device is available in this environment. The kernel has not been
    compiled or executed on GPU hardware; no accuracy or stability claim is made.

Example

# Inside an authorized GPU allocation; install the CuPy build for your CUDA version.
python -m pip install cupy-cuda12x
cmax gpu-fingerprint --acknowledge-gpu-work \
  --device 0 --replicate 0 --output gpu-a-r0.json

Fingerprint files can identify hardware even without UUIDs. Keep them private;
do not attach raw signatures to this public PR.

This branch has not been deployed

No deployments
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.

2 participants