From efef777788aa9d0f112ba868aa41b8d6cc5cd99f Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Fri, 4 Oct 2024 06:21:52 -0700 Subject: [PATCH] Removed unnecessary CopyToHost --- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 19 ++++++++++++------- RecoTracker/LSTCore/src/alpaka/Event.h | 2 +- RecoTracker/LSTCore/src/alpaka/Segment.h | 13 ------------- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 1bc0b6bc74976..521c4f2ee7046 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -1396,16 +1396,21 @@ MiniDoubletsBuffer& Event::getMiniDoublets(bool sync) { return mdsInCPU_.value(); } -template +template typename TSoA::ConstView Event::getSegments(bool sync) { - if constexpr (std::is_same_v) + if constexpr (std::is_same_v) { return segmentsDev_->const_view(); - if (!segmentsHost_) { - segmentsHost_.emplace(cms::alpakatools::CopyToHost::copyAsync(queue_, *segmentsDev_)); - if (sync) - alpaka::wait(queue_); // host consumers expect filled data + } else { + if (!segmentsHost_) { + segmentsHost_.emplace( + cms::alpakatools:: + CopyToHost>::copyAsync( + queue_, *segmentsDev_)); + if (sync) + alpaka::wait(queue_); // host consumers expect filled data + } + return segmentsHost_->const_view(); } - return segmentsHost_->const_view(); } template SegmentsConst Event::getSegments(bool); template SegmentsOccupancyConst Event::getSegments(bool); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index 398370438d0a5..c3a73c6d3ffad 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -183,7 +183,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { HitsBuffer& getHitsInCMSSW(bool sync = true); ObjectRangesBuffer& getRanges(bool sync = true); MiniDoubletsBuffer& getMiniDoublets(bool sync = true); - template + template typename TSoA::ConstView getSegments(bool sync = true); TripletsBuffer& getTriplets(bool sync = true); QuintupletsBuffer& getQuintuplets(bool sync = true); diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 255be1741403e..79d5d93cc3bdc 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -910,17 +910,4 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE::lst -namespace cms::alpakatools { - // This is not used, but it is needed for compilation - template - struct CopyToHost> { - template - static auto copyAsync(TQueue& queue, PortableHostMultiCollection const& srcData) { - PortableHostMultiCollection dstData(srcData.sizes(), queue); - alpaka::memcpy(queue, dstData.buffer(), srcData.buffer()); - return dstData; - } - }; -} // namespace cms::alpakatools - #endif