ViennaCL - The Vienna Computing Library  1.5.0
Public Member Functions | Static Public Member Functions
scalar_reduction Class Reference

OpenCL kernel generation template for scalar reduction operations such as s = norm_2(x). More...

#include <scalar_reduction.hpp>

Inheritance diagram for scalar_reduction:
profile_base

Public Member Functions

vcl_size_t lmem_used (vcl_size_t scalartype_size) const
void init_temporaries (statements_type const &statements) const
void set_size_argument (viennacl::scheduler::statement const &s, viennacl::scheduler::statement_node const &, unsigned int &n_arg, viennacl::ocl::kernel &k) const
 scalar_reduction (unsigned int vectorization, unsigned int local_size, unsigned int num_groups, unsigned int decomposition)
 The user constructor.
std::string csv_representation () const
 csv representation of an operation
unsigned int num_groups () const
unsigned int decomposition () const
void configure_range_enqueue_arguments (vcl_size_t kernel_id, statements_type const &statements, viennacl::ocl::kernel &k, unsigned int &n_arg) const
 Configures the range and enqueues the arguments associated with the profile.
void kernel_arguments (statements_type const &statements, std::string &arguments_string) const

Static Public Member Functions

static std::string csv_format ()

Detailed Description

OpenCL kernel generation template for scalar reduction operations such as s = norm_2(x).


Constructor & Destructor Documentation

scalar_reduction ( unsigned int  vectorization,
unsigned int  local_size,
unsigned int  num_groups,
unsigned int  decomposition 
) [inline]

The user constructor.


Member Function Documentation

void configure_range_enqueue_arguments ( vcl_size_t  kernel_id,
statements_type const &  statements,
viennacl::ocl::kernel k,
unsigned int &  n_arg 
) const [inline, virtual]

Configures the range and enqueues the arguments associated with the profile.

Implements profile_base.

static std::string csv_format ( ) [inline, static]
std::string csv_representation ( ) const [inline, virtual]

csv representation of an operation

Useful when writing to a file

Implements profile_base.

unsigned int decomposition ( ) const [inline]
void init_temporaries ( statements_type const &  statements) const [inline]
void kernel_arguments ( statements_type const &  statements,
std::string &  arguments_string 
) const [inline, virtual]

Implements profile_base.

vcl_size_t lmem_used ( vcl_size_t  scalartype_size) const [inline, virtual]

Reimplemented from profile_base.

unsigned int num_groups ( ) const [inline]
void set_size_argument ( viennacl::scheduler::statement const &  s,
viennacl::scheduler::statement_node const &  ,
unsigned int &  n_arg,
viennacl::ocl::kernel k 
) const [inline]

The documentation for this class was generated from the following file: