QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Macros
dslash_quda.cuh File Reference

Go to the source code of this file.

Classes

class  DslashCuda
 
class  SharedDslashCuda
 

Macros

#define SET_CACHE(f)
 
#define LAUNCH_KERNEL(f, grid, block, shared, stream, param)
 
#define EVEN_MORE_GENERIC_DSLASH(FUNC, FLOAT, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define MORE_GENERIC_DSLASH(FUNC, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define EVEN_MORE_GENERIC_STAGGERED_DSLASH(FUNC, FLOAT, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define MORE_GENERIC_STAGGERED_DSLASH(FUNC, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define GENERIC_DSLASH(FUNC, DAG, X, gridDim, blockDim, shared, stream, param)
 
#define GENERIC_STAGGERED_DSLASH(FUNC, DAG, X, gridDim, blockDim, shared, stream, param)
 
#define DSLASH(FUNC, gridDim, blockDim, shared, stream, param)
 
#define STAGGERED_DSLASH(gridDim, blockDim, shared, stream, param)
 
#define STAGGERED_DSLASH_TIFR(gridDim, blockDim, shared, stream, param)
 
#define IMPROVED_STAGGERED_DSLASH(gridDim, blockDim, shared, stream, param)
 
#define EVEN_MORE_GENERIC_ASYM_DSLASH(FUNC, FLOAT, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define MORE_GENERIC_ASYM_DSLASH(FUNC, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define GENERIC_ASYM_DSLASH(FUNC, DAG, X, gridDim, blockDim, shared, stream, param)
 
#define ASYM_DSLASH(FUNC, gridDim, blockDim, shared, stream, param)
 
#define EVEN_MORE_GENERIC_NDEG_TM_DSLASH(FUNC, FLOAT, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define MORE_GENERIC_NDEG_TM_DSLASH(FUNC, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param)
 
#define GENERIC_NDEG_TM_DSLASH(FUNC, DAG, X, gridDim, blockDim, shared, stream, param)
 
#define NDEG_TM_DSLASH(FUNC, gridDim, blockDim, shared, stream, param)
 

Macro Definition Documentation

◆ ASYM_DSLASH

#define ASYM_DSLASH (   FUNC,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (!dagger) { \
GENERIC_ASYM_DSLASH(FUNC, , Xpay, gridDim, blockDim, shared, stream, param) \
} else { \
GENERIC_ASYM_DSLASH(FUNC, Dagger, Xpay, gridDim, blockDim, shared, stream, param) \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
QudaDagType dagger
Definition: test_util.cpp:1620

Definition at line 261 of file dslash_quda.cuh.

◆ DSLASH

#define DSLASH (   FUNC,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (!dagger) { \
GENERIC_DSLASH(FUNC, , Xpay, gridDim, blockDim, shared, stream, param) \
} else { \
GENERIC_DSLASH(FUNC, Dagger, Xpay, gridDim, blockDim, shared, stream, param) \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
QudaDagType dagger
Definition: test_util.cpp:1620

Definition at line 169 of file dslash_quda.cuh.

◆ EVEN_MORE_GENERIC_ASYM_DSLASH

#define EVEN_MORE_GENERIC_ASYM_DSLASH (   FUNC,
  FLOAT,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (reconstruct == QUDA_RECONSTRUCT_NO) { \
SET_CACHE( FUNC ## FLOAT ## 18 ## DAG ## X ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_12) { \
SET_CACHE( FUNC ## FLOAT ## 12 ## DAG ## X ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 12 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_8) { \
SET_CACHE( FUNC ## FLOAT ## 8 ## DAG ## X ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 8 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 199 of file dslash_quda.cuh.

◆ EVEN_MORE_GENERIC_DSLASH

#define EVEN_MORE_GENERIC_DSLASH (   FUNC,
  FLOAT,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (x==0) { \
if (reconstruct == QUDA_RECONSTRUCT_NO) { \
SET_CACHE( FUNC ## FLOAT ## 18 ## DAG ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_12) { \
SET_CACHE( FUNC ## FLOAT ## 12 ## DAG ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 12 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_8) { \
SET_CACHE( FUNC ## FLOAT ## 8 ## DAG ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 8 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} \
} else { \
if (reconstruct == QUDA_RECONSTRUCT_NO) { \
SET_CACHE( FUNC ## FLOAT ## 18 ## DAG ## X ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_12) { \
SET_CACHE( FUNC ## FLOAT ## 18 ## DAG ## X ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 12 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_8) { \
SET_CACHE( FUNC ## FLOAT ## 18 ## DAG ## X ## Kernel<kernel_type> ); \
LAUNCH_KERNEL( FUNC ## FLOAT ## 8 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 19 of file dslash_quda.cuh.

◆ EVEN_MORE_GENERIC_NDEG_TM_DSLASH

#define EVEN_MORE_GENERIC_NDEG_TM_DSLASH (   FUNC,
  FLOAT,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)

Definition at line 272 of file dslash_quda.cuh.

◆ EVEN_MORE_GENERIC_STAGGERED_DSLASH

#define EVEN_MORE_GENERIC_STAGGERED_DSLASH (   FUNC,
  FLOAT,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (x==0) { \
if (reconstruct == QUDA_RECONSTRUCT_NO) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 18 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_13) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 13 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_12) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 12 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_9) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 9 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_8) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 8 ## DAG ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} \
} else { \
if (reconstruct == QUDA_RECONSTRUCT_NO) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 18 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_13) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 13 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_12) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 12 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_9) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 9 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} else if (reconstruct == QUDA_RECONSTRUCT_8) { \
LAUNCH_KERNEL( FUNC ## FLOAT ## 18 ## 8 ## DAG ## X ## Kernel<kernel_type>, gridDim, blockDim, shared, stream, param); \
} \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 56 of file dslash_quda.cuh.

◆ GENERIC_ASYM_DSLASH

#define GENERIC_ASYM_DSLASH (   FUNC,
  DAG,
  X,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
switch(param.kernel_type) { \
MORE_GENERIC_ASYM_DSLASH(FUNC, DAG, X, INTERIOR_KERNEL, gridDim, blockDim, shared, stream, param) \
break; \
default: \
errorQuda("KernelType %d not defined for single GPU", param.kernel_type); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 223 of file dslash_quda.cuh.

◆ GENERIC_DSLASH

#define GENERIC_DSLASH (   FUNC,
  DAG,
  X,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
switch(param.kernel_type) { \
MORE_GENERIC_DSLASH(FUNC, DAG, X, INTERIOR_KERNEL, gridDim, blockDim, shared, stream, param) \
break; \
default: \
errorQuda("KernelType %d not defined for single GPU", param.kernel_type); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 96 of file dslash_quda.cuh.

◆ GENERIC_NDEG_TM_DSLASH

#define GENERIC_NDEG_TM_DSLASH (   FUNC,
  DAG,
  X,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
switch(param.kernel_type) { \
MORE_GENERIC_NDEG_TM_DSLASH(FUNC, DAG, X, INTERIOR_KERNEL, gridDim, blockDim, shared, stream, param) \
break; \
default: \
errorQuda("KernelType %d not defined for single GPU", param.kernel_type); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 332 of file dslash_quda.cuh.

◆ GENERIC_STAGGERED_DSLASH

#define GENERIC_STAGGERED_DSLASH (   FUNC,
  DAG,
  X,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
switch(param.kernel_type) { \
MORE_GENERIC_STAGGERED_DSLASH(FUNC, DAG, X, INTERIOR_KERNEL, gridDim, blockDim, shared, stream, param) \
break; \
default: \
errorQuda("KernelType %d not defined for single GPU", param.kernel_type); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 105 of file dslash_quda.cuh.

◆ IMPROVED_STAGGERED_DSLASH

#define IMPROVED_STAGGERED_DSLASH (   gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (!dagger) { \
GENERIC_STAGGERED_DSLASH(improvedStaggeredDslash, , Axpy, gridDim, blockDim, shared, stream, param) \
} else { \
GENERIC_STAGGERED_DSLASH(improvedStaggeredDslash, Dagger, Axpy, gridDim, blockDim, shared, stream, param) \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
QudaDagType dagger
Definition: test_util.cpp:1620

Definition at line 192 of file dslash_quda.cuh.

◆ LAUNCH_KERNEL

#define LAUNCH_KERNEL (   f,
  grid,
  block,
  shared,
  stream,
  param 
)
Value:
void *args[] = { &param }; \
void (*func)( const DslashParam ) = &(f); \
qudaLaunchKernel( (const void*)func, grid, block, args, shared, stream);
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17

Definition at line 11 of file dslash_quda.cuh.

◆ MORE_GENERIC_ASYM_DSLASH

#define MORE_GENERIC_ASYM_DSLASH (   FUNC,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (typeid(sFloat) == typeid(double2)) { \
EVEN_MORE_GENERIC_ASYM_DSLASH(FUNC, D, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat) == typeid(float4)) { \
EVEN_MORE_GENERIC_ASYM_DSLASH(FUNC, S, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat)==typeid(short4)) { \
EVEN_MORE_GENERIC_ASYM_DSLASH(FUNC, H, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 211 of file dslash_quda.cuh.

◆ MORE_GENERIC_DSLASH

#define MORE_GENERIC_DSLASH (   FUNC,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (typeid(sFloat) == typeid(double2)) { \
EVEN_MORE_GENERIC_DSLASH(FUNC, D, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat) == typeid(float4) || typeid(sFloat) == typeid(float2)) { \
EVEN_MORE_GENERIC_DSLASH(FUNC, S, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat)==typeid(short4) || typeid(sFloat) == typeid(short2)) { \
EVEN_MORE_GENERIC_DSLASH(FUNC, H, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else { \
errorQuda("Undefined precision type"); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 44 of file dslash_quda.cuh.

◆ MORE_GENERIC_NDEG_TM_DSLASH

#define MORE_GENERIC_NDEG_TM_DSLASH (   FUNC,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (typeid(sFloat) == typeid(double2)) { \
EVEN_MORE_GENERIC_NDEG_TM_DSLASH(FUNC, D, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat) == typeid(float4)) { \
EVEN_MORE_GENERIC_NDEG_TM_DSLASH(FUNC, S, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat)==typeid(short4)) { \
EVEN_MORE_GENERIC_NDEG_TM_DSLASH(FUNC, H, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else { \
errorQuda("Undefined precision type"); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 319 of file dslash_quda.cuh.

◆ MORE_GENERIC_STAGGERED_DSLASH

#define MORE_GENERIC_STAGGERED_DSLASH (   FUNC,
  DAG,
  X,
  kernel_type,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (typeid(sFloat) == typeid(double2)) { \
EVEN_MORE_GENERIC_STAGGERED_DSLASH(FUNC, D, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat) == typeid(float2)) { \
EVEN_MORE_GENERIC_STAGGERED_DSLASH(FUNC, S, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else if (typeid(sFloat)==typeid(short2)) { \
EVEN_MORE_GENERIC_STAGGERED_DSLASH(FUNC, H, DAG, X, kernel_type, gridDim, blockDim, shared, stream, param) \
} else { \
errorQuda("Undefined precision type"); \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
int X[4]
Definition: covdev_test.cpp:70

Definition at line 83 of file dslash_quda.cuh.

◆ NDEG_TM_DSLASH

#define NDEG_TM_DSLASH (   FUNC,
  gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (!dagger) { \
GENERIC_NDEG_TM_DSLASH(FUNC, , Xpay, gridDim, blockDim, shared, stream, param) \
} else { \
GENERIC_NDEG_TM_DSLASH(FUNC, Dagger, Xpay, gridDim, blockDim, shared, stream, param) \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
QudaDagType dagger
Definition: test_util.cpp:1620

Definition at line 369 of file dslash_quda.cuh.

◆ SET_CACHE

#define SET_CACHE (   f)

Definition at line 7 of file dslash_quda.cuh.

◆ STAGGERED_DSLASH

#define STAGGERED_DSLASH (   gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (!dagger) { \
GENERIC_DSLASH(staggeredDslash, , Axpy, gridDim, blockDim, shared, stream, param) \
} else { \
GENERIC_DSLASH(staggeredDslash, Dagger, Axpy, gridDim, blockDim, shared, stream, param) \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
QudaDagType dagger
Definition: test_util.cpp:1620

Definition at line 177 of file dslash_quda.cuh.

◆ STAGGERED_DSLASH_TIFR

#define STAGGERED_DSLASH_TIFR (   gridDim,
  blockDim,
  shared,
  stream,
  param 
)
Value:
if (!dagger) { \
GENERIC_DSLASH(staggeredDslashTIFR, , Axpy, gridDim, blockDim, shared, stream, param) \
} else { \
GENERIC_DSLASH(staggeredDslashTIFR, Dagger, Axpy, gridDim, blockDim, shared, stream, param) \
}
cudaStream_t * stream
QudaGaugeParam param
Definition: pack_test.cpp:17
QudaDagType dagger
Definition: test_util.cpp:1620

Definition at line 185 of file dslash_quda.cuh.