fix(planner): auto-tune advised colibri.c-only knobs for every engine - #1585
Merged
Merged
Conversation
_auto_tune recommends DRAFT, PIPE, COLI_CUDA_PIPE, COLI_NUMA and PIN_GB. colibri.c is the only reader of all five. glm53 was excluded for that reason, but every other family still got them: `coli plan` and `coli doctor` printed them under "auto-tune:", and --auto-tier exported them into an engine environment that never reads them. Return no knobs for any engine group other than colibri-core, the exclusion glm53 already had. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
7 tasks
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.
Symptom
coli planandcoli doctorprint anauto-tune:block on every model family except GLM-5.3. On all of them except GLM-5.2, each knob in that block is one the engine never reads.--auto-tierexports the same knobs into the engine's environment.Unfixed
dev, Windows, tiny fixtures:A user following that advice sets variables that change nothing.
coli tunealso starts from those values as its baseline environment.Root cause
_auto_tunecan emitDRAFT,PIPE,COLI_CUDA_PIPE,COLI_NUMA(+ the numactl hint) andPIN_GB.git grep '"<name>"' -- '*.c' '*.h' '*.cu' '*.inc' '*.mm'finds each of the five inc/colibri.cand nowhere else.58ed660 already hit this for glm53 and excluded it: "glm53 ... does not consume the generic DRAFT/PIPE/PIN/NUMA knobs below. Recommending them is worse than leaving them unset because
coli tunethen reports changes the engine ignores." The same holds for inkling, kimi_k3, olmoe, qwen36, qwen38, deepseek_v4 and deepseek_v41, and they were not excluded.Fix
Return no knobs for any
engine_groupother thancolibri-core, the group GLM-5.2 uses. This extends the glm53 exclusion to the other families. GLM-5.2 is unchanged. Theengine_group=Nonedefault, which only unit tests use, keeps the generic behaviour.Tests
In
c/tests/test_resource_plan.py:test_only_the_colibri_engine_gets_its_own_knobsruns four bottleneck and GPU shapes (disk, resident CPU, one GPU, mixed with two GPUs, on one or two sockets). Withcolibri-corethey emit all five knobs and the hint. Every otherengine_groupin the registry (read fromall_families(), so a new family is covered automatically) gets{}.test_sibling_plan_advises_no_colibri_knobbuilds a plan for a two-layer OLMoE container and for the GLM fixture already in the test class, with the same resources:DRAFTandPIN_GB.tune, noauto-tune:block informat_plan, and none of the five keys inenvironment_for_plan.Fail-before on unfixed
dev:That is 7 engine groups × 4 shapes, plus the plan test. The glm53 subtests already passed.
Verification
test_resource_plan,test_doctor,test_cli_output,test_env_defaults,test_openai_server,test_registry_engine_agreement,test_analysis_cache,test_v4_cli,test_autotune,test_cluster_shardingandtest_efficiency_report. That is 573 tests, OK (3 skipped), withPYTHONUTF8=1.make_qwen36_tiny.py+convert_qwen36.py,make_dsv41_tiny.py,make_olmoe_tiny.py+convert_olmoe_merged.py,make_glm_oracle.py):coli planonqwen36_tiny_c,dsv41_tinyandolmoe_tiny_cprints noauto-tune:block.coli doctor --jsonreports"tune": {}for all three.glm_tinystill printsDRAFT=0andCOLI_CUDA_PIPE=1, and doctor still reportsDRAFTandPIN_GB.Not in this PR: #1584 fixes the same class of problem in
coli tune's candidate sweep.🤖 Generated with Claude Code