Program Listing for File grid_barrier.h
↰ Return to documentation for file (include/embers/primitives/grid_barrier.h
)
/* 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<unsigned int, MemoryScope::AGENT>;
private:
// Counters in global device memory
unique_ptr<Counter[]> d_sync;
public:
static unique_ptr<Counter[]> AllocateCounters(unsigned int num_blocks, int hip_dev);
static unique_ptr<Counter[]> AllocateCountersHost(unsigned int num_blocks);
GridBarrier();
GridBarrier(unique_ptr<Counter[]> counters);
__device__ __forceinline__ void Sync() const;
};
} // namespace embers
#include "grid_barrier_impl.h"
#endif // _EMBERS_GRID_BARRIER_H_