Implementations of dense direct solvers using CUDA are found here. More...
#include "viennacl/forwards.h"
#include "viennacl/vector.hpp"
#include "viennacl/matrix.hpp"
#include "viennacl/linalg/cuda/common.hpp"
Go to the source code of this file.
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::cuda | |
Holds all CUDA compute kernels used by ViennaCL. | |
viennacl::linalg::cuda::detail | |
Helper functions for the CUDA linear algebra backend. | |
Functions | |
template<typename NumericT > | |
__global__ void | viennacl::linalg::cuda::matrix_matrix_upper_solve_kernel (const NumericT *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, bool row_major_A, NumericT *B, unsigned int B_start1, unsigned int B_start2, unsigned int B_inc1, unsigned int B_inc2, unsigned int B_size1, unsigned int B_size2, unsigned int B_internal_size1, unsigned int B_internal_size2, bool row_major_B, bool unit_diagonal) |
template<typename NumericT > | |
__global__ void | viennacl::linalg::cuda::matrix_matrix_lower_solve_kernel (const NumericT *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, bool row_major_A, NumericT *B, unsigned int B_start1, unsigned int B_start2, unsigned int B_inc1, unsigned int B_inc2, unsigned int B_size1, unsigned int B_size2, unsigned int B_internal_size1, unsigned int B_internal_size2, bool row_major_B, bool unit_diagonal) |
template<typename TagT > | |
bool | viennacl::linalg::cuda::detail::is_unit_solve (TagT const &tag) |
bool | viennacl::linalg::cuda::detail::is_unit_solve (viennacl::linalg::unit_lower_tag) |
bool | viennacl::linalg::cuda::detail::is_unit_solve (viennacl::linalg::unit_upper_tag) |
template<typename TagT > | |
bool | viennacl::linalg::cuda::detail::is_upper_solve (TagT const &tag) |
bool | viennacl::linalg::cuda::detail::is_upper_solve (viennacl::linalg::upper_tag) |
bool | viennacl::linalg::cuda::detail::is_upper_solve (viennacl::linalg::unit_upper_tag) |
template<typename Matrix1T , typename Matrix2T , typename SolverTagT > | |
void | viennacl::linalg::cuda::detail::inplace_solve_impl (Matrix1T const &A, Matrix2T &B, SolverTagT const &tag) |
template<typename NumericT , typename SolverTagT > | |
void | viennacl::linalg::cuda::inplace_solve (matrix_base< NumericT > const &A, matrix_base< NumericT > &B, SolverTagT tag) |
Direct inplace solver for triangular systems with multiple right hand sides, i.e. A \ B (MATLAB notation). More... | |
template<typename NumericT > | |
__global__ void | viennacl::linalg::cuda::triangular_substitute_inplace_row_kernel (NumericT const *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, NumericT *v, unsigned int v_start, unsigned int v_inc, unsigned int v_size, unsigned int options) |
template<typename NumericT > | |
__global__ void | viennacl::linalg::cuda::triangular_substitute_inplace_col_kernel (NumericT const *A, unsigned int A_start1, unsigned int A_start2, unsigned int A_inc1, unsigned int A_inc2, unsigned int A_size1, unsigned int A_size2, unsigned int A_internal_size1, unsigned int A_internal_size2, NumericT *v, unsigned int v_start, unsigned int v_inc, unsigned int v_size, unsigned int options) |
unsigned int | viennacl::linalg::cuda::detail::get_option_for_solver_tag (viennacl::linalg::upper_tag) |
unsigned int | viennacl::linalg::cuda::detail::get_option_for_solver_tag (viennacl::linalg::unit_upper_tag) |
unsigned int | viennacl::linalg::cuda::detail::get_option_for_solver_tag (viennacl::linalg::lower_tag) |
unsigned int | viennacl::linalg::cuda::detail::get_option_for_solver_tag (viennacl::linalg::unit_lower_tag) |
template<typename MatrixT , typename VectorT > | |
void | viennacl::linalg::cuda::detail::inplace_solve_vector_impl (MatrixT const &mat, VectorT &vec, unsigned int options) |
template<typename NumericT , typename SolverTagT > | |
void | viennacl::linalg::cuda::inplace_solve (matrix_base< NumericT > const &mat, vector_base< NumericT > &vec, SolverTagT) |
Direct inplace solver for dense triangular systems (non-transposed version) More... | |
Implementations of dense direct solvers using CUDA are found here.
Definition in file direct_solve.hpp.