Block-Structured AMR Software Framework
AMReX_GpuReduce.H File Reference
#include <AMReX_Config.H>
#include <AMReX_GpuQualifiers.H>
#include <AMReX_GpuControl.H>
#include <AMReX_GpuTypes.H>
#include <AMReX_GpuAtomic.H>
#include <AMReX_GpuUtility.H>
#include <AMReX_Functional.H>
#include <AMReX_TypeTraits.H>

Go to the source code of this file.

Classes

struct  amrex::Gpu::warpReduce< warpSize, T, F >
 

Namespaces

 amrex
 
 amrex::Gpu
 
 amrex::Gpu::detail
 

Functions

template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceSum (T *dest, T source, Gpu::Handler const &h) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceMin (T *dest, T source, Gpu::Handler const &h) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceMax (T *dest, T source, Gpu::Handler const &h) noexcept
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceLogicalAnd (int *dest, int source, Gpu::Handler const &h) noexcept
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceLogicalOr (int *dest, int source, Gpu::Handler const &h) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::detail::shuffle_down (T x, int offset) noexcept
 
template<class T , std::enable_if_t< sizeof(T)%sizeof(unsigned int)==0, int > = 0>
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::detail::multi_shuffle_down (T x, int offset) noexcept
 
template<int warpSize, typename T , typename WARPREDUCE >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::blockReduce (T x, WARPREDUCE &&warp_reduce, T x0)
 
template<int warpSize, typename T , typename WARPREDUCE , typename ATOMICOP >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::blockReduce_partial (T *dest, T x, WARPREDUCE &&warp_reduce, ATOMICOP &&atomic_op, Gpu::Handler const &handler)
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::blockReduceSum (T source) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceSum_full (T *dest, T source) noexcept
 
template<int BLOCKDIMX, typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::blockReduceSum (T source) noexcept
 
template<int BLOCKDIMX, typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceSum_full (T *dest, T source) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::blockReduceMin (T source) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceMin_full (T *dest, T source) noexcept
 
template<int BLOCKDIMX, typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::blockReduceMin (T source) noexcept
 
template<int BLOCKDIMX, typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceMin_full (T *dest, T source) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::blockReduceMax (T source) noexcept
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceMax_full (T *dest, T source) noexcept
 
template<int BLOCKDIMX, typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINEamrex::Gpu::blockReduceMax (T source) noexcept
 
template<int BLOCKDIMX, typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void amrex::Gpu::deviceReduceMax_full (T *dest, T source) noexcept