#include <template_base.hpp>
Classes | |
class | invalid_template_exception |
struct | loop_body_base |
struct | parameters_type |
Public Member Functions | |
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) |
virtual int | check_invalid (statements_container const &statements, viennacl::ocl::device const &device) const =0 |
returns whether or not the profile has undefined behavior on particular device More... | |
virtual void | enqueue (std::string const &kernel_prefix, std::vector< lazy_program_compiler > &programs, statements_container const &statements)=0 |
virtual tools::shared_ptr< template_base > | clone () const =0 |
Protected Member Functions | |
void | set_arguments (statements_container const &statements, viennacl::ocl::kernel &kernel, unsigned int ¤t_arg) |
Static Protected Member Functions | |
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) |
Definition at line 54 of file template_base.hpp.
|
inline |
Definition at line 486 of file template_base.hpp.
|
inlinevirtual |
Definition at line 488 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 373 of file template_base.hpp.
|
pure virtual |
returns whether or not the profile has undefined behavior on particular device
Implemented in viennacl::device_specific::template_base_impl< TemplateType, ParametersType >, viennacl::device_specific::template_base_impl< matrix_axpy_template, matrix_axpy_parameters_type >, viennacl::device_specific::template_base_impl< vector_axpy_template, vector_axpy_parameters >, viennacl::device_specific::template_base_impl< row_wise_reduction_template, row_wise_reduction_parameters >, viennacl::device_specific::template_base_impl< reduction_template, reduction_parameters >, and viennacl::device_specific::template_base_impl< matrix_product_template, matrix_product_parameters >.
|
pure virtual |
Implemented in viennacl::device_specific::template_base_impl< TemplateType, ParametersType >, viennacl::device_specific::template_base_impl< matrix_axpy_template, matrix_axpy_parameters_type >, viennacl::device_specific::template_base_impl< vector_axpy_template, vector_axpy_parameters >, viennacl::device_specific::template_base_impl< row_wise_reduction_template, row_wise_reduction_parameters >, viennacl::device_specific::template_base_impl< reduction_template, reduction_parameters >, and viennacl::device_specific::template_base_impl< matrix_product_template, matrix_product_parameters >.
|
inlinestaticprotected |
Definition at line 439 of file template_base.hpp.
|
pure virtual |
|
inlinestaticprotected |
Definition at line 330 of file template_base.hpp.
|
inline |
Definition at line 490 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 290 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 304 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 388 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 353 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 381 of file template_base.hpp.
|
inlineprotected |
Definition at line 309 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 414 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 473 of file template_base.hpp.
|
inlinestaticprotected |
Definition at line 465 of file template_base.hpp.