Repository navigation
Remove the pruning of pass plans (nonzero, needed) - #24
Merged
Merged
Conversation
NFFT.jl prunes by boxes of lines and does not use the zero-input and needed-output masks of plan_pass. The masks went through the codelet generator (zero inputs as `nothing`, statements without a needed output dropped), the stage kernels (Val arguments per mask), the chains (Pruning type parameters), PassPlan (a third type parameter and a field) and the tests. Removed: nonzero and needed of plan_pass, Pruning, NOPRUNE and PRUNE_MIN_ZERO, the mask parameters of the codelet and the kernels, prune_statements!, and the pruned tests. The generated codelets are identical to those before for every radix and both signs; the stage kernels keep their range arguments, which the threads use. Breaking for code that passes nonzero or needed to plan_pass. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 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.
Removes the pruning of the pass plans: the zero-input and needed-output masks that
plan_passtook asnonzeroandneeded. The users of the passes prune by themselves (NFFT.jl prunes by boxes of lines andcalls
plan_pass(v, d; sign, threads)only), and each mask created its own codelets, so the masks costa type parameter, a codelet family and their tests without paying off (the gain measured for r2r was
0.94–0.99 and for in-row pruning 1–5 % of a whole transform).
Changes
plan_pass: the keywordsnonzeroandneededare gone. Breaking for code that passes them.Pruning,NOPRUNE,pruning,PRUNE_MIN_ZERO, the mask parameters of the codelet and thestage kernels,
prune_statements!, thePrparameter and theprunefield ofPassPlan, and their tests.nothing. The generated codelets are identical tothose before for every radix from 2 to 31 and both signs (compared statement by statement).
Checks
mainon the M1, one thread, interleaved, minimum of two runs, 20 cases: 0.97–1.06.🤖 Generated with Claude Code