QUDA  v1.1.0
A library for QCD on GPUs
Classes | Namespaces | Functions
transform_reduce.h File Reference

QUDA reimplementation of thrust::transform_reduce as well as wrappers also implementing thrust::reduce. More...

#include <typeinfo>
#include <reduce_helper.h>
#include <uint_to_char.h>
#include <tune_quda.h>

Go to the source code of this file.

Classes

struct  quda::plus< T >
 
struct  quda::maximum< T >
 
struct  quda::minimum< T >
 
struct  quda::identity< T >
 
struct  quda::TransformReduceArg< reduce_t, T, count_t, transformer, reducer >
 
class  quda::TransformReduce< reduce_t, T, I, transformer, reducer >
 

Namespaces

 quda
 

Functions

template<typename Arg >
void quda::transform_reduce (Arg &arg)
 
template<typename Arg >
 quda::__launch_bounds__ (Arg::block_size) __global__ void transform_reduce_kernel(Arg arg)
 
template<typename reduce_t , typename T , typename I , typename transformer , typename reducer >
void quda::transform_reduce (QudaFieldLocation location, std::vector< reduce_t > &result, const std::vector< T * > &v, I n_items, transformer h, reduce_t init, reducer r)
 QUDA implementation providing thrust::transform_reduce like functionality. Improves upon thrust's implementation since a single kernel is used which writes the result directly to host memory, and is a batched implementation. More...
 
template<typename reduce_t , typename T , typename I , typename transformer , typename reducer >
reduce_t quda::transform_reduce (QudaFieldLocation location, const T *v, I n_items, transformer h, reduce_t init, reducer r)
 QUDA implementation providing thrust::transform_reduce like functionality. Improves upon thrust's implementation since a single kernel is used which writes the result directly to host memory. More...
 
template<typename reduce_t , typename T , typename I , typename transformer , typename reducer >
void quda::reduce (QudaFieldLocation location, std::vector< reduce_t > &result, const std::vector< T * > &v, I n_items, reduce_t init, reducer r)
 QUDA implementation providing thrust::reduce like functionality. Improves upon thrust's implementation since a single kernel is used which writes the result directly to host memory, and is a batched implementation. More...
 
template<typename reduce_t , typename T , typename I , typename reducer >
reduce_t quda::reduce (QudaFieldLocation location, const T *v, I n_items, reduce_t init, reducer r)
 QUDA implementation providing thrust::reduce like functionality. Improves upon thrust's implementation since a single kernel is used which writes the result directly to host memory. More...
 

Detailed Description

QUDA reimplementation of thrust::transform_reduce as well as wrappers also implementing thrust::reduce.

Definition in file transform_reduce.h.