ViennaCL - The Vienna Computing Library: viennacl::device_specific::matrix_product_template Class Reference

ViennaCL - The Vienna Computing Library 1.7.1 Free open-source GPU-accelerated linear algebra and solver library. |

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
viennacl::device_specific::matrix_product_template Class Reference

`#include <matrix_product_template.hpp>`

Inheritance diagram for viennacl::device_specific::matrix_product_template:

## Public Member Functions
| matrix_product_template (matrix_product_template::parameters_type const &parameters, char A_trans, char B_trans)
virtual 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< matrix_product_template, matrix_product_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_base > | clone () 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< matrix_product_template, matrix_product_parameters >
typedef matrix_product_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< matrix_product_template, matrix_product_parameters >
parameters_type | p_

## Detailed Description

Definition at line 74 of file matrix_product_template.hpp.

## Constructor & Destructor Documentation

viennacl::device_specific::matrix_product_template::matrix_product_template | ( | matrix_product_template::parameters_type const & | parameters,
|  | char | A_trans,
|  | char | B_trans
| ) |  |
| inline

Definition at line 817 of file matrix_product_template.hpp.

## Member Function Documentation

virtual void viennacl::device_specific::matrix_product_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 819 of file matrix_product_template.hpp.

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

- viennacl/device_specific/templates/matrix_product_template.hpp