You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changes Since v1.2.0
Summary
Major additions: multi-process support (esp. LSQML), new constraints (object hard limits, probe support mask), probe power constraint behavior,
diffraction blur, large-tensor offload.
Several fixes in multiprocessing/LSQML and performance/memory improvements.
Docs/build/test updates and movie tooling improvements.
Change List (by theme)
Features
Multi-process LSQML reconstruction and supporting infrastructure.
Hard limits constraint on object magnitude/phase.
Probe support constraint with geometric mask (ellipse/rectangle).
Diffraction pattern blur option in forward model.
Large tensor CPU offload/reload helper on Task.
Position affine update flexibility override.
Auto-rescaling of DIP outputs, and half precision support.
Fixes
Multiple multi-GPU/multiprocess sync issues in LSQML and reconstruction hooks.
Correct device assignment for phase unwrap in multiprocessing.
Correct FFT normalization in probe power constraint.
Fix handling of remove_grid_artifacts direction.
Fix multiscan tester circular data handoff.
Logging/tqdm edge fixes.
Performance/Memory
Uniform batch sampler builds/syncs indices on GPU and rank 0 only.
Chunk processing uses expand over repeat.
Replicate tensors on-the-fly to reduce memory.
DDP instead of DataParallel for AD model.
Docs/Build/Test
Added multiprocess docs and task docs, updated index/citations.
Task now mixes in multiprocessing and changes behavior in multi-process mode:
- Device init uses process group, rank-based device selection.
- run() now has reset_timer_globals arg.
- get_data() triggers DIP generate() for object/probe.
- New set_large_tensor_device() helper.
- Multi-process selects reconstructor via get_multiprocess_reconstructor_by_enum.
- Files: src/ptychi/api/task.py, src/ptychi/maps.py, src/ptychi/parallel.py
New public class export: MultiprocessLSQMLReconstructor.
- File: src/ptychi/reconstructors/__init__.py
New type alias Numeric in API types.
- File: src/ptychi/api/types.py