Files
Jungfraujoch/image_analysis
leonarski_fandClaude Opus 4.8 7d804eb799 RotationScaleMerge: GPU post-smooth group means + per-frame CC
The single-threaded ReduceGroupMeans over the 6.3M partials (~0.07s/2-pass) and the
per-frame diagnostic CC now run on the resident partials on the GPU: after SmoothG,
the smoothed corr is uploaded once (and left resident for the combine, dropping the
combine's redundant re-upload), then the post-smooth group means (reusing the scaling
reduce) and the per-frame Pearson CC (a new one-block-per-frame kernel) run there and
only the tiny per-frame cc/cc_n come back. FinalizePerFrameScale is split into
ComputePerFrameCC (host reference) + the writeback; the GPU path uses ComputePartialCC.

The per-frame CC is diagnostic only (the per-image scaling table), so the tree
reduction's ~ulp difference from the CPU is immaterial and it does not touch merged
intensities. smooth+CC region ~0.10s GPU vs ~0.15s CPU on lyso. Validated across the
battery: 15/15 deterministic crystals run-to-run deterministic and merged output
bit-identical to the CPU path (only EP_cs_01-24, unindexable noise, keeps its benign
error-model-b wobble). CPU fallbacks (JFJOCH_RSM_CPU_COMBINE / _NO_GPU) unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 08:58:26 +02:00
..
2026-06-08 08:30:35 +02:00
2026-06-23 20:29:49 +02:00
2026-04-25 19:59:21 +02:00
2026-06-23 20:29:49 +02:00
2026-06-23 20:29:49 +02:00
2026-06-25 22:01:48 +02:00
2026-06-25 22:01:48 +02:00
2026-05-28 18:48:35 +02:00
2026-06-25 22:01:48 +02:00
2026-06-25 22:01:48 +02:00
2026-06-15 20:24:15 +02:00
2026-06-15 20:24:15 +02:00
2026-06-23 20:29:49 +02:00
2026-02-18 16:17:21 +01:00
2026-06-08 08:30:35 +02:00