QUDA v0.4.0
A library for QCD on GPUs
|
#include <read_gauge.h>
#include <gauge_field.h>
#include <hisq_force_quda.h>
#include <hw_quda.h>
#include <hisq_force_macros.h>
#include <utility>
#include "hisq_paths_force_core.h"
Go to the source code of this file.
Classes | |
struct | hisq::fermion_force::PathCoefficients< Real > |
struct | hisq::fermion_force::RealTypeId< float2 > |
struct | hisq::fermion_force::RealTypeId< double2 > |
struct | hisq::fermion_force::CoeffSign< pos_dir, odd_lattice > |
struct | hisq::fermion_force::CoeffSign< 0, 1 > |
struct | hisq::fermion_force::CoeffSign< 0, 0 > |
struct | hisq::fermion_force::CoeffSign< 1, 1 > |
struct | hisq::fermion_force::Sign< odd_lattice > |
struct | hisq::fermion_force::Sign< 1 > |
struct | hisq::fermion_force::ArrayLength< RealX > |
struct | hisq::fermion_force::ArrayLength< float4 > |
Namespaces | |
namespace | hisq |
namespace | hisq::fermion_force |
Defines | |
#define | COMPILE_HISQ_DP_18 |
#define | COMPILE_HISQ_DP_12 |
#define | COMPILE_HISQ_SP_18 |
#define | COMPILE_HISQ_SP_12 |
#define | HISQ_SITE_MATRIX_LOAD_TEX 1 |
#define | HISQ_NEW_OPROD_LOAD_TEX 1 |
#define | CONJ_INDEX(i, j) j*3 + i |
#define | addMatrixToNewOprod(mat,dir, idx, coeff, field_even, field_odd, oddness) |
#define | DD_CONCAT(n, r) n ## r ## kernel |
#define | HISQ_KERNEL_NAME(a, b) DD_CONCAT(a,b) |
#define | NEWOPROD_EVEN_TEX newOprod0TexDouble |
#define | NEWOPROD_ODD_TEX newOprod1TexDouble |
#define | LOAD_TEX_ENTRY(tex, field, idx) READ_DOUBLE2_TEXTURE(tex, field, idx) |
#define | PRECISION 0 |
#define | RECON 18 |
#define | HISQ_LOAD_LINK(linkEven, linkOdd, dir, idx, var, oddness) HISQ_LOAD_MATRIX_18_DOUBLE_TEX((oddness)?siteLink1TexDouble:siteLink0TexDouble, (oddness)?linkOdd:linkEven, dir, idx, var, Vh) |
#define | COMPUTE_LINK_SIGN(sign, dir, x) |
#define | RECONSTRUCT_SITE_LINK(var, sign) |
#define | PRECISION 0 |
#define | RECON 12 |
#define | HISQ_LOAD_LINK(linkEven, linkOdd, dir, idx, var, oddness) HISQ_LOAD_MATRIX_12_DOUBLE_TEX((oddness)?siteLink1TexDouble:siteLink0TexDouble, (oddness)?linkOdd:linkEven,dir, idx, var, Vh) |
#define | COMPUTE_LINK_SIGN(sign, dir, x) reconstructSign(sign, dir, x) |
#define | RECONSTRUCT_SITE_LINK(var, sign) FF_RECONSTRUCT_LINK_12(var, sign) |
#define | NEWOPROD_EVEN_TEX newOprod0TexSingle |
#define | NEWOPROD_ODD_TEX newOprod1TexSingle |
#define | LOAD_TEX_ENTRY(tex, field, idx) tex1Dfetch(tex,idx) |
#define | PRECISION 1 |
#define | RECON 18 |
#define | HISQ_LOAD_LINK(linkEven, linkOdd, dir, idx, var, oddness) HISQ_LOAD_MATRIX_18_SINGLE_TEX((oddness)?siteLink1TexSingle:siteLink0TexSingle, dir, idx, var, Vh) |
#define | COMPUTE_LINK_SIGN(sign, dir, x) |
#define | RECONSTRUCT_SITE_LINK(var, sign) |
#define | PRECISION 1 |
#define | RECON 12 |
#define | HISQ_LOAD_LINK(linkEven, linkOdd, dir, idx, var, oddness) HISQ_LOAD_MATRIX_12_SINGLE_TEX((oddness)?siteLink1TexSingle_recon:siteLink0TexSingle_recon, dir, idx, var, Vh) |
#define | COMPUTE_LINK_SIGN(sign, dir, x) reconstructSign(sign, dir, x) |
#define | RECONSTRUCT_SITE_LINK(var, sign) FF_RECONSTRUCT_LINK_12(var, sign) |
#define | CALL_ARGUMENTS(typeA, typeB) |
#define | CALL_MIDDLE_LINK_KERNEL(sig_sign, mu_sign) |
#define | CALL_ARGUMENTS(typeA, typeB) |
#define | CALL_SIDE_LINK_KERNEL(sig_sign, mu_sign) |
#define | CALL_ARGUMENTS(typeA, typeB) |
#define | CALL_ALL_LINK_KERNEL(sig_sign, mu_sign) |
#define | CALL_ARGUMENTS(typeA, typeB) |
#define | CALL_ARGUMENTS(typeA, typeB) |
#define | Pmu tempmat[0] |
#define | P3 tempmat[1] |
#define | P5 tempmat[2] |
#define | Pnumu tempmat[3] |
#define | Qmu tempCmat[0] |
#define | Qnumu tempCmat[1] |
Functions | |
void | hisq::fermion_force::hisqForceInitCuda (QudaGaugeParam *param) |
__device__ float2 | hisq::fermion_force::operator* (float a, const float2 &b) |
__device__ double2 | hisq::fermion_force::operator* (double a, const double2 &b) |
__device__ const float2 & | hisq::fermion_force::operator+= (float2 &a, const float2 &b) |
__device__ const double2 & | hisq::fermion_force::operator+= (double2 &a, const double2 &b) |
__device__ const float4 & | hisq::fermion_force::operator+= (float4 &a, const float4 &b) |
template<class T > | |
__device__ void | hisq::fermion_force::adjointMatrix (T *mat) |
template<int N, class T > | |
__device__ void | hisq::fermion_force::loadMatrixFromField (const T *const field_even, const T *const field_odd, int dir, int idx, T *const mat, int oddness) |
template<class T > | |
__device__ void | hisq::fermion_force::loadMatrixFromField (const T *const field_even, const T *const field_odd, int dir, int idx, T *const mat, int oddness) |
__device__ void | hisq::fermion_force::loadMatrixFromField (const float4 *const field_even, const float4 *const field_odd, int dir, int idx, float2 *const mat, int oddness) |
template<class T > | |
__device__ void | hisq::fermion_force::loadMatrixFromField (const T *const field_even, const T *const field_odd, int idx, T *const mat, int oddness) |
template<class T , class U > | |
__device__ void | hisq::fermion_force::addMatrixToField (const T *const mat, int dir, int idx, U coeff, T *const field_even, T *const field_odd, int oddness) |
template<class T , class U > | |
__device__ void | hisq::fermion_force::addMatrixToField (const T *const mat, int idx, U coeff, T *const field_even, T *const field_odd, int oddness) |
template<class T > | |
__device__ void | hisq::fermion_force::storeMatrixToField (const T *const mat, int dir, int idx, T *const field_even, T *const field_odd, int oddness) |
template<class T > | |
__device__ void | hisq::fermion_force::storeMatrixToField (const T *const mat, int idx, T *const field_even, T *const field_odd, int oddness) |
template<class T , class U > | |
__device__ void | hisq::fermion_force::storeMatrixToMomentumField (const T *const mat, int dir, int idx, U coeff, T *const mom_even, T *const mom_odd, int oddness) |
template<typename T > | |
__device__ void | hisq::fermion_force::reconstructSign (int *const sign, int dir, const T i[4]) |
template<class RealA , int oddBit> | |
__global__ void | hisq::fermion_force::do_one_link_term_kernel (const RealA *const oprodEven, const RealA *const oprodOdd, int sig, typename RealTypeId< RealA >::Type coeff, RealA *const outputEven, RealA *const outputOdd) |
template<class RealA , class RealB , int sig_positive, int mu_positive, int oddBit> | |
__global__ void | hisq::fermion_force::HISQ_KERNEL_NAME (do_middle_link, EXT)(const RealA *const oprodEven |
int sig_positive int mu_positive int oddBit __global__ void | hisq::fermion_force::HISQ_KERNEL_NAME (do_side_link, EXT)(const RealA *const P3Even |
short sig_positive short mu_positive short oddBit __global__ void | hisq::fermion_force::HISQ_KERNEL_NAME (do_all_link, EXT)(const RealA *const oprodEven |
int oddBit __global__ void | hisq::fermion_force::HISQ_KERNEL_NAME (do_longlink, EXT)(const RealB *const linkEven |
int oddBit __global__ void | hisq::fermion_force::HISQ_KERNEL_NAME (do_complete_force, EXT)(const RealB *const linkEven |
class RealB static void | hisq::fermion_force::middle_link_kernel (const RealA *const oprodEven, const RealA *const oprodOdd, const RealA *const QprevEven, const RealA *const QprevOdd, const RealB *const linkEven, const RealB *const linkOdd, const cudaGaugeField &link, int sig, int mu, typename RealTypeId< RealA >::Type coeff, dim3 gridDim, dim3 BlockDim, RealA *const PmuEven, RealA *const PmuOdd, RealA *const P3Even, RealA *const P3Odd, RealA *const QmuEven, RealA *const QmuOdd, RealA *const newOprodEven, RealA *const newOprodOdd) |
template<class RealA , class RealB > | |
void | hisq::fermion_force::longlink_terms (const RealB *const linkEven, const RealB *const linkOdd, const RealA *const naikOprodEven, const RealA *const naikOprodOdd, int sig, typename RealTypeId< RealA >::Type naik_coeff, dim3 gridDim, dim3 blockDim, const cudaGaugeField &link, RealA *const outputEven, RealA *const outputOdd) |
void | hisq::fermion_force::hisqCompleteForceCuda (const QudaGaugeParam ¶m, const cudaGaugeField &oprod, const cudaGaugeField &link, cudaGaugeField *force) |
void | hisq::fermion_force::hisqLongLinkForceCuda (double coeff, const QudaGaugeParam ¶m, const cudaGaugeField &oprod, const cudaGaugeField &link, cudaGaugeField *newOprod) |
void | hisq::fermion_force::hisqStaplesForceCuda (const double path_coeff[6], const QudaGaugeParam ¶m, const cudaGaugeField &oprod, const cudaGaugeField &link, cudaGaugeField *newOprod) |
Variables | |
texture< int4, 1 > | hisq::fermion_force::newOprod0TexDouble |
texture< int4, 1 > | hisq::fermion_force::newOprod1TexDouble |
texture< float2, 1, cudaReadModeElementType > | hisq::fermion_force::newOprod0TexSingle |
texture< float2, 1, cudaReadModeElementType > | hisq::fermion_force::newOprod1TexSingle |
__global__ void const RealA *const | hisq::fermion_force::oprodOdd |
__global__ void const RealA *const const RealA *const | hisq::fermion_force::QprevEven |
__global__ void const RealA *const const RealA *const const RealA *const | hisq::fermion_force::QprevOdd |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const | hisq::fermion_force::linkEven |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const | hisq::fermion_force::linkOdd |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int | hisq::fermion_force::sig |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int | hisq::fermion_force::mu |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type | hisq::fermion_force::coeff |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const | hisq::fermion_force::PmuEven |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const RealA *const | hisq::fermion_force::PmuOdd |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const RealA *const RealA *const | hisq::fermion_force::P3Even |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const RealA *const RealA *const RealA *const | hisq::fermion_force::P3Odd |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const RealA *const RealA *const RealA *const RealA *const | hisq::fermion_force::QmuEven |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const RealA *const RealA *const RealA *const RealA *const RealA *const | hisq::fermion_force::QmuOdd |
__global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealA *const RealA *const RealA *const RealA *const RealA *const RealA *const RealA *const | hisq::fermion_force::newOprodEven |
int sig_positive int mu_positive int oddBit __global__ void const RealA *const const RealA *const | hisq::fermion_force::QprodEven |
int sig_positive int mu_positive int oddBit __global__ void const RealA *const const RealA *const const RealA *const | hisq::fermion_force::QprodOdd |
int sig_positive int mu_positive int oddBit __global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealTypeId< RealA >::Type | hisq::fermion_force::accumu_coeff |
int sig_positive int mu_positive int oddBit __global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealTypeId< RealA >::Type RealA *const | hisq::fermion_force::shortPEven |
int sig_positive int mu_positive int oddBit __global__ void const RealA *const const RealA *const const RealA *const const RealB *const const RealB *const int int RealTypeId< RealA >::Type RealTypeId< RealA >::Type RealA *const RealA *const | hisq::fermion_force::shortPOdd |
int oddBit __global__ void const RealB *const const RealA *const | hisq::fermion_force::naikOprodEven |
int oddBit __global__ void const RealB *const const RealA *const const RealA *const | hisq::fermion_force::naikOprodOdd |
int oddBit __global__ void const RealB *const const RealA *const const RealA *const int RealTypeId< RealA >::Type RealA *const | hisq::fermion_force::outputEven |
int oddBit __global__ void const RealB *const const RealA *const | hisq::fermion_force::oprodEven |
int oddBit __global__ void const RealB *const const RealA *const const RealA *const int RealA *const | hisq::fermion_force::forceEven |
#define addMatrixToNewOprod | ( | mat, | |
dir, | |||
idx, | |||
coeff, | |||
field_even, | |||
field_odd, | |||
oddness | |||
) |
do { \ RealA* const field = (oddness)?field_odd: field_even; \ RealA value[9]; \ value[0] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9); \ value[1] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + Vh); \ value[2] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + 2*Vh); \ value[3] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + 3*Vh); \ value[4] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + 4*Vh); \ value[5] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + 5*Vh); \ value[6] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + 6*Vh); \ value[7] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + 7*Vh); \ value[8] = LOAD_TEX_ENTRY( ((oddness)?NEWOPROD_ODD_TEX:NEWOPROD_EVEN_TEX), field, idx+dir*Vhx9 + 8*Vh); \ field[idx + dir*Vhx9] = value[0] + coeff*mat[0]; \ field[idx + dir*Vhx9 + Vh] = value[1] + coeff*mat[1]; \ field[idx + dir*Vhx9 + Vhx2] = value[2] + coeff*mat[2]; \ field[idx + dir*Vhx9 + Vhx3] = value[3] + coeff*mat[3]; \ field[idx + dir*Vhx9 + Vhx4] = value[4] + coeff*mat[4]; \ field[idx + dir*Vhx9 + Vhx5] = value[5] + coeff*mat[5]; \ field[idx + dir*Vhx9 + Vhx6] = value[6] + coeff*mat[6]; \ field[idx + dir*Vhx9 + Vhx7] = value[7] + coeff*mat[7]; \ field[idx + dir*Vhx9 + Vhx8] = value[8] + coeff*mat[8]; \ }while(0)
Definition at line 196 of file hisq_paths_force_quda.cu.
#define CALL_ALL_LINK_KERNEL | ( | sig_sign, | |
mu_sign | |||
) |
if(sizeof(RealA) == sizeof(float2)){ \ if(recon == QUDA_RECONSTRUCT_NO){ \ do_all_link_sp_18_kernel<float2, float2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(float2, float2); \ do_all_link_sp_18_kernel<float2, float2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(float2, float2); \ }else{ \ do_all_link_sp_12_kernel<float2, float4, sig_sign, mu_sign, 0> CALL_ARGUMENTS(float2, float4); \ do_all_link_sp_12_kernel<float2, float4, sig_sign, mu_sign, 1> CALL_ARGUMENTS(float2, float4); \ } \ }else{ \ if(recon == QUDA_RECONSTRUCT_NO){ \ do_all_link_dp_18_kernel<double2, double2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(double2, double2); \ do_all_link_dp_18_kernel<double2, double2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(double2, double2); \ }else{ \ do_all_link_dp_12_kernel<double2, double2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(double2, double2); \ do_all_link_dp_12_kernel<double2, double2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(double2, double2); \ } \ }
#define CALL_ARGUMENTS | ( | typeA, | |
typeB | |||
) |
<<<halfGridDim, blockDim>>>((typeA*)P3Even, (typeA*)P3Odd, \ (typeA*)oprodEven, (typeA*)oprodOdd, \ (typeB*)linkEven, (typeB*)linkOdd, \ sig, mu, \ (typename RealTypeId<typeA>::Type) coeff, \ (typename RealTypeId<typeA>::Type) accumu_coeff, \ (typeA*)shortPEven, (typeA*)shortPOdd, \ (typeA*)newOprodEven, (typeA*)newOprodOdd)
#define CALL_ARGUMENTS | ( | typeA, | |
typeB | |||
) |
<<<halfGridDim, BlockDim>>>((typeA*)oprodEven, (typeA*)oprodOdd, \ (typeA*)QprevEven, (typeA*)QprevOdd, \ (typeB*)linkEven, (typeB*)linkOdd, \ sig, mu, (typename RealTypeId<typeA>::Type)coeff, \ (typeA*)PmuEven, (typeA*)PmuOdd, \ (typeA*)P3Even, (typeA*)P3Odd, \ (typeA*)QmuEven, (typeA*)QmuOdd, \ (typeA*)newOprodEven, (typeA*)newOprodOdd)
#define CALL_ARGUMENTS | ( | typeA, | |
typeB | |||
) |
<<<halfGridDim, blockDim>>>((typeA*)oprodEven, (typeA*)oprodOdd, \ (typeA*)QprevEven, (typeA*)QprevOdd, \ (typeB*)linkEven, (typeB*)linkOdd, \ sig, mu, \ (typename RealTypeId<typeA>::Type)coeff, \ (typename RealTypeId<typeA>::Type)accumu_coeff, \ (typeA*)shortPEven,(typeA*)shortPOdd, \ (typeA*)newOprodEven, (typeA*)newOprodOdd)
#define CALL_ARGUMENTS | ( | typeA, | |
typeB | |||
) |
<<<halfGridDim,blockDim>>>((typeB*)linkEven, (typeB*)linkOdd, \ (typeA*)naikOprodEven, (typeA*)naikOprodOdd, \ sig, naik_coeff, \ (typeA*)outputEven, (typeA*)outputOdd); \
#define CALL_ARGUMENTS | ( | typeA, | |
typeB | |||
) |
#define CALL_MIDDLE_LINK_KERNEL | ( | sig_sign, | |
mu_sign | |||
) |
if(sizeof(RealA) == sizeof(float2)){ \ if(recon == QUDA_RECONSTRUCT_NO){ \ do_middle_link_sp_18_kernel<float2, float2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(float2, float2); \ do_middle_link_sp_18_kernel<float2, float2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(float2, float2); \ }else{ \ do_middle_link_sp_12_kernel<float2, float4, sig_sign, mu_sign, 0> CALL_ARGUMENTS(float2, float4); \ do_middle_link_sp_12_kernel<float2, float4, sig_sign, mu_sign, 1> CALL_ARGUMENTS(float2, float4); \ } \ }else{ \ if(recon == QUDA_RECONSTRUCT_NO){ \ do_middle_link_dp_18_kernel<double2, double2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(double2, double2); \ do_middle_link_dp_18_kernel<double2, double2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(double2, double2); \ }else{ \ do_middle_link_dp_12_kernel<double2, double2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(double2, double2); \ do_middle_link_dp_12_kernel<double2, double2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(double2, double2); \ } \ }
#define CALL_SIDE_LINK_KERNEL | ( | sig_sign, | |
mu_sign | |||
) |
if(sizeof(RealA) == sizeof(float2)){ \ if(recon == QUDA_RECONSTRUCT_NO){ \ do_side_link_sp_18_kernel<float2, float2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(float2, float2); \ do_side_link_sp_18_kernel<float2, float2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(float2, float2); \ }else{ \ do_side_link_sp_12_kernel<float2, float4, sig_sign, mu_sign, 0> CALL_ARGUMENTS(float2, float4); \ do_side_link_sp_12_kernel<float2, float4, sig_sign, mu_sign, 1> CALL_ARGUMENTS(float2, float4); \ } \ }else{ \ if(recon == QUDA_RECONSTRUCT_NO){ \ do_side_link_dp_18_kernel<double2, double2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(double2, double2); \ do_side_link_dp_18_kernel<double2, double2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(double2, double2); \ }else{ \ do_side_link_dp_12_kernel<double2, double2, sig_sign, mu_sign, 0> CALL_ARGUMENTS(double2, double2); \ do_side_link_dp_12_kernel<double2, double2, sig_sign, mu_sign, 1> CALL_ARGUMENTS(double2, double2); \ } \ }
#define COMPILE_HISQ_DP_12 |
Definition at line 12 of file hisq_paths_force_quda.cu.
#define COMPILE_HISQ_DP_18 |
Definition at line 11 of file hisq_paths_force_quda.cu.
#define COMPILE_HISQ_SP_12 |
Definition at line 14 of file hisq_paths_force_quda.cu.
#define COMPILE_HISQ_SP_18 |
Definition at line 13 of file hisq_paths_force_quda.cu.
#define COMPUTE_LINK_SIGN | ( | sign, | |
dir, | |||
x | |||
) |
Definition at line 461 of file hisq_paths_force_quda.cu.
Definition at line 461 of file hisq_paths_force_quda.cu.
Definition at line 461 of file hisq_paths_force_quda.cu.
#define COMPUTE_LINK_SIGN | ( | sign, | |
dir, | |||
x | |||
) |
Definition at line 461 of file hisq_paths_force_quda.cu.
#define CONJ_INDEX | ( | i, | |
j | |||
) | j*3 + i |
#define DD_CONCAT | ( | n, | |
r | |||
) | n ## r ## kernel |
Definition at line 440 of file hisq_paths_force_quda.cu.
#define HISQ_KERNEL_NAME | ( | a, | |
b | |||
) | DD_CONCAT(a,b) |
Definition at line 442 of file hisq_paths_force_quda.cu.
#define HISQ_LOAD_LINK | ( | linkEven, | |
linkOdd, | |||
dir, | |||
idx, | |||
var, | |||
oddness | |||
) | HISQ_LOAD_MATRIX_18_DOUBLE_TEX((oddness)?siteLink1TexDouble:siteLink0TexDouble, (oddness)?linkOdd:linkEven, dir, idx, var, Vh) |
Definition at line 457 of file hisq_paths_force_quda.cu.
#define HISQ_LOAD_LINK | ( | linkEven, | |
linkOdd, | |||
dir, | |||
idx, | |||
var, | |||
oddness | |||
) | HISQ_LOAD_MATRIX_12_SINGLE_TEX((oddness)?siteLink1TexSingle_recon:siteLink0TexSingle_recon, dir, idx, var, Vh) |
Definition at line 457 of file hisq_paths_force_quda.cu.
#define HISQ_LOAD_LINK | ( | linkEven, | |
linkOdd, | |||
dir, | |||
idx, | |||
var, | |||
oddness | |||
) | HISQ_LOAD_MATRIX_12_DOUBLE_TEX((oddness)?siteLink1TexDouble:siteLink0TexDouble, (oddness)?linkOdd:linkEven,dir, idx, var, Vh) |
Definition at line 457 of file hisq_paths_force_quda.cu.
#define HISQ_LOAD_LINK | ( | linkEven, | |
linkOdd, | |||
dir, | |||
idx, | |||
var, | |||
oddness | |||
) | HISQ_LOAD_MATRIX_18_SINGLE_TEX((oddness)?siteLink1TexSingle:siteLink0TexSingle, dir, idx, var, Vh) |
Definition at line 457 of file hisq_paths_force_quda.cu.
#define HISQ_NEW_OPROD_LOAD_TEX 1 |
Definition at line 18 of file hisq_paths_force_quda.cu.
#define HISQ_SITE_MATRIX_LOAD_TEX 1 |
Definition at line 17 of file hisq_paths_force_quda.cu.
#define LOAD_TEX_ENTRY | ( | tex, | |
field, | |||
idx | |||
) | READ_DOUBLE2_TEXTURE(tex, field, idx) |
Definition at line 448 of file hisq_paths_force_quda.cu.
#define LOAD_TEX_ENTRY | ( | tex, | |
field, | |||
idx | |||
) | tex1Dfetch(tex,idx) |
Definition at line 448 of file hisq_paths_force_quda.cu.
#define NEWOPROD_EVEN_TEX newOprod0TexDouble |
Definition at line 445 of file hisq_paths_force_quda.cu.
#define NEWOPROD_EVEN_TEX newOprod0TexSingle |
Definition at line 445 of file hisq_paths_force_quda.cu.
#define NEWOPROD_ODD_TEX newOprod1TexDouble |
Definition at line 446 of file hisq_paths_force_quda.cu.
#define NEWOPROD_ODD_TEX newOprod1TexSingle |
Definition at line 446 of file hisq_paths_force_quda.cu.
#define P3 tempmat[1] |
#define P5 tempmat[2] |
#define Pmu tempmat[0] |
#define Pnumu tempmat[3] |
#define PRECISION 1 |
Definition at line 454 of file hisq_paths_force_quda.cu.
#define PRECISION 0 |
Definition at line 454 of file hisq_paths_force_quda.cu.
#define PRECISION 1 |
Definition at line 454 of file hisq_paths_force_quda.cu.
#define PRECISION 0 |
Definition at line 454 of file hisq_paths_force_quda.cu.
#define Qmu tempCmat[0] |
#define Qnumu tempCmat[1] |
#define RECON 18 |
Definition at line 455 of file hisq_paths_force_quda.cu.
#define RECON 12 |
Definition at line 455 of file hisq_paths_force_quda.cu.
#define RECON 18 |
Definition at line 455 of file hisq_paths_force_quda.cu.
#define RECON 12 |
Definition at line 455 of file hisq_paths_force_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | var, | |
sign | |||
) | FF_RECONSTRUCT_LINK_12(var, sign) |
Definition at line 462 of file hisq_paths_force_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | var, | |
sign | |||
) |
Definition at line 462 of file hisq_paths_force_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | var, | |
sign | |||
) |
Definition at line 462 of file hisq_paths_force_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | var, | |
sign | |||
) | FF_RECONSTRUCT_LINK_12(var, sign) |
Definition at line 462 of file hisq_paths_force_quda.cu.