From 9a4d7d866230f8fcc7834a9268fe12c87d708752 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Tue, 7 Feb 2023 15:03:01 -0800 Subject: [PATCH] Safe Compile Time: Available Arenas --- src/Base/PODVector.cpp | 4 +++- src/Particle/ArrayOfStructs.cpp | 4 +++- src/Particle/ParticleContainer.cpp | 6 ++++-- src/Particle/ParticleTile.cpp | 6 ++++-- src/Particle/StructOfArrays.cpp | 4 +++- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Base/PODVector.cpp b/src/Base/PODVector.cpp index 9d21398c..0a746561 100644 --- a/src/Base/PODVector.cpp +++ b/src/Base/PODVector.cpp @@ -117,10 +117,12 @@ void make_PODVector(py::module &m, std::string typestr) // see Src/Base/AMReX_GpuContainers.H make_PODVector> (m, typestr, "std"); make_PODVector> (m, typestr, "arena"); + make_PODVector> (m, typestr, "pinned"); +#ifdef AMREX_USE_GPU make_PODVector> (m, typestr, "device"); make_PODVector> (m, typestr, "managed"); - make_PODVector> (m, typestr, "pinned"); make_PODVector> (m, typestr, "async"); +#endif } void init_PODVector(py::module& m) { diff --git a/src/Particle/ArrayOfStructs.cpp b/src/Particle/ArrayOfStructs.cpp index e5331b67..c1855126 100644 --- a/src/Particle/ArrayOfStructs.cpp +++ b/src/Particle/ArrayOfStructs.cpp @@ -126,10 +126,12 @@ void make_ArrayOfStructs(py::module &m) // see Src/Base/AMReX_GpuContainers.H make_ArrayOfStructs (m, "std"); make_ArrayOfStructs (m, "arena"); + make_ArrayOfStructs (m, "pinned"); +#ifdef AMREX_USE_GPU make_ArrayOfStructs (m, "device"); make_ArrayOfStructs (m, "managed"); - make_ArrayOfStructs (m, "pinned"); make_ArrayOfStructs (m, "async"); +#endif } void init_ArrayOfStructs(py::module& m) { diff --git a/src/Particle/ParticleContainer.cpp b/src/Particle/ParticleContainer.cpp index 143c15a9..f0ec834f 100644 --- a/src/Particle/ParticleContainer.cpp +++ b/src/Particle/ParticleContainer.cpp @@ -352,14 +352,16 @@ void make_ParticleContainer_and_Iterators (py::module &m) std::allocator>(m, "std"); make_ParticleContainer_and_Iterators(m, "arena"); + make_ParticleContainer_and_Iterators(m, "pinned"); +#ifdef AMREX_USE_GPU make_ParticleContainer_and_Iterators(m, "device"); make_ParticleContainer_and_Iterators(m, "managed"); - make_ParticleContainer_and_Iterators(m, "pinned"); make_ParticleContainer_and_Iterators(m, "async"); +#endif } void init_ParticleContainer(py::module& m) { diff --git a/src/Particle/ParticleTile.cpp b/src/Particle/ParticleTile.cpp index 37630f33..62374dba 100644 --- a/src/Particle/ParticleTile.cpp +++ b/src/Particle/ParticleTile.cpp @@ -116,14 +116,16 @@ void make_ParticleTile(py::module &m) std::allocator>(m, "std"); make_ParticleTile(m, "arena"); + make_ParticleTile(m, "pinned"); +#ifdef AMREX_USE_GPU make_ParticleTile(m, "device"); make_ParticleTile(m, "managed"); - make_ParticleTile(m, "pinned"); make_ParticleTile(m, "async"); +#endif } void init_ParticleTile(py::module& m) { diff --git a/src/Particle/StructOfArrays.cpp b/src/Particle/StructOfArrays.cpp index d83b99f5..2c485dec 100644 --- a/src/Particle/StructOfArrays.cpp +++ b/src/Particle/StructOfArrays.cpp @@ -48,10 +48,12 @@ void make_StructOfArrays(py::module &m) // see Src/Base/AMReX_GpuContainers.H make_StructOfArrays(m, "std"); make_StructOfArrays(m, "arena"); + make_StructOfArrays(m, "pinned"); +#ifdef AMREX_USE_GPU make_StructOfArrays(m, "device"); make_StructOfArrays(m, "managed"); - make_StructOfArrays(m, "pinned"); make_StructOfArrays(m, "async"); +#endif } void init_StructOfArrays(py::module& m) {