Reference documentation for deal.II version GIT 69313620a0 2022-11-28 13:00:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Classes | Enumerations | Functions | Variables
CUDAWrappers::internal Namespace Reference

Classes

struct  EvaluatorTensorProduct
 
struct  EvaluatorTensorProduct< evaluate_general, dim, fe_degree, n_q_points_1d, Number >
 

Enumerations

enum  EvaluatorVariant { evaluate_general , evaluate_symmetric , evaluate_evenodd }
 

Functions

template<int dim, int n_points_1d>
unsigned int compute_index ()
 
template<unsigned int size>
unsigned int index2 (unsigned int i, unsigned int j)
 
template<unsigned int size>
unsigned int index3 (unsigned int i, unsigned int j, unsigned int k)
 
template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void interpolate_boundary_2d (const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask, Number *values)
 
template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void interpolate_boundary_3d (const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask, Number *values)
 
template<int dim, int fe_degree, bool transpose, typename Number >
void resolve_hanging_nodes (const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask, Number *values)
 
template<typename Number >
__global__ void scale (Number *val, const Number a, const typename SparseMatrix< Number >::size_type N)
 
void create_sp_mat_descr (int m, int n, int nnz, const float *A_val_dev, const int *A_row_ptr_dev, const int *A_column_index_dev, cusparseSpMatDescr_t &sp_descr)
 
void create_sp_mat_descr (int m, int n, int nnz, const double *A_val_dev, const int *A_row_ptr_dev, const int *A_column_index_dev, cusparseSpMatDescr_t &sp_descr)
 
void csrmv (cusparseHandle_t handle, bool transpose, int m, int n, const cusparseSpMatDescr_t sp_descr, const float *x, bool add, float *y)
 
void csrmv (cusparseHandle_t handle, bool transpose, int m, int n, const cusparseSpMatDescr_t sp_descr, const double *x, bool add, double *y)
 
template<typename Number >
__global__ void l1_norm (const typename SparseMatrix< Number >::size_type n_rows, const Number *val_dev, const int *column_index_dev, const int *row_ptr_dev, Number *sums)
 
template<typename Number >
__global__ void linfty_norm (const typename SparseMatrix< Number >::size_type n_rows, const Number *val_dev, const int *column_index_dev, const int *row_ptr_dev, Number *sums)
 

Variables

__constant__ double constraint_weights [(CUDAWrappers::mf_max_elem_degree+1) *(CUDAWrappers::mf_max_elem_degree+1)]
 
std::array< std::atomic_bool, mf_n_concurrent_objectsused_objects
 

Function Documentation

◆ compute_index()

template<int dim, int n_points_1d>
unsigned int CUDAWrappers::internal::compute_index ( )
inline

Compute the dof/quad index for a given thread id, dimension, and number of points in each space dimensions.

Definition at line 49 of file cuda_fe_evaluation.h.

◆ index2()

template<unsigned int size>
unsigned int CUDAWrappers::internal::index2 ( unsigned int  i,
unsigned int  j 
)
inline

Definition at line 41 of file cuda_hanging_nodes_internal.h.

◆ index3()

template<unsigned int size>
unsigned int CUDAWrappers::internal::index3 ( unsigned int  i,
unsigned int  j,
unsigned int  k 
)
inline

Definition at line 50 of file cuda_hanging_nodes_internal.h.

◆ interpolate_boundary_2d()

template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void CUDAWrappers::internal::interpolate_boundary_2d ( const ::internal::MatrixFreeFunctions::ConstraintKinds  constraint_mask,
Number *  values 
)
inline

Definition at line 62 of file cuda_hanging_nodes_internal.h.

◆ interpolate_boundary_3d()

template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number >
void CUDAWrappers::internal::interpolate_boundary_3d ( const ::internal::MatrixFreeFunctions::ConstraintKinds  constraint_mask,
Number *  values 
)
inline

Definition at line 168 of file cuda_hanging_nodes_internal.h.

◆ resolve_hanging_nodes()

template<int dim, int fe_degree, bool transpose, typename Number >
void CUDAWrappers::internal::resolve_hanging_nodes ( const ::internal::MatrixFreeFunctions::ConstraintKinds  constraint_mask,
Number *  values 
)

This function resolves the hanging nodes using tensor product.

The implementation of this class is explained in Section 3 of [109] and in Section 3.4 of [103].

Definition at line 317 of file cuda_hanging_nodes_internal.h.

◆ scale()

template<typename Number >
__global__ void CUDAWrappers::internal::scale ( Number *  val,
const Number  a,
const typename SparseMatrix< Number >::size_type  N 
)

Definition at line 34 of file cuda_sparse_matrix.cc.

◆ create_sp_mat_descr() [1/2]

void CUDAWrappers::internal::create_sp_mat_descr ( int  m,
int  n,
int  nnz,
const float *  A_val_dev,
const int *  A_row_ptr_dev,
const int *  A_column_index_dev,
cusparseSpMatDescr_t &  sp_descr 
)

Definition at line 47 of file cuda_sparse_matrix.cc.

◆ create_sp_mat_descr() [2/2]

void CUDAWrappers::internal::create_sp_mat_descr ( int  m,
int  n,
int  nnz,
const double A_val_dev,
const int *  A_row_ptr_dev,
const int *  A_column_index_dev,
cusparseSpMatDescr_t &  sp_descr 
)

Definition at line 73 of file cuda_sparse_matrix.cc.

◆ csrmv() [1/2]

void CUDAWrappers::internal::csrmv ( cusparseHandle_t  handle,
bool  transpose,
int  m,
int  n,
const cusparseSpMatDescr_t  sp_descr,
const float *  x,
bool  add,
float *  y 
)

Definition at line 99 of file cuda_sparse_matrix.cc.

◆ csrmv() [2/2]

void CUDAWrappers::internal::csrmv ( cusparseHandle_t  handle,
bool  transpose,
int  m,
int  n,
const cusparseSpMatDescr_t  sp_descr,
const double x,
bool  add,
double y 
)

Definition at line 172 of file cuda_sparse_matrix.cc.

◆ l1_norm()

template<typename Number >
__global__ void CUDAWrappers::internal::l1_norm ( const typename SparseMatrix< Number >::size_type  n_rows,
const Number *  val_dev,
const int *  column_index_dev,
const int *  row_ptr_dev,
Number *  sums 
)

Definition at line 246 of file cuda_sparse_matrix.cc.

◆ linfty_norm()

template<typename Number >
__global__ void CUDAWrappers::internal::linfty_norm ( const typename SparseMatrix< Number >::size_type  n_rows,
const Number *  val_dev,
const int *  column_index_dev,
const int *  row_ptr_dev,
Number *  sums 
)

Definition at line 266 of file cuda_sparse_matrix.cc.

Variable Documentation

◆ constraint_weights

__constant__ double CUDAWrappers::internal::constraint_weights[(CUDAWrappers::mf_max_elem_degree+1) *(CUDAWrappers::mf_max_elem_degree+1)]

Definition at line 33 of file cuda_hanging_nodes_internal.h.

◆ used_objects

std::array<std::atomic_bool, mf_n_concurrent_objects> CUDAWrappers::internal::used_objects

Definition at line 28 of file cuda_matrix_free.cc.