File indexing completed on 2026-07-26 08:22:04
0001
0002
0003
0004
0005
0006
0007
0008 #pragma once
0009
0010
0011 #include "utils.hpp"
0012
0013
0014 #include "traccc/definitions/qualifiers.hpp"
0015
0016 namespace traccc::alpaka {
0017
0018 template <typename TAcc>
0019 struct barrier {
0020 ALPAKA_FN_INLINE ALPAKA_FN_ACC barrier(const TAcc* acc) : m_acc(acc) {};
0021
0022 ALPAKA_FN_ACC
0023 void blockBarrier() const { ::alpaka::syncBlockThreads(*m_acc); }
0024
0025 ALPAKA_FN_ACC
0026 bool blockOr(bool predicate) const {
0027 return ::alpaka::syncBlockThreadsPredicate<::alpaka::BlockOr>(*m_acc,
0028 predicate);
0029 }
0030
0031 ALPAKA_FN_ACC
0032 bool blockAnd(bool predicate) const {
0033 return ::alpaka::syncBlockThreadsPredicate<::alpaka::BlockAnd>(*m_acc,
0034 predicate);
0035 }
0036
0037 ALPAKA_FN_ACC
0038 bool blockCount(int threadCount) const {
0039 return ::alpaka::syncBlockThreadsPredicate<::alpaka::BlockCount>(
0040 *m_acc, threadCount);
0041 }
0042
0043 private:
0044 const TAcc* m_acc;
0045 };
0046
0047 }