Development History
The development of EPIC from the FFT telescope and the MOFF correlator to a GPU-based, commensal all-sky imager at LWA-SV.
Precursors
Tegmark & Zaldarriaga (2009) showed that a radio telescope of identical antennas on a regular grid can be correlated by spatial fast Fourier transforms at a cost of . Tegmark & Zaldarriaga (2010) extended this to arbitrary hierarchies of rectangular grids, the "Omniscope". Both designs constrain the antenna layout and assume identical antennas. Hardware realizations include MITEoR (Zheng et al. 2014) and BEST-2 (Foster et al. 2014).
Morales (2011) introduced the Modular Optimal Frequency Fourier (MOFF) correlator. The starting point was the software-holography, or A-transpose, imaging framework of Morales & Matejek (2009), in which visibilities are gridded with the holographic antenna beam. Morales showed that this gridding operation is equivalent to the correlation of electric fields, each gridded with the aperture illumination of its own antenna. The approach removes all constraints on antenna placement and type, and preserves equivalence with optimal visibility-based imaging. The same work proposed calibration by correlating antenna voltages with output image pixels.
Software implementation and calibration
Thyagarajan et al. (2017) presented the first implementation of the MOFF formalism, the E-field Parallel Imaging Correlator. It was written as an object-oriented, parallelized Python package, and its validation is summarized below.
| Test | Result |
|---|---|
| Comparison with visibility-based holographic imaging (simulation) | Point-spread functions agreed to within 0.5% of the peak; residual differences arose from grid discretization |
| LWA1 voltage data | Images of Cygnus A and Cassiopeia A |
| Telescopes with non-identical antennas | Correct imaging, provided antenna-specific kernels were used |
The same paper formulated a cost model for comparing EPIC with FX correlation across existing and proposed radio telescopes.
Beardsley et al. (2017) developed EPICal, a feedback calibration algorithm of cost per time sample. Applied to LWA data, it increased image dynamic range by 65%.
First real-time implementation at LWA-SV (2018–2019)
Kent et al. (2019) implemented EPIC on graphics processing units within the Bifrost streaming framework. The pipeline consisted of a chain of GPU blocks:
- packet capture
- frequency decimation
- transposition
- delay calibration
- convolutional gridding (Romein 2012)
- a cuFFT spatial transform
- cross-multiplication and accumulation
The system was deployed on NVIDIA GTX 980 GPUs in August 2018. First-light observations imaged 100 kHz of bandwidth at 55.25 MHz on a 64 × 64 grid at 50 ms cadence. They recorded a meteor reflection of a distant television transmitter. Benchmarks showed a capacity of approximately 400 kHz per GPU in dual polarization.
A roofline analysis established that EPIC on GPUs is limited by memory bandwidth, whereas FX correlation is limited by arithmetic throughput.
Kent et al. (2020) examined imaging by direct Fourier transform as an alternative to gridding and FFT. This approach provides exact wide-field and non-coplanar correction, at a cost comparable to EPIC at the scale of LWA-SV.
Optimization and commensal commissioning (2020–2022)
The gridding kernel was restructured to assign one thread per antenna, which gave an approximately threefold speed-up (Memo 003). A dedicated cross-polarization module was also developed (Memo 005). These were subsequently replaced by two purpose-built Bifrost blocks:
- VGrid, a gridder that maps antenna footprints to grid cells by k-d tree search.
- XGrid, a dedicated block for the pixel-wise grid multiplication.
A dedicated server with two RTX 2080 Ti GPUs and a 40 GbE link to the station switch was installed. With it, Krishnan et al. (2023) reported a real-time bandwidth of 1.8 MHz per GPU on a 64 × 64 grid with a default integration of 81.92 ms. EPIC was commissioned as a commensal LWA-SV back end from August 2021. The commissioning observations comprised:
- solar Type III bursts consistent with simultaneous beamformed spectra
- simultaneous folding of two pulsars
- detection of a giant pulse from PSR B1133+16
- ionospheric scintillation of Cygnus A and Cassiopeia A
The associated data-quality investigations are recorded in Memos 007, 008 and 012. They identified and corrected:
- file-ordering errors
- the effects of commensal retuning
- a race condition in the autocorrelation removal
- errors in pixel scale and image orientation
A residual rotation in source positions was also measured; it is discussed under Calibration.
Fused-kernel imager and distributed system (2023–2024)
Profiling of the Bifrost pipeline showed that the separate gridding, FFT and multiplication kernels spent most of their time transferring data through GPU global memory (Memo 009). The imager was redesigned in C++ and CUDA as epic++.
Reddy et al. (2023) described the central design: a single kernel that performs gridding, the two-dimensional FFT, cross-multiplication and accumulation entirely in registers and shared memory, in half precision, with one thread block per frequency channel. On an NVIDIA RTX 4090 the kernel produces 128 × 128 images in all four polarization products for 128 channels. It processes a 40 ms block of data in approximately 35 ms with a 5 × 5 gridding kernel, at approximately 280 W.
Reddy et al. (2024) described the surrounding system, designated "Alchemist". It comprises:
- six GPU nodes, together imaging 19.2 MHz at 80 ms cadence
- orchestration with HashiCorp Nomad, Consul and Vault
- an alert-driven watch-list service
- a distributed PostgreSQL database of pixel spectrograms
- archiving of accumulated FITS images
- Prometheus-based monitoring
- the EPIC TV video stream
- the Waterfalls web application
The principal milestones of the epic++ imager are listed below.
| Version | Date | Change |
|---|---|---|
| — | February 2023 | Initial implementation |
| 0.6 | March 2024 | Database schema; frequency filtering |
| 0.8 | April 2024 | On-GPU removal of autocorrelations |
| 0.9 | April 2024 | Quick-look images |
| 0.12 | October 2024 | Video stream converted to Stokes I |
| 0.14 | October 2024 | Daily digest |
| 0.15 | November 2024 | Video timing corrections |
Open problems and extensions
The papers and memos identify the following extensions:
- Calibration. Real-time antenna-based gain calibration (EPICal on GPUs) and bandpass correction.
- Wide-field imaging. Wide-field correction through w-projection kernels, and improved anti-aliasing.
- Larger images. Images of 256 × 256 pixels, which would match the angular resolution of the station at the top of the band. These require on-chip memory beyond that of a single streaming multiprocessor on contemporary consumer GPUs.
- Transient processing. Online dedispersion, RFI excision, and automated transient detection and response.
- Alternative architectures. Implementations on field-programmable gate arrays (Thyagarajan et al. 2026), and hybrid architectures for hierarchical aperture arrays such as SKA-Low (Thyagarajan 2025).