Repository navigation
ComfyUI Base 3.21.0: pick_lane, the cheapest test GPU that holds a measured peak - #41
Merged
Merged
Conversation
…asured peak `py/gpu_fit.py` gains `LANES` (Kaggle T4 and L4, HF ZeroGPU large and xlarge, Modal's monthly credits from a T4 to a B200, then paid RunPod), `fast_dtypes(cc)` and `pick_lane(peak_gib, minutes, needs)`: the first lane whose card holds the peak plus 10 % and whose own limit holds the run. GPU classes in `needs` are judged by the existing `fits()`, so there is one GPU_PREFER rule. The CLI takes `--peak-gib/--minutes/--needs`. Modal's prices and 24 h per-call limit are from modal.com/pricing and its timeouts guide, read 2026-10-17. Co-Authored-By: Claude Opus 5.5 <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.
What
py/gpu_fit.pylearns which free GPU a smoke should go to.LANES, cheapest first: Kaggle T4 (16 GB) and L4 (24 GB), HF ZeroGPUlarge(48 GB) andxlarge(96 GB), Modal's $30 of monthly credits from a T4 to a B200, then RunPod (RTX PRO 6000, B200, B300), marked paid.pick_lane(peak_gib, minutes, needs)returns the first lane whose card holds the measured peak plus 10 % and whose own limit holds the run:xlargesince it costs the quota twiceneedstakes fast dtypes (fp16 bf16 fp8 fp4, from the compute capability byfast_dtypes()),server(ZeroGPU runs per-call functions, so it never qualifies) and GPU classes (B200,B300). A class is judged by the existingfits(), soGPU_PREFERandpick_laneshare one rule.python3 py/gpu_fit.py --peak-gib 35.7 --minutes 10 --needs bf16printslane=zerogpu-large ... paid=no.lane=noneexits 1, and an unknown need exits 2.Modal prices and the 24 h limit come from modal.com/pricing and Modal's timeouts guide (read 2026-10-17). They match
ci/modal-smoke/modal_guard.pyin the workspace.Tests
suite/test_unit.py::test_unit_pick_lane_takes_the_cheapest_lane_that_holds_the_peak_and_the_runcovers:server, B200 throughfits()None, and the CLI exit codesThe peaks are the measured ones: Photo Auditor 17.72 GB, Krea 2 bf16 35.7 GB, Flux 2 Dev fp8 about 71 GB.
Nothing ran on the Mac except
py_compile, a CLI spot check andpackage.py --base --check. This PR's CI runs the suite. No pod used.After merge: tag
base-v3.21.0, then the workspace moves thebaseline ofrepos.txtin its own commit.🤖 Generated with Claude Code