ef90b933da156dfa0c805e478cb4e2b4b887628c
With two GPUs or more the two-pass quality guard's merge of the pre-pass frames gets a scaling engine of its own on device 1 (RotationScaleMerge:: SetGpuDevice), and the main engine's device ingest and first merge no longer wait for it to hand the card back. The first merge waits only for the guard's ingest, the last time the guard reads the outcomes: that merge writes per-frame fields (mosaicity among them) back into them. Neither merge reads what the other writes, and a merge gives the same bits on any card of one model, so only when the guard runs changes. With one GPU, and in the CPU build, the order is the one it was. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVmAWnzCmRKAXVUCdc4iNi
Jungfraujoch
Application to receive and analyse data from the PSI JUNGFRAU and EIGER detectors, together with
rugnux, its program for processing stored diffraction data - rotation and serial, macromolecular
and small-molecule - from images to merged reflections.
All documentation is now placed in docs/ subdirectory and for the current version hosted on Jungfraujoch Read The Docs page.
Languages
C++
77.9%
HTML
6%
C
4.7%
TypeScript
3.4%
Cuda
3%
Other
4.9%