/__w/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/common/kokkos.hh File Reference#
|
DiFfRG
Discretization Framework for functional Renormalization Group flows
|
kokkos.hh File Reference
#include <DiFfRG/common/tuples.hh>#include <Kokkos_Core.hpp>#include <type_traits>#include <array>#include <tuple>#include <utility>#include <autodiff/forward/real.hpp>Go to the source code of this file.
Classes | |
| struct | DiFfRG::TBB_ExecutionSpace |
| This execution space is optimal when used in conjunction with the FE discretizations. More... | |
| class | DiFfRG::ExecutionSpaces |
| struct | DiFfRG::SumPlus< Scalar, SavedScalar, Space > |
| An extension of the Kokkos::Sum reducer that adds a constant value to the result. More... | |
| struct | DiFfRG::GetKokkosNDStarType< dim, T > |
| struct | DiFfRG::GetKokkosNDStarType< 1, T > |
| struct | DiFfRG::KokkosNDRangeHelper< dim, ExecutionSpace > |
| struct | DiFfRG::KokkosNDRangeHelper< 1, ExecutionSpace > |
| struct | DiFfRG::KokkosNDLambdaWrapper< dim, FUN > |
| This is a functor which wraps a lambda. Basically, this is necessary when one wants to call a variadic lambda on an NVIDIA GPU. CUDA seems to be unable to expand the variadic arguments - in contrast, a direct approach does indeed work for openMP or serial compilation. To get around this limitation, the KokkosNDLambdaWrapper packs the indices into an array. If you wonder, whether there's a difference when using tie and tuples: https://godbolt.org/z/M3bG39rsM No. Therefore, we spare the ourselves the hassle and simply use an array. More... | |
| struct | DiFfRG::KokkosNDLambdaWrapperReduction< dim, FUN > |
This is a functor which wraps a lambda for reduction. Basically, this is necessary when one wants to call a variadic lambda on an NVIDIA GPU. CUDA seems to be unable to expand the variadic arguments - in contrast, a direct approach does indeed work for openMP or serial compilation. To get around this limitation, the KokkosNDLambdaWrapperReduction packs the indices into an array. Uses compile-time index sequences to extract the first dim args as indices and the last arg as the reduction value, avoiding recursive tuple_first/tuple_cat overhead per GPU thread. More... | |
| struct | Kokkos::reduction_identity< autodiff::Real< N, T > > |
Namespaces | |
| namespace | DiFfRG |
| namespace | DiFfRG::device |
| namespace | Kokkos |
Generated by