LLVM OpenMP 22.0.0git
OmptTester.cpp File Reference

This file represents the core implementation file for the ompTest library. More...

#include "OmptTester.h"
#include <atomic>
#include <cassert>
#include <cstdlib>
#include <cstring>

Go to the source code of this file.

Macros

#define register_ompt_callback_t(name, type)
#define register_ompt_callback(name)
#define OMPT_BUFFER_REQUEST_SIZE   256

Typedefs

typedef std::unordered_set< ompt_device_t * > OmptDeviceSetTy
typedef std::unique_ptr< OmptDeviceSetTyOmptDeviceSetPtrTy

Functions

static void on_ompt_callback_buffer_request (int device_num, ompt_buffer_t **buffer, size_t *bytes)
static void on_ompt_callback_buffer_complete (int device_num, ompt_buffer_t *buffer, size_t bytes, ompt_buffer_cursor_t begin, int buffer_owned)
static ompt_set_result_t set_trace_ompt (ompt_device_t *Device)
static void on_ompt_callback_thread_begin (ompt_thread_t thread_type, ompt_data_t *thread_data)
static void on_ompt_callback_thread_end (ompt_data_t *thread_data)
static void on_ompt_callback_parallel_begin (ompt_data_t *encountering_task_data, const ompt_frame_t *encountering_task_frame, ompt_data_t *parallel_data, unsigned int requested_parallelism, int flags, const void *codeptr_ra)
static void on_ompt_callback_parallel_end (ompt_data_t *parallel_data, ompt_data_t *encountering_task_data, int flags, const void *codeptr_ra)
static void on_ompt_callback_task_create (ompt_data_t *encountering_task_data, const ompt_frame_t *encountering_task_frame, ompt_data_t *new_task_data, int flags, int has_dependences, const void *codeptr_ra)
static void on_ompt_callback_task_schedule (ompt_data_t *prior_task_data, ompt_task_status_t prior_task_status, ompt_data_t *next_task_data)
static void on_ompt_callback_implicit_task (ompt_scope_endpoint_t endpoint, ompt_data_t *parallel_data, ompt_data_t *task_data, unsigned int actual_parallelism, unsigned int index, int flags)
static void on_ompt_callback_work (ompt_work_t work_type, ompt_scope_endpoint_t endpoint, ompt_data_t *parallel_data, ompt_data_t *task_data, uint64_t count, const void *codeptr_ra)
static void on_ompt_callback_dispatch (ompt_data_t *parallel_data, ompt_data_t *task_data, ompt_dispatch_t kind, ompt_data_t instance)
static void on_ompt_callback_sync_region (ompt_sync_region_t kind, ompt_scope_endpoint_t endpoint, ompt_data_t *parallel_data, ompt_data_t *task_data, const void *codeptr_ra)
static void on_ompt_callback_device_initialize (int device_num, const char *type, ompt_device_t *device, ompt_function_lookup_t lookup, const char *documentation)
static void on_ompt_callback_device_finalize (int device_num)
static void on_ompt_callback_device_load (int device_num, const char *filename, int64_t offset_in_file, void *vma_in_file, size_t bytes, void *host_addr, void *device_addr, uint64_t module_id)
static void on_ompt_callback_device_unload (int device_num, uint64_t module_id)
static void on_ompt_callback_target_data_op (ompt_id_t target_id, ompt_id_t host_op_id, ompt_target_data_op_t optype, void *src_addr, int src_device_num, void *dest_addr, int dest_device_num, size_t bytes, const void *codeptr_ra)
static void on_ompt_callback_target (ompt_target_t kind, ompt_scope_endpoint_t endpoint, int device_num, ompt_data_t *task_data, ompt_id_t target_id, const void *codeptr_ra)
static void on_ompt_callback_target_submit (ompt_id_t target_id, ompt_id_t host_op_id, unsigned int requested_num_teams)
static void on_ompt_callback_target_data_op_emi (ompt_scope_endpoint_t endpoint, ompt_data_t *target_task_data, ompt_data_t *target_data, ompt_id_t *host_op_id, ompt_target_data_op_t optype, void *src_addr, int src_device_num, void *dest_addr, int dest_device_num, size_t bytes, const void *codeptr_ra)
static void on_ompt_callback_target_emi (ompt_target_t kind, ompt_scope_endpoint_t endpoint, int device_num, ompt_data_t *task_data, ompt_data_t *target_task_data, ompt_data_t *target_data, const void *codeptr_ra)
static void on_ompt_callback_target_submit_emi (ompt_scope_endpoint_t endpoint, ompt_data_t *target_data, ompt_id_t *host_op_id, unsigned int requested_num_teams)
static void on_ompt_callback_target_map (ompt_id_t target_id, unsigned int nitems, void **host_addr, void **device_addr, size_t *bytes, unsigned int *mapping_flags, const void *codeptr_ra)
static void on_ompt_callback_target_map_emi (ompt_data_t *target_data, unsigned int nitems, void **host_addr, void **device_addr, size_t *bytes, unsigned int *mapping_flags, const void *codeptr_ra)
bool getBoolEnvironmentVariable (const char *VariableName)
 Load the value of a given boolean environmental variable.
int ompt_initialize (ompt_function_lookup_t lookup, int initial_device_num, ompt_data_t *tool_data)
 Called by the OMP runtime to initialize the OMPT.
void ompt_finalize (ompt_data_t *tool_data)
ompt_start_tool_result_tompt_start_tool (unsigned int omp_version, const char *runtime_version)
 Called from the OMP Runtime to start / initialize the tool.
int start_trace (ompt_device_t *Device)
int flush_trace (ompt_device_t *Device)
int flush_traced_devices ()
int stop_trace (ompt_device_t *Device)
void libomptest_global_eventreporter_set_active (bool State)

Variables

OmptCallbackHandlerHandler
static OmptEventReporterEventReporter
static std::atomic< ompt_id_t > NextOpId {0x8000000000000001}
static bool UseEMICallbacks = false
static bool UseTracing = false
static bool RunAsTestSuite = false
static bool ColoredLog = false
static ompt_set_trace_ompt_t ompt_set_trace_ompt = 0
static ompt_start_trace_t ompt_start_trace = 0
static ompt_flush_trace_t ompt_flush_trace = 0
static ompt_stop_trace_t ompt_stop_trace = 0
static ompt_get_record_ompt_t ompt_get_record_ompt = 0
static ompt_advance_buffer_cursor_t ompt_advance_buffer_cursor = 0
static ompt_get_record_type_t ompt_get_record_type_fn = 0
static OmptDeviceSetPtrTy TracedDevices

Detailed Description

This file represents the core implementation file for the ompTest library.

It provides the actual OMPT tool implementation: registers callbacks, etc. OMPT callbacks are passed to their corresponding handler, which in turn notifies all registered asserters.

Definition in file OmptTester.cpp.

Macro Definition Documentation

◆ OMPT_BUFFER_REQUEST_SIZE

#define OMPT_BUFFER_REQUEST_SIZE   256

Definition at line 42 of file OmptTester.cpp.

Referenced by on_ompt_callback_buffer_request().

◆ register_ompt_callback

#define register_ompt_callback ( name)
Value:
#define register_ompt_callback_t(name, type)
Definition callback.h:376
__itt_string_handle * name
Definition ittnotify.h:3305

Definition at line 40 of file OmptTester.cpp.

Referenced by ompt_initialize().

◆ register_ompt_callback_t

#define register_ompt_callback_t ( name,
type )
Value:
do { \
type f_##name = &on_##name; \
if (ompt_set_callback(name, (ompt_callback_t)f_##name) == ompt_set_never) \
printf("0: Could not register callback '" #name "'\n"); \
} while (0)
static ompt_set_callback_t ompt_set_callback
Definition callback.h:153
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 type

Definition at line 33 of file OmptTester.cpp.

Typedef Documentation

◆ OmptDeviceSetPtrTy

typedef std::unique_ptr<OmptDeviceSetTy> OmptDeviceSetPtrTy

Definition at line 65 of file OmptTester.cpp.

◆ OmptDeviceSetTy

typedef std::unordered_set<ompt_device_t *> OmptDeviceSetTy

Definition at line 64 of file OmptTester.cpp.

Function Documentation

◆ flush_trace()

int flush_trace ( ompt_device_t * Device)

Definition at line 464 of file OmptTester.cpp.

References ompt_flush_trace.

◆ flush_traced_devices()

int flush_traced_devices ( )

◆ getBoolEnvironmentVariable()

bool getBoolEnvironmentVariable ( const char * VariableName)

Load the value of a given boolean environmental variable.

Definition at line 362 of file OmptTester.cpp.

References C, char, and S.

Referenced by ompt_initialize().

◆ libomptest_global_eventreporter_set_active()

void libomptest_global_eventreporter_set_active ( bool State)

Definition at line 498 of file OmptTester.cpp.

References EventReporter.

◆ ompt_finalize()

void ompt_finalize ( ompt_data_t * tool_data)

Definition at line 433 of file OmptTester.cpp.

References EventReporter, and Handler.

◆ ompt_initialize()

int ompt_initialize ( ompt_function_lookup_t lookup,
int initial_device_num,
ompt_data_t * tool_data )

◆ ompt_start_tool()

ompt_start_tool_result_t * ompt_start_tool ( unsigned int omp_version,
const char * runtime_version )

Called from the OMP Runtime to start / initialize the tool.

Definition at line 444 of file OmptTester.cpp.

References ompt_finalize(), ompt_initialize(), and ompt_start_tool_result.

◆ on_ompt_callback_buffer_complete()

void on_ompt_callback_buffer_complete ( int device_num,
ompt_buffer_t * buffer,
size_t bytes,
ompt_buffer_cursor_t begin,
int buffer_owned )
static

◆ on_ompt_callback_buffer_request()

void on_ompt_callback_buffer_request ( int device_num,
ompt_buffer_t ** buffer,
size_t * bytes )
static

◆ on_ompt_callback_device_finalize()

void on_ompt_callback_device_finalize ( int device_num)
static

◆ on_ompt_callback_device_initialize()

void on_ompt_callback_device_initialize ( int device_num,
const char * type,
ompt_device_t * device,
ompt_function_lookup_t lookup,
const char * documentation )
static

◆ on_ompt_callback_device_load()

void on_ompt_callback_device_load ( int device_num,
const char * filename,
int64_t offset_in_file,
void * vma_in_file,
size_t bytes,
void * host_addr,
void * device_addr,
uint64_t module_id )
static

◆ on_ompt_callback_device_unload()

void on_ompt_callback_device_unload ( int device_num,
uint64_t module_id )
static

◆ on_ompt_callback_dispatch()

void on_ompt_callback_dispatch ( ompt_data_t * parallel_data,
ompt_data_t * task_data,
ompt_dispatch_t kind,
ompt_data_t instance )
static

◆ on_ompt_callback_implicit_task()

void on_ompt_callback_implicit_task ( ompt_scope_endpoint_t endpoint,
ompt_data_t * parallel_data,
ompt_data_t * task_data,
unsigned int actual_parallelism,
unsigned int index,
int flags )
static

◆ on_ompt_callback_parallel_begin()

void on_ompt_callback_parallel_begin ( ompt_data_t * encountering_task_data,
const ompt_frame_t * encountering_task_frame,
ompt_data_t * parallel_data,
unsigned int requested_parallelism,
int flags,
const void * codeptr_ra )
static

◆ on_ompt_callback_parallel_end()

void on_ompt_callback_parallel_end ( ompt_data_t * parallel_data,
ompt_data_t * encountering_task_data,
int flags,
const void * codeptr_ra )
static

◆ on_ompt_callback_sync_region()

void on_ompt_callback_sync_region ( ompt_sync_region_t kind,
ompt_scope_endpoint_t endpoint,
ompt_data_t * parallel_data,
ompt_data_t * task_data,
const void * codeptr_ra )
static

◆ on_ompt_callback_target()

void on_ompt_callback_target ( ompt_target_t kind,
ompt_scope_endpoint_t endpoint,
int device_num,
ompt_data_t * task_data,
ompt_id_t target_id,
const void * codeptr_ra )
static

◆ on_ompt_callback_target_data_op()

void on_ompt_callback_target_data_op ( ompt_id_t target_id,
ompt_id_t host_op_id,
ompt_target_data_op_t optype,
void * src_addr,
int src_device_num,
void * dest_addr,
int dest_device_num,
size_t bytes,
const void * codeptr_ra )
static

◆ on_ompt_callback_target_data_op_emi()

void on_ompt_callback_target_data_op_emi ( ompt_scope_endpoint_t endpoint,
ompt_data_t * target_task_data,
ompt_data_t * target_data,
ompt_id_t * host_op_id,
ompt_target_data_op_t optype,
void * src_addr,
int src_device_num,
void * dest_addr,
int dest_device_num,
size_t bytes,
const void * codeptr_ra )
static

◆ on_ompt_callback_target_emi()

void on_ompt_callback_target_emi ( ompt_target_t kind,
ompt_scope_endpoint_t endpoint,
int device_num,
ompt_data_t * task_data,
ompt_data_t * target_task_data,
ompt_data_t * target_data,
const void * codeptr_ra )
static

◆ on_ompt_callback_target_map()

void on_ompt_callback_target_map ( ompt_id_t target_id,
unsigned int nitems,
void ** host_addr,
void ** device_addr,
size_t * bytes,
unsigned int * mapping_flags,
const void * codeptr_ra )
static

Definition at line 344 of file OmptTester.cpp.

◆ on_ompt_callback_target_map_emi()

void on_ompt_callback_target_map_emi ( ompt_data_t * target_data,
unsigned int nitems,
void ** host_addr,
void ** device_addr,
size_t * bytes,
unsigned int * mapping_flags,
const void * codeptr_ra )
static

Definition at line 352 of file OmptTester.cpp.

◆ on_ompt_callback_target_submit()

void on_ompt_callback_target_submit ( ompt_id_t target_id,
ompt_id_t host_op_id,
unsigned int requested_num_teams )
static

◆ on_ompt_callback_target_submit_emi()

void on_ompt_callback_target_submit_emi ( ompt_scope_endpoint_t endpoint,
ompt_data_t * target_data,
ompt_id_t * host_op_id,
unsigned int requested_num_teams )
static

◆ on_ompt_callback_task_create()

void on_ompt_callback_task_create ( ompt_data_t * encountering_task_data,
const ompt_frame_t * encountering_task_frame,
ompt_data_t * new_task_data,
int flags,
int has_dependences,
const void * codeptr_ra )
static

◆ on_ompt_callback_task_schedule()

void on_ompt_callback_task_schedule ( ompt_data_t * prior_task_data,
ompt_task_status_t prior_task_status,
ompt_data_t * next_task_data )
static

◆ on_ompt_callback_thread_begin()

void on_ompt_callback_thread_begin ( ompt_thread_t thread_type,
ompt_data_t * thread_data )
static

◆ on_ompt_callback_thread_end()

void on_ompt_callback_thread_end ( ompt_data_t * thread_data)
static

◆ on_ompt_callback_work()

void on_ompt_callback_work ( ompt_work_t work_type,
ompt_scope_endpoint_t endpoint,
ompt_data_t * parallel_data,
ompt_data_t * task_data,
uint64_t count,
const void * codeptr_ra )
static

◆ set_trace_ompt()

ompt_set_result_t set_trace_ompt ( ompt_device_t * Device)
static

Definition at line 109 of file OmptTester.cpp.

References ompt_set_trace_ompt, and UseEMICallbacks.

Referenced by on_ompt_callback_device_initialize().

◆ start_trace()

int start_trace ( ompt_device_t * Device)

◆ stop_trace()

int stop_trace ( ompt_device_t * Device)

Definition at line 485 of file OmptTester.cpp.

References ompt_stop_trace, and TracedDevices.

Variable Documentation

◆ ColoredLog

bool ColoredLog = false
static

Definition at line 52 of file OmptTester.cpp.

Referenced by ompt_initialize().

◆ EventReporter

OmptEventReporter* EventReporter
static

◆ Handler

OmptCallbackHandler* Handler
extern

Definition at line 18 of file OmptCallbackHandler.cpp.

◆ NextOpId

std::atomic<ompt_id_t> NextOpId {0x8000000000000001}
static

◆ ompt_advance_buffer_cursor

ompt_advance_buffer_cursor_t ompt_advance_buffer_cursor = 0
static

◆ ompt_flush_trace

ompt_flush_trace_t ompt_flush_trace = 0
static

◆ ompt_get_record_ompt

ompt_get_record_ompt_t ompt_get_record_ompt = 0
static

◆ ompt_get_record_type_fn

ompt_get_record_type_t ompt_get_record_type_fn = 0
static

◆ ompt_set_trace_ompt

ompt_set_trace_ompt_t ompt_set_trace_ompt = 0
static

Definition at line 55 of file OmptTester.cpp.

Referenced by on_ompt_callback_device_initialize(), and set_trace_ompt().

◆ ompt_start_trace

ompt_start_trace_t ompt_start_trace = 0
static

Definition at line 56 of file OmptTester.cpp.

Referenced by on_ompt_callback_device_initialize(), and start_trace().

◆ ompt_stop_trace

ompt_stop_trace_t ompt_stop_trace = 0
static

Definition at line 58 of file OmptTester.cpp.

Referenced by on_ompt_callback_device_initialize(), and stop_trace().

◆ RunAsTestSuite

bool RunAsTestSuite = false
static

Definition at line 51 of file OmptTester.cpp.

Referenced by ompt_initialize().

◆ TracedDevices

OmptDeviceSetPtrTy TracedDevices
static

◆ UseEMICallbacks

bool UseEMICallbacks = false
static

Definition at line 49 of file OmptTester.cpp.

Referenced by ompt_initialize(), and set_trace_ompt().

◆ UseTracing

bool UseTracing = false
static

Definition at line 50 of file OmptTester.cpp.

Referenced by ompt_initialize(), and on_ompt_callback_device_initialize().