QUDA v0.4.0
A library for QCD on GPUs
|
#include <cstdlib>
#include <cstdio>
#include <string>
#include <iostream>
#include <color_spinor_field.h>
#include <clover_field.h>
#include <quda_internal.h>
#include <dslash_quda.h>
#include <sys/time.h>
#include <inline_ptx.h>
#include <dslash_textures.h>
#include <dslash_constants.h>
#include <pack_face_def.h>
#include <staggered_dslash_def.h>
#include <wilson_dslash_def.h>
#include <dw_dslash_def.h>
#include <tm_dslash_def.h>
#include <tm_core.h>
#include <clover_def.h>
#include <blas_quda.h>
#include <face_quda.h>
#include "misc_helpers.cu"
Go to the source code of this file.
#define BLOCK_DIM 64 |
Definition at line 9 of file dslash_quda.cu.
#define CLOVER_SHARED_FLOATS_PER_THREAD 0 |
Definition at line 174 of file dslash_quda.cu.
#define CUDA_EVENT_RECORD | ( | a, | |
b | |||
) |
Definition at line 99 of file dslash_quda.cu.
#define DIRECT_ACCESS_FAT_LINK |
Definition at line 28 of file dslash_quda.cu.
if (!dagger) { \ GENERIC_DSLASH(FUNC, , Xpay, gridDim, blockDim, shared, stream, param, __VA_ARGS__) \ } else { \ GENERIC_DSLASH(FUNC, Dagger, Xpay, gridDim, blockDim, shared, stream, param, __VA_ARGS__) \ }
Definition at line 258 of file dslash_quda.cu.
#define DSLASH_SHARED_FLOATS_PER_THREAD 0 |
Definition at line 170 of file dslash_quda.cu.
#define DSLASH_TIME_PROFILE | ( | ) |
Definition at line 100 of file dslash_quda.cu.
switch(param.kernel_type) { \ case INTERIOR_KERNEL: \ MORE_GENERIC_DSLASH(FUNC, DAG, X, INTERIOR_KERNEL, gridDim, blockDim, shared, stream, param, __VA_ARGS__) \ break; \ default: \ errorQuda("KernelType %d not defined for single GPU", param.kernel_type); \ }
Definition at line 225 of file dslash_quda.cu.
#define MORE_GENERIC_DSLASH | ( | FUNC, | |
DAG, | |||
X, | |||
kernel_type, | |||
gridDim, | |||
blockDim, | |||
shared, | |||
stream, | |||
param, | |||
... | |||
) |
if (x==0) { \ if (reconstruct == QUDA_RECONSTRUCT_NO) { \ FUNC ## 18 ## DAG ## Kernel<kernel_type><<<gridDim, blockDim, shared, stream>>> ( __VA_ARGS__ , param); \ } else if (reconstruct == QUDA_RECONSTRUCT_12) { \ FUNC ## 12 ## DAG ## Kernel<kernel_type><<<gridDim, blockDim, shared, stream>>> ( __VA_ARGS__ , param); \ } else { \ FUNC ## 8 ## DAG ## Kernel<kernel_type><<<gridDim, blockDim, shared, stream>>> ( __VA_ARGS__, param); \ } \ } else { \ if (reconstruct == QUDA_RECONSTRUCT_NO) { \ FUNC ## 18 ## DAG ## X ## Kernel<kernel_type><<<gridDim, blockDim, shared, stream>>> ( __VA_ARGS__, param); \ } else if (reconstruct == QUDA_RECONSTRUCT_12) { \ FUNC ## 12 ## DAG ## X ## Kernel<kernel_type><<<gridDim, blockDim, shared, stream>>> ( __VA_ARGS__, param); \ } else if (reconstruct == QUDA_RECONSTRUCT_8) { \ FUNC ## 8 ## DAG ## X ## Kernel<kernel_type> <<<gridDim, blockDim, shared, stream>>> ( __VA_ARGS__, param); \ } \ }
Definition at line 204 of file dslash_quda.cu.
#define STAGGERED_DSLASH | ( | gridDim, | |
blockDim, | |||
shared, | |||
stream, | |||
param, | |||
... | |||
) | GENERIC_DSLASH(staggeredDslash, , Axpy, gridDim, blockDim, shared, stream, param, __VA_ARGS__) |
Definition at line 266 of file dslash_quda.cu.
enum KernelType |
Definition at line 41 of file dslash_quda.cu.
void cloverCuda | ( | cudaColorSpinorField * | out, |
const cudaGaugeField & | gauge, | ||
const FullClover | clover, | ||
const cudaColorSpinorField * | in, | ||
const int | parity | ||
) |
Definition at line 1551 of file dslash_quda.cu.
void cloverDslashCuda | ( | cudaColorSpinorField * | out, |
const cudaGaugeField & | gauge, | ||
const FullClover | cloverInv, | ||
const cudaColorSpinorField * | in, | ||
const int | parity, | ||
const int | dagger, | ||
const cudaColorSpinorField * | x, | ||
const double & | a, | ||
const int * | commOverride | ||
) |
Definition at line 1207 of file dslash_quda.cu.
void domainWallDslashCuda | ( | cudaColorSpinorField * | out, |
const cudaGaugeField & | gauge, | ||
const cudaColorSpinorField * | in, | ||
const int | parity, | ||
const int | dagger, | ||
const cudaColorSpinorField * | x, | ||
const double & | m_f, | ||
const double & | k2 | ||
) |
Definition at line 1336 of file dslash_quda.cu.
void dslashCuda | ( | DslashCuda & | dslash, |
const size_t | regSize, | ||
const int | parity, | ||
const int | dagger, | ||
const int | volume, | ||
const int * | faceVolumeCB | ||
) |
Definition at line 1035 of file dslash_quda.cu.
__global__ void dummyKernel | ( | ) |
Definition at line 181 of file dslash_quda.cu.
void initCache | ( | ) |
Definition at line 185 of file dslash_quda.cu.
void initDslashCommsPattern | ( | ) |
Initialize the arrays used for the dynamic scheduling.
Definition at line 1007 of file dslash_quda.cu.
void setDslashTuning | ( | QudaTune | tune, |
QudaVerbosity | verbose | ||
) |
Definition at line 119 of file dslash_quda.cu.
void setFace | ( | const FaceBuffer & | Face | ) |
Definition at line 200 of file dslash_quda.cu.
void setTwistParam | ( | double & | a, |
double & | b, | ||
const double & | kappa, | ||
const double & | mu, | ||
const int | dagger, | ||
const QudaTwistGamma5Type | twist | ||
) |
Definition at line 647 of file dslash_quda.cu.
void staggeredDslashCuda | ( | cudaColorSpinorField * | out, |
const cudaGaugeField & | fatGauge, | ||
const cudaGaugeField & | longGauge, | ||
const cudaColorSpinorField * | in, | ||
const int | parity, | ||
const int | dagger, | ||
const cudaColorSpinorField * | x, | ||
const double & | k, | ||
const int * | commOverride | ||
) |
Definition at line 1393 of file dslash_quda.cu.
void twistedMassDslashCuda | ( | cudaColorSpinorField * | out, |
const cudaGaugeField & | gauge, | ||
const cudaColorSpinorField * | in, | ||
const int | parity, | ||
const int | dagger, | ||
const cudaColorSpinorField * | x, | ||
const double & | kappa, | ||
const double & | mu, | ||
const double & | a, | ||
const int * | commOverride | ||
) |
Definition at line 1275 of file dslash_quda.cu.
void twistGamma5Cuda | ( | cudaColorSpinorField * | out, |
const cudaColorSpinorField * | in, | ||
const int | dagger, | ||
const double & | kappa, | ||
const double & | mu, | ||
const QudaTwistGamma5Type | twist | ||
) |
Definition at line 1667 of file dslash_quda.cu.
void wilsonDslashCuda | ( | cudaColorSpinorField * | out, |
const cudaGaugeField & | gauge, | ||
const cudaColorSpinorField * | in, | ||
const int | parity, | ||
const int | dagger, | ||
const cudaColorSpinorField * | x, | ||
const double & | k, | ||
const int * | commOverride | ||
) |
Definition at line 1149 of file dslash_quda.cu.
int commDimTotal |
Definition at line 1002 of file dslash_quda.cu.
int commsCompleted[Nstream] |
Definition at line 1001 of file dslash_quda.cu.
Definition at line 63 of file dslash_quda.cu.
Definition at line 103 of file dslash_quda.cu.
int gatherCompleted[Nstream] |
Definition at line 999 of file dslash_quda.cu.
Definition at line 104 of file dslash_quda.cu.
bool kernelPackT = false |
Definition at line 61 of file dslash_quda.cu.
int Ls |
Definition at line 110 of file dslash_quda.cu.
int previousDir[Nstream] |
Definition at line 1000 of file dslash_quda.cu.
int Vspatial |
Definition at line 66 of file dslash_quda.cu.
int x[4] |
Definition at line 109 of file dslash_quda.cu.