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
matrix.hpp File Reference

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

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.