Repository navigation
docs: performance campaign design and tools/perfinventory - #26
Merged
Merged
Conversation
Loads every module of a repository with its tests through go/packages and classes each exported function and method of the public packages as ref (timed, the file's code names a reference), noted (timed, the reference is only in comments), bench (timed alone) or none. Counts the non-Go timing scripts beside them. docs/performance-campaign.md quotes its output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ls, waves) docs/performance-campaign.md: the rules (one core, same data, same statistic, interleaved rounds, load gate, verdict, parity classes); the inventory from tools/perfinventory (2081 public functions, 234 timed against a reference, 1663 not timed); the harnesses that exist and where they break the rules; the proposed go-scikit/refbench library and CI mode; the go-simd/floats kernels to add or move (K1-K8), the go-asmgen extensions (A1-A4); the waves and how a slower row becomes an issue. COVERAGE.md and README link it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 7, 2026
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.
Design of the performance campaign for the go-scikit stack: prove every public function at least as fast as its reference on one core, and plan the go-simd / go-asmgen work that closes the gaps. No optimisation code.
docs/performance-campaign.md: rules, inventory, existing harnesses, the proposed shared tool (go-scikit/refbench, to be created withghnew), kernels K1-K8 and go-asmgen extensions A1-A4, waves W0-W4, issue filing.tools/perfinventory: the Go program behind the inventory (go/packages, type-resolved uses; 100 % coverage). Result on the 14 repositories: 2081 public functions, 234 timed against a reference by Go code, 131 timed by a benchmark paired by an outside script, 53 timed alone, 1663 not timed.Findings worth a look: go-ndarray carries its own copies of kernels go-simd/floats has (Mul, pairwise Sum, Max/Min, Dot, Clip);
special/ddandstats/internal/ddare the same package twice; go-ndarray's perf page compares multicore Go with single-threaded NumPy 2.2.4; special's scalar loop is 0.19x-0.40x SciPy on one core.🤖 Generated with Claude Code