UVH5 Reader
Source that reads a UVH5 file.
The UVH5 reader is the source of an offline correlation/visibilities post-processing pipeline. It reads correlated integrations from a UVH5 file. When CUDA is set as the device, reads come via the GPUDirect Storage HDF5 driver, so data travel to GPU memory from NVMe without a host bounce.
How it works
The block is idle until playing is enabled. At that point it starts iterating through the /Data/visdata in chunks of batchSize*Nbls, where batchSize effectively selects how many time indices to chunk per step. With the block's device set as CUDA all of this happens via GPUDirect Storage driver. The batchSize must be an integer factor of the T dimension in the data. Each compute cycle then steps through the data until it reaches the end at which point it will loop back to the beginning. If loop is enabled playing will be left enabled and the dataset will repeat, otherwise playing will be disabled.
Currently the /Data/flags and /Data/nsamples datasets are not read from the file.
The observational header fields (source name, coordinates, channel frequencies etc) are pushed to the flowgraph environment under the observatory key.
Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
filepath |
string | ./file.uvh5 |
Path of the input file. |
batchSize |
int | 1 |
The step-size for the Time dimension of the incremental read. |
playing |
boolean | false |
Master switch for reading. |
loop |
boolean | false |
Loop back to the start after reaching the end of the file. |
Output
| Name | Description |
|---|---|
signal |
Contiguous `{CF32 |
The times dimension is set by the batchSize configuration value, everything else is determined by the contents of the file being read.
Metrics
The node reports the current position of the read within the file and the current read bandwidth in MB/s.
Telemetry
The metrics below are reported to Nexus.
| Metric | Description |
|---|---|
progress |
Current file position as a percentage. |
currentBandwidth |
Read bandwidth in megabytes per second. |
Requirements
If using the CUDA device, the GPUDirect Storage stack must be installed. See host dependencies for the setup.