Implementations of routines for AMG in OpenCL. More...
#include <cstdlib>
#include <cmath>
#include <map>
#include "viennacl/linalg/detail/amg/amg_base.hpp"
#include "viennacl/linalg/opencl/common.hpp"
#include "viennacl/linalg/opencl/kernels/amg.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::opencl | |
Holds all routines providing OpenCL linear algebra operations. | |
viennacl::linalg::opencl::amg | |
Functions | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::amg_influence_trivial (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
Routine for taking all connections in the matrix as strong. More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::amg_influence_advanced (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
Routine for extracting strongly connected points considering a user-provided threshold value. More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::amg_influence (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
Dispatcher for influence processing. More... | |
void | viennacl::linalg::opencl::amg::enumerate_coarse_points (viennacl::linalg::detail::amg::amg_level_context &amg_context) |
Assign IDs to coarse points. More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::amg_coarse_ag_stage1_mis2 (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
AG (aggregation based) coarsening, single-threaded version of stage 1. More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::amg_coarse_ag (compressed_matrix< NumericT > const &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
AG (aggregation based) coarsening. Partially single-threaded version (VIENNACL_AMG_COARSE_AG) More... | |
template<typename InternalT1 > | |
void | viennacl::linalg::opencl::amg::amg_coarse (InternalT1 &A, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
Calls the right coarsening procedure. More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::amg_interpol_ag (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
AG (aggregation based) interpolation. Multi-Threaded! (VIENNACL_INTERPOL_SA) More... | |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::amg_interpol_sa (compressed_matrix< NumericT > const &A, compressed_matrix< NumericT > &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
Smoothed aggregation interpolation. (VIENNACL_INTERPOL_SA) More... | |
template<typename MatrixT > | |
void | viennacl::linalg::opencl::amg::amg_interpol (MatrixT const &A, MatrixT &P, viennacl::linalg::detail::amg::amg_level_context &amg_context, viennacl::linalg::amg_tag &tag) |
Dispatcher for building the interpolation matrix. More... | |
template<typename NumericT , unsigned int AlignmentV> | |
void | viennacl::linalg::opencl::amg::assign_to_dense (viennacl::compressed_matrix< NumericT, AlignmentV > const &A, viennacl::matrix_base< NumericT > &B) |
template<typename NumericT > | |
void | viennacl::linalg::opencl::amg::smooth_jacobi (unsigned int iterations, compressed_matrix< NumericT > const &A, vector< NumericT > &x, vector< NumericT > &x_backup, vector< NumericT > const &rhs_smooth, NumericT weight) |
Jacobi Smoother (OpenCL version) More... | |
Implementations of routines for AMG in OpenCL.
Definition in file amg_operations.hpp.