33 const std::string &Group,
36 : Name(Name), Group(Group), ExpectedState(Expected), TheEvent(IE) {}
39 const std::string &Name,
const std::string &Group,
40 const ObserveState &Expected,
const std::string &SyncPointName) {
41 auto EName = getName(Name);
42 auto EGroup = getGroup(Group);
49 const std::string &Group,
51 auto EName = getName(Name);
52 auto EGroup = getGroup(Group);
58 const std::string &Group,
60 ompt_thread_t ThreadType) {
61 auto EName = getName(Name);
62 auto EGroup = getGroup(Group);
68 const std::string &Group,
70 auto EName = getName(Name);
71 auto EGroup = getGroup(Group);
76 const std::string &Group,
79 auto EName = getName(Name);
80 auto EGroup = getGroup(Group);
86 const std::string &Group,
88 ompt_data_t *ParallelData,
89 ompt_data_t *EncounteringTaskData,
90 int Flags,
const void *CodeptrRA) {
91 auto EName = getName(Name);
92 auto EGroup = getGroup(Group);
95 EncounteringTaskData, Flags,
102 ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData,
103 ompt_data_t *TaskData, uint64_t Count,
104 const void *CodeptrRA) {
105 auto EName = getName(Name);
106 auto EGroup = getGroup(Group);
109 TaskData, Count, CodeptrRA));
115 ompt_data_t *ParallelData, ompt_data_t *TaskData,
116 ompt_dispatch_t Kind, ompt_data_t Instance) {
117 auto EName = getName(Name);
118 auto EGroup = getGroup(Group);
120 EName, EGroup, Expected,
125 const std::string &Name,
const std::string &Group,
126 const ObserveState &Expected, ompt_data_t *EncounteringTaskData,
127 const ompt_frame_t *EncounteringTaskFrame, ompt_data_t *NewTaskData,
128 int Flags,
int HasDependences,
const void *CodeptrRA) {
129 auto EName = getName(Name);
130 auto EGroup = getGroup(Group);
132 EName, EGroup, Expected,
134 NewTaskData, Flags, HasDependences, CodeptrRA));
138 const std::string &Group,
140 auto EName = getName(Name);
141 auto EGroup = getGroup(Group);
146 const std::string &Name,
const std::string &Group,
147 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
148 ompt_data_t *ParallelData, ompt_data_t *TaskData,
149 unsigned int ActualParallelism,
unsigned int Index,
int Flags) {
150 auto EName = getName(Name);
151 auto EGroup = getGroup(Group);
154 TaskData, ActualParallelism,
159 const std::string &Name,
const std::string &Group,
161 ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData,
162 ompt_data_t *TaskData,
const void *CodeptrRA) {
163 auto EName = getName(Name);
164 auto EGroup = getGroup(Group);
167 TaskData, CodeptrRA));
173 ompt_scope_endpoint_t Endpoint,
int DeviceNum,
174 ompt_data_t *TaskData, ompt_id_t TargetId,
175 const void *CodeptrRA) {
176 auto EName = getName(Name);
177 auto EGroup = getGroup(Group);
180 TaskData, TargetId, CodeptrRA));
186 ompt_scope_endpoint_t Endpoint,
int DeviceNum,
187 ompt_data_t *TaskData, ompt_data_t *TargetTaskData,
188 ompt_data_t *TargetData,
const void *CodeptrRA) {
189 auto EName = getName(Name);
190 auto EGroup = getGroup(Group);
193 TaskData, TargetTaskData,
194 TargetData, CodeptrRA));
198 const std::string &Name,
const std::string &Group,
199 const ObserveState &Expected, ompt_id_t TargetId, ompt_id_t HostOpId,
200 ompt_target_data_op_t OpType,
void *SrcAddr,
int SrcDeviceNum,
201 void *DstAddr,
int DstDeviceNum,
size_t Bytes,
const void *CodeptrRA) {
202 auto EName = getName(Name);
203 auto EGroup = getGroup(Group);
206 TargetId, HostOpId, OpType, SrcAddr, SrcDeviceNum,
207 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
211 const std::string &Name,
const std::string &Group,
212 const ObserveState &Expected, ompt_target_data_op_t OpType,
size_t Bytes,
213 void *SrcAddr,
void *DstAddr,
int SrcDeviceNum,
int DstDeviceNum,
214 ompt_id_t TargetId, ompt_id_t HostOpId,
const void *CodeptrRA) {
215 auto EName = getName(Name);
216 auto EGroup = getGroup(Group);
219 TargetId, HostOpId, OpType, SrcAddr, SrcDeviceNum,
220 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
224 const std::string &Name,
const std::string &Group,
225 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
226 ompt_data_t *TargetTaskData, ompt_data_t *TargetData, ompt_id_t *HostOpId,
227 ompt_target_data_op_t OpType,
void *SrcAddr,
int SrcDeviceNum,
228 void *DstAddr,
int DstDeviceNum,
size_t Bytes,
const void *CodeptrRA) {
229 auto EName = getName(Name);
230 auto EGroup = getGroup(Group);
232 EName, EGroup, Expected,
234 HostOpId, OpType, SrcAddr, SrcDeviceNum,
235 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
239 const std::string &Name,
const std::string &Group,
240 const ObserveState &Expected, ompt_target_data_op_t OpType,
241 ompt_scope_endpoint_t Endpoint,
size_t Bytes,
void *SrcAddr,
void *DstAddr,
242 int SrcDeviceNum,
int DstDeviceNum, ompt_data_t *TargetTaskData,
243 ompt_data_t *TargetData, ompt_id_t *HostOpId,
const void *CodeptrRA) {
244 auto EName = getName(Name);
245 auto EGroup = getGroup(Group);
247 EName, EGroup, Expected,
249 HostOpId, OpType, SrcAddr, SrcDeviceNum,
250 DstAddr, DstDeviceNum, Bytes, CodeptrRA));
254 const std::string &Group,
258 unsigned int RequestedNumTeams) {
259 auto EName = getName(Name);
260 auto EGroup = getGroup(Group);
262 EName, EGroup, Expected,
267 const std::string &Group,
269 unsigned int RequestedNumTeams,
271 ompt_id_t HostOpId) {
272 auto EName = getName(Name);
273 auto EGroup = getGroup(Group);
275 EName, EGroup, Expected,
280 const std::string &Name,
const std::string &Group,
281 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
282 ompt_data_t *TargetData, ompt_id_t *HostOpId,
283 unsigned int RequestedNumTeams) {
284 auto EName = getName(Name);
285 auto EGroup = getGroup(Group);
293 const std::string &Group,
295 unsigned int RequestedNumTeams,
296 ompt_scope_endpoint_t Endpoint,
297 ompt_data_t *TargetData,
298 ompt_id_t *HostOpId) {
299 auto EName = getName(Name);
300 auto EGroup = getGroup(Group);
308 const std::string &Group,
310 auto EName = getName(Name);
311 auto EGroup = getGroup(Group);
316 const std::string &Name,
const std::string &Group,
317 const ObserveState &Expected,
int DeviceNum,
const char *Type,
318 ompt_device_t *Device, ompt_function_lookup_t LookupFn,
319 const char *DocumentationStr) {
320 auto EName = getName(Name);
321 auto EGroup = getGroup(Group);
329 const std::string &Group,
332 auto EName = getName(Name);
333 auto EGroup = getGroup(Group);
341 const char *Filename, int64_t OffsetInFile,
342 void *VmaInFile,
size_t Bytes,
void *HostAddr,
343 void *DeviceAddr, uint64_t ModuleId) {
344 auto EName = getName(Name);
345 auto EGroup = getGroup(Group);
347 EName, EGroup, Expected,
349 Bytes, HostAddr, DeviceAddr, ModuleId));
353 const std::string &Group,
355 auto EName = getName(Name);
356 auto EGroup = getGroup(Group);
361 const std::string &Group,
364 ompt_buffer_t **Buffer,
366 auto EName = getName(Name);
367 auto EGroup = getGroup(Group);
373 const std::string &Name,
const std::string &Group,
374 const ObserveState &Expected,
int DeviceNum, ompt_buffer_t *Buffer,
375 size_t Bytes, ompt_buffer_cursor_t Begin,
int BufferOwned) {
376 auto EName = getName(Name);
377 auto EGroup = getGroup(Group);
380 Begin, BufferOwned));
384 const std::string &Group,
386 ompt_record_ompt_t *Record) {
387 auto EName = getName(Name);
388 auto EGroup = getGroup(Group);
394 const std::string &Name,
const std::string &Group,
395 const ObserveState &Expected, ompt_callbacks_t Type, ompt_target_t Kind,
396 ompt_scope_endpoint_t Endpoint,
int DeviceNum, ompt_id_t TaskId,
397 ompt_id_t TargetId,
const void *CodeptrRA) {
398 auto EName = getName(Name);
399 auto EGroup = getGroup(Group);
401 if (Type != ompt_callback_target)
402 assert(
false &&
"CTOR only suited for type: 'ompt_callback_target'");
404 ompt_record_target_t Subrecord{Kind, Endpoint, DeviceNum,
405 TaskId, TargetId, CodeptrRA};
407 ompt_record_ompt_t *RecordPtr =
408 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
409 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
410 RecordPtr->type = Type;
413 RecordPtr->target_id = TargetId;
414 RecordPtr->record.target = Subrecord;
421 const std::string &Name,
const std::string &Group,
423 ompt_target_data_op_t OpType,
size_t Bytes,
424 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
void *SrcAddr,
425 void *DstAddr,
int SrcDeviceNum,
int DstDeviceNum, ompt_id_t TargetId,
426 ompt_id_t HostOpId,
const void *CodeptrRA) {
427 auto EName = getName(Name);
428 auto EGroup = getGroup(Group);
430 if (Type != ompt_callback_target_data_op)
432 "CTOR only suited for type: 'ompt_callback_target_data_op'");
434 ompt_record_target_data_op_t Subrecord{
435 HostOpId, OpType, SrcAddr, SrcDeviceNum, DstAddr,
436 DstDeviceNum, Bytes, Timeframe.second, CodeptrRA};
438 ompt_record_ompt_t *RecordPtr =
439 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
440 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
441 RecordPtr->type = Type;
442 RecordPtr->time = Timeframe.first;
444 RecordPtr->target_id = TargetId;
445 RecordPtr->record.target_data_op = Subrecord;
452 const std::string &Name,
const std::string &Group,
454 ompt_target_data_op_t OpType,
size_t Bytes,
455 ompt_device_time_t MinimumTimeDelta,
void *SrcAddr,
void *DstAddr,
456 int SrcDeviceNum,
int DstDeviceNum, ompt_id_t TargetId, ompt_id_t HostOpId,
457 const void *CodeptrRA) {
458 return BufferRecord(Name, Group, Expected, Type, OpType, Bytes,
460 SrcAddr, DstAddr, SrcDeviceNum, DstDeviceNum, TargetId,
461 HostOpId, CodeptrRA);
465 const std::string &Name,
const std::string &Group,
467 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
468 unsigned int RequestedNumTeams,
unsigned int GrantedNumTeams,
469 ompt_id_t TargetId, ompt_id_t HostOpId) {
470 auto EName = getName(Name);
471 auto EGroup = getGroup(Group);
473 bool isDefault = (Timeframe.first ==
expectedDefault(ompt_device_time_t));
474 isDefault &= (Timeframe.second ==
expectedDefault(ompt_device_time_t));
480 ompt_record_ompt_t *RecordPtr =
481 (ompt_record_ompt_t *)malloc(
sizeof(ompt_record_ompt_t));
482 memset(RecordPtr, 0,
sizeof(ompt_record_ompt_t));
483 RecordPtr->type = Type;
491 if (Type == ompt_callback_target) {
498 RecordPtr->record.target = Subrecord;
501 if (Type == ompt_callback_target_data_op) {
502 ompt_record_target_data_op_t Subrecord{
508 RecordPtr->record.target_data_op = Subrecord;
511 if (Type == ompt_callback_target_submit) {
512 ompt_record_target_kernel_t Subrecord{
515 RecordPtr->record.target_kernel = Subrecord;
522 if (Type != ompt_callback_target_submit)
523 assert(
false &&
"CTOR only suited for type: 'ompt_callback_target_submit'");
525 ompt_record_target_kernel_t Subrecord{HostOpId, RequestedNumTeams,
526 GrantedNumTeams, Timeframe.second};
528 RecordPtr->time = Timeframe.first;
530 RecordPtr->target_id = TargetId;
531 RecordPtr->record.target_kernel = Subrecord;
538 const std::string &Name,
const std::string &Group,
540 ompt_device_time_t MinimumTimeDelta,
unsigned int RequestedNumTeams,
541 unsigned int GrantedNumTeams, ompt_id_t TargetId, ompt_id_t HostOpId) {
544 RequestedNumTeams, GrantedNumTeams, TargetId, HostOpId);
548 const std::string &Name,
const std::string &Group,
550 auto EName = getName(Name);
551 auto EGroup = getGroup(Group);
561 return ExpectedState;
565 return TheEvent->Type;
569 return TheEvent.get();
576 S.append((TheEvent ==
nullptr) ?
"OmptAssertEvent" : TheEvent->toString());
581 assert(A.TheEvent.get() !=
nullptr &&
"A is valid");
582 assert(B.TheEvent.get() !=
nullptr &&
"B is valid");
584 return A.TheEvent->Type == B.TheEvent->Type &&
585 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.