Clone gpgpu-sim for issue triage and answer questions instead of only triaging - #559
Open
JRPan wants to merge 1 commit into
Open
Clone gpgpu-sim for issue triage and answer questions instead of only triaging#559JRPan wants to merge 1 commit into
JRPan wants to merge 1 commit into
Conversation
… triaging The triage workflow checked out only accel-sim-framework, so every issue about the simulator core ended in "the simulator source is not present, so I could not inspect the implementation" — gpgpu-sim is cloned at build time, not a submodule. Clone it for triage too, fork-aware and non-fatal, and name the commit the citations came from in the posted comment. Split the skill into two paths off an explicit classification. A defect report still gets the grounded, maintainer-facing triage note. A question now gets answered for the reporter: the mechanism, the flags with their registered defaults, and the limits they will hit next. Flag defaults come from the option_parser_register call rather than the help string, which sometimes disagrees with it. Questions fan out to two researchers on complementary angles before a compose pass writes the answer. opencode's task tool hangs against the local provider, so the fan-out is separate processes joined with wait; LLAMACPP_B_URL points the second one at another llama.cpp server so the two do not queue on one instance. The agents print their output and bash extracts issue-triage.md and issue-labels.txt from it, as pr-ai-review already does, so a model that skips the write tool can no longer yield an empty comment. opencode reads stdin for piped prompt context, so every invocation gets </dev/null or it blocks before ever calling the model. Co-Authored-By: Claude Opus 5 (1M context) <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.
Why
On #558 the triage bot ended with:
That was accurate —
gpu-simulator/gpgpu-simis not a submodule (there is no.gitmodules), it is cloned at build time byclone_gpgpusimin.github/scripts/lib/common.sh, and the triage job only checked out the framework. Most issues here are about the simulator core, so the bot could not ground the majority of what it was asked to triage.Separately, #558 was a question, and the bot answered it with "the claim holds up" and "nothing needed from the reporter" — correct, and of no use to the person who asked.
What changed
gpgpu-sim is cloned for triage. Reuses the existing fork-aware
.github/scripts/clone-gpgpusim.shat the default branch. Non-fatal: a failed clone emits a warning, triage continues against the framework alone, and the skill is told to say so. The resolvedbranch@shagoes into the posted comment so every citation is traceable. Cost is ~2 s and 50 MB — the repo is smaller than the framework the job already checks out.The skill has two paths, off an explicit classification.
### AI Triage, maintainer-facing — unchanged### Answer, reporter-facingPath A answers the question: the mechanism, the config flags with their registered defaults (from
option_parser_register, not the help string — the two sometimes disagree), and a mandatory Limits worth knowing section for hardcoded assumptions and unmodeled behavior.Question triage fans out. Two researchers take complementary angles (mechanism vs. configuration/limits) and a compose pass verifies their citations against the source before using them. opencode's own
tasktool hangs against the local provider, so the fan-out is separate processes joined withwait; the optionalLLAMACPP_B_URLrepo var routes the second researcher to another llama.cpp server so the two do not queue on one instance.Output extraction no longer depends on the write tool. The agents print their reply ending in a
LABELS:line and bash extractsissue-triage.md/issue-labels.txt— the same patternpr-ai-review.ymlalready uses after the empty-output failures. All four agents are read-only (bash: false): issue bodies are attacker-controlled text, so the model that reads them gets no shell.New repo vars, all optional:
OPENCODE_MODEL,OPENCODE_MODEL_LABEL,LLAMACPP_B_URL.Testing
Ran the workflow's own extracted
run:block against #558 on the runner host, both paths, two models.question; labelsquestion, simulator, ai-triage.addrdec.cc:236-238— "H100 has 8 SMs per GPC. GPC abstraction is not yet implemented, so we hardcode 8 here…" — plusassert(n_chiplet <= 2)atl2cache.cc:1198and the-inter_chiplet_queue_*flags. That is the substance of the maintainer's own hand-written reply on AccelSim V2 #558, recovered from the code.-gpgpu_n_chiplet_partition's default as1(the registered value). The old run had repeated the help string's "Default: 2"; code and help string disagree.LLAMACPP_B_URLset they finished 0.04 s apart.🤖 Generated with Claude Code