QUDA  v1.1.0
A library for QCD on GPUs
Namespaces | Classes | Functions
trove Namespace Reference

Namespaces

 detail
 

Classes

struct  array
 
struct  array< T, 1 >
 
struct  array< T, 0 >
 
struct  coalesced_ptr
 
struct  static_gcd
 
struct  static_gcd< 0, v >
 
struct  static_gcd< u, 0 >
 
struct  static_mod_inverse
 
struct  static_mod_inverse_helper
 
struct  static_mod_inverse_helper< false, a, m, r >
 
struct  counting_array
 
struct  counting_array< array< T, s > >
 
struct  counting_array< array< T, 1 > >
 
struct  sum_array
 
struct  sum_array< array< T, s > >
 
struct  sum_array< array< T, 1 > >
 
struct  static_log
 
struct  static_log< 1 >
 
struct  static_log< 0 >
 
struct  is_power_of_two
 
struct  is_odd
 
struct  value_if
 
struct  value_if< false, T, Then, Else >
 
struct  value_identity
 
struct  inverse
 
struct  null_type
 
struct  cons_c
 
struct  static_range
 
struct  static_range< f, f >
 
struct  enable_if
 
struct  enable_if< false, T >
 
struct  size_multiple_power_of_two
 

Functions

template<typename T >
__device__ enable_if< detail::use_shfl< T >::value, T >::type load_warp_contiguous (const T *src)
 
template<typename T >
__device__ enable_if< detail::use_direct< T >::value, T >::type load_warp_contiguous (const T *src)
 
template<typename T >
__device__ enable_if< detail::use_shfl< T >::value >::type store_warp_contiguous (const T &data, T *dest)
 
template<typename T >
__device__ enable_if< detail::use_direct< T >::value >::type store_warp_contiguous (const T &data, T *dest)
 
template<typename T >
__device__ T load (const T *src)
 
template<typename T >
__device__ void store (const T &data, T *dest)
 
template<int i, typename T , int m>
__host__ __device__ T & get (array< T, m > &src)
 
template<int i, typename T , int m>
__host__ __device__ T get (const array< T, m > &src)
 
template<typename T >
__host__ __device__ array< T, 0 > make_array ()
 
template<typename T >
__host__ __device__ array< T, 1 > make_array (T a0)
 
template<typename T >
__host__ __device__ array< T, 2 > make_array (T a0, T a1)
 
template<typename T >
__host__ __device__ array< T, 3 > make_array (T a0, T a1, T a2)
 
template<typename T >
__host__ __device__ array< T, 4 > make_array (T a0, T a1, T a2, T a3)
 
template<typename T >
__host__ __device__ array< T, 5 > make_array (T a0, T a1, T a2, T a3, T a4)
 
template<typename T >
__host__ __device__ array< T, 6 > make_array (T a0, T a1, T a2, T a3, T a4, T a5)
 
template<typename T >
__host__ __device__ array< T, 7 > make_array (T a0, T a1, T a2, T a3, T a4, T a5, T a6)
 
template<typename T >
__host__ __device__ array< T, 8 > make_array (T a0, T a1, T a2, T a3, T a4, T a5, T a6, T a7)
 
template<typename T >
__host__ __device__ array< T, 9 > make_array (T a0, T a1, T a2, T a3, T a4, T a5, T a6, T a7, T a8)
 
template<typename T >
__host__ __device__ array< T, 10 > make_array (T a0, T a1, T a2, T a3, T a4, T a5, T a6, T a7, T a8, T a9)
 
template<typename T , int s>
__host__ __device__ array< T, s > make_array (T cary[s])
 
template<typename T , int s>
__host__ __device__ void make_carray (const array< T, s > &ary, T result[s])
 
template<int s, typename T , typename I >
__device__ trove::array< T, s > load_array_warp_contiguous (const T *src, const I &idx)
 
template<int s, typename T , typename I >
__device__ trove::array< T, s > load_array (const T *src, const I &idx)
 
template<int s, typename T , typename I >
__device__ void store_array_warp_contiguous (T *dest, const I &idx, const trove::array< T, s > &src)
 
template<int s, typename T , typename I >
__device__ void store_array (T *dest, const I &idx, const trove::array< T, s > &src)
 
template<typename Array >
__host__ __device__ void warp_store (const Array &t, typename Array::head_type *ptr, int offset, int stride=32)
 
template<typename Array >
__host__ __device__ Array warp_load (const typename Array::head_type *ptr, int offset, int stride=32)
 
template<typename Array >
__host__ __device__ Array warp_load (const volatile typename Array::head_type *ptr, int offset, int stride=32)
 
template<typename Array >
__host__ __device__ void uncoalesced_store (const Array &t, typename Array::head_type *ptr, int stride=1)
 
template<typename Array >
__host__ __device__ void uncoalesced_store (const Array &t, volatile typename Array::head_type *ptr, int stride=1)
 
template<typename T >
std::ostream & operator<< (std::ostream &strm, const array< T, 1 > &ary)
 
template<typename T , int s>
std::ostream & operator<< (std::ostream &strm, const array< T, s > &ary)
 
template<typename T , int i>
__host__ __device__ array< T, i > rotate (const array< T, i > &t, int a)
 
template<int i>
__device__ void c2r_compute_indices (array< int, i > &indices, int &rotation)
 
template<typename T , int i>
__device__ void c2r_warp_transpose (array< T, i > &src, const array< int, i > &indices, int rotation)
 
template<typename T , int i>
__device__ void c2r_warp_transpose (array< T, i > &src)
 
template<int i>
__device__ void r2c_compute_indices (array< int, i > &indices, int &rotation)
 
template<typename T , int i>
__device__ void r2c_warp_transpose (array< T, i > &src, const array< int, i > &indices, int rotation)
 
template<typename T , int i>
__device__ void r2c_warp_transpose (array< T, i > &src)
 
template<typename T , int s>
__host__ __device__ T sum (const array< T, s > &a)
 
__device__ bool warp_converged ()
 

Function Documentation

◆ c2r_compute_indices()

template<int i>
__device__ void trove::c2r_compute_indices ( array< int, i > &  indices,
int &  rotation 
)

Definition at line 611 of file transpose.h.

◆ c2r_warp_transpose() [1/2]

template<typename T , int i>
__device__ void trove::c2r_warp_transpose ( array< T, i > &  src)

Definition at line 632 of file transpose.h.

◆ c2r_warp_transpose() [2/2]

template<typename T , int i>
__device__ void trove::c2r_warp_transpose ( array< T, i > &  src,
const array< int, i > &  indices,
int  rotation 
)

Definition at line 621 of file transpose.h.

◆ get() [1/2]

template<int i, typename T , int m>
__host__ __device__ T& trove::get ( array< T, m > &  src)

Definition at line 118 of file array.h.

◆ get() [2/2]

template<int i, typename T , int m>
__host__ __device__ T trove::get ( const array< T, m > &  src)

Definition at line 124 of file array.h.

◆ load()

template<typename T >
__device__ T trove::load ( const T *  src)

Definition at line 256 of file aos.h.

◆ load_array()

template<int s, typename T , typename I >
__device__ trove::array<T, s> trove::load_array ( const T *  src,
const I &  idx 
)

Definition at line 45 of file block.h.

◆ load_array_warp_contiguous()

template<int s, typename T , typename I >
__device__ trove::array<T, s> trove::load_array_warp_contiguous ( const T *  src,
const I &  idx 
)

Definition at line 37 of file block.h.

◆ load_warp_contiguous() [1/2]

template<typename T >
__device__ enable_if<detail::use_shfl<T>::value, T>::type trove::load_warp_contiguous ( const T *  src)

Definition at line 69 of file aos.h.

◆ load_warp_contiguous() [2/2]

template<typename T >
__device__ enable_if<detail::use_direct<T>::value, T>::type trove::load_warp_contiguous ( const T *  src)

Definition at line 82 of file aos.h.

◆ make_array() [1/12]

template<typename T >
__host__ __device__ array<T, 0> trove::make_array ( )

Definition at line 130 of file array.h.

◆ make_array() [2/12]

template<typename T >
__host__ __device__ array<T, 1> trove::make_array ( a0)

Definition at line 136 of file array.h.

◆ make_array() [3/12]

template<typename T >
__host__ __device__ array<T, 2> trove::make_array ( a0,
a1 
)

Definition at line 142 of file array.h.

◆ make_array() [4/12]

template<typename T >
__host__ __device__ array<T, 3> trove::make_array ( a0,
a1,
a2 
)

Definition at line 149 of file array.h.

◆ make_array() [5/12]

template<typename T >
__host__ __device__ array<T, 4> trove::make_array ( a0,
a1,
a2,
a3 
)

Definition at line 156 of file array.h.

◆ make_array() [6/12]

template<typename T >
__host__ __device__ array<T, 5> trove::make_array ( a0,
a1,
a2,
a3,
a4 
)

Definition at line 163 of file array.h.

◆ make_array() [7/12]

template<typename T >
__host__ __device__ array<T, 6> trove::make_array ( a0,
a1,
a2,
a3,
a4,
a5 
)

Definition at line 170 of file array.h.

◆ make_array() [8/12]

template<typename T >
__host__ __device__ array<T, 7> trove::make_array ( a0,
a1,
a2,
a3,
a4,
a5,
a6 
)

Definition at line 178 of file array.h.

◆ make_array() [9/12]

template<typename T >
__host__ __device__ array<T, 8> trove::make_array ( a0,
a1,
a2,
a3,
a4,
a5,
a6,
a7 
)

Definition at line 187 of file array.h.

◆ make_array() [10/12]

template<typename T >
__host__ __device__ array<T, 9> trove::make_array ( a0,
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8 
)

Definition at line 196 of file array.h.

◆ make_array() [11/12]

template<typename T >
__host__ __device__ array<T, 10> trove::make_array ( a0,
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9 
)

Definition at line 205 of file array.h.

◆ make_array() [12/12]

template<typename T , int s>
__host__ __device__ array<T, s> trove::make_array ( cary[s])

Definition at line 278 of file array.h.

◆ make_carray()

template<typename T , int s>
__host__ __device__ void trove::make_carray ( const array< T, s > &  ary,
result[s] 
)

Definition at line 284 of file array.h.

◆ operator<<() [1/2]

template<typename T >
std::ostream& trove::operator<< ( std::ostream &  strm,
const array< T, 1 > &  ary 
)

Definition at line 35 of file print_array.h.

◆ operator<<() [2/2]

template<typename T , int s>
std::ostream& trove::operator<< ( std::ostream &  strm,
const array< T, s > &  ary 
)

Definition at line 41 of file print_array.h.

◆ r2c_compute_indices()

template<int i>
__device__ void trove::r2c_compute_indices ( array< int, i > &  indices,
int &  rotation 
)

Definition at line 646 of file transpose.h.

◆ r2c_warp_transpose() [1/2]

template<typename T , int i>
__device__ void trove::r2c_warp_transpose ( array< T, i > &  src)

Definition at line 666 of file transpose.h.

◆ r2c_warp_transpose() [2/2]

template<typename T , int i>
__device__ void trove::r2c_warp_transpose ( array< T, i > &  src,
const array< int, i > &  indices,
int  rotation 
)

Definition at line 655 of file transpose.h.

◆ rotate()

template<typename T , int i>
__host__ __device__ array<T, i> trove::rotate ( const array< T, i > &  t,
int  a 
)

Definition at line 113 of file rotate.h.

◆ store()

template<typename T >
__device__ void trove::store ( const T &  data,
T *  dest 
)

Definition at line 265 of file aos.h.

◆ store_array()

template<int s, typename T , typename I >
__device__ void trove::store_array ( T *  dest,
const I &  idx,
const trove::array< T, s > &  src 
)

Definition at line 61 of file block.h.

◆ store_array_warp_contiguous()

template<int s, typename T , typename I >
__device__ void trove::store_array_warp_contiguous ( T *  dest,
const I &  idx,
const trove::array< T, s > &  src 
)

Definition at line 53 of file block.h.

◆ store_warp_contiguous() [1/2]

template<typename T >
__device__ enable_if<detail::use_shfl<T>::value>::type trove::store_warp_contiguous ( const T &  data,
T *  dest 
)

Definition at line 89 of file aos.h.

◆ store_warp_contiguous() [2/2]

template<typename T >
__device__ enable_if<detail::use_direct<T>::value>::type trove::store_warp_contiguous ( const T &  data,
T *  dest 
)

Definition at line 102 of file aos.h.

◆ sum()

template<typename T , int s>
__host__ __device__ T trove::sum ( const array< T, s > &  a)

Definition at line 76 of file utility.h.

◆ uncoalesced_store() [1/2]

template<typename Array >
__host__ __device__ void trove::uncoalesced_store ( const Array &  t,
typename Array::head_type *  ptr,
int  stride = 1 
)

Definition at line 157 of file memory.h.

◆ uncoalesced_store() [2/2]

template<typename Array >
__host__ __device__ void trove::uncoalesced_store ( const Array &  t,
volatile typename Array::head_type *  ptr,
int  stride = 1 
)

Definition at line 164 of file memory.h.

◆ warp_converged()

__device__ bool trove::warp_converged ( )
inline

Definition at line 35 of file warp.h.

◆ warp_load() [1/2]

template<typename Array >
__host__ __device__ Array trove::warp_load ( const typename Array::head_type *  ptr,
int  offset,
int  stride = 32 
)

Definition at line 144 of file memory.h.

◆ warp_load() [2/2]

template<typename Array >
__host__ __device__ Array trove::warp_load ( const volatile typename Array::head_type *  ptr,
int  offset,
int  stride = 32 
)

Definition at line 150 of file memory.h.

◆ warp_store()

template<typename Array >
__host__ __device__ void trove::warp_store ( const Array &  t,
typename Array::head_type *  ptr,
int  offset,
int  stride = 32 
)

Definition at line 137 of file memory.h.