OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
KokkosTypes.hpp File Reference

Execution-space selection + view aliases for the Kokkos marcher plugin. More...

#include <Kokkos_Core.hpp>
Include dependency graph for KokkosTypes.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 
namespace  openswmm::twoD::gpu
 

Typedefs

using openswmm::twoD::gpu::ExecSpace = Kokkos::DefaultExecutionSpace
 
using openswmm::twoD::gpu::MemSpace = ExecSpace::memory_space
 
using openswmm::twoD::gpu::DView = Kokkos::View<double*, MemSpace>
 mutable double array
 
using openswmm::twoD::gpu::CDView = Kokkos::View<const double*, MemSpace>
 const double array
 
using openswmm::twoD::gpu::IView = Kokkos::View<int*, MemSpace>
 mutable int array
 
using openswmm::twoD::gpu::CIView = Kokkos::View<const int*, MemSpace>
 const int array
 

Detailed Description

Execution-space selection + view aliases for the Kokkos marcher plugin.

One backend per plugin build, selected at compile time by the OPENSWMM_GPU_EXECSPACE_* define the plugin CMake sets:

omp → Kokkos::OpenMP (host-parallel; view copies are no-ops) cuda → Kokkos::Cuda (NVIDIA) hip → Kokkos::HIP (AMD) sycl → Kokkos::SYCL (Intel)

HIP and SYCL are top-level Kokkos:: names as of Kokkos 4.x (the project pins 4.x via vcpkg-overlays/kokkos). All buffers live in ExecSpace's memory_space: under OpenMP that is host memory, so the host↔device deep_copies in the solver are no-ops; under a device backend they become real transfers, confined to co-advance batch boundaries.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n Apache-2.0