ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
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...
 
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.
 

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

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