Block-Structured AMR Software Framework
AMReX_GpuLaunch.H File Reference
#include <AMReX_Config.H>
#include <AMReX_GpuQualifiers.H>
#include <AMReX_GpuKernelInfo.H>
#include <AMReX_GpuControl.H>
#include <AMReX_GpuTypes.H>
#include <AMReX_GpuError.H>
#include <AMReX_GpuRange.H>
#include <AMReX_GpuDevice.H>
#include <AMReX_GpuMemory.H>
#include <AMReX_GpuReduce.H>
#include <AMReX_Tuple.H>
#include <AMReX_Box.H>
#include <AMReX_Loop.H>
#include <AMReX_Extension.H>
#include <AMReX_BLassert.H>
#include <AMReX_TypeTraits.H>
#include <AMReX_GpuLaunchGlobal.H>
#include <AMReX_RandomEngine.H>
#include <AMReX_Algorithm.H>
#include <AMReX_Math.H>
#include <AMReX_Vector.H>
#include <cstddef>
#include <limits>
#include <algorithm>
#include <utility>
#include <AMReX_GpuLaunchMacrosG.H>
#include <AMReX_GpuLaunchFunctsG.H>
#include <AMReX_GpuLaunch.nolint.H>
#include <AMReX_CTOParallelForImpl.H>

Go to the source code of this file.

Classes

struct  amrex::Gpu::ComponentBox
 
struct  amrex::Gpu::GridSize
 
struct  amrex::Gpu::ExecutionConfig
 
struct  amrex::Gpu::ExecConfig
 

Namespaces

 amrex
 
 amrex::Gpu
 

Macros

#define AMREX_GPU_NCELLS_PER_THREAD   3
 
#define AMREX_GPU_Y_STRIDE   1
 
#define AMREX_GPU_Z_STRIDE   1
 
#define AMREX_LAUNCH_KERNEL(MT, blocks, threads, sharedMem, stream, ...)    amrex::launch_global<MT><<<blocks, threads, sharedMem, stream>>>(__VA_ARGS__)
 

Functions

template<class L , class... Lambdas>
AMREX_GPU_GLOBAL void amrex::launch_global (L f0, Lambdas... fs)
 
template<class L >
AMREX_GPU_DEVICE void amrex::call_device (L &&f0) noexcept
 
template<class L , class... Lambdas>
AMREX_GPU_DEVICE void amrex::call_device (L &&f0, Lambdas &&... fs) noexcept
 
template<class L >
void amrex::launch_host (L &&f0) noexcept
 
template<class L , class... Lambdas>
void amrex::launch_host (L &&f0, Lambdas &&... fs) noexcept
 
constexpr std::size_t amrex::Gpu::numThreadsPerBlockParallelFor ()
 
AMREX_GPU_HOST_DEVICE Box amrex::Gpu::getThreadBox (const Box &bx, Long offset) noexcept
 
template<int MT>
ExecutionConfig amrex::Gpu::makeExecutionConfig (Long N) noexcept
 
template<int MT>
ExecutionConfig amrex::Gpu::makeExecutionConfig (const Box &box) noexcept
 
template<int MT>
Vector< ExecConfig > amrex::Gpu::makeNExecutionConfigs (Long N) noexcept
 
template<int MT, int dim>
Vector< ExecConfig > amrex::Gpu::makeNExecutionConfigs (BoxND< dim > const &box) noexcept
 

Macro Definition Documentation

◆ AMREX_GPU_NCELLS_PER_THREAD

#define AMREX_GPU_NCELLS_PER_THREAD   3

◆ AMREX_GPU_Y_STRIDE

#define AMREX_GPU_Y_STRIDE   1

◆ AMREX_GPU_Z_STRIDE

#define AMREX_GPU_Z_STRIDE   1

◆ AMREX_LAUNCH_KERNEL

#define AMREX_LAUNCH_KERNEL (   MT,
  blocks,
  threads,
  sharedMem,
  stream,
  ... 
)     amrex::launch_global<MT><<<blocks, threads, sharedMem, stream>>>(__VA_ARGS__)