|
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.
1.7.4