QUDA v0.4.0
A library for QCD on GPUs
|
#include <stdio.h>
#include <cuda_runtime.h>
#include <cuda.h>
#include <quda_internal.h>
#include <llfat_quda.h>
#include <read_gauge.h>
#include "gauge_field.h"
#include <force_common.h>
#include "llfat_core.h"
Go to the source code of this file.
Defines | |
#define | SITE_MATRIX_LOAD_TEX 0 |
#define | MULINK_LOAD_TEX 1 |
#define | FATLINK_LOAD_TEX 1 |
#define | WRITE_FAT_MATRIX(gauge, dir, idx) |
#define | WRITE_STAPLE_MATRIX(gauge, idx) |
#define | SCALAR_MULT_SU3_MATRIX(a, b, c) |
#define | LOAD_MATRIX_12_SINGLE_DECLARE(gauge, dir, idx, var, stride) |
#define | LOAD_MATRIX_12_SINGLE_TEX_DECLARE(gauge, dir, idx, var, stride) |
#define | LOAD_MATRIX_18_SINGLE_DECLARE(gauge, dir, idx, var, stride) |
#define | LOAD_MATRIX_18_SINGLE_TEX_DECLARE(gauge, dir, idx, var, stride) |
#define | LOAD_MATRIX_18_DOUBLE_DECLARE(gauge, dir, idx, var, stride) |
#define | LOAD_MATRIX_18_DOUBLE_TEX_DECLARE(gauge_tex, gauge, dir, idx, var, stride) |
#define | LOAD_MATRIX_12_DOUBLE_DECLARE(gauge, dir, idx, var, stride) |
#define | LOAD_MATRIX_12_DOUBLE_TEX_DECLARE(gauge_tex, gauge, dir, idx, var, stride) |
#define | LLFAT_ADD_SU3_MATRIX(ma, mb, mc) |
#define | LLFAT_CONCAT(a, b) a##b##Kernel |
#define | LLFAT_CONCAT_EX(a, b) a##b##Kernel_ex |
#define | LLFAT_KERNEL(a, b) LLFAT_CONCAT(a,b) |
#define | LLFAT_KERNEL_EX(a, b) LLFAT_CONCAT_EX(a,b) |
#define | PRECISION 1 |
#define | Float float |
#define | LOAD_FAT_MATRIX(gauge, dir, idx) LOAD_MATRIX_18_SINGLE_DECLARE(gauge, dir, idx, FAT, llfat_ga_stride) |
#define | LOAD_EVEN_MULINK_MATRIX(dir, idx, var) LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?muLink1TexSingle:muLink0TexSingle), dir, idx, var, staple_stride) |
#define | LOAD_ODD_MULINK_MATRIX(dir, idx, var) LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?muLink0TexSingle:muLink1TexSingle), dir, idx, var, staple_stride) |
#define | LOAD_EVEN_FAT_MATRIX(dir, idx) LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?fatGauge1TexSingle:fatGauge0TexSingle), dir, idx, FAT, llfat_ga_stride); |
#define | LOAD_ODD_FAT_MATRIX(dir, idx) LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?fatGauge0TexSingle:fatGauge1TexSingle), dir, idx, FAT, llfat_ga_stride); |
#define | DECLARE_VAR_SIGN short sign=1 |
#define | SITELINK0TEX siteLink0TexSingle_recon |
#define | SITELINK1TEX siteLink1TexSingle_recon |
#define | LOAD_EVEN_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_12_SINGLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
#define | LOAD_ODD_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_12_SINGLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
#define | LOAD_SITE_MATRIX(sitelink, dir, idx, var) LOAD_MATRIX_12_SINGLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
#define | RECONSTRUCT_SITE_LINK(sign, var) RECONSTRUCT_LINK_12(sign, var); |
#define | FloatN float4 |
#define | FloatM float2 |
#define | RECONSTRUCT 12 |
#define | sd_data float_12_sd_data |
#define | SITELINK0TEX siteLink0TexSingle_norecon |
#define | SITELINK1TEX siteLink1TexSingle_norecon |
#define | LOAD_EVEN_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_18_SINGLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
#define | LOAD_ODD_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_18_SINGLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
#define | LOAD_SITE_MATRIX(sitelink, dir, idx, var) LOAD_MATRIX_18_SINGLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
#define | RECONSTRUCT_SITE_LINK(sign, var) |
#define | FloatN float2 |
#define | FloatM float2 |
#define | RECONSTRUCT 18 |
#define | sd_data float_18_sd_data |
#define | PRECISION 0 |
#define | Float double |
#define | LOAD_FAT_MATRIX(gauge, dir, idx) LOAD_MATRIX_18_DOUBLE_DECLARE(gauge, dir, idx, FAT, llfat_ga_stride) |
#define | LOAD_EVEN_MULINK_MATRIX(dir, idx, var) LOAD_MATRIX_18_DOUBLE_TEX_DECLARE(odd_bit?muLink1TexDouble:muLink0TexDouble), mulink_even, dir, idx, var, staple_stride) |
#define | LOAD_ODD_MULINK_MATRIX(dir, idx, var) LOAD_MATRIX_18_DOUBLE_TEX_DECLARE((odd_bit?muLink0TexDouble:muLink1TexDouble), mulink_odd, dir, idx, var, staple_stride) |
#define | LOAD_EVEN_FAT_MATRIX(dir, idx) LOAD_MATRIX_18_DOUBLE_TEX_DECLARE((odd_bit?fatGauge1TexDouble:fatGauge0TexDouble), fatlink_even, dir, idx, FAT, llfat_ga_stride) |
#define | LOAD_ODD_FAT_MATRIX(dir, idx) LOAD_MATRIX_18_DOUBLE_TEX_DECLARE((odd_bit?fatGauge0TexDouble:fatGauge1TexDouble), fatlink_odd, dir, idx, FAT, llfat_ga_stride) |
#define | SITELINK0TEX siteLink0TexDouble |
#define | SITELINK1TEX siteLink1TexDouble |
#define | LOAD_EVEN_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_18_DOUBLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
#define | LOAD_ODD_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_18_DOUBLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
#define | LOAD_SITE_MATRIX(sitelink, dir, idx, var) LOAD_MATRIX_18_DOUBLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
#define | RECONSTRUCT_SITE_LINK(sign, var) |
#define | FloatN double2 |
#define | FloatM double2 |
#define | RECONSTRUCT 18 |
#define | sd_data double_18_sd_data |
#define | SITELINK0TEX siteLink0TexDouble |
#define | SITELINK1TEX siteLink1TexDouble |
#define | LOAD_EVEN_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_12_DOUBLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
#define | LOAD_ODD_SITE_MATRIX(dir, idx, var) LOAD_MATRIX_12_DOUBLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
#define | LOAD_SITE_MATRIX(sitelink, dir, idx, var) LOAD_MATRIX_12_DOUBLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
#define | RECONSTRUCT_SITE_LINK(sign, var) RECONSTRUCT_LINK_12(sign, var); |
#define | FloatN double2 |
#define | FloatM double2 |
#define | RECONSTRUCT 12 |
#define | sd_data double_12_sd_data |
#define | UNBIND_ALL_TEXTURE |
#define | UNBIND_SITE_AND_FAT_LINK |
#define | BIND_MU_LINK() |
#define | UNBIND_MU_LINK() |
#define | BIND_SITE_AND_FAT_LINK |
#define | BIND_MU_LINK() |
#define | UNBIND_MU_LINK() |
#define | BIND_SITE_AND_FAT_LINK_REVERSE |
#define | ENUMERATE_FUNCS(mu, nu) |
#define | ENUMERATE_FUNCS_SAVE(mu, nu, save_staple) |
#define | CALL_FUNCTION(mu, nu) |
#define | CALL_FUNCTION(mu, nu, save_staple) |
#define | CALL_FUNCTION(mu, nu) |
#define | CALL_FUNCTION(mu, nu, save_staple) |
Functions | |
void | llfat_init_cuda (QudaGaugeParam *param) |
void | llfat_init_cuda_ex (QudaGaugeParam *param_ex) |
void | siteComputeGenStapleParityKernel (void *staple_even, void *staple_odd, void *sitelink_even, void *sitelink_odd, void *fatlink_even, void *fatlink_odd, int mu, int nu, double mycoeff, QudaReconstructType recon, QudaPrecision prec, dim3 halfGridDim, llfat_kernel_param_t kparam, cudaStream_t *stream) |
void | computeGenStapleFieldParityKernel (void *staple_even, void *staple_odd, void *sitelink_even, void *sitelink_odd, void *fatlink_even, void *fatlink_odd, void *mulink_even, void *mulink_odd, int mu, int nu, int save_staple, double mycoeff, QudaReconstructType recon, QudaPrecision prec, dim3 halfGridDim, llfat_kernel_param_t kparam, cudaStream_t *stream) |
void | siteComputeGenStapleParityKernel_ex (void *staple_even, void *staple_odd, void *sitelink_even, void *sitelink_odd, void *fatlink_even, void *fatlink_odd, int mu, int nu, double mycoeff, QudaReconstructType recon, QudaPrecision prec, llfat_kernel_param_t kparam) |
void | computeGenStapleFieldParityKernel_ex (void *staple_even, void *staple_odd, void *sitelink_even, void *sitelink_odd, void *fatlink_even, void *fatlink_odd, void *mulink_even, void *mulink_odd, int mu, int nu, int save_staple, double mycoeff, QudaReconstructType recon, QudaPrecision prec, llfat_kernel_param_t kparam) |
void | llfatOneLinkKernel (cudaGaugeField &cudaFatLink, cudaGaugeField &cudaSiteLink, cudaGaugeField &cudaStaple, cudaGaugeField &cudaStaple1, QudaGaugeParam *param, double *act_path_coeff) |
void | llfatOneLinkKernel_ex (cudaGaugeField &cudaFatLink, cudaGaugeField &cudaSiteLink, cudaGaugeField &cudaStaple, cudaGaugeField &cudaStaple1, QudaGaugeParam *param, double *act_path_coeff, llfat_kernel_param_t kparam) |
Variables | |
__constant__ int | dir1_array [16] |
__constant__ int | dir2_array [16] |
__constant__ int | last_proc_in_tdim |
__constant__ int | first_proc_in_tdim |
unsigned long | staple_bytes = 0 |
#define BIND_MU_LINK | ( | ) |
do{ \ if(prec == QUDA_DOUBLE_PRECISION){ \ cudaBindTexture(0, muLink0TexDouble, mulink_even, staple_bytes); \ cudaBindTexture(0, muLink1TexDouble, mulink_odd, staple_bytes); \ }else{ \ cudaBindTexture(0, muLink0TexSingle, mulink_even, staple_bytes); \ cudaBindTexture(0, muLink1TexSingle, mulink_odd, staple_bytes); \ } \ }while(0)
Definition at line 579 of file llfat_quda.cu.
#define BIND_MU_LINK | ( | ) |
do{ \ if(prec == QUDA_DOUBLE_PRECISION){ \ cudaBindTexture(0, muLink0TexDouble, mulink_even, staple_bytes); \ cudaBindTexture(0, muLink1TexDouble, mulink_odd, staple_bytes); \ }else{ \ cudaBindTexture(0, muLink0TexSingle, mulink_even, staple_bytes); \ cudaBindTexture(0, muLink1TexSingle, mulink_odd, staple_bytes); \ } \ }while(0)
Definition at line 579 of file llfat_quda.cu.
#define BIND_SITE_AND_FAT_LINK |
do { \ if(prec == QUDA_DOUBLE_PRECISION){ \ cudaBindTexture(0, siteLink0TexDouble, cudaSiteLink.Even_p(), cudaSiteLink.Bytes()); \ cudaBindTexture(0, siteLink1TexDouble, cudaSiteLink.Odd_p(), cudaSiteLink.Bytes()); \ cudaBindTexture(0, fatGauge0TexDouble, cudaFatLink.Even_p(), cudaFatLink.Bytes()); \ cudaBindTexture(0, fatGauge1TexDouble, cudaFatLink.Odd_p(), cudaFatLink.Bytes()); \ }else{ \ if(cudaSiteLink.Reconstruct() == QUDA_RECONSTRUCT_NO){ \ cudaBindTexture(0, siteLink0TexSingle_norecon, cudaSiteLink.Even_p(), cudaSiteLink.Bytes()); \ cudaBindTexture(0, siteLink1TexSingle_norecon, cudaSiteLink.Odd_p(), cudaSiteLink.Bytes()); \ }else{ \ cudaBindTexture(0, siteLink0TexSingle_recon, cudaSiteLink.Even_p(), cudaSiteLink.Bytes()); \ cudaBindTexture(0, siteLink1TexSingle_recon, cudaSiteLink.Odd_p(), cudaSiteLink.Bytes()); \ } \ cudaBindTexture(0, fatGauge0TexSingle, cudaFatLink.Even_p(), cudaFatLink.Bytes()); \ cudaBindTexture(0, fatGauge1TexSingle, cudaFatLink.Odd_p(), cudaFatLink.Bytes()); \ } \ }while(0)
Definition at line 560 of file llfat_quda.cu.
#define BIND_SITE_AND_FAT_LINK_REVERSE |
do { \ if(prec == QUDA_DOUBLE_PRECISION){ \ cudaBindTexture(0, siteLink1TexDouble, cudaSiteLink.even, cudaSiteLink.bytes); \ cudaBindTexture(0, siteLink0TexDouble, cudaSiteLink.odd, cudaSiteLink.bytes); \ cudaBindTexture(0, fatGauge1TexDouble, cudaFatLink.even, cudaFatLink.bytes); \ cudaBindTexture(0, fatGauge0TexDouble, cudaFatLink.odd, cudaFatLink.bytes); \ }else{ \ if(cudaSiteLink.reconstruct == QUDA_RECONSTRUCT_NO){ \ cudaBindTexture(0, siteLink1TexSingle_norecon, cudaSiteLink.even, cudaSiteLink.bytes); \ cudaBindTexture(0, siteLink0TexSingle_norecon, cudaSiteLink.odd, cudaSiteLink.bytes); \ }else{ \ cudaBindTexture(0, siteLink1TexSingle_recon, cudaSiteLink.even, cudaSiteLink.bytes); \ cudaBindTexture(0, siteLink0TexSingle_recon, cudaSiteLink.odd, cudaSiteLink.bytes); \ } \ cudaBindTexture(0, fatGauge1TexSingle, cudaFatLink.even, cudaFatLink.bytes); \ cudaBindTexture(0, fatGauge0TexSingle, cudaFatLink.odd, cudaFatLink.bytes); \ } \ }while(0)
Definition at line 599 of file llfat_quda.cu.
#define DECLARE_VAR_SIGN short sign=1 |
Definition at line 337 of file llfat_quda.cu.
Definition at line 620 of file llfat_quda.cu.
Definition at line 687 of file llfat_quda.cu.
#define FATLINK_LOAD_TEX 1 |
Definition at line 18 of file llfat_quda.cu.
#define Float float |
Definition at line 407 of file llfat_quda.cu.
#define Float double |
Definition at line 407 of file llfat_quda.cu.
#define FloatM float2 |
Definition at line 469 of file llfat_quda.cu.
#define FloatM double2 |
Definition at line 469 of file llfat_quda.cu.
#define FloatM float2 |
Definition at line 469 of file llfat_quda.cu.
#define FloatM double2 |
Definition at line 469 of file llfat_quda.cu.
#define FloatN float4 |
Definition at line 468 of file llfat_quda.cu.
#define FloatN double2 |
Definition at line 468 of file llfat_quda.cu.
#define FloatN float2 |
Definition at line 468 of file llfat_quda.cu.
#define FloatN double2 |
Definition at line 468 of file llfat_quda.cu.
#define LLFAT_ADD_SU3_MATRIX | ( | ma, | |
mb, | |||
mc | |||
) |
mc##00_re = ma##00_re + mb##00_re; \ mc##00_im = ma##00_im + mb##00_im; \ mc##01_re = ma##01_re + mb##01_re; \ mc##01_im = ma##01_im + mb##01_im; \ mc##02_re = ma##02_re + mb##02_re; \ mc##02_im = ma##02_im + mb##02_im; \ mc##10_re = ma##10_re + mb##10_re; \ mc##10_im = ma##10_im + mb##10_im; \ mc##11_re = ma##11_re + mb##11_re; \ mc##11_im = ma##11_im + mb##11_im; \ mc##12_re = ma##12_re + mb##12_re; \ mc##12_im = ma##12_im + mb##12_im; \ mc##20_re = ma##20_re + mb##20_re; \ mc##20_im = ma##20_im + mb##20_im; \ mc##21_re = ma##21_re + mb##21_re; \ mc##21_im = ma##21_im + mb##21_im; \ mc##22_re = ma##22_re + mb##22_re; \ mc##22_im = ma##22_im + mb##22_im;
Definition at line 164 of file llfat_quda.cu.
#define LLFAT_CONCAT | ( | a, | |
b | |||
) | a##b##Kernel |
Definition at line 308 of file llfat_quda.cu.
#define LLFAT_CONCAT_EX | ( | a, | |
b | |||
) | a##b##Kernel_ex |
Definition at line 309 of file llfat_quda.cu.
#define LLFAT_KERNEL | ( | a, | |
b | |||
) | LLFAT_CONCAT(a,b) |
Definition at line 310 of file llfat_quda.cu.
#define LLFAT_KERNEL_EX | ( | a, | |
b | |||
) | LLFAT_CONCAT_EX(a,b) |
Definition at line 311 of file llfat_quda.cu.
#define LOAD_EVEN_FAT_MATRIX | ( | dir, | |
idx | |||
) | LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?fatGauge1TexSingle:fatGauge0TexSingle), dir, idx, FAT, llfat_ga_stride); |
Definition at line 418 of file llfat_quda.cu.
#define LOAD_EVEN_FAT_MATRIX | ( | dir, | |
idx | |||
) | LOAD_MATRIX_18_DOUBLE_TEX_DECLARE((odd_bit?fatGauge1TexDouble:fatGauge0TexDouble), fatlink_even, dir, idx, FAT, llfat_ga_stride) |
Definition at line 418 of file llfat_quda.cu.
#define LOAD_EVEN_MULINK_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?muLink1TexSingle:muLink0TexSingle), dir, idx, var, staple_stride) |
Definition at line 410 of file llfat_quda.cu.
#define LOAD_EVEN_MULINK_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_DOUBLE_TEX_DECLARE(odd_bit?muLink1TexDouble:muLink0TexDouble), mulink_even, dir, idx, var, staple_stride) |
Definition at line 410 of file llfat_quda.cu.
#define LOAD_EVEN_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_12_DOUBLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
Definition at line 463 of file llfat_quda.cu.
#define LOAD_EVEN_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_SINGLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
Definition at line 463 of file llfat_quda.cu.
#define LOAD_EVEN_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_DOUBLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
Definition at line 463 of file llfat_quda.cu.
#define LOAD_EVEN_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_12_SINGLE_DECLARE(sitelink_even, dir, idx, var, site_ga_stride) |
Definition at line 463 of file llfat_quda.cu.
#define LOAD_FAT_MATRIX | ( | gauge, | |
dir, | |||
idx | |||
) | LOAD_MATRIX_18_SINGLE_DECLARE(gauge, dir, idx, FAT, llfat_ga_stride) |
Definition at line 408 of file llfat_quda.cu.
#define LOAD_FAT_MATRIX | ( | gauge, | |
dir, | |||
idx | |||
) | LOAD_MATRIX_18_DOUBLE_DECLARE(gauge, dir, idx, FAT, llfat_ga_stride) |
Definition at line 408 of file llfat_quda.cu.
double2 var##0 = gauge[idx + dir*6*stride]; \ double2 var##1 = gauge[idx + dir*6*stride + stride]; \ double2 var##2 = gauge[idx + dir*6*stride + 2*stride]; \ double2 var##3 = gauge[idx + dir*6*stride + 3*stride]; \ double2 var##4 = gauge[idx + dir*6*stride + 4*stride]; \ double2 var##5 = gauge[idx + dir*6*stride + 5*stride]; \ double2 var##6, var##7, var##8;
Definition at line 145 of file llfat_quda.cu.
double2 var##0 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*6*stride); \ double2 var##1 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*6*stride + stride); \ double2 var##2 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*6*stride + 2*stride); \ double2 var##3 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*6*stride + 3*stride); \ double2 var##4 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*6*stride + 4*stride); \ double2 var##5 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*6*stride + 5*stride); \ double2 var##6, var##7, var##8;
Definition at line 155 of file llfat_quda.cu.
double2 var##0 = gauge[idx + dir*9*stride]; \ double2 var##1 = gauge[idx + dir*9*stride + stride]; \ double2 var##2 = gauge[idx + dir*9*stride + 2*stride]; \ double2 var##3 = gauge[idx + dir*9*stride + 3*stride]; \ double2 var##4 = gauge[idx + dir*9*stride + 4*stride]; \ double2 var##5 = gauge[idx + dir*9*stride + 5*stride]; \ double2 var##6 = gauge[idx + dir*9*stride + 6*stride]; \ double2 var##7 = gauge[idx + dir*9*stride + 7*stride]; \ double2 var##8 = gauge[idx + dir*9*stride + 8*stride];
Definition at line 121 of file llfat_quda.cu.
double2 var##0 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride); \ double2 var##1 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + stride); \ double2 var##2 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + 2*stride); \ double2 var##3 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + 3*stride); \ double2 var##4 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + 4*stride); \ double2 var##5 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + 5*stride); \ double2 var##6 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + 6*stride); \ double2 var##7 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + 7*stride); \ double2 var##8 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*9*stride + 8*stride);
Definition at line 133 of file llfat_quda.cu.
float2 var##0 = gauge[idx + dir*9*stride]; \ float2 var##1 = gauge[idx + dir*9*stride + stride]; \ float2 var##2 = gauge[idx + dir*9*stride + 2*stride]; \ float2 var##3 = gauge[idx + dir*9*stride + 3*stride]; \ float2 var##4 = gauge[idx + dir*9*stride + 4*stride]; \ float2 var##5 = gauge[idx + dir*9*stride + 5*stride]; \ float2 var##6 = gauge[idx + dir*9*stride + 6*stride]; \ float2 var##7 = gauge[idx + dir*9*stride + 7*stride]; \ float2 var##8 = gauge[idx + dir*9*stride + 8*stride];
Definition at line 96 of file llfat_quda.cu.
float2 var##0 = tex1Dfetch(gauge, idx + dir*9*stride); \ float2 var##1 = tex1Dfetch(gauge, idx + dir*9*stride + stride); \ float2 var##2 = tex1Dfetch(gauge, idx + dir*9*stride + 2*stride); \ float2 var##3 = tex1Dfetch(gauge, idx + dir*9*stride + 3*stride); \ float2 var##4 = tex1Dfetch(gauge, idx + dir*9*stride + 4*stride); \ float2 var##5 = tex1Dfetch(gauge, idx + dir*9*stride + 5*stride); \ float2 var##6 = tex1Dfetch(gauge, idx + dir*9*stride + 6*stride); \ float2 var##7 = tex1Dfetch(gauge, idx + dir*9*stride + 7*stride); \ float2 var##8 = tex1Dfetch(gauge, idx + dir*9*stride + 8*stride);
Definition at line 108 of file llfat_quda.cu.
#define LOAD_ODD_FAT_MATRIX | ( | dir, | |
idx | |||
) | LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?fatGauge0TexSingle:fatGauge1TexSingle), dir, idx, FAT, llfat_ga_stride); |
Definition at line 419 of file llfat_quda.cu.
#define LOAD_ODD_FAT_MATRIX | ( | dir, | |
idx | |||
) | LOAD_MATRIX_18_DOUBLE_TEX_DECLARE((odd_bit?fatGauge0TexDouble:fatGauge1TexDouble), fatlink_odd, dir, idx, FAT, llfat_ga_stride) |
Definition at line 419 of file llfat_quda.cu.
#define LOAD_ODD_MULINK_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_DOUBLE_TEX_DECLARE((odd_bit?muLink0TexDouble:muLink1TexDouble), mulink_odd, dir, idx, var, staple_stride) |
Definition at line 411 of file llfat_quda.cu.
#define LOAD_ODD_MULINK_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_SINGLE_TEX_DECLARE((odd_bit?muLink0TexSingle:muLink1TexSingle), dir, idx, var, staple_stride) |
Definition at line 411 of file llfat_quda.cu.
#define LOAD_ODD_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_SINGLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
Definition at line 464 of file llfat_quda.cu.
#define LOAD_ODD_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_12_DOUBLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
Definition at line 464 of file llfat_quda.cu.
#define LOAD_ODD_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_18_DOUBLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
Definition at line 464 of file llfat_quda.cu.
#define LOAD_ODD_SITE_MATRIX | ( | dir, | |
idx, | |||
var | |||
) | LOAD_MATRIX_12_SINGLE_DECLARE(sitelink_odd, dir, idx, var, site_ga_stride) |
Definition at line 464 of file llfat_quda.cu.
#define LOAD_SITE_MATRIX | ( | sitelink, | |
dir, | |||
idx, | |||
var | |||
) | LOAD_MATRIX_12_SINGLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
Definition at line 466 of file llfat_quda.cu.
#define LOAD_SITE_MATRIX | ( | sitelink, | |
dir, | |||
idx, | |||
var | |||
) | LOAD_MATRIX_18_SINGLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
Definition at line 466 of file llfat_quda.cu.
#define LOAD_SITE_MATRIX | ( | sitelink, | |
dir, | |||
idx, | |||
var | |||
) | LOAD_MATRIX_12_DOUBLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
Definition at line 466 of file llfat_quda.cu.
#define LOAD_SITE_MATRIX | ( | sitelink, | |
dir, | |||
idx, | |||
var | |||
) | LOAD_MATRIX_18_DOUBLE_DECLARE(sitelink, dir, idx, var, site_ga_stride) |
Definition at line 466 of file llfat_quda.cu.
#define MULINK_LOAD_TEX 1 |
Definition at line 17 of file llfat_quda.cu.
#define PRECISION 1 |
Definition at line 406 of file llfat_quda.cu.
#define PRECISION 0 |
Definition at line 406 of file llfat_quda.cu.
#define RECONSTRUCT 12 |
Definition at line 470 of file llfat_quda.cu.
#define RECONSTRUCT 12 |
Definition at line 470 of file llfat_quda.cu.
#define RECONSTRUCT 18 |
Definition at line 470 of file llfat_quda.cu.
#define RECONSTRUCT 18 |
Definition at line 470 of file llfat_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | sign, | |
var | |||
) | RECONSTRUCT_LINK_12(sign, var); |
Definition at line 467 of file llfat_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | sign, | |
var | |||
) |
Definition at line 467 of file llfat_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | sign, | |
var | |||
) |
Definition at line 467 of file llfat_quda.cu.
#define RECONSTRUCT_SITE_LINK | ( | sign, | |
var | |||
) | RECONSTRUCT_LINK_12(sign, var); |
Definition at line 467 of file llfat_quda.cu.
#define SCALAR_MULT_SU3_MATRIX | ( | a, | |
b, | |||
c | |||
) |
c##00_re = a*b##00_re; \ c##00_im = a*b##00_im; \ c##01_re = a*b##01_re; \ c##01_im = a*b##01_im; \ c##02_re = a*b##02_re; \ c##02_im = a*b##02_im; \ c##10_re = a*b##10_re; \ c##10_im = a*b##10_im; \ c##11_re = a*b##11_re; \ c##11_im = a*b##11_im; \ c##12_re = a*b##12_re; \ c##12_im = a*b##12_im; \ c##20_re = a*b##20_re; \ c##20_im = a*b##20_im; \ c##21_re = a*b##21_re; \ c##21_im = a*b##21_im; \ c##22_re = a*b##22_re; \ c##22_im = a*b##22_im; \
Definition at line 45 of file llfat_quda.cu.
#define sd_data double_12_sd_data |
Definition at line 471 of file llfat_quda.cu.
#define sd_data double_18_sd_data |
Definition at line 471 of file llfat_quda.cu.
#define sd_data float_18_sd_data |
Definition at line 471 of file llfat_quda.cu.
#define sd_data float_12_sd_data |
Definition at line 471 of file llfat_quda.cu.
#define SITE_MATRIX_LOAD_TEX 0 |
Definition at line 16 of file llfat_quda.cu.
#define SITELINK0TEX siteLink0TexDouble |
Definition at line 457 of file llfat_quda.cu.
#define SITELINK0TEX siteLink0TexDouble |
Definition at line 457 of file llfat_quda.cu.
#define SITELINK0TEX siteLink0TexSingle_recon |
Definition at line 457 of file llfat_quda.cu.
#define SITELINK0TEX siteLink0TexSingle_norecon |
Definition at line 457 of file llfat_quda.cu.
#define SITELINK1TEX siteLink1TexDouble |
Definition at line 458 of file llfat_quda.cu.
#define SITELINK1TEX siteLink1TexSingle_norecon |
Definition at line 458 of file llfat_quda.cu.
#define SITELINK1TEX siteLink1TexSingle_recon |
Definition at line 458 of file llfat_quda.cu.
#define SITELINK1TEX siteLink1TexDouble |
Definition at line 458 of file llfat_quda.cu.
#define UNBIND_ALL_TEXTURE |
do{ \ if(prec ==QUDA_DOUBLE_PRECISION){ \ cudaUnbindTexture(siteLink0TexDouble); \ cudaUnbindTexture(siteLink1TexDouble); \ cudaUnbindTexture(fatGauge0TexDouble); \ cudaUnbindTexture(fatGauge1TexDouble); \ cudaUnbindTexture(muLink0TexDouble); \ cudaUnbindTexture(muLink1TexDouble); \ }else{ \ if(cudaSiteLink.reconstruct == QUDA_RECONSTRUCT_NO){ \ cudaUnbindTexture(siteLink0TexSingle_norecon); \ cudaUnbindTexture(siteLink1TexSingle_norecon); \ }else{ \ cudaUnbindTexture(siteLink0TexSingle_recon); \ cudaUnbindTexture(siteLink1TexSingle_recon); \ } \ cudaUnbindTexture(fatGauge0TexSingle); \ cudaUnbindTexture(fatGauge1TexSingle); \ cudaUnbindTexture(muLink0TexSingle); \ cudaUnbindTexture(muLink1TexSingle); \ } \ }while(0)
Definition at line 496 of file llfat_quda.cu.
#define UNBIND_MU_LINK | ( | ) |
do{ \ if(prec == QUDA_DOUBLE_PRECISION){ \ cudaUnbindTexture(muLink0TexSingle); \ cudaUnbindTexture(muLink1TexSingle); \ }else{ \ cudaUnbindTexture(muLink0TexDouble); \ cudaUnbindTexture(muLink1TexDouble); \ } \ }while(0)
Definition at line 589 of file llfat_quda.cu.
#define UNBIND_MU_LINK | ( | ) |
do{ \ if(prec == QUDA_DOUBLE_PRECISION){ \ cudaUnbindTexture(muLink0TexSingle); \ cudaUnbindTexture(muLink1TexSingle); \ }else{ \ cudaUnbindTexture(muLink0TexDouble); \ cudaUnbindTexture(muLink1TexDouble); \ } \ }while(0)
Definition at line 589 of file llfat_quda.cu.
#define UNBIND_SITE_AND_FAT_LINK |
do{ \ if(prec == QUDA_DOUBLE_PRECISION){ \ cudaUnbindTexture(siteLink0TexDouble); \ cudaUnbindTexture(siteLink1TexDouble); \ cudaUnbindTexture(fatGauge0TexDouble); \ cudaUnbindTexture(fatGauge1TexDouble); \ }else { \ if(cudaSiteLink.reconstruct == QUDA_RECONSTRUCT_NO){ \ cudaUnbindTexture(siteLink0TexSingle_norecon); \ cudaUnbindTexture(siteLink1TexSingle_norecon); \ }else{ \ cudaUnbindTexture(siteLink0TexSingle_recon); \ cudaUnbindTexture(siteLink1TexSingle_recon); \ } \ cudaUnbindTexture(fatGauge0TexSingle); \ cudaUnbindTexture(fatGauge1TexSingle); \ } \ }while(0)
Definition at line 519 of file llfat_quda.cu.
#define WRITE_FAT_MATRIX | ( | gauge, | |
dir, | |||
idx | |||
) |
do { \ gauge[idx + dir*9*llfat_ga_stride] = FAT0; \ gauge[idx + (dir*9+1) * llfat_ga_stride] = FAT1; \ gauge[idx + (dir*9+2) * llfat_ga_stride] = FAT2; \ gauge[idx + (dir*9+3) * llfat_ga_stride] = FAT3; \ gauge[idx + (dir*9+4) * llfat_ga_stride] = FAT4; \ gauge[idx + (dir*9+5) * llfat_ga_stride] = FAT5; \ gauge[idx + (dir*9+6) * llfat_ga_stride] = FAT6; \ gauge[idx + (dir*9+7) * llfat_ga_stride] = FAT7; \ gauge[idx + (dir*9+8) * llfat_ga_stride] = FAT8;} while(0)
Definition at line 21 of file llfat_quda.cu.
#define WRITE_STAPLE_MATRIX | ( | gauge, | |
idx | |||
) |
gauge[idx] = STAPLE0; \ gauge[idx + staple_stride] = STAPLE1; \ gauge[idx + 2*staple_stride] = STAPLE2; \ gauge[idx + 3*staple_stride] = STAPLE3; \ gauge[idx + 4*staple_stride] = STAPLE4; \ gauge[idx + 5*staple_stride] = STAPLE5; \ gauge[idx + 6*staple_stride] = STAPLE6; \ gauge[idx + 7*staple_stride] = STAPLE7; \ gauge[idx + 8*staple_stride] = STAPLE8;
Definition at line 33 of file llfat_quda.cu.
void computeGenStapleFieldParityKernel | ( | void * | staple_even, |
void * | staple_odd, | ||
void * | sitelink_even, | ||
void * | sitelink_odd, | ||
void * | fatlink_even, | ||
void * | fatlink_odd, | ||
void * | mulink_even, | ||
void * | mulink_odd, | ||
int | mu, | ||
int | nu, | ||
int | save_staple, | ||
double | mycoeff, | ||
QudaReconstructType | recon, | ||
QudaPrecision | prec, | ||
dim3 | halfGridDim, | ||
llfat_kernel_param_t | kparam, | ||
cudaStream_t * | stream | ||
) |
Definition at line 896 of file llfat_quda.cu.
void computeGenStapleFieldParityKernel_ex | ( | void * | staple_even, |
void * | staple_odd, | ||
void * | sitelink_even, | ||
void * | sitelink_odd, | ||
void * | fatlink_even, | ||
void * | fatlink_odd, | ||
void * | mulink_even, | ||
void * | mulink_odd, | ||
int | mu, | ||
int | nu, | ||
int | save_staple, | ||
double | mycoeff, | ||
QudaReconstructType | recon, | ||
QudaPrecision | prec, | ||
llfat_kernel_param_t | kparam | ||
) |
Definition at line 1053 of file llfat_quda.cu.
void llfat_init_cuda | ( | QudaGaugeParam * | param | ) |
Definition at line 192 of file llfat_quda.cu.
void llfat_init_cuda_ex | ( | QudaGaugeParam * | param_ex | ) |
Definition at line 252 of file llfat_quda.cu.
void llfatOneLinkKernel | ( | cudaGaugeField & | cudaFatLink, |
cudaGaugeField & | cudaSiteLink, | ||
cudaGaugeField & | cudaStaple, | ||
cudaGaugeField & | cudaStaple1, | ||
QudaGaugeParam * | param, | ||
double * | act_path_coeff | ||
) |
Definition at line 1140 of file llfat_quda.cu.
void llfatOneLinkKernel_ex | ( | cudaGaugeField & | cudaFatLink, |
cudaGaugeField & | cudaSiteLink, | ||
cudaGaugeField & | cudaStaple, | ||
cudaGaugeField & | cudaStaple1, | ||
QudaGaugeParam * | param, | ||
double * | act_path_coeff, | ||
llfat_kernel_param_t | kparam | ||
) |
Definition at line 1181 of file llfat_quda.cu.
void siteComputeGenStapleParityKernel | ( | void * | staple_even, |
void * | staple_odd, | ||
void * | sitelink_even, | ||
void * | sitelink_odd, | ||
void * | fatlink_even, | ||
void * | fatlink_odd, | ||
int | mu, | ||
int | nu, | ||
double | mycoeff, | ||
QudaReconstructType | recon, | ||
QudaPrecision | prec, | ||
dim3 | halfGridDim, | ||
llfat_kernel_param_t | kparam, | ||
cudaStream_t * | stream | ||
) |
Definition at line 823 of file llfat_quda.cu.
void siteComputeGenStapleParityKernel_ex | ( | void * | staple_even, |
void * | staple_odd, | ||
void * | sitelink_even, | ||
void * | sitelink_odd, | ||
void * | fatlink_even, | ||
void * | fatlink_odd, | ||
int | mu, | ||
int | nu, | ||
double | mycoeff, | ||
QudaReconstructType | recon, | ||
QudaPrecision | prec, | ||
llfat_kernel_param_t | kparam | ||
) |
Definition at line 977 of file llfat_quda.cu.
__constant__ int dir1_array[16] |
Definition at line 184 of file llfat_quda.cu.
__constant__ int dir2_array[16] |
Definition at line 185 of file llfat_quda.cu.
__constant__ int first_proc_in_tdim |
Definition at line 187 of file llfat_quda.cu.
__constant__ int last_proc_in_tdim |
Definition at line 186 of file llfat_quda.cu.
unsigned long staple_bytes = 0 |
Definition at line 189 of file llfat_quda.cu.