QUDA
v0.7.0
A library for QCD on GPUs
|
#include <quda_internal.h>
#include <color_spinor_field.h>
#include <convert.h>
#include <register_traits.h>
#include <float_vector.h>
Go to the source code of this file.
Classes | |
class | Texture< OutputType, InputType, tex_id > |
class | Spinor< RegType, InterType, StoreType, N, write, tex_id > |
Macros | |
#define | MAX_TEXELS (1<<27) |
#define | MAX_TEX_ID 4 |
#define | DECL_TEX(id) |
#define | DEF_BIND_UNBIND(outtype, intype, id) |
#define | DEF_FETCH_TEX(outtype, intype, id) |
#define | DEF_FETCH_DIRECT(outtype, intype, id) |
#define | DEF_FETCH DEF_FETCH_TEX |
#define | DEF_FETCH_DBLE(outtype, intype, id) |
#define | DEF_FETCH_DBLE_MIXED(outtype, intype, id) |
#define | DEF_BIND_UNBIND_FETCH(outtype, intype, id) |
#define | DEF_ALL(id) |
#define | REG_LENGTH (sizeof(RegType) / sizeof(((RegType*)0)->x)) |
#define | IS_SHORT(type) (sizeof( ((type*)0)->x ) == sizeof(short) ) |
Functions | |
__inline__ __device__ double | fetch_double (texture< int2, 1 > t, int i) |
__inline__ __device__ double2 | fetch_double2 (texture< int4, 1 > t, int i) |
template<typename RegType , typename InterType , typename StoreType > | |
void | checkTypes () |
template<typename FloatN , int M> | |
__device__ float | store_norm (float *norm, FloatN x[M], int i) |
Variables | |
bool | tex_id_table [MAX_TEX_ID] = { } |
#define DECL_TEX | ( | id | ) |
#define DEF_ALL | ( | id | ) |
#define DEF_BIND_UNBIND | ( | outtype, | |
intype, | |||
id | |||
) |
#define DEF_BIND_UNBIND_FETCH | ( | outtype, | |
intype, | |||
id | |||
) |
#define DEF_FETCH DEF_FETCH_TEX |
#define DEF_FETCH_DBLE | ( | outtype, | |
intype, | |||
id | |||
) |
#define DEF_FETCH_DBLE_MIXED | ( | outtype, | |
intype, | |||
id | |||
) |
#define DEF_FETCH_DIRECT | ( | outtype, | |
intype, | |||
id | |||
) |
#define DEF_FETCH_TEX | ( | outtype, | |
intype, | |||
id | |||
) |
#define IS_SHORT | ( | type | ) | (sizeof( ((type*)0)->x ) == sizeof(short) ) |
#define REG_LENGTH (sizeof(RegType) / sizeof(((RegType*)0)->x)) |
void checkTypes | ( | ) |
Checks that the types are set correctly. The precision used in the RegType must match that of the InterType, and the ordering of the InterType must match that of the StoreType. The only exception is when half precision is used, in which case, RegType can be a double and InterType can be single (with StoreType short).
RegType | Register type used in kernel |
InterType | Intermediate format - RegType precision with StoreType ordering |
StoreType | Type used to store field in memory |
__inline__ __device__ double fetch_double | ( | texture< int2, 1 > | t, |
int | i | ||
) |
__inline__ __device__ double2 fetch_double2 | ( | texture< int4, 1 > | t, |
int | i | ||
) |
|
inline |
bool tex_id_table[MAX_TEX_ID] = { } |