LALPulsar  6.1.0.1-fe68b98
ComputeFstat_Resamp_CUDA.cu File Reference

Prototypes

int XLALSetupFstatResampCUDA (void **method_data, FstatCommon *common, FstatMethodFuncs *funcs, MultiSFTVector *multiSFTs, const FstatOptionalArgs *optArgs)
 
int XLALExtractResampledTimeseries_ResampCUDA (MultiCOMPLEX8TimeSeries **multiTimeSeries_SRC_a, MultiCOMPLEX8TimeSeries **multiTimeSeries_SRC_b, void *method_data)
 
int XLALGetFstatTiming_ResampCUDA (const void *method_data, FstatTimingGeneric *timingGeneric, FstatTimingModel *timingModel)
 
static int XLALComputeFstatResampCUDA (FstatResults *Fstats, const FstatCommon *common, void *method_data)
 
static int XLALApplySpindownAndFreqShiftCUDA (cuComplex *xOut, const COMPLEX8TimeSeries *xIn, const PulsarDopplerParams *doppler, REAL8 freqShift)
 
static int XLALBarycentricResampleMultiCOMPLEX8TimeSeriesCUDA (ResampCUDAMethodData *resamp, const PulsarDopplerParams *thisPoint, const FstatCommon *common)
 Performs barycentric resampling on a multi-detector timeseries, updates resampling buffer with results. More...
 
static int XLALComputeFaFb_ResampCUDA (ResampCUDAMethodData *resamp, ResampCUDAWorkspace *ws, const PulsarDopplerParams thisPoint, REAL8 dFreq, UINT4 numFreqBins, const COMPLEX8TimeSeries *TimeSeries_SRC_a, const COMPLEX8TimeSeries *TimeSeries_SRC_b)
 
static COMPLEX8VectorCreateCOMPLEX8VectorCUDA (UINT4 length)
 
static REAL8VectorCreateREAL8VectorCUDA (UINT4 length)
 
static void DestroyCOMPLEX8VectorCUDA (COMPLEX8Vector *vec)
 
static void DestroyREAL8VectorCUDA (REAL8Vector *vec)
 
static void DestroyCOMPLEX8TimeSeriesCUDA (COMPLEX8TimeSeries *series)
 
static int MoveCOMPLEX8TimeSeriesHtoD (COMPLEX8TimeSeries *series)
 
static int MoveMultiCOMPLEX8TimeSeriesHtoD (MultiCOMPLEX8TimeSeries *multi)
 
static int CopyCOMPLEX8TimeSeriesDtoH (COMPLEX8TimeSeries **dst, COMPLEX8TimeSeries *src)
 
static int CopyMultiCOMPLEX8TimeSeriesDtoH (MultiCOMPLEX8TimeSeries **dst, MultiCOMPLEX8TimeSeries *src)
 
static void DestroyMultiCOMPLEX8TimeSeriesCUDA (MultiCOMPLEX8TimeSeries *multi)
 
static void XLALDestroyResampCUDAWorkspace (void *workspace)
 
static void XLALDestroyResampCUDAMethodData (void *method_data)
 
__global__ void CUDAAddToFaFb (cuComplex *Fa_k, cuComplex *Fb_k, cuComplex *FaX_k, cuComplex *FbX_k, UINT4 numFreqBins)
 
__global__ void CUDAComputeTwoF (REAL4 *twoF, cuComplex *Fa_k, cuComplex *Fb_k, REAL4 A, REAL4 B, REAL4 C, REAL4 E, REAL4 Dinv, UINT4 numFreqBins)
 
__global__ void CUDANormFaFb (cuComplex *Fa_out, cuComplex *Fb_out, REAL8 FreqOut0, REAL8 dFreq, REAL8 dtauX, REAL8 dt_SRC, UINT4 numFreqBins)
 
__global__ void CUDAPopulateFaFbFromRaw (cuComplex *out, cuComplex *in, UINT4 numFreqBins, UINT4 offset_bins, UINT4 decimateFFT)
 
static int XLALComputeFaFb_ResampCUDA (ResampCUDAMethodData *resamp, ResampCUDAWorkspace *ws, const PulsarDopplerParams thisPoint, REAL8 dFreq, UINT4 numFreqBins, const COMPLEX8TimeSeries *__restrict__ TimeSeries_SRC_a, const COMPLEX8TimeSeries *__restrict__ TimeSeries_SRC_b)
 
__global__ void CUDAApplySpindownAndFreqShift (cuComplex *out, cuComplex *in, PulsarDopplerParams doppler, REAL8 freqShift, REAL8 dt, REAL8 Dtau0, UINT4 s_max, UINT4 numSamplesIn)
 
static int XLALApplySpindownAndFreqShiftCUDA (cuComplex *__restrict__ xOut, const COMPLEX8TimeSeries *__restrict__ xIn, const PulsarDopplerParams *__restrict__ doppler, REAL8 freqShift)
 
__global__ void CUDAApplyHetAMInterp (cuComplex *TS_a, cuComplex *TS_b, cuComplex *TStmp1, cuComplex *TStmp2, UINT4 numSamples)
 
__global__ void CUDAApplyHetAMSrc (cuComplex *TStmp1_SRC_data, cuComplex *TStmp2_SRC_data, REAL8 *ti_DET_data, UINT4 iStart_SRC_al, REAL8 tStart_SRC_0, REAL8 tStart_DET_0, REAL8 dt_SRC, REAL8 tMid_DET_al, REAL8 tMid_SRC_al, REAL8 Tdot_al, REAL8 fHet, REAL4 a_al, REAL4 b_al, UINT4 numSamples)
 
__global__ void CUDASincInterp (cuComplex *out, REAL8 *t_out, cuComplex *in, REAL8 *win, UINT4 Dterms, UINT4 numSamplesIn, UINT4 numSamplesOut, REAL8 tmin, REAL8 dt, REAL8 oodt)
 
__global__ void CUDACreateHammingWindow (REAL8 *out, UINT4 length)
 
int SincInterp (COMPLEX8Vector *y_out, const REAL8Vector *t_out, const COMPLEX8TimeSeries *ts_in, UINT4 Dterms)
 

Go to the source code of this file.

Data Structures

struct  ResampCUDAWorkspace
 
struct  ResampCUDAMethodData
 

Macros

#define CUDA_BLOCK_SIZE   512
 
#define XLAL_CHECK_CUDA_CALL(...)
 
#define XLAL_CHECK_CUFFT_CALL(...)
 
#define CPLX_MULT(x, y)   (crectf(crealf(x)*crealf(y) - cimagf(x)*cimagf(y), cimagf(x)*crealf(y) + crealf(x)*cimagf(y)))
 
#define updateAvgF(q)   tiGen->q = ((tiGen->q *(tiGen->NCalls-1) + q)/(tiGen->NCalls))
 
#define updateAvgRS(q)   tiRS->q = ((tiRS->q *(tiGen->NCalls-1) + q)/(tiGen->NCalls))
 

Variables

__constant__ REAL8 PI = M_PI
 
__device__ __constant__ REAL8 lal_fact_inv [LAL_FACT_MAX]
 

Macro Definition Documentation

◆ updateAvgF

#define updateAvgF (   q)    tiGen->q = ((tiGen->q *(tiGen->NCalls-1) + q)/(tiGen->NCalls))

◆ updateAvgRS

#define updateAvgRS (   q)    tiRS->q = ((tiRS->q *(tiGen->NCalls-1) + q)/(tiGen->NCalls))