Rocprofiler SDK Developer API: rocprofiler-sdk/cxx/operators.hpp Source File
Rocprofiler SDK Developer API 0.4.0
ROCm Profiling API and tools
|
Go to the documentation of this file.
33#define ROCPROFILER_CXX_DECLARE_OPERATORS(TYPE) \
34 bool operator==(TYPE lhs, TYPE rhs) ROCPROFILER_ATTRIBUTE(pure); \
35 bool operator!=(TYPE lhs, TYPE rhs) ROCPROFILER_ATTRIBUTE(pure); \
36 bool operator<(TYPE lhs, TYPE rhs) ROCPROFILER_ATTRIBUTE(pure); \
37 bool operator>(TYPE lhs, TYPE rhs) ROCPROFILER_ATTRIBUTE(pure); \
38 bool operator<=(TYPE lhs, TYPE rhs) ROCPROFILER_ATTRIBUTE(pure); \
39 bool operator>=(TYPE lhs, TYPE rhs) ROCPROFILER_ATTRIBUTE(pure);
33#define ROCPROFILER_CXX_DECLARE_OPERATORS(TYPE) \ …
41#define ROCPROFILER_CXX_DEFINE_NE_OPERATOR(TYPE) \
42 inline bool operator!=(TYPE lhs, TYPE rhs) { return !(lhs == rhs); }
41#define ROCPROFILER_CXX_DEFINE_NE_OPERATOR(TYPE) \ …
44#define ROCPROFILER_CXX_DEFINE_EQ_HANDLE_OPERATOR(TYPE) \
45 inline bool operator==(TYPE lhs, TYPE rhs) \
47 return ::rocprofiler::sdk::operators::equal(lhs, rhs); \
44#define ROCPROFILER_CXX_DEFINE_EQ_HANDLE_OPERATOR(TYPE) \ …
50#define ROCPROFILER_CXX_DEFINE_LT_HANDLE_OPERATOR(TYPE) \
51 inline bool operator<(TYPE lhs, TYPE rhs) \
53 return ::rocprofiler::sdk::operators::less(lhs, rhs); \
50#define ROCPROFILER_CXX_DEFINE_LT_HANDLE_OPERATOR(TYPE) \ …
56#define ROCPROFILER_CXX_DEFINE_COMPARE_OPERATORS(TYPE) \
57 inline bool operator>(TYPE lhs, TYPE rhs) { return (lhs == rhs || !(lhs < rhs)); } \
58 inline bool operator<=(TYPE lhs, TYPE rhs) { return (lhs == rhs || lhs < rhs); } \
59 inline bool operator>=(TYPE lhs, TYPE rhs) { return !(lhs < rhs); }
56#define ROCPROFILER_CXX_DEFINE_COMPARE_OPERATORS(TYPE) \ …
69equal(Tp lhs, Tp rhs) ROCPROFILER_ATTRIBUTE(pure);
73less(Tp lhs, Tp rhs) ROCPROFILER_ATTRIBUTE(pure);
79 static_assert(
sizeof(Tp) ==
sizeof(uint64_t),
"error! only for opaque handle types");
80 return lhs.handle == rhs.handle;
87 static_assert(
sizeof(Tp) ==
sizeof(uint64_t),
"error! only for opaque handle types");
88 return lhs.handle < rhs.handle;
65namespace operators {
…}
123 return (lhs.id == rhs.id);
129 return std::tie(lhs.
x, lhs.
y, lhs.
z) == std::tie(rhs.
x, rhs.
y, rhs.
z);
161 return (lhs.id < rhs.id);
167 const auto magnitude = [](
rocprofiler_dim3_t dim_v) {
return dim_v.x * dim_v.y * dim_v.z; };
168 auto lhs_m = magnitude(lhs);
169 auto rhs_m = magnitude(rhs);
171 return (lhs_m == rhs_m) ? std::tie(lhs.
x, lhs.
y, lhs.
z) < std::tie(rhs.
x, rhs.
y, rhs.
z)
190#undef ROCPROFILER_CXX_DECLARE_OPERATORS
191#undef ROCPROFILER_CXX_DEFINE_NE_OPERATOR
192#undef ROCPROFILER_CXX_DEFINE_EQ_HANDLE_OPERATOR
193#undef ROCPROFILER_CXX_DEFINE_LT_HANDLE_OPERATOR
194#undef ROCPROFILER_CXX_DEFINE_COMPARE_OPERATORS
Stores the properties of an agent (CPU, GPU, etc.)
Multi-dimensional struct of data used to describe GPU workgroup and grid sizes.
opaque handle to an internal thread identifier which delivers callbacks for buffers
bool less(Tp lhs, Tp rhs) ROCPROFILER_ATTRIBUTE(pure)
bool equal(Tp lhs, Tp rhs) ROCPROFILER_ATTRIBUTE(pure)
bool operator<(rocprofiler_context_id_t lhs, rocprofiler_context_id_t rhs) ROCPROFILER_ATTRIBUTE(pure)
bool operator==(rocprofiler_context_id_t lhs, rocprofiler_context_id_t rhs) ROCPROFILER_ATTRIBUTE(pure)
#define ROCPROFILER_CXX_DECLARE_OPERATORS(TYPE)
#define ROCPROFILER_CXX_DEFINE_LT_HANDLE_OPERATOR(TYPE)
#define ROCPROFILER_CXX_DEFINE_COMPARE_OPERATORS(TYPE)
#define ROCPROFILER_CXX_DEFINE_EQ_HANDLE_OPERATOR(TYPE)
#define ROCPROFILER_CXX_DEFINE_NE_OPERATOR(TYPE)