Skip to content

2.1.1

Choose a tag to compare

@jacotay7 jacotay7 released this 26 Jul 19:44
· 28 commits to main since this release

[2.1.1] - 2026-07-26

Added

  • Exact multi-amplifier ROI geometry and measured row-major gain/offset response
    fields. The OCAM2K preset now declares its eight-output 4x2 layout; cropped
    configurations can preserve their true split pixels.
  • Optional CuPy detector execution via Camera(..., device="gpu"). Photon-rate,
    electron, FrameTruth, and digitised ADU arrays remain device-resident through
    scalar and spectral exposure paths, including all detector artifact models and
    both binning modes. Frame.device, get_backend, get_array_module, and
    to_numpy make the execution and host-copy boundaries explicit.
  • CUDA parity tests cover seeded reproducibility, CPU/GPU statistics, spectral
    truth, CCD/CMOS/sCMOS/EMCCD/eAPD paths, fixed structure, gain, and detector
    artifacts. The benchmark runner accepts --device gpu|both.
  • Added a reproducible paired-device bulk-throughput suite, self-describing JSON
    artifact, rendered reference table, and README/GPU-guide CPU-versus-GPU results
    for representative WFS, EMCCD, eAPD, and large science-frame workflows.

Changed

  • Re-characterized the OCAM2K preset from the Keck unit report and supplied
    detector studies: approximately 28 output e-/ADU (21.43 ADU per input electron
    at EM gain 600), 0.360 e- input-referred read noise, 1.579 e-/pixel/s dark
    current, and a separately derived 0.004912 e-/pixel/frame CIC term. The output
    saturation charge and representative Keck bias now use the same conversion
    convention.
  • Fixed PRNU/DSNU/hot-pixel, amplifier, bias-structure, and defect maps are built
    once on persistent Camera construction rather than regenerated for every
    frame. This preserves the fixed-pattern contract and materially improves both
    CPU and GPU warm exposure throughput.
  • Optimized warm detector execution with in-place signal construction and
    digitization, direct full-array Gamma sampling, working-precision CPU/GPU
    Gaussian and Gamma draws, and a reusable per-call GPU seed stream. The RTX
    5090 reference improves GPU CMOS throughput by 1.36x–1.42x and GPU EMCCD/eAPD
    throughput by 2.35x–2.41x over the initial implementation without changing the
    detector distributions.

Fixed

  • Separated image-area and post-multiplication saturation with the optional,
    backwards-compatible CameraConfig.output_full_well_e. Gain-stage input charge
    now clips at full_well_e before multiplication. The OCAM2K preset uses Andor's
    published 270,000 e- image well and Keck's measured 10,000-count output ceiling,
    instead of incorrectly clipping multiplied signal at 250 e- (25 ADU).