interpolate: masked batch spline evaluation#225
Open
krystophny wants to merge 10 commits into
Open
Conversation
1371145 to
edae4f9
Compare
Add masked batch spline evaluation for 2D, plus OpenACC resident kernels for 1D der2/der3 and 3D der2, using unified per-point cores. Also export MAX_BATCH_* constants and extend mask tests to cover 2D.
edae4f9 to
8d49ccb
Compare
Contributor
CI Feedback 🧐A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
Add evaluate_batch_splines_2d_many_mask and evaluate_batch_splines_2d_many_der_mask, mirroring the 1d/3d masked variants: masked-out points are skipped so caller-set entries (sentinels) are preserved. These were already exported and exercised by test_batch_interpolate_mask but never implemented, leaving the branch unbuildable.
The masked/core/resident batch evaluation routines added on this branch were the only ones in their modules lacking the recursive attribute that every sibling carries (needed for OpenMP thread safety under gfortran -fcheck=all). Add it.
- batch_interpolate_1d.f90: revert 18 subroutine headers reflowed to 3-space while their bodies stayed 4-space, restoring internal consistency. - interpolate.f90 construct_splines_3d: restore properly nested do-loop indentation, lost in a merge conflict resolution that picked the unrelated branch's flattened style over main's. - batch_interpolate_types.f90: drop MAX_BATCH_QUANTITIES/MAX_BATCH_ORDER, never referenced anywhere and no fixed-size arrays to bound. - batch_interpolate_2d.f90: add evaluate_batch_splines_2d_many_mask_resident with OpenACC directives mirroring the existing evaluate_batch_splines_2d_many_resident pattern, and wire dispatch into evaluate_batch_splines_2d_many_mask. evaluate_batch_splines_2d_many_der_mask stays CPU-only: its unmasked sibling evaluate_batch_splines_2d_many_der has no resident/acc variant either (it uses heap-allocated local work arrays inside the per-point loop), so there is no established pattern to mirror there.
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.
Adds masked variants of the hot-path batch spline evaluation routines so callers can avoid recomputing field values for inactive points (e.g. converged particles in SoA Newton iterations).
Changes:
Test evidence: