From a14f41b4ab7f94f04bfb8cbba9062515c24f7235 Mon Sep 17 00:00:00 2001 From: Alessandro Vinciguerra <alessandro.vinciguerra@psi.ch> Date: Wed, 15 Sep 2021 16:34:10 +0200 Subject: [PATCH 1/2] Fix Cuda host/device function warnings Don't access particle attributes directly in kernels --- src/Particle/ParticleSpatialLayout.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Particle/ParticleSpatialLayout.hpp b/src/Particle/ParticleSpatialLayout.hpp index 4480d033..d25510ff 100644 --- a/src/Particle/ParticleSpatialLayout.hpp +++ b/src/Particle/ParticleSpatialLayout.hpp @@ -158,12 +158,13 @@ namespace ippl { IpplTimings::startTimer(destroyTimer); size_type invalidCount = 0; + auto pIDs = pdata.ID.getView(); Kokkos::parallel_reduce( "set/count invalid", localnum, KOKKOS_LAMBDA(const size_t i, size_type& nInvalid) { if (invalid(i)) { - pdata.ID(i) = -1; + pIDs(i) = -1; nInvalid += 1; } }, invalidCount); -- GitLab From e0e412f05b3794ed249b9ee70abfe96c13a1ceb6 Mon Sep 17 00:00:00 2001 From: Alessandro Vinciguerra <alessandro.vinciguerra@psi.ch> Date: Wed, 15 Sep 2021 17:05:44 +0200 Subject: [PATCH 2/2] Remove class access in particle creation --- src/Particle/ParticleBase.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Particle/ParticleBase.hpp b/src/Particle/ParticleBase.hpp index 0bb11a7a..c73c97a0 100644 --- a/src/Particle/ParticleBase.hpp +++ b/src/Particle/ParticleBase.hpp @@ -112,10 +112,13 @@ namespace ippl { } // set the unique ID value for these new particles + auto pIDs = ID.getView(); + auto nextID = this->nextID_m; + auto numNodes = this->numNodes_m; Kokkos::parallel_for("ParticleBase<PLayout, Properties...>::create(size_t)", Kokkos::RangePolicy(localNum_m, nLocal), - KOKKOS_CLASS_LAMBDA(const std::int64_t i) { - ID(i) = this->nextID_m + this->numNodes_m * i; + KOKKOS_LAMBDA(const std::int64_t i) { + pIDs(i) = nextID + numNodes * i; }); nextID_m += numNodes_m * (nLocal - localNum_m); -- GitLab