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/vector_axpy.hpp"#include "viennacl/device_specific/builtin_database/matrix_axpy.hpp"#include "viennacl/device_specific/builtin_database/row_wise_reduction.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... | |
| 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) |
Runtime generation of OpenCL kernels for matrix operations.
Definition in file matrix.hpp.
| #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)) |