Facilities for expressing parallel computation and launching performance-portable kernels in AMReX.
More...
|
| template<std::integral T, typename L > |
| void | amrex::ParallelForOMP (T n, L const &f) noexcept |
| | Performance-portable kernel launch function with optional OpenMP threading.
|
| |
| template<typename L > |
| void | amrex::ParallelForOMP (Box const &box, L const &f) noexcept |
| | Performance-portable kernel launch function with optional OpenMP threading.
|
| |
| template<std::integral T, typename L > |
| void | amrex::ParallelForOMP (Box const &box, T ncomp, L const &f) noexcept |
| | Performance-portable kernel launch function with optional OpenMP threading.
|
| |
template<int MT, std::integral T, typename L >
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &, T n, L const &f) |
| | Performance-portable kernel launch function.
|
| |
template<int MT, typename L , int dim>
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &, BoxND< dim > const &box, L const &f) |
| | Performance-portable kernel launch function.
|
| |
template<int MT, std::integral T, typename L , int dim>
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &, BoxND< dim > const &box, T ncomp, L const &f) |
| | Performance-portable kernel launch function.
|
| |
template<std::integral T, typename L >
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelForRNG (T n, L const &f) |
| | Performance-portable kernel launch function with random number generation support.
|
| |
template<typename L , int dim>
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelForRNG (BoxND< dim > const &box, L const &f) |
| | Performance-portable kernel launch function with random number generation support.
|
| |
template<std::integral T, typename L , int dim>
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelForRNG (BoxND< dim > const &box, T ncomp, L const &f) |
| | Performance-portable kernel launch function with random number generation support.
|
| |
template<int MT, typename L1 , typename L2 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &, BoxND< dim > const &box1, BoxND< dim > const &box2, L1 &&f1, L2 &&f2) |
| | Performance-portable kernel launch function.
|
| |
template<int MT, typename L1 , typename L2 , typename L3 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value && MaybeDeviceRunnable<L3>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &, BoxND< dim > const &box1, BoxND< dim > const &box2, BoxND< dim > const &box3, L1 &&f1, L2 &&f2, L3 &&f3) |
| | Performance-portable kernel launch function.
|
| |
template<int MT, std::integral T1, std::integral T2, typename L1 , typename L2 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &, BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2) |
| | Performance-portable kernel launch function.
|
| |
template<int MT, std::integral T1, std::integral T2, std::integral T3, typename L1 , typename L2 , typename L3 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value && MaybeDeviceRunnable<L3>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &, BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2, BoxND< dim > const &box3, T3 ncomp3, L3 &&f3) |
| | Performance-portable kernel launch function.
|
| |
template<std::integral T, typename L >
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &info, T n, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
template<typename L , int dim>
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &info, BoxND< dim > const &box, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
template<std::integral T, typename L , int dim>
requires (MaybeDeviceRunnable<L>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &info, BoxND< dim > const &box, T ncomp, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
template<typename L1 , typename L2 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &info, BoxND< dim > const &box1, BoxND< dim > const &box2, L1 &&f1, L2 &&f2) noexcept |
| | Performance-portable kernel launch function.
|
| |
template<typename L1 , typename L2 , typename L3 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value && MaybeDeviceRunnable<L3>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &info, BoxND< dim > const &box1, BoxND< dim > const &box2, BoxND< dim > const &box3, L1 &&f1, L2 &&f2, L3 &&f3) noexcept |
| | Performance-portable kernel launch function.
|
| |
template<std::integral T1, std::integral T2, typename L1 , typename L2 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &info, BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2) noexcept |
| | Performance-portable kernel launch function.
|
| |
template<std::integral T1, std::integral T2, std::integral T3, typename L1 , typename L2 , typename L3 , int dim>
requires (MaybeDeviceRunnable<L1>::value && MaybeDeviceRunnable<L2>::value && MaybeDeviceRunnable<L3>::value) |
| void | amrex::ParallelFor (Gpu::KernelInfo const &info, BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2, BoxND< dim > const &box3, T3 ncomp3, L3 &&f3) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<std::integral T, typename L > |
| void | amrex::ParallelFor (T n, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<int MT, std::integral T, typename L > |
| void | amrex::ParallelFor (T n, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<typename L , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<int MT, typename L , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<std::integral T, typename L , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box, T ncomp, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<int MT, std::integral T, typename L , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box, T ncomp, L &&f) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<typename L1 , typename L2 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, BoxND< dim > const &box2, L1 &&f1, L2 &&f2) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<int MT, typename L1 , typename L2 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, BoxND< dim > const &box2, L1 &&f1, L2 &&f2) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<typename L1 , typename L2 , typename L3 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, BoxND< dim > const &box2, BoxND< dim > const &box3, L1 &&f1, L2 &&f2, L3 &&f3) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<int MT, typename L1 , typename L2 , typename L3 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, BoxND< dim > const &box2, BoxND< dim > const &box3, L1 &&f1, L2 &&f2, L3 &&f3) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<std::integral T1, std::integral T2, typename L1 , typename L2 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<int MT, std::integral T1, std::integral T2, typename L1 , typename L2 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<std::integral T1, std::integral T2, std::integral T3, typename L1 , typename L2 , typename L3 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2, BoxND< dim > const &box3, T3 ncomp3, L3 &&f3) noexcept |
| | Performance-portable kernel launch function.
|
| |
| template<int MT, std::integral T1, std::integral T2, std::integral T3, typename L1 , typename L2 , typename L3 , int dim> |
| void | amrex::ParallelFor (BoxND< dim > const &box1, T1 ncomp1, L1 &&f1, BoxND< dim > const &box2, T2 ncomp2, L2 &&f2, BoxND< dim > const &box3, T3 ncomp3, L3 &&f3) noexcept |
| | Performance-portable kernel launch function.
|
| |
Facilities for expressing parallel computation and launching performance-portable kernels in AMReX.
These interfaces provide a unified way to execute computational kernels on CPUs and GPUs without exposing backend-specific programming models.