Class CudaLeapCalibrator¶
Defined in File CudaLeapCalibrator.h
Inheritance Relationships¶
Base Type¶
public icrar::ILeapCalibrator
(Class ILeapCalibrator)
Class Documentation¶
-
class
icrar::cuda
::
CudaLeapCalibrator
: public icrar::ILeapCalibrator¶ LEAP calibration object implemented using CUDA.
Public Functions
-
CudaLeapCalibrator
()¶
-
~CudaLeapCalibrator
() override¶
-
void
Calibrate
(std::function<void(const cpu::Calibration&)> outputCallback, const icrar::MeasurementSet &ms, const std::vector<SphericalDirection> &directions, const Slice &solutionInterval, double minimumBaselineThreshold, 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
(const Eigen::MatrixXd &hostA, device_matrix<double> &deviceA, Eigen::MatrixXd &hostAd, device_matrix<double> &deviceAd, bool isFileSystemCacheEnabled, bool useCuda)¶ Calculates Ad into deviceAd, writes to cache if
isFileSystemCacheEnabled
is true.- Parameters
hostA
: matrix to invertdeviceA
: output device memory of AhostAd
: output host memory of Ad (optionally written to)deviceAd
: output device memory of AdisFileSystemCacheEnabled
: whether to use file cachinguseCuda
: whether to use cuda solvers
-
void
CalculateAd1
(const Eigen::MatrixXd &hostA1, device_matrix<double> &deviceA1, Eigen::MatrixXd &hostAd1, device_matrix<double> &deviceAd1)¶ Calculates Ad1 into deviceAd1.
- Parameters
hostA1
: matrix to invertdeviceA1
: output device memory of A1hostAd1
: output host memory of Ad1 (optionally written to)deviceAd1
: output device memory of Ad1
-
void
PhaseRotate
(const cpu::MetaData &hostMetadata, DeviceMetaData &deviceMetadata, const SphericalDirection &direction, cuda::DeviceIntegration &input, std::vector<cpu::BeamCalibration> &output_calibrations)¶ Performs only visibilities rotation on the GPU
-