Reference documentation for deal.II version 9.6.0
\(\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\}}\)
Loading...
Searching...
No Matches
cuda_kernels.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/cuda_size.h>
#include <deal.II/base/types.h>
#include <deal.II/lac/cuda_atomic.h>
#include <assert.h>

Go to the source code of this file.

Classes

struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Addition< Number >
 
struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Addition< std::complex< Number > >
 
struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Subtraction< Number >
 
struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Subtraction< std::complex< Number > >
 
struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Max< Number >
 
struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Max< std::complex< Number > >
 
struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Min< Number >
 
struct  LinearAlgebra::CUDAWrappers::kernel::Binop_Min< std::complex< Number > >
 
struct  LinearAlgebra::CUDAWrappers::kernel::ElemSum< Number >
 
struct  LinearAlgebra::CUDAWrappers::kernel::L1Norm< Number >
 
struct  LinearAlgebra::CUDAWrappers::kernel::LInfty< Number >
 
struct  LinearAlgebra::CUDAWrappers::kernel::DotProduct< Number >
 

Namespaces

namespace  LinearAlgebra
 
namespace  LinearAlgebra::CUDAWrappers
 
namespace  LinearAlgebra::CUDAWrappers::kernel
 

Typedefs

using LinearAlgebra::CUDAWrappers::kernel::size_type = types::global_dof_index
 

Functions

template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::vec_scale (Number *val, const Number a, const size_type N)
 
template<typename Number , template< typename > class Binop>
__global__ void LinearAlgebra::CUDAWrappers::kernel::vector_bin_op (Number *v1, const Number *v2, const size_type N)
 
template<typename Number , template< typename > class Binop>
__global__ void LinearAlgebra::CUDAWrappers::kernel::masked_vector_bin_op (const unsigned int *mask, Number *v1, const Number *v2, const size_type N)
 
template<typename Number , typename Operation >
__global__ void LinearAlgebra::CUDAWrappers::kernel::reduction (Number *result, const Number *v, const size_type N)
 
template<typename Number , typename Operation >
__global__ void LinearAlgebra::CUDAWrappers::kernel::double_vector_reduction (Number *result, const Number *v1, const Number *v2, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::vec_add (Number *val, const Number a, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::add_aV (Number *val, const Number a, const Number *V_val, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::add_aVbW (Number *val, const Number a, const Number *V_val, const Number b, const Number *W_val, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::sadd (const Number s, Number *val, const Number a, const Number *V_val, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::sadd (const Number s, Number *val, const Number a, const Number *V_val, const Number b, const Number *W_val, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::scale (Number *val, const Number *V_val, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::equ (Number *val, const Number a, const Number *V_val, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::equ (Number *val, const Number a, const Number *V_val, const Number b, const Number *W_val, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::add_and_dot (Number *res, Number *v1, const Number *v2, const Number *v3, const Number a, const size_type N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::set (Number *val, const Number s, const size_type N)
 
template<typename Number , typename IndexType >
__global__ void LinearAlgebra::CUDAWrappers::kernel::set_permutated (const IndexType *indices, Number *val, const Number *v, const IndexType N)
 
template<typename Number , typename IndexType >
__global__ void LinearAlgebra::CUDAWrappers::kernel::gather (Number *val, const IndexType *indices, const Number *v, const IndexType N)
 
template<typename Number >
__global__ void LinearAlgebra::CUDAWrappers::kernel::add_permutated (const size_type *indices, Number *val, const Number *v, const size_type N)