Class CudaLeapCalibrator

Inheritance Relationships

Base Type

Class Documentation

class CudaLeapCalibrator : public icrar::ILeapCalibrator

LEAP calibration object implemented using CUDA.

Public Functions

CudaLeapCalibrator()
~CudaLeapCalibrator() override
virtual void Calibrate(std::function<void(const cpu::Calibration&)> outputCallback, const icrar::MeasurementSet &ms, const std::vector<SphericalDirection> &directions, const Slice &solutionInterval, double minimumBaselineThreshold, bool computeCal1, boost::optional<unsigned int> referenceAntenna, const ComputeOptionsDTO &computeOptions) override

Interface for Leap calibration implementations.

Calibrates by performing phase rotation for each direction in directions by splitting uvws and visibilities into integration batches per timestep.

void CalculateAd(HostLeapData &leapData, device_matrix<double> &deviceA, device_matrix<double> &deviceAd, bool isFileSystemCacheEnabled, bool useCuda)

Calculates Ad into deviceAd, writes to cache if isFileSystemCacheEnabled is true.

Parameters:
  • hostA – matrix to invert

  • deviceA – output device memory of A

  • hostAd – output host memory of Ad (optionally written to)

  • deviceAd – output device memory of Ad

  • isFileSystemCacheEnabled – whether to use file caching

  • useCuda – whether to use cuda solvers

void CalculateAd1(HostLeapData &leapData, device_matrix<double> &deviceA1, device_matrix<double> &deviceAd1)

Calculates Ad1 into deviceAd1.

Parameters:
  • hostA1 – matrix to invert

  • deviceA1 – output device memory of A1

  • hostAd1 – output host memory of Ad1 (optionally written to)

  • deviceAd1 – output device memory of Ad1

void BeamCalibrate(const HostLeapData &hostMetadata, DeviceLeapData &deviceLeapData, const SphericalDirection &direction, cuda::DeviceIntegration &input, bool computeCal1, std::vector<cpu::BeamCalibration> &output_calibrations)

Performs only visibilities rotation on the GPU