All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
matrix.hpp File Reference

Runtime generation of OpenCL kernels for matrix operations. More...

`#include "viennacl/scheduler/preset.hpp"`
`#include "viennacl/tools/tools.hpp"`
`#include "viennacl/ocl/kernel.hpp"`
`#include "viennacl/ocl/platform.hpp"`
`#include "viennacl/ocl/utils.hpp"`
`#include "viennacl/device_specific/execution_handler.hpp"`
`#include "viennacl/device_specific/builtin_database/matrix_product.hpp"`

Go to the source code of this file.

## Classes

struct | viennacl::linalg::opencl::kernels::ambm_config
| Configuration struct for generating OpenCL kernels for linear combinations of matrices. More...
struct | viennacl::linalg::opencl::kernels::matrix< NumericT, F >
| Main kernel class for generating OpenCL kernels for operations on/with dense matrix objects of type viennacl::matrix<>. More...
class | viennacl::linalg::opencl::kernels::matrix_prod< NumericT >
| Main kernel class for generating OpenCL kernels for operations on/with viennacl::vector<> without involving matrices, multiple inner products, or element-wise operations other than addition or subtraction. More...
struct | viennacl::linalg::opencl::kernels::matrix_legacy< NumericT, LayoutT >
| Main kernel class for generating OpenCL kernels for operations on/with dense matrix objects of type viennacl::matrix<>. More...
struct | viennacl::linalg::opencl::kernels::matrix_convert
| Main kernel class for vector conversion routines (e.g. convert vector<int> to vector<float>). More...

## Namespaces

| viennacl
| Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
| viennacl::linalg
| Provides all linear algebra operations which are not covered by operator overloads.
| viennacl::linalg::opencl
| Holds all routines providing OpenCL linear algebra operations.
| viennacl::linalg::opencl::kernels
| Contains the OpenCL kernel generation functions for a predefined set of functionality.
| viennacl::linalg::opencl::kernels::detail
| Implementation details for the predefined OpenCL kernels.

## Enumerations

enum | viennacl::linalg::opencl::kernels::ambm_scalar_type { viennacl::linalg::opencl::kernels::VIENNACL_AMBM_NONE = 0, viennacl::linalg::opencl::kernels::VIENNACL_AMBM_CPU, viennacl::linalg::opencl::kernels::VIENNACL_AMBM_GPU }
| Enumeration for the scalar type in ambm-like operations. More...

## Functions

template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_ambm_impl2 (StringType &source, ambm_config const &cfg, bool mult_alpha, bool mult_beta)
template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_ambm_impl (StringType &source, std::string const &numeric_string, ambm_config const &cfg)
template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_ambm (StringType &source, std::string const &numeric_string, bool is_row_major)
template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_assign_cpu (StringType &source, std::string const &numeric_string, bool is_row_major)
template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_diagonal_assign_cpu (StringType &source, std::string const &numeric_string, bool is_row_major)
template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_element_op (StringType &source, std::string const &numeric_string, bool is_row_major)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_fft (StringT &source, std::string const &numeric_string, bool is_row_major)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_lu (StringT &source, std::string const &numeric_string, bool is_row_major)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_scaled_rank1_update (StringT &source, std::string const &numeric_string, bool is_row_major, bool alpha_on_cpu)
template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_trans_vec_mul (StringType &source, std::string const &numeric_string, bool is_row_major)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_triangular_substitute_inplace (StringT &source, std::string const &numeric_string, bool is_row_major)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_trans_kernel (StringT &source, std::string const &numeric_string, bool is_row_major)
template<typename StringType >
void | viennacl::linalg::opencl::kernels::generate_vec_mul (StringType &source, std::string const &numeric_string, bool is_row_major)
std::string | viennacl::linalg::opencl::kernels::detail::type_to_string (viennacl::row_major)
std::string | viennacl::linalg::opencl::kernels::detail::type_to_string (viennacl::column_major)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_matrix_convert_row (StringT &source, std::string const &dest_type, std::string const &src_type)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_matrix_convert_col (StringT &source, std::string const &dest_type, std::string const &src_type)
template<typename StringT >
void | viennacl::linalg::opencl::kernels::generate_matrix_convert (StringT &source, std::string const &dest_type, std::string const &src_type)

## Detailed Description

Runtime generation of OpenCL kernels for matrix operations.

Definition in file matrix.hpp.