Stelline

FBH5 Writer

Sink that writes pre-arranged tensors to FBH5.

The FBH5 Writer is the recording sink of a beamformer or spectrometer pipeline. It appends power spectra from GPU memory to an FBH5 file, the HDF5 flavor of the SIGPROC filterbank format used by blimpy and the Breakthrough Listen toolchain. Writes go through the GPUDirect Storage HDF5 driver with the input buffer registered against CUfile, so spectra travel from GPU memory to NVMe without a host bounce.

How it works

The block is idle until recording is enabled. At that point it builds the filterbank header from the input tensor shape, opens the file through the GPUDirect Storage driver, and allocates the mask dataset that accompanies the data. Each compute cycle then appends one input tensor to the data dataset directly from the registered GPU buffer. The input shape is locked when recording starts, and any change in shape, data type, or contiguity afterwards aborts the write with an error.

The observational header fields (source name, coordinates, start time, channel frequencies) are currently filled with fixed placeholder values rather than live metadata, so downstream tooling should treat them as provisional until the block is wired to the flowgraph environment like the UVH5 Writer.

Configuration

Parameter Type Default Description
filepath string ./file.fbh5 Path of the output file. The parent directory must exist.
overwrite boolean false Replace an existing file instead of refusing to start.
recording boolean false Master switch for writing.

Input

Name Description
input Contiguous F32 tensor shaped [time, beams, channels, intermediate frequencies].

The time dimension sets how many spectra are appended per compute cycle, and the channel dimension sets the number of frequency channels per spectrum.

Metrics

The node reports the total data written, the current write bandwidth in MB/s, and the number of chunks committed to the file.

Telemetry

The metrics below are reported to Nexus.

Metric Description
bandwidth Write bandwidth in megabytes per second.
totalDataWritten Total written FBH5 payload in megabytes.
chunksWritten Total number of written FBH5 chunks.

Requirements

The GPUDirect Storage stack must be installed. See host dependencies for the setup.