Repository navigation
Conversation
…over identical cards (Niko1221#4473) Without a run config (strata bench run --url) hardware() picked the local card whose name equals the server's GPU name. A layer split reports "RTX 3090 + RTX 3090", which matches no single card, so the report fell back to the first card. Take one local card per name in the server's " + " list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lists (Niko1221#4473) collect_machine compared the server's "A + A" name against single cards too, so an attached server on two identical cards got one card, half the VRAM total and a one-card folder slug. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
Problem and result
Fixes #4473. With
strata bench run --urlthere is no run config, sobench_facts.hardware()chooses the cards fromthe server's GPU name. On a layer split the server reports every card joined by " + ", e.g.
"NVIDIA GeForce RTX 3090 + NVIDIA GeForce RTX 3090". The code kept only cards whose name equals that wholestring. None did, so it fell back to
cards[:1], and a two-card server was reported as one card.After: one local card is taken per name in the server's " + " list, in that order. Two identical cards are both
reported, a local card the server does not use is left out, and a single served name still gives one card. A run
config's
gpuselection still wins. If some served name has no local card, the old behaviour is kept.Related discussion
#4473
Approach
A small change to the
elif len(cards) > 1 and served_gpu:branch only. Theservedhandling below it (cards onlythe server can see, vendor-only names) is unchanged.
Validation
Passed:
python3.12 -m unittest tests.terminal.test_bench_facts_gpus tests.terminal.test_bench_facts_amd tests.terminal.test_bench_standard tests.terminal.test_bench tools.test_strata_bench:129 tests OK (1 skipped). Strata Control 0.1.52's bundled Python 3.12.15, Ubuntu 26.10, on this branch (main
46c152a + this commit).
tests/terminal/test_bench_facts_gpus.pyon unchanged main: 3 of 5 fail (two identical cards, a mixedpair, an unused third card).
/v1/statusreportsmachine.gpu.name="NVIDIA GeForce RTX 3090 + NVIDIA GeForce RTX 3090".hardware()with the realnvidia_gpus()and that name returns two cards on this branch and one on main.--urland--profile --no-startruns in [Benchmark] 2x RTX 3090 on PCIe 3.0 x16, dual Xeon E5-2620 v3 (Dell T630), Strata 0.2.7 #4468.Failed:
Not run:
strata bench run --urlwith this branch (onlyhardware()was run on the real machine).test_bench_facts_amd.pypass).Limits
hardware_static.gpu_countcould cover that case; it is not used here.🤖 Generated with Claude Code
Update: the same fix in tools/strata_bench.py
collect_machinecompared the server's "A + A" name against single cards the same way, so the community runner attached to a server on two identical cards reported one card, half the VRAM total and artx-3090folder slug instead of2x-rtx-3090. Second commit: one local card per name in the server's list, mirroringbench_facts.hardware().Passed:
python3.12 -m unittest tools.test_strata_bench tests.terminal.test_bench_facts_gpus tests.terminal.test_bench_standard: Ran 96 tests in 54.014s, OK (1 skipped), same environment. The newReportTests.test_two_identical_cards_the_server_names_are_both_listedagainst main'stools/strata_bench.py(production file stashed): Ran 1 test in 0.508s FAILED (failures=1)