ViennaCL - The Vienna Computing Library  1.6.0
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...
 
class  viennacl::linalg::opencl::kernels::matrix< 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_element< NumericT >
 Main kernel class for generating OpenCL kernels for elementwise operations other than addition and subtraction on/with viennacl::vector<>. More...
 
class  viennacl::linalg::opencl::kernels::row_wise_reduction< 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...
 
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...
 

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.
 

Macros

#define VIENNACL_ADD_UNARY(OPTYPE)   handler.add(operator_string(OPTYPE), ds::matrix_axpy_template(matrix_axpy_params),scheduler::preset::unary_element_op(&A, &B, OPTYPE))
 
#define VIENNACL_ADD_BINARY(OPTYPE)   handler.add(operator_string(OPTYPE), ds::matrix_axpy_template(matrix_axpy_params),scheduler::preset::binary_element_op(&A, &B, &C, OPTYPE))
 

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 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 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)
 
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)
 

Detailed Description

Runtime generation of OpenCL kernels for matrix operations.

Definition in file matrix.hpp.

Macro Definition Documentation

#define VIENNACL_ADD_BINARY (   OPTYPE)    handler.add(operator_string(OPTYPE), ds::matrix_axpy_template(matrix_axpy_params),scheduler::preset::binary_element_op(&A, &B, &C, OPTYPE))
#define VIENNACL_ADD_UNARY (   OPTYPE)    handler.add(operator_string(OPTYPE), ds::matrix_axpy_template(matrix_axpy_params),scheduler::preset::unary_element_op(&A, &B, OPTYPE))