ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
viennacl::device_specific::reduction_template Class Reference

#include <reduction_template.hpp>

Inheritance diagram for viennacl::device_specific::reduction_template:
viennacl::device_specific::template_base_impl< reduction_template, reduction_parameters > viennacl::device_specific::template_base

Public Member Functions

 reduction_template (reduction_template::parameters_type const &parameters, binding_policy_t binding_policy=BIND_ALL_UNIQUE)
 
void enqueue (std::string const &kernel_prefix, std::vector< lazy_program_compiler > &programs, statements_container const &statements)
 
- Public Member Functions inherited from viennacl::device_specific::template_base_impl< reduction_template, reduction_parameters >
 template_base_impl (parameters_type const &parameters, binding_policy_t binding_policy)
 The constructor. More...
 
parameters_type const & parameters () const
 
tools::shared_ptr< template_baseclone () const
 
int check_invalid (statements_container const &statements, viennacl::ocl::device const &device) const
 returns whether or not the profile has undefined behavior on particular device More...
 
- Public Member Functions inherited from viennacl::device_specific::template_base
 template_base (binding_policy_t binding_policy)
 
virtual ~template_base ()
 
std::vector< std::string > generate (std::string const &kernel_prefix, statements_container const &statements, viennacl::ocl::device const &device)
 

Additional Inherited Members

- Public Types inherited from viennacl::device_specific::template_base_impl< reduction_template, reduction_parameters >
typedef reduction_parameters parameters_type
 
- Protected Member Functions inherited from viennacl::device_specific::template_base
void set_arguments (statements_container const &statements, viennacl::ocl::kernel &kernel, unsigned int &current_arg)
 
- Static Protected Member Functions inherited from viennacl::device_specific::template_base
static void generate_prototype (utils::kernel_generation_stream &stream, std::string const &name, std::string const &first_arguments, std::vector< mapping_type > const &mappings, statements_container const &statements, std::map< std::string, unsigned int > const &widths)
 
static void generate_prototype (utils::kernel_generation_stream &stream, std::string const &name, std::string const &first_arguments, std::vector< mapping_type > const &mappings, statements_container const &statements)
 
static void fetching_loop_info (fetching_policy_type policy, std::string const &bound, utils::kernel_generation_stream &stream, std::string &init, std::string &upper_bound, std::string &inc, std::string const &domain_id, std::string const &domain_size)
 
static bool is_node_trans (scheduler::statement::container_type const &array, vcl_size_t root_idx, leaf_t leaf_type)
 
static std::string append_simd_suffix (std::string const &str, unsigned int i)
 
static bool is_striding_operator (scheduler::statement_node const &node)
 
static bool has_strided_access (statements_container const &statements)
 
static vcl_size_t vector_size (scheduler::statement_node const &node, bool up_to_internal_size)
 
static void element_wise_loop_1D (utils::kernel_generation_stream &stream, loop_body_base const &loop_body, fetching_policy_type fetch, unsigned int simd_width, std::string const &i, std::string const &bound, std::string const &domain_id, std::string const &domain_size)
 
static std::string vstore (unsigned int simd_width, std::string const &value, std::string const &offset, std::string const &ptr)
 
static std::string vload (unsigned int simd_width, std::string const &offset, std::string const &ptr)
 
- Protected Attributes inherited from viennacl::device_specific::template_base_impl< reduction_template, reduction_parameters >
parameters_type p_
 

Detailed Description

Definition at line 55 of file reduction_template.hpp.

Constructor & Destructor Documentation

viennacl::device_specific::reduction_template::reduction_template ( reduction_template::parameters_type const &  parameters,
binding_policy_t  binding_policy = BIND_ALL_UNIQUE 
)
inline

Definition at line 310 of file reduction_template.hpp.

Member Function Documentation

void viennacl::device_specific::reduction_template::enqueue ( std::string const &  kernel_prefix,
std::vector< lazy_program_compiler > &  programs,
statements_container const &  statements 
)
inlinevirtual

Implements viennacl::device_specific::template_base.

Definition at line 312 of file reduction_template.hpp.


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