- FFTIndexerGPU makes and transforms the projection histograms
FFT_BATCH_DIRECTIONS (4096) directions at a time, into one set of batch
buffers, and keeps only the transposed magnitudes of all directions for the
peak search, which still runs once over all of them. cuFFT's R2C gives the
same bits at any batch count (checked at histogram lengths 1024-12568 and
batches 1-16384), and every other step is per direction, so the result does
not change. Measured: the two indexers of a first pass hold 0.83 instead of
2.48 GB, plus a quarter of the plan work area (0.2 instead of 0.8 GB each at
a doubled cell bound).
- Rugnux::GPUWorkersPerCard: the per-image loop's existing rule (24 bytes a
detector pixel, half of the card's total memory) as one function, now also
capping the first pass's spot-finding workers and the pre-scan's workers
(both at most 8 a card as before). No change on a 16 GB or an 8.55 GB card
with a 16-18 Mpx detector; a 4-6 GB card gets 4-6 of them.
Output unchanged: p.hkl byte-identical on cytc_x10sa, myob_x10sa, 4nwv and
8qaw, on the RTX 5080 and with its total read as 8.55 GB.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>