31 const std::string &Group,
34 : Name(Name), Group(Group), ExpectedState(Expected), TheEvent(IE) {}
37 const std::string &Name,
const std::string &Group,
38 const ObserveState &Expected,
const std::string &SyncPointName) {
39 auto EName = getName(Name);
40 auto EGroup = getGroup(Group);
47 const std::string &Group,
49 auto EName = getName(Name);
50 auto EGroup = getGroup(Group);
56 const std::string &Group,
58 ompt_thread_t ThreadType) {
59 auto EName = getName(Name);
60 auto EGroup = getGroup(Group);
66 const std::string &Group,
68 auto EName = getName(Name);
69 auto EGroup = getGroup(Group);
74 const std::string &Group,
77 auto EName = getName(Name);
78 auto EGroup = getGroup(Group);
84 const std::string &Group,
86 ompt_data_t *ParallelData,
87 ompt_data_t *EncounteringTaskData,
88 int Flags,
const void *CodeptrRA) {
89 auto EName = getName(Name);
90 auto EGroup = getGroup(Group);
93 EncounteringTaskData, Flags,
100 ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData,
101 ompt_data_t *TaskData, uint64_t Count,
102 const void *CodeptrRA) {
103 auto EName = getName(Name);
104 auto EGroup = getGroup(Group);
107 TaskData, Count, CodeptrRA));
113 ompt_data_t *ParallelData, ompt_data_t *TaskData,
114 ompt_dispatch_t Kind, ompt_data_t Instance) {
115 auto EName = getName(Name);
116 auto EGroup = getGroup(Group);
118 EName, EGroup, Expected,
123 const std::string &Name,
const std::string &Group,
124 const ObserveState &Expected, ompt_data_t *EncounteringTaskData,
125 const ompt_frame_t *EncounteringTaskFrame, ompt_data_t *NewTaskData,
126 int Flags,
int HasDependences,
const void *CodeptrRA) {
127 auto EName = getName(Name);
128 auto EGroup = getGroup(Group);
130 EName, EGroup, Expected,
132 NewTaskData, Flags, HasDependences, CodeptrRA));
136 const std::string &Group,
138 auto EName = getName(Name);
139 auto EGroup = getGroup(Group);
144 const std::string &Name,
const std::string &Group,
145 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
146 ompt_data_t *ParallelData, ompt_data_t *TaskData,
147 unsigned int ActualParallelism,
unsigned int Index,
int Flags) {
148 auto EName = getName(Name);
149 auto EGroup = getGroup(Group);
152 TaskData, ActualParallelism,
157 const std::string &Name,
const std::string &Group,
159 ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData,
160 ompt_data_t *TaskData,
const void *CodeptrRA) {
161 auto EName = getName(Name);
162 auto EGroup = getGroup(Group);
165 TaskData, CodeptrRA));
171 ompt_scope_endpoint_t Endpoint,
int DeviceNum,
172 ompt_data_t *TaskData, ompt_id_t TargetId,
173 const void *CodeptrRA) {
174 auto EName = getName(Name);
175 auto EGroup = getGroup(Group);
178 TaskData, TargetId, CodeptrRA));
184 ompt_scope_endpoint_t Endpoint,
int DeviceNum,
185 ompt_data_t *TaskData, ompt_data_t *TargetTaskData,
186 ompt_data_t *TargetData,
const void *CodeptrRA) {
187 auto EName = getName(Name);
188 auto EGroup = getGroup(Group);
191 TaskData, TargetTaskData,
192 TargetData, CodeptrRA));
196 const std::string &Name,
const std::string &Group,
197 const ObserveState &Expected, ompt_id_t TargetId, ompt_id_t HostOpId,
198 ompt_target_data_op_t OpType,
void *SrcAddr,
int SrcDeviceNum,
199 void *DstAddr,
int DstDeviceNum,
size_t Bytes,
const void *CodeptrRA) {
200 auto EName = getName(Name);
201 auto EGroup = getGroup(Group);
204 TargetId, HostOpId, OpType, SrcAddr, SrcDeviceNum,
205 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
209 const std::string &Name,
const std::string &Group,
210 const ObserveState &Expected, ompt_target_data_op_t OpType,
size_t Bytes,
211 void *SrcAddr,
void *DstAddr,
int SrcDeviceNum,
int DstDeviceNum,
212 ompt_id_t TargetId, ompt_id_t HostOpId,
const void *CodeptrRA) {
213 auto EName = getName(Name);
214 auto EGroup = getGroup(Group);
217 TargetId, HostOpId, OpType, SrcAddr, SrcDeviceNum,
218 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
222 const std::string &Name,
const std::string &Group,
223 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
224 ompt_data_t *TargetTaskData, ompt_data_t *TargetData, ompt_id_t *HostOpId,
225 ompt_target_data_op_t OpType,
void *SrcAddr,
int SrcDeviceNum,
226 void *DstAddr,
int DstDeviceNum,
size_t Bytes,
const void *CodeptrRA) {
227 auto EName = getName(Name);
228 auto EGroup = getGroup(Group);
230 EName, EGroup, Expected,
232 HostOpId, OpType, SrcAddr, SrcDeviceNum,
233 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
237 const std::string &Name,
const std::string &Group,
238 const ObserveState &Expected, ompt_target_data_op_t OpType,
239 ompt_scope_endpoint_t Endpoint,
size_t Bytes,
void *SrcAddr,
void *DstAddr,
240 int SrcDeviceNum,
int DstDeviceNum, ompt_data_t *TargetTaskData,
241 ompt_data_t *TargetData, ompt_id_t *HostOpId,
const void *CodeptrRA) {
242 auto EName = getName(Name);
243 auto EGroup = getGroup(Group);
245 EName, EGroup, Expected,
247 HostOpId, OpType, SrcAddr, SrcDeviceNum,
248 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
252 const std::string &Group,
256 unsigned int RequestedNumTeams) {
257 auto EName = getName(Name);
258 auto EGroup = getGroup(Group);
260 EName, EGroup, Expected,
265 const std::string &Group,
267 unsigned int RequestedNumTeams,
269 ompt_id_t HostOpId) {
270 auto EName = getName(Name);
271 auto EGroup = getGroup(Group);
273 EName, EGroup, Expected,
278 const std::string &Name,
const std::string &Group,
279 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
280 ompt_data_t *TargetData, ompt_id_t *HostOpId,
281 unsigned int RequestedNumTeams) {
282 auto EName = getName(Name);
283 auto EGroup = getGroup(Group);
291 const std::string &Group,
293 unsigned int RequestedNumTeams,
294 ompt_scope_endpoint_t Endpoint,
295 ompt_data_t *TargetData,
296 ompt_id_t *HostOpId) {
297 auto EName = getName(Name);
298 auto EGroup = getGroup(Group);
306 const std::string &Group,
308 auto EName = getName(Name);
309 auto EGroup = getGroup(Group);
314 const std::string &Name,
const std::string &Group,
315 const ObserveState &Expected,
int DeviceNum,
const char *Type,
316 ompt_device_t *Device, ompt_function_lookup_t LookupFn,
317 const char *DocumentationStr) {
318 auto EName = getName(Name);
319 auto EGroup = getGroup(Group);
327 const std::string &Group,
330 auto EName = getName(Name);
331 auto EGroup = getGroup(Group);
339 const char *Filename, int64_t OffsetInFile,
340 void *VmaInFile,
size_t Bytes,
void *HostAddr,
341 void *DeviceAddr, uint64_t ModuleId) {
342 auto EName = getName(Name);
343 auto EGroup = getGroup(Group);
345 EName, EGroup, Expected,
347 Bytes, HostAddr, DeviceAddr, ModuleId));
351 const std::string &Group,
353 auto EName = getName(Name);
354 auto EGroup = getGroup(Group);
359 const std::string &Group,
362 ompt_buffer_t **Buffer,
364 auto EName = getName(Name);
365 auto EGroup = getGroup(Group);
371 const std::string &Name,
const std::string &Group,
372 const ObserveState &Expected,
int DeviceNum, ompt_buffer_t *Buffer,
373 size_t Bytes, ompt_buffer_cursor_t Begin,
int BufferOwned) {
374 auto EName = getName(Name);
375 auto EGroup = getGroup(Group);
378 Begin, BufferOwned));
382 const std::string &Group,
384 ompt_record_ompt_t *Record) {
385 auto EName = getName(Name);
386 auto EGroup = getGroup(Group);
392 const std::string &Name,
const std::string &Group,
393 const ObserveState &Expected, ompt_callbacks_t Type, ompt_target_t Kind,
394 ompt_scope_endpoint_t Endpoint,
int DeviceNum, ompt_id_t TaskId,
395 ompt_id_t TargetId,
const void *CodeptrRA) {
396 auto EName = getName(Name);
397 auto EGroup = getGroup(Group);
399 if (Type != ompt_callback_target)
400 assert(
false &&
"CTOR only suited for type: 'ompt_callback_target'");
402 ompt_record_target_t Subrecord{Kind, Endpoint, DeviceNum,
403 TaskId, TargetId, CodeptrRA};
405 ompt_record_ompt_t *RecordPtr =
406 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
407 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
408 RecordPtr->type = Type;
411 RecordPtr->target_id = TargetId;
412 RecordPtr->record.target = Subrecord;
419 const std::string &Name,
const std::string &Group,
421 ompt_target_data_op_t OpType,
size_t Bytes,
422 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
void *SrcAddr,
423 void *DstAddr,
int SrcDeviceNum,
int DstDeviceNum, ompt_id_t TargetId,
424 ompt_id_t HostOpId,
const void *CodeptrRA) {
425 auto EName = getName(Name);
426 auto EGroup = getGroup(Group);
428 if (Type != ompt_callback_target_data_op)
430 "CTOR only suited for type: 'ompt_callback_target_data_op'");
432 ompt_record_target_data_op_t Subrecord{
433 HostOpId, OpType, SrcAddr, SrcDeviceNum, DstAddr,
434 DstDeviceNum, Bytes, Timeframe.second, CodeptrRA};
436 ompt_record_ompt_t *RecordPtr =
437 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
438 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
439 RecordPtr->type = Type;
440 RecordPtr->time = Timeframe.first;
442 RecordPtr->target_id = TargetId;
443 RecordPtr->record.target_data_op = Subrecord;
450 const std::string &Name,
const std::string &Group,
452 ompt_target_data_op_t OpType,
size_t Bytes,
453 ompt_device_time_t MinimumTimeDelta,
void *SrcAddr,
void *DstAddr,
454 int SrcDeviceNum,
int DstDeviceNum, ompt_id_t TargetId, ompt_id_t HostOpId,
455 const void *CodeptrRA) {
456 return BufferRecord(Name, Group, Expected, Type, OpType, Bytes,
458 SrcAddr, DstAddr, SrcDeviceNum, DstDeviceNum, TargetId,
459 HostOpId, CodeptrRA);
463 const std::string &Name,
const std::string &Group,
465 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
466 unsigned int RequestedNumTeams,
unsigned int GrantedNumTeams,
467 ompt_id_t TargetId, ompt_id_t HostOpId) {
468 auto EName = getName(Name);
469 auto EGroup = getGroup(Group);
471 bool isDefault = (Timeframe.first ==
expectedDefault(ompt_device_time_t));
472 isDefault &= (Timeframe.second ==
expectedDefault(ompt_device_time_t));
478 ompt_record_ompt_t *RecordPtr =
479 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
480 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
481 RecordPtr->type = Type;
489 if (Type == ompt_callback_target) {
496 RecordPtr->record.target = Subrecord;
499 if (Type == ompt_callback_target_data_op) {
500 ompt_record_target_data_op_t Subrecord{
506 RecordPtr->record.target_data_op = Subrecord;
509 if (Type == ompt_callback_target_submit) {
510 ompt_record_target_kernel_t Subrecord{
513 RecordPtr->record.target_kernel = Subrecord;
520 if (Type != ompt_callback_target_submit)
521 assert(
false &&
"CTOR only suited for type: 'ompt_callback_target_submit'");
523 ompt_record_target_kernel_t Subrecord{HostOpId, RequestedNumTeams,
524 GrantedNumTeams, Timeframe.second};
526 RecordPtr->time = Timeframe.first;
528 RecordPtr->target_id = TargetId;
529 RecordPtr->record.target_kernel = Subrecord;
536 const std::string &Name,
const std::string &Group,
538 ompt_device_time_t MinimumTimeDelta,
unsigned int RequestedNumTeams,
539 unsigned int GrantedNumTeams, ompt_id_t TargetId, ompt_id_t HostOpId) {
542 RequestedNumTeams, GrantedNumTeams, TargetId, HostOpId);
546 const std::string &Name,
const std::string &Group,
548 auto EName = getName(Name);
549 auto EGroup = getGroup(Group);
559 return ExpectedState;
563 return TheEvent->Type;
567 return TheEvent.get();
574 S.append((TheEvent ==
nullptr) ?
"OmptAssertEvent" : TheEvent->toString());
579 assert(A.TheEvent.get() !=
nullptr &&
"A is valid");
580 assert(B.TheEvent.get() !=
nullptr &&
"B is valid");
582 return A.TheEvent->Type == B.TheEvent->Type &&
583 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.