• Mitch Burnett's avatar
    create a correlator extension to the rtbf · 66e66ca4
    Mitch Burnett authored
    right now the correlator is implemented as an 'experimental extension'
    where the functionality is provided by leveraging the infrastructure
    provided by the rtbf. In most cases the correlator operates similar to
    the `BEAM_OP_RAW` mode of the beamformer with the exception of the
    output size and the inputs to a call to `cublasCgemmbatched()`.
    
    `init_correlator()` is functionally similar to `init_beamformer` except
    only relevant to `BEAM_OP_CORR` where the cublas context is constructed
    to prepare the data dimensions for the call to `correlate()`.
    
    The `run_correlator()` function is very similar also to
    `run_beamformer()` and looks again like when running `BEAM_OP_RAW`
    because it matches the requirements of copy onto device -> transpose ->
    matrix kernel (correlation instead of beamform) -> copy off teh device.
    The copy of device is conditional however. `run_correlator()` could
    really be operated inside `run_beamformer()` but to not take a penalty
    in a hit on the if statment that is not needed in the beamformer
    (because a copy off is always required) it would be better for now to
    just have a seperate method.
    
    The `corr_demo.c` is also functionally modeled the same as `rtbf_demo.c`
    except to just demonstrate the functions of correlation and conditionaly
    integration dumps.
    66e66ca4