Class CudaLeapCalibrator
Defined in File CudaLeapCalibrator.h
Inheritance Relationships
Base Type
public icrar::ILeapCalibrator
(Class ILeapCalibrator)
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
-
CudaLeapCalibrator()