feat: --gpu flag to steer offer search toward specific hardware#2
Merged
Conversation
Add a repeatable, case-insensitive substring filter on GPU name to `aiod spin` and `aiod estimate`, e.g. `--gpu rtx6000` to target RTX 6000Ada / A6000 cards. - vast: fetch a wider offer pool, filter by normalised name substring, trim to limit (vast's gpu_name API filter is exact-match only). - runpod: filter gpu types by displayName substring. - spin: "no offer found matching --gpu ..." when the filter empties results.
nathanmarlor
force-pushed
the
feat/gpu-steer-flag
branch
from
June 30, 2026 08:49
90be822 to
ddd0280
Compare
…ching The estimate table showed the sizing tier (e.g. 'A100 80GB') instead of the actual matched offer, so --gpu looked broken even when it matched. Show offer.gpu_name/num_gpus instead. Matching is now token-AND within a query (whitespace-split): --gpu 'rtx 6000' matches 'RTX PRO 6000 WS'. Shared gpu_name_matches() used by vast + runpod.
jhammant
added a commit
that referenced
this pull request
Jun 30, 2026
Cuts v0.2.0 (bundles the merged contributor work: vast v0->v1 instances fix #1, --gpu offer steering #2, download progress in status #3) and adds a live smoke-check for the one failure class the mocked suite can't catch: an upstream vendor deprecating an endpoint (as in #1, where vast's v0 instance list began returning HTTP 410). - tests/test_live.py: @pytest.mark.live probes of the real vast/runpod/HF endpoints aiod depends on. Excluded from the default run (addopts -m "not live") so `pytest tests/` stays hermetic; run via `pytest -m live`. - .github/workflows/smoke.yml: weekly + manual. Auth-free probes (runpod pricing, HF sizing) need no secrets; vast/runpod authed probes run only if VAST_API_KEY/RUNPOD_API_KEY repo secrets are set. Never runs on pull_request, so fork PRs can't reach secrets. Opens an issue on failure. - pyproject: register + default-exclude the `live` marker; bump 0.1.0 -> 0.2.0. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Owner
|
Thanks @nathanmarlor — merged 🎉 and shipped in v0.2.0. The token-AND matching in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a
--gpuflag toaiod spinandaiod estimateto steer the offer search toward specific hardware.--gpuflags, any match wins.--gpu 'rtx 6000'matchesRTX PRO 6000 WS;--gpu a6000matchesRTX A6000;--gpu 6000matches both. Prefer spaced tokens — a gluedrtx6000only matches a contiguous run.How
gpu_name_matches(), trim to limit — vast'sgpu_nameAPI filter is exact-match only.displayNameusing the same matcher (signature parity with the vast client).offer.gpu_name) instead of the sizing-tier proxy, which previously made--gpulook broken even when it matched.Usage
```
aiod spin Qwen/Qwen2.5-Coder-32B-Instruct -q fp8 --gpu 'rtx 6000'
aiod estimate --gpu a6000 --gpu h100
```
TUI and lazy-spin proxy unchanged.
Testing
57 existing tests pass. Verified live:
--gpu '6000'and--gpu 'rtx 6000'both resolve to4x RTX PRO 6000 WSin the estimate table.