Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:31:22

0001 //----------------------------------*-C++-*----------------------------------//
0002 // Copyright 2024 UT-Battelle, LLC, and other Celeritas developers.
0003 // See the top-level COPYRIGHT file for details.
0004 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0005 //---------------------------------------------------------------------------//
0006 //! \file celeritas/global/detail/TrackSlotUtils.hh
0007 //---------------------------------------------------------------------------//
0008 #pragma once
0009 
0010 #include "corecel/Assert.hh"
0011 #include "corecel/Macros.hh"
0012 #include "corecel/Types.hh"
0013 #include "corecel/data/Collection.hh"
0014 #include "corecel/sys/ThreadId.hh"
0015 
0016 namespace celeritas
0017 {
0018 namespace detail
0019 {
0020 //---------------------------------------------------------------------------//
0021 // Shuffle track slot indices
0022 void shuffle_track_slots(
0023     Collection<TrackSlotId::size_type, Ownership::value, MemSpace::host, ThreadId>*,
0024     StreamId);
0025 void shuffle_track_slots(
0026     Collection<TrackSlotId::size_type, Ownership::value, MemSpace::device, ThreadId>*,
0027     StreamId);
0028 
0029 //---------------------------------------------------------------------------//
0030 // INLINE DEFINITIONS
0031 //---------------------------------------------------------------------------//
0032 #if !CELER_USE_DEVICE
0033 inline void shuffle_track_slots(
0034     Collection<TrackSlotId::size_type, Ownership::value, MemSpace::device, ThreadId>*,
0035     StreamId)
0036 {
0037     CELER_NOT_CONFIGURED("CUDA or HIP");
0038 }
0039 #endif
0040 //---------------------------------------------------------------------------//
0041 }  // namespace detail
0042 }  // namespace celeritas