21 case ObserveState::Generated:
23 case ObserveState::Always:
25 case ObserveState::Never:
28 assert(
false &&
"Requested string representation for unknown ObserveState");
34 const std::string &Group,
37 : Name(Name), Group(Group), ExpectedState(Expected), TheEvent(IE) {}
40 const std::string &Name,
const std::string &Group,
41 const ObserveState &Expected,
const std::string &SyncPointName) {
42 auto EName = getName(Name);
43 auto EGroup = getGroup(Group);
50 const std::string &Group,
52 auto EName = getName(Name);
53 auto EGroup = getGroup(Group);
59 const std::string &Group,
61 ompt_thread_t ThreadType) {
62 auto EName = getName(Name);
63 auto EGroup = getGroup(Group);
69 const std::string &Group,
71 auto EName = getName(Name);
72 auto EGroup = getGroup(Group);
77 const std::string &Group,
80 auto EName = getName(Name);
81 auto EGroup = getGroup(Group);
87 const std::string &Group,
89 ompt_data_t *ParallelData,
90 ompt_data_t *EncounteringTaskData,
91 int Flags,
const void *CodeptrRA) {
92 auto EName = getName(Name);
93 auto EGroup = getGroup(Group);
96 EncounteringTaskData, Flags,
103 ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData,
104 ompt_data_t *TaskData, uint64_t Count,
105 const void *CodeptrRA) {
106 auto EName = getName(Name);
107 auto EGroup = getGroup(Group);
110 TaskData, Count, CodeptrRA));
116 ompt_data_t *ParallelData, ompt_data_t *TaskData,
117 ompt_dispatch_t Kind, ompt_data_t Instance) {
118 auto EName = getName(Name);
119 auto EGroup = getGroup(Group);
121 EName, EGroup, Expected,
126 const std::string &Name,
const std::string &Group,
127 const ObserveState &Expected, ompt_data_t *EncounteringTaskData,
128 const ompt_frame_t *EncounteringTaskFrame, ompt_data_t *NewTaskData,
129 int Flags,
int HasDependences,
const void *CodeptrRA) {
130 auto EName = getName(Name);
131 auto EGroup = getGroup(Group);
133 EName, EGroup, Expected,
135 NewTaskData, Flags, HasDependences, CodeptrRA));
139 const std::string &Group,
141 auto EName = getName(Name);
142 auto EGroup = getGroup(Group);
147 const std::string &Name,
const std::string &Group,
148 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
149 ompt_data_t *ParallelData, ompt_data_t *TaskData,
150 unsigned int ActualParallelism,
unsigned int Index,
int Flags) {
151 auto EName = getName(Name);
152 auto EGroup = getGroup(Group);
155 TaskData, ActualParallelism,
160 const std::string &Name,
const std::string &Group,
162 ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData,
163 ompt_data_t *TaskData,
const void *CodeptrRA) {
164 auto EName = getName(Name);
165 auto EGroup = getGroup(Group);
168 TaskData, CodeptrRA));
174 ompt_scope_endpoint_t Endpoint,
int DeviceNum,
175 ompt_data_t *TaskData, ompt_id_t TargetId,
176 const void *CodeptrRA) {
177 auto EName = getName(Name);
178 auto EGroup = getGroup(Group);
181 TaskData, TargetId, CodeptrRA));
187 ompt_scope_endpoint_t Endpoint,
int DeviceNum,
188 ompt_data_t *TaskData, ompt_data_t *TargetTaskData,
189 ompt_data_t *TargetData,
const void *CodeptrRA) {
190 auto EName = getName(Name);
191 auto EGroup = getGroup(Group);
194 TaskData, TargetTaskData,
195 TargetData, CodeptrRA));
199 const std::string &Name,
const std::string &Group,
200 const ObserveState &Expected, ompt_id_t TargetId, ompt_id_t HostOpId,
201 ompt_target_data_op_t OpType,
void *SrcAddr,
int SrcDeviceNum,
202 void *DstAddr,
int DstDeviceNum,
size_t Bytes,
const void *CodeptrRA) {
203 auto EName = getName(Name);
204 auto EGroup = getGroup(Group);
207 TargetId, HostOpId, OpType, SrcAddr, SrcDeviceNum,
208 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
212 const std::string &Name,
const std::string &Group,
213 const ObserveState &Expected, ompt_target_data_op_t OpType,
size_t Bytes,
214 void *SrcAddr,
void *DstAddr,
int SrcDeviceNum,
int DstDeviceNum,
215 ompt_id_t TargetId, ompt_id_t HostOpId,
const void *CodeptrRA) {
216 auto EName = getName(Name);
217 auto EGroup = getGroup(Group);
220 TargetId, HostOpId, OpType, SrcAddr, SrcDeviceNum,
221 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
225 const std::string &Name,
const std::string &Group,
226 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
227 ompt_data_t *TargetTaskData, ompt_data_t *TargetData, ompt_id_t *HostOpId,
228 ompt_target_data_op_t OpType,
void *SrcAddr,
int SrcDeviceNum,
229 void *DstAddr,
int DstDeviceNum,
size_t Bytes,
const void *CodeptrRA) {
230 auto EName = getName(Name);
231 auto EGroup = getGroup(Group);
233 EName, EGroup, Expected,
235 HostOpId, OpType, SrcAddr, SrcDeviceNum,
236 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
240 const std::string &Name,
const std::string &Group,
241 const ObserveState &Expected, ompt_target_data_op_t OpType,
242 ompt_scope_endpoint_t Endpoint,
size_t Bytes,
void *SrcAddr,
void *DstAddr,
243 int SrcDeviceNum,
int DstDeviceNum, ompt_data_t *TargetTaskData,
244 ompt_data_t *TargetData, ompt_id_t *HostOpId,
const void *CodeptrRA) {
245 auto EName = getName(Name);
246 auto EGroup = getGroup(Group);
248 EName, EGroup, Expected,
250 HostOpId, OpType, SrcAddr, SrcDeviceNum,
251 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
255 const std::string &Group,
259 unsigned int RequestedNumTeams) {
260 auto EName = getName(Name);
261 auto EGroup = getGroup(Group);
263 EName, EGroup, Expected,
268 const std::string &Group,
270 unsigned int RequestedNumTeams,
272 ompt_id_t HostOpId) {
273 auto EName = getName(Name);
274 auto EGroup = getGroup(Group);
276 EName, EGroup, Expected,
281 const std::string &Name,
const std::string &Group,
282 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
283 ompt_data_t *TargetData, ompt_id_t *HostOpId,
284 unsigned int RequestedNumTeams) {
285 auto EName = getName(Name);
286 auto EGroup = getGroup(Group);
294 const std::string &Group,
296 unsigned int RequestedNumTeams,
297 ompt_scope_endpoint_t Endpoint,
298 ompt_data_t *TargetData,
299 ompt_id_t *HostOpId) {
300 auto EName = getName(Name);
301 auto EGroup = getGroup(Group);
309 const std::string &Group,
311 auto EName = getName(Name);
312 auto EGroup = getGroup(Group);
317 const std::string &Name,
const std::string &Group,
318 const ObserveState &Expected,
int DeviceNum,
const char *Type,
319 ompt_device_t *Device, ompt_function_lookup_t LookupFn,
320 const char *DocumentationStr) {
321 auto EName = getName(Name);
322 auto EGroup = getGroup(Group);
330 const std::string &Group,
333 auto EName = getName(Name);
334 auto EGroup = getGroup(Group);
342 const char *Filename, int64_t OffsetInFile,
343 void *VmaInFile,
size_t Bytes,
void *HostAddr,
344 void *DeviceAddr, uint64_t ModuleId) {
345 auto EName = getName(Name);
346 auto EGroup = getGroup(Group);
348 EName, EGroup, Expected,
350 Bytes, HostAddr, DeviceAddr, ModuleId));
354 const std::string &Group,
356 auto EName = getName(Name);
357 auto EGroup = getGroup(Group);
362 const std::string &Group,
365 ompt_buffer_t **Buffer,
367 auto EName = getName(Name);
368 auto EGroup = getGroup(Group);
374 const std::string &Name,
const std::string &Group,
375 const ObserveState &Expected,
int DeviceNum, ompt_buffer_t *Buffer,
376 size_t Bytes, ompt_buffer_cursor_t Begin,
int BufferOwned) {
377 auto EName = getName(Name);
378 auto EGroup = getGroup(Group);
381 Begin, BufferOwned));
385 const std::string &Group,
387 ompt_record_ompt_t *Record) {
388 auto EName = getName(Name);
389 auto EGroup = getGroup(Group);
395 const std::string &Name,
const std::string &Group,
396 const ObserveState &Expected, ompt_callbacks_t Type, ompt_target_t Kind,
397 ompt_scope_endpoint_t Endpoint,
int DeviceNum, ompt_id_t TaskId,
398 ompt_id_t TargetId,
const void *CodeptrRA) {
399 auto EName = getName(Name);
400 auto EGroup = getGroup(Group);
402 if (Type != ompt_callback_target)
403 assert(
false &&
"CTOR only suited for type: 'ompt_callback_target'");
405 ompt_record_target_t Subrecord{Kind, Endpoint, DeviceNum,
406 TaskId, TargetId, CodeptrRA};
408 ompt_record_ompt_t *RecordPtr =
409 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
410 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
411 RecordPtr->type = Type;
414 RecordPtr->target_id = TargetId;
415 RecordPtr->record.target = Subrecord;
422 const std::string &Name,
const std::string &Group,
424 ompt_target_data_op_t OpType,
size_t Bytes,
425 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
void *SrcAddr,
426 void *DstAddr,
int SrcDeviceNum,
int DstDeviceNum, ompt_id_t TargetId,
427 ompt_id_t HostOpId,
const void *CodeptrRA) {
428 auto EName = getName(Name);
429 auto EGroup = getGroup(Group);
431 if (Type != ompt_callback_target_data_op)
433 "CTOR only suited for type: 'ompt_callback_target_data_op'");
435 ompt_record_target_data_op_t Subrecord{
436 HostOpId, OpType, SrcAddr, SrcDeviceNum, DstAddr,
437 DstDeviceNum, Bytes, Timeframe.second, CodeptrRA};
439 ompt_record_ompt_t *RecordPtr =
440 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
441 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
442 RecordPtr->type = Type;
443 RecordPtr->time = Timeframe.first;
445 RecordPtr->target_id = TargetId;
446 RecordPtr->record.target_data_op = Subrecord;
453 const std::string &Name,
const std::string &Group,
455 ompt_target_data_op_t OpType,
size_t Bytes,
456 ompt_device_time_t MinimumTimeDelta,
void *SrcAddr,
void *DstAddr,
457 int SrcDeviceNum,
int DstDeviceNum, ompt_id_t TargetId, ompt_id_t HostOpId,
458 const void *CodeptrRA) {
459 return BufferRecord(Name, Group, Expected, Type, OpType, Bytes,
461 SrcAddr, DstAddr, SrcDeviceNum, DstDeviceNum, TargetId,
462 HostOpId, CodeptrRA);
466 const std::string &Name,
const std::string &Group,
468 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
469 unsigned int RequestedNumTeams,
unsigned int GrantedNumTeams,
470 ompt_id_t TargetId, ompt_id_t HostOpId) {
471 auto EName = getName(Name);
472 auto EGroup = getGroup(Group);
474 bool isDefault = (Timeframe.first ==
expectedDefault(ompt_device_time_t));
475 isDefault &= (Timeframe.second ==
expectedDefault(ompt_device_time_t));
481 ompt_record_ompt_t *RecordPtr =
482 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
483 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
484 RecordPtr->type = Type;
492 if (Type == ompt_callback_target) {
499 RecordPtr->record.target = Subrecord;
502 if (Type == ompt_callback_target_data_op) {
503 ompt_record_target_data_op_t Subrecord{
509 RecordPtr->record.target_data_op = Subrecord;
512 if (Type == ompt_callback_target_submit) {
513 ompt_record_target_kernel_t Subrecord{
516 RecordPtr->record.target_kernel = Subrecord;
523 if (Type != ompt_callback_target_submit)
524 assert(
false &&
"CTOR only suited for type: 'ompt_callback_target_submit'");
526 ompt_record_target_kernel_t Subrecord{HostOpId, RequestedNumTeams,
527 GrantedNumTeams, Timeframe.second};
529 RecordPtr->time = Timeframe.first;
531 RecordPtr->target_id = TargetId;
532 RecordPtr->record.target_kernel = Subrecord;
539 const std::string &Name,
const std::string &Group,
541 ompt_device_time_t MinimumTimeDelta,
unsigned int RequestedNumTeams,
542 unsigned int GrantedNumTeams, ompt_id_t TargetId, ompt_id_t HostOpId) {
545 RequestedNumTeams, GrantedNumTeams, TargetId, HostOpId);
549 const std::string &Name,
const std::string &Group,
551 auto EName = getName(Name);
552 auto EGroup = getGroup(Group);
562 return ExpectedState;
566 return TheEvent->Type;
570 return TheEvent.get();
577 S.append((TheEvent ==
nullptr) ?
"OmptAssertEvent" : TheEvent->toString());
582 assert(A.TheEvent.get() !=
nullptr &&
"A is valid");
583 assert(B.TheEvent.get() !=
nullptr &&
"B is valid");
585 return A.TheEvent->Type == B.TheEvent->Type &&
586 A.TheEvent->equals(B.TheEvent.get());
#define expectedDefault(TypeName)
Contains assertion event constructors, for generally all observable events.
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark S
EventTy
Enum values are used for comparison of observed and asserted events List is based on OpenMP 5....
bool operator==(const OmptAssertEvent &A, const OmptAssertEvent &B)
const char * to_string(ObserveState State)
Helper function, returning an ObserveState string representation.
unsigned * Index(unsigned *p, unsigned i, unsigned j, unsigned bound2)
Assertion event struct, provides statically callable CTORs.
static OmptAssertEvent TargetDataOpEmi(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_scope_endpoint_t Endpoint, ompt_data_t *TargetTaskData, ompt_data_t *TargetData, ompt_id_t *HostOpId, ompt_target_data_op_t OpType, void *SrcAddr, int SrcDeviceNum, void *DstAddr, int DstDeviceNum, size_t Bytes, const void *CodeptrRA)
OmptAssertEvent(OmptAssertEvent &&o)=default
Allow move construction (due to std::unique_ptr)
static OmptAssertEvent SyncRegion(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_sync_region_t Kind, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), const void *CodeptrRA=expectedDefault(const void *))
std::string getEventName() const
Get the event's name.
static OmptAssertEvent BufferRecord(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_record_ompt_t *Record)
static OmptAssertEvent TargetSubmit(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_id_t TargetId, ompt_id_t HostOpId, unsigned int RequestedNumTeams)
static OmptAssertEvent AssertionSuspend(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent ControlTool(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent Dispatch(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), ompt_dispatch_t Kind=expectedDefault(ompt_dispatch_t), ompt_data_t Instance=expectedDefault(ompt_data_t))
static OmptAssertEvent AssertionSyncPoint(const std::string &Name, const std::string &Group, const ObserveState &Expected, const std::string &SyncPointName)
static OmptAssertEvent TaskSchedule(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent BufferRequest(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, ompt_buffer_t **Buffer, size_t *Bytes)
std::string toString(bool PrefixEventName=false) const
Returns the string representation of the event.
static OmptAssertEvent DeviceUnload(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent ParallelEnd(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *EncounteringTaskData=expectedDefault(ompt_data_t *), int Flags=expectedDefault(int), const void *CodeptrRA=expectedDefault(const void *))
static OmptAssertEvent DeviceLoad(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, const char *Filename=expectedDefault(const char *), int64_t OffsetInFile=expectedDefault(int64_t), void *VmaInFile=expectedDefault(void *), size_t Bytes=expectedDefault(size_t), void *HostAddr=expectedDefault(void *), void *DeviceAddr=expectedDefault(void *), uint64_t ModuleId=expectedDefault(int64_t))
ObserveState getEventExpectedState() const
Get the event's expected observation state.
internal::EventTy getEventType() const
Return the actual event type enum value.
static OmptAssertEvent TargetSubmitEmi(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_scope_endpoint_t Endpoint, ompt_data_t *TargetData, ompt_id_t *HostOpId, unsigned int RequestedNumTeams)
internal::InternalEvent * getEvent() const
Get a pointer to the internal event.
static OmptAssertEvent TargetEmi(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_target_t Kind, ompt_scope_endpoint_t Endpoint, int DeviceNum=expectedDefault(int), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), ompt_data_t *TargetTaskData=expectedDefault(ompt_data_t *), ompt_data_t *TargetData=expectedDefault(ompt_data_t *), const void *CodeptrRA=expectedDefault(void *))
static OmptAssertEvent TargetDataOp(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_id_t TargetId, ompt_id_t HostOpId, ompt_target_data_op_t OpType, void *SrcAddr, int SrcDeviceNum, void *DstAddr, int DstDeviceNum, size_t Bytes, const void *CodeptrRA)
static OmptAssertEvent Work(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_work_t WorkType, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), uint64_t Count=expectedDefault(uint64_t), const void *CodeptrRA=expectedDefault(const void *))
static OmptAssertEvent DeviceFinalize(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum)
static OmptAssertEvent BufferRecordDeallocation(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_buffer_t *Buffer)
static OmptAssertEvent DeviceInitialize(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, const char *Type=expectedDefault(const char *), ompt_device_t *Device=expectedDefault(ompt_device_t *), ompt_function_lookup_t LookupFn=expectedDefault(ompt_function_lookup_t), const char *DocumentationStr=expectedDefault(const char *))
std::string getEventGroup() const
Get the event's group name.
static OmptAssertEvent BufferComplete(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, ompt_buffer_t *Buffer, size_t Bytes, ompt_buffer_cursor_t Begin, int BufferOwned)
static OmptAssertEvent ThreadEnd(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent ParallelBegin(const std::string &Name, const std::string &Group, const ObserveState &Expected, int NumThreads)
static OmptAssertEvent TaskCreate(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_data_t *EncounteringTaskData=expectedDefault(ompt_data_t *), const ompt_frame_t *EncounteringTaskFrame=expectedDefault(ompt_frame_t *), ompt_data_t *NewTaskData=expectedDefault(ompt_data_t *), int Flags=expectedDefault(int), int HasDependences=expectedDefault(int), const void *CodeptrRA=expectedDefault(const void *))
static OmptAssertEvent ThreadBegin(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_thread_t ThreadType)
static OmptAssertEvent ImplicitTask(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), unsigned int ActualParallelism=expectedDefault(unsigned int), unsigned int Index=expectedDefault(unsigned int), int Flags=expectedDefault(int))
static OmptAssertEvent Target(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_target_t Kind, ompt_scope_endpoint_t Endpoint, int DeviceNum=expectedDefault(int), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), ompt_id_t TargetId=expectedDefault(ompt_id_t), const void *CodeptrRA=expectedDefault(void *))
Base event class Offers default CTOR, DTOR and CTOR which assigns the actual event type.