QUDA v0.3.2
A library for QCD on GPUs
Defines | Functions

quda/lib/gauge_quda.cpp File Reference

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <quda.h>
#include <gauge_quda.h>
#include <quda_internal.h>

Go to the source code of this file.

Defines

#define SHORT_LENGTH   65536
#define SCALE_FLOAT   ((SHORT_LENGTH-1) / 2.f)
#define SHIFT_FLOAT   (-1.f / (SHORT_LENGTH-1))

Functions

template<typename Float >
short FloatToShort (const Float &a)
template<typename Float >
void ShortToFloat (Float &a, const short &b)
template<typename Float >
void pack8 (double2 *res, Float *g, int dir, int V)
template<typename Float >
void pack8 (float4 *res, Float *g, int dir, int V)
template<typename Float >
void pack8 (float2 *res, Float *g, int dir, int V)
template<typename Float >
void pack8 (short4 *res, Float *g, int dir, int V)
template<typename Float >
void pack8 (short2 *res, Float *g, int dir, int V)
template<typename Float >
void pack12 (double2 *res, Float *g, int dir, int V)
template<typename Float >
void pack12 (float4 *res, Float *g, int dir, int V)
template<typename Float >
void pack12 (float2 *res, Float *g, int dir, int V)
template<typename Float >
void pack12 (short4 *res, Float *g, int dir, int V)
template<typename Float >
void pack12 (short2 *res, Float *g, int dir, int V)
template<typename Float >
void pack18 (double2 *res, Float *g, int dir, int V)
template<typename Float >
void pack18 (float4 *res, Float *g, int dir, int V)
template<typename Float >
void pack18 (float2 *res, Float *g, int dir, int V)
template<typename Float >
void pack18 (short4 *res, Float *g, int dir, int V)
template<typename Float >
void pack18 (short2 *res, Float *g, int dir, int V)
template<typename Float >
void accumulateComplexProduct (Float *a, Float *b, Float *c, Float sign)
template<typename Float >
void complexDotProduct (Float *a, Float *b, Float *c)
template<typename Float >
void accumulateConjugateProduct (Float *a, Float *b, Float *c, int sign)
template<typename Float >
void complexConjugateProduct (Float *a, Float *b, Float *c)
template<typename Float >
void reconstruct8 (Float *mat, int dir, int idx)
template<typename Float >
void unpack8 (Float *h_gauge, double2 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack8 (Float *h_gauge, float4 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack8 (Float *h_gauge, float2 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack8 (Float *h_gauge, short4 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack8 (Float *h_gauge, short2 *d_gauge, int dir, int V, int idx)
template<typename Float >
void reconstruct12 (Float *mat, int dir, int idx)
template<typename Float >
void unpack12 (Float *h_gauge, double2 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack12 (Float *h_gauge, float4 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack12 (Float *h_gauge, float2 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack12 (Float *h_gauge, short4 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack12 (Float *h_gauge, short2 *d_gauge, int dir, int V, int idx)
template<typename Float >
void unpack18 (Float *h_gauge, double2 *d_gauge, int dir, int V)
template<typename Float >
void unpack18 (Float *h_gauge, float4 *d_gauge, int dir, int V)
template<typename Float >
void unpack18 (Float *h_gauge, float2 *d_gauge, int dir, int V)
template<typename Float >
void unpack18 (Float *h_gauge, short4 *d_gauge, int dir, int V)
template<typename Float >
void unpack18 (Float *h_gauge, short2 *d_gauge, int dir, int V)
void freeGaugeField (FullGauge *cudaGauge)
void createGaugeField (FullGauge *cudaGauge, void *cpuGauge, QudaPrecision cuda_prec, QudaPrecision cpu_prec, GaugeFieldOrder gauge_order, ReconstructType reconstruct, GaugeFixed gauge_fixed, Tboundary t_boundary, int *XX, double anisotropy, double tadpole_coeff, int pad)
void restoreGaugeField (void *cpuGauge, FullGauge *cudaGauge, QudaPrecision cpu_prec, GaugeFieldOrder gauge_order)
void createStapleQuda (FullStaple *cudaStaple, QudaGaugeParam *param)
void freeStapleQuda (FullStaple *cudaStaple)
void createMomQuda (FullMom *cudaMom, QudaGaugeParam *param)
void freeMomQuda (FullMom *cudaMom)
template<typename Float , typename Float2 >
void pack10 (Float2 *res, Float *m, int dir, int Vh)
template<typename Float , typename Float2 >
void packMomField (Float2 *res, Float *mom, int oddBit, int Vh)
template<typename Float , typename Float2 >
void loadMomField (Float2 *even, Float2 *odd, Float *mom, int bytes, int Vh)
void loadMomToGPU (FullMom cudaMom, void *mom, QudaGaugeParam *param)
template<typename Float , typename Float2 >
void unpack10 (Float *m, Float2 *res, int dir, int Vh)
template<typename Float , typename Float2 >
void unpackMomField (Float *mom, Float2 *res, int oddBit, int Vh)
template<typename Float , typename Float2 >
void storeMomToCPUArray (Float *mom, Float2 *even, Float2 *odd, int bytes, int Vh)
void storeMomToCPU (void *mom, FullMom cudaMom, QudaGaugeParam *param)
template<typename Float , typename FloatN >
void packGaugeField (FloatN *res, Float *gauge, int oddBit, ReconstructType reconstruct, int Vh)
template<typename Float , typename FloatN >
void loadGaugeFromCPUArrayQuda (FloatN *even, FloatN *odd, Float *cpuGauge, ReconstructType reconstruct, int bytes, int Vh)
void createLinkQuda (FullGauge *cudaGauge, QudaGaugeParam *param)
void loadLinkToGPU (FullGauge cudaGauge, void *cpuGauge, QudaGaugeParam *param)
template<typename Float >
void unpack12 (Float *g, float2 *res, int dir, int V)
template<typename Float >
void unpack8 (Float *g, float2 *res, int dir, int V)
template<typename Float , typename FloatN >
void unpackGaugeField (Float *gauge, FloatN *res, int oddBit, ReconstructType reconstruct, int Vh)
template<typename Float , typename FloatN >
void storeGaugeToCPUArray (Float *cpuGauge, FloatN *even, FloatN *odd, ReconstructType reconstruct, int bytes, int Vh)
void storeLinkToCPU (void *cpuGauge, FullGauge *cudaGauge, QudaGaugeParam *param)

Define Documentation

#define SCALE_FLOAT   ((SHORT_LENGTH-1) / 2.f)

Definition at line 9 of file gauge_quda.cpp.

#define SHIFT_FLOAT   (-1.f / (SHORT_LENGTH-1))

Definition at line 10 of file gauge_quda.cpp.

#define SHORT_LENGTH   65536

Definition at line 8 of file gauge_quda.cpp.


Function Documentation

template<typename Float >
void accumulateComplexProduct ( Float *  a,
Float *  b,
Float *  c,
Float  sign 
) [inline]

Definition at line 196 of file gauge_quda.cpp.

template<typename Float >
void accumulateConjugateProduct ( Float *  a,
Float *  b,
Float *  c,
int  sign 
) [inline]

Definition at line 210 of file gauge_quda.cpp.

template<typename Float >
void complexConjugateProduct ( Float *  a,
Float *  b,
Float *  c 
) [inline]

Definition at line 217 of file gauge_quda.cpp.

template<typename Float >
void complexDotProduct ( Float *  a,
Float *  b,
Float *  c 
) [inline]

Definition at line 203 of file gauge_quda.cpp.

void createGaugeField ( FullGauge cudaGauge,
void *  cpuGauge,
QudaPrecision  cuda_prec,
QudaPrecision  cpu_prec,
GaugeFieldOrder  gauge_order,
ReconstructType  reconstruct,
GaugeFixed  gauge_fixed,
Tboundary  t_boundary,
int *  XX,
double  anisotropy,
double  tadpole_coeff,
int  pad 
)

Definition at line 725 of file gauge_quda.cpp.

void createLinkQuda ( FullGauge cudaGauge,
QudaGaugeParam param 
)

Definition at line 1195 of file gauge_quda.cpp.

void createMomQuda ( FullMom cudaMom,
QudaGaugeParam param 
)

Definition at line 969 of file gauge_quda.cpp.

void createStapleQuda ( FullStaple cudaStaple,
QudaGaugeParam param 
)

Definition at line 897 of file gauge_quda.cpp.

template<typename Float >
short FloatToShort ( const Float &  a) [inline]

Definition at line 17 of file gauge_quda.cpp.

void freeGaugeField ( FullGauge cudaGauge)

Definition at line 639 of file gauge_quda.cpp.

void freeMomQuda ( FullMom cudaMom)

Definition at line 999 of file gauge_quda.cpp.

void freeStapleQuda ( FullStaple cudaStaple)

Definition at line 927 of file gauge_quda.cpp.

template<typename Float , typename FloatN >
void loadGaugeFromCPUArrayQuda ( FloatN *  even,
FloatN *  odd,
Float *  cpuGauge,
ReconstructType  reconstruct,
int  bytes,
int  Vh 
)

Definition at line 1169 of file gauge_quda.cpp.

void loadLinkToGPU ( FullGauge  cudaGauge,
void *  cpuGauge,
QudaGaugeParam param 
)

Definition at line 1227 of file gauge_quda.cpp.

template<typename Float , typename Float2 >
void loadMomField ( Float2 *  even,
Float2 *  odd,
Float *  mom,
int  bytes,
int  Vh 
)

Definition at line 1033 of file gauge_quda.cpp.

void loadMomToGPU ( FullMom  cudaMom,
void *  mom,
QudaGaugeParam param 
)

Definition at line 1055 of file gauge_quda.cpp.

template<typename Float , typename Float2 >
void pack10 ( Float2 *  res,
Float *  m,
int  dir,
int  Vh 
) [inline]

Definition at line 1012 of file gauge_quda.cpp.

template<typename Float >
void pack12 ( double2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 88 of file gauge_quda.cpp.

template<typename Float >
void pack12 ( float4 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 97 of file gauge_quda.cpp.

template<typename Float >
void pack12 ( float2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 108 of file gauge_quda.cpp.

template<typename Float >
void pack12 ( short4 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 117 of file gauge_quda.cpp.

template<typename Float >
void pack12 ( short2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 128 of file gauge_quda.cpp.

template<typename Float >
void pack18 ( short4 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 170 of file gauge_quda.cpp.

template<typename Float >
void pack18 ( short2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 185 of file gauge_quda.cpp.

template<typename Float >
void pack18 ( double2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 137 of file gauge_quda.cpp.

template<typename Float >
void pack18 ( float4 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 146 of file gauge_quda.cpp.

template<typename Float >
void pack18 ( float2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 161 of file gauge_quda.cpp.

template<typename Float >
void pack8 ( float4 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 40 of file gauge_quda.cpp.

template<typename Float >
void pack8 ( float2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 53 of file gauge_quda.cpp.

template<typename Float >
void pack8 ( short4 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 64 of file gauge_quda.cpp.

template<typename Float >
void pack8 ( double2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 29 of file gauge_quda.cpp.

template<typename Float >
void pack8 ( short2 *  res,
Float *  g,
int  dir,
int  V 
) [inline]

Definition at line 77 of file gauge_quda.cpp.

template<typename Float , typename FloatN >
void packGaugeField ( FloatN *  res,
Float *  gauge,
int  oddBit,
ReconstructType  reconstruct,
int  Vh 
)

Definition at line 1140 of file gauge_quda.cpp.

template<typename Float , typename Float2 >
void packMomField ( Float2 *  res,
Float *  mom,
int  oddBit,
int  Vh 
)

Definition at line 1022 of file gauge_quda.cpp.

template<typename Float >
void reconstruct12 ( Float *  mat,
int  dir,
int  idx 
) [inline]

Definition at line 348 of file gauge_quda.cpp.

template<typename Float >
void reconstruct8 ( Float *  mat,
int  dir,
int  idx 
) [inline]

Definition at line 225 of file gauge_quda.cpp.

void restoreGaugeField ( void *  cpuGauge,
FullGauge cudaGauge,
QudaPrecision  cpu_prec,
GaugeFieldOrder  gauge_order 
)

Definition at line 806 of file gauge_quda.cpp.

template<typename Float >
void ShortToFloat ( Float &  a,
const short &  b 
) [inline]

Definition at line 22 of file gauge_quda.cpp.

template<typename Float , typename FloatN >
void storeGaugeToCPUArray ( Float *  cpuGauge,
FloatN *  even,
FloatN *  odd,
ReconstructType  reconstruct,
int  bytes,
int  Vh 
)

Definition at line 1313 of file gauge_quda.cpp.

void storeLinkToCPU ( void *  cpuGauge,
FullGauge cudaGauge,
QudaGaugeParam param 
)

Definition at line 1335 of file gauge_quda.cpp.

void storeMomToCPU ( void *  mom,
FullMom  cudaMom,
QudaGaugeParam param 
)

Definition at line 1113 of file gauge_quda.cpp.

template<typename Float , typename Float2 >
void storeMomToCPUArray ( Float *  mom,
Float2 *  even,
Float2 *  odd,
int  bytes,
int  Vh 
)

Definition at line 1096 of file gauge_quda.cpp.

template<typename Float , typename Float2 >
void unpack10 ( Float *  m,
Float2 *  res,
int  dir,
int  Vh 
) [inline]

Definition at line 1069 of file gauge_quda.cpp.

template<typename Float >
void unpack12 ( Float *  h_gauge,
double2 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 365 of file gauge_quda.cpp.

template<typename Float >
void unpack12 ( Float *  g,
float2 *  res,
int  dir,
int  V 
) [inline]

Definition at line 1278 of file gauge_quda.cpp.

template<typename Float >
void unpack12 ( Float *  h_gauge,
short4 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 397 of file gauge_quda.cpp.

template<typename Float >
void unpack12 ( Float *  h_gauge,
short2 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 409 of file gauge_quda.cpp.

template<typename Float >
void unpack12 ( Float *  h_gauge,
float4 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 375 of file gauge_quda.cpp.

template<typename Float >
void unpack12 ( Float *  h_gauge,
float2 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 387 of file gauge_quda.cpp.

template<typename Float >
void unpack18 ( Float *  h_gauge,
double2 *  d_gauge,
int  dir,
int  V 
) [inline]

Definition at line 419 of file gauge_quda.cpp.

template<typename Float >
void unpack18 ( Float *  h_gauge,
short4 *  d_gauge,
int  dir,
int  V 
) [inline]

Definition at line 450 of file gauge_quda.cpp.

template<typename Float >
void unpack18 ( Float *  h_gauge,
float4 *  d_gauge,
int  dir,
int  V 
) [inline]

Definition at line 428 of file gauge_quda.cpp.

template<typename Float >
void unpack18 ( Float *  h_gauge,
short2 *  d_gauge,
int  dir,
int  V 
) [inline]

Definition at line 464 of file gauge_quda.cpp.

template<typename Float >
void unpack18 ( Float *  h_gauge,
float2 *  d_gauge,
int  dir,
int  V 
) [inline]

Definition at line 441 of file gauge_quda.cpp.

template<typename Float >
void unpack8 ( Float *  h_gauge,
double2 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 285 of file gauge_quda.cpp.

template<typename Float >
void unpack8 ( Float *  g,
float2 *  res,
int  dir,
int  V 
) [inline]

Definition at line 1280 of file gauge_quda.cpp.

template<typename Float >
void unpack8 ( Float *  h_gauge,
short4 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 319 of file gauge_quda.cpp.

template<typename Float >
void unpack8 ( Float *  h_gauge,
float2 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 309 of file gauge_quda.cpp.

template<typename Float >
void unpack8 ( Float *  h_gauge,
float4 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 295 of file gauge_quda.cpp.

template<typename Float >
void unpack8 ( Float *  h_gauge,
short2 *  d_gauge,
int  dir,
int  V,
int  idx 
) [inline]

Definition at line 335 of file gauge_quda.cpp.

template<typename Float , typename FloatN >
void unpackGaugeField ( Float *  gauge,
FloatN *  res,
int  oddBit,
ReconstructType  reconstruct,
int  Vh 
)

Definition at line 1284 of file gauge_quda.cpp.

template<typename Float , typename Float2 >
void unpackMomField ( Float *  mom,
Float2 *  res,
int  oddBit,
int  Vh 
)

Definition at line 1081 of file gauge_quda.cpp.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines