7d804eb79903caafa0708cac1e20d500ec240a13
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>
Jungfraujoch
Application to receive data from the PSI JUNGFRAU and EIGER detectors.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
70.9%
HTML
9.9%
C
7.9%
TypeScript
5.1%
Tcl
2.9%
Other
3.1%