Perf: NDCT/NDST direct 1D — blocked phase recurrence - #234
Draft
jenskeiner wants to merge 3 commits into
Draft
Conversation
… conclude Deliverables now live in a fixed, gitignored .perfeng/ (single static dir, never committed) instead of docs/perfeng/NNNN-<slug>/; removed the committed shared index. perf-init records the squash base in .perfeng/BASE. Agents commit self-contained source units during the loop (Phase E), and a new Phase G hands the run off: perf-conclude.sh squashes to one commit (reset --soft <base>), then offers push + PR to develop labelled perf-eng; package <N> renames .perfeng -> .perfeng-pr-<N> and builds a standard-ZIP perfeng-pr-<N>.zip to attach. Post-conclude follow-ups re-package and overwrite the archive in the existing PR comment.
|
|
||
|
|
||
| def failing(path): | ||
| fails = [(c, e, b) for st, c, e, b in parse(read(path)) if st in ("FAIL", "ERROR")] |
| def cmd_check(args): | ||
| names = {c for c, _, _ in failing(args.log)} | ||
| if args.expect: | ||
| expected = {ln.strip() for ln in open(args.expect) if ln.strip()} |
| if not os.path.exists(summ): | ||
| sys.stderr.write(f"error: {summ} not found\n") | ||
| return 1 | ||
| html = open(summ, encoding="utf-8").read() |
jenskeiner
marked this pull request as draft
July 2, 2026 21:20
Accuracy report2279 unchanged · 78 improved · 3 regressed
|
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.
perfeng-pr-234.zip
NDCT/NDST direct 1D — blocked phase recurrence
Optimizes the 1D branch of the direct real transforms —
nfct_trafo_direct/nfct_adjoint_direct(kernel/nfct/nfct.c) andnfst_trafo_direct/nfst_adjoint_direct(kernel/nfst/nfst.c), serial + OpenMP — by transplanting theNDFT blocked phase-recurrence optimization. Instead of recomputing
cos/sinperfrequency, the phase is advanced by a per-step complex factor within fixed-size
blocks, with an accurate reduced-argument seed per block.
Outcome
(threaded adjoint, large N).
Nargument error removed (recurrence caps argumenterror at
O(B·u)instead ofO(N·u)); verified offline, surfaced via the accuracyheatmap.
(
checkall+checkall_threads); net extended to cover the OpenMP 1D direct path(
tests/check.c).num_threads(N/B)cap on the blocked branch (platform-independent), now −40…−54% atN=64 vs baseline in float and double.
cos/sin sequence was assessed and rejected — structural endpoint conditioning defect;
the complex form's "discarded" component is load-bearing.
Deliverables
Produced by the
nfft-perf-engskill. Per the current convention the run's deliverables(phase docs,
summary.html,error-analysis.html, raw benchmark/test artifacts, charts)live in the gitignored
.perfeng/directory and are not committed — they are attachedto this PR as a zip (
perfeng-pr-234.zip).summary.htmlis the reviewer's entry point.