.. _program_listing_file_include_embers_primitives_grid_barrier.h: Program Listing for File grid_barrier.h ======================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/embers/primitives/grid_barrier.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* Copyright © 2020 Advanced Micro Devices, Inc. All rights reserved */ #ifndef _EMBERS_GRID_BARRIER_H_ #define _EMBERS_GRID_BARRIER_H_ #include "embers/atomic.h" #include "embers/memory.h" namespace embers { class GridBarrier { public: using Counter = atomic; private: // Counters in global device memory unique_ptr d_sync; public: static unique_ptr AllocateCounters(unsigned int num_blocks, int hip_dev); static unique_ptr AllocateCountersHost(unsigned int num_blocks); GridBarrier(); GridBarrier(unique_ptr counters); __device__ __forceinline__ void Sync() const; }; } // namespace embers #include "grid_barrier_impl.h" #endif // _EMBERS_GRID_BARRIER_H_