20#ifndef REALM_PROFILING_H
21#define REALM_PROFILING_H
68 namespace ProfilingMeasurements {
96 std::vector<uintptr_t>
pcs;
289 template <ProfilingMeasurementID _ID>
329 int _priority = 0,
bool _report_if_empty =
false);
338 template <
typename T>
345 template <
typename S>
351 template <
typename S>
374 const void *payload = 0,
size_t payload_size = 0,
375 int priority = 0,
bool report_if_empty =
false);
385 template <
typename S>
387 template <
typename S>
405 template <
typename T>
408 template <
typename T>
418 std::map<ProfilingMeasurementID, std::vector<const ProfilingRequest *>>
438 template <
typename T>
443 template <
typename T>
448 template <
typename T>
459 bool find_id(
int id,
int &offset,
int &size)
const;
464#include "realm/profiling.inl"
Definition bytearray.h:53
Definition processor.h:37
::realm_task_func_id_t TaskFuncID
Definition processor.h:58
Definition profiling.h:393
std::map< ProfilingMeasurementID, ByteArray > measurements
Definition profiling.h:424
std::map< const ProfilingRequest *, int > measurements_left
Definition profiling.h:420
void send_responses(const ProfilingRequestSet &prs)
void send_response(const ProfilingRequest &pr) const
bool completed_requests_present
Definition profiling.h:421
void import_requests(const ProfilingRequestSet &prs)
ProfilingMeasurementCollection(void)
bool wants_measurement(void) const
~ProfilingMeasurementCollection(void)
void add_measurement(const T &data, bool send_complete_responses=true)
std::map< ProfilingMeasurementID, std::vector< const ProfilingRequest * > > requested_measurements
Definition profiling.h:419
void clear_measurements(void)
Definition profiling.h:363
friend bool serialize(S &s, const ProfilingRequestSet &prs)
ProfilingRequest & add_request(Processor response_proc, Processor::TaskFuncID response_task_id, const void *payload=0, size_t payload_size=0, int priority=0, bool report_if_empty=false)
friend bool deserialize(S &s, ProfilingRequestSet &prs)
std::vector< ProfilingRequest * > requests
Definition profiling.h:390
~ProfilingRequestSet(void)
ProfilingRequestSet(const ProfilingRequestSet &to_copy)
ProfilingRequestSet & operator=(const ProfilingRequestSet &rhs)
ProfilingRequestSet(void)
size_t request_count(void) const
Definition profiling.h:326
ProfilingRequest & add_measurement(ProfilingMeasurementID measurement_id)
ProfilingRequest & add_user_data(const void *payload, size_t payload_size)
ProfilingRequest & operator=(const ProfilingRequest &rhs)
Processor response_proc
Definition profiling.h:354
ProfilingRequest & add_measurements(const std::set< ProfilingMeasurementID > &measurement_ids)
int priority
Definition profiling.h:356
friend bool serialize(S &s, const ProfilingRequest &pr)
Processor::TaskFuncID response_task_id
Definition profiling.h:355
ProfilingRequest & add_measurement(void)
bool report_if_empty
Definition profiling.h:357
std::set< ProfilingMeasurementID > requested_measurements
Definition profiling.h:359
static ProfilingRequest * deserialize_new(S &s)
ProfilingRequest(Processor _response_proc, Processor::TaskFuncID _response_task_id, int _priority=0, bool _report_if_empty=false)
ProfilingRequest(const ProfilingRequest &to_copy)
ByteArray user_data
Definition profiling.h:358
Definition profiling.h:427
T * get_measurement(void) const
REALM_INTERNAL_API_EXTERNAL_LINKAGE bool find_id(int id, int &offset, int &size) const
size_t user_data_offset
Definition profiling.h:455
size_t data_size
Definition profiling.h:453
bool has_measurement(void) const
size_t user_data_size(void) const
bool get_measurement(T &result) const
int measurement_count
Definition profiling.h:454
const int * ids
Definition profiling.h:456
const char * data
Definition profiling.h:452
ProfilingResponse(const void *_data, size_t _data_size)
const void * user_data(void) const
#define REALM_INTERNAL_API_EXTERNAL_LINKAGE
Definition compiler_support.h:218
#define REALM_PUBLIC_API
Definition compiler_support.h:217
CachePerfCounters< PMID_PCTRS_CACHE_L2 > L2CachePerfCounters
Definition profiling.h:298
CachePerfCounters< PMID_PCTRS_CACHE_L1I > L1ICachePerfCounters
Definition profiling.h:296
CachePerfCounters< PMID_PCTRS_CACHE_L1D > L1DCachePerfCounters
Definition profiling.h:297
CachePerfCounters< PMID_PCTRS_CACHE_L3 > L3CachePerfCounters
Definition profiling.h:299
Definition activemsg.h:38
realm_field_id_t FieldID
Definition instance.h:45
ProfilingMeasurementID
Definition profiling.h:39
@ PMID_OP_SUBGRAPH_INFO
Definition profiling.h:60
@ PMID_OP_TIMELINE
Definition profiling.h:43
@ PMID_PCTRS_IPC
Definition profiling.h:56
@ PMID_REALM_LAST
Definition profiling.h:65
@ PMID_PCTRS_CACHE_L1D
Definition profiling.h:53
@ PMID_PCTRS_TLB
Definition profiling.h:57
@ PMID_PCTRS_CACHE_L1I
Definition profiling.h:52
@ PMID_OP_BACKTRACE
Definition profiling.h:42
@ PMID_INST_MEM_USAGE
Definition profiling.h:51
@ PMID_INST_STATUS_ABNORMAL
Definition profiling.h:48
@ PMID_PCTRS_CACHE_L2
Definition profiling.h:54
@ PMID_OP_MEM_USAGE
Definition profiling.h:46
@ PMID_PCTRS_BP
Definition profiling.h:58
@ PMID_INST_TIMELINE
Definition profiling.h:50
@ PMID_OP_COPY_INFO
Definition profiling.h:62
@ PMID_PCTRS_CACHE_L3
Definition profiling.h:55
@ PMID_OP_STATUS_ABNORMAL
Definition profiling.h:41
@ PMID_OP_TIMELINE_GPU
Definition profiling.h:59
@ PMID_OP_FINISH_EVENT
Definition profiling.h:61
@ PMID_INST_STATUS
Definition profiling.h:47
@ PMID_OP_STATUS
Definition profiling.h:40
@ PMID_OP_PROC_USAGE
Definition profiling.h:45
@ PMID_OP_EVENT_WAITS
Definition profiling.h:44
@ PMID_INST_ALLOCRESULT
Definition profiling.h:49
Definition profiling.h:318
long long taken_branches
Definition profiling.h:321
long long total_branches
Definition profiling.h:320
long long mispredictions
Definition profiling.h:322
Definition profiling.h:290
long long accesses
Definition profiling.h:292
long long misses
Definition profiling.h:293
Definition profiling.h:302
long long st_insts
Definition profiling.h:308
long long total_cycles
Definition profiling.h:305
long long fp_insts
Definition profiling.h:306
long long ld_insts
Definition profiling.h:307
long long total_insts
Definition profiling.h:304
long long br_insts
Definition profiling.h:309
Definition profiling.h:247
Definition profiling.h:253
bool success
Definition profiling.h:256
Definition profiling.h:281
size_t bytes
Definition profiling.h:285
RegionInstance instance
Definition profiling.h:283
Memory memory
Definition profiling.h:284
Definition profiling.h:227
Result result
Definition profiling.h:242
Result
Definition profiling.h:231
@ AWAITING_ALLOCATION
Definition profiling.h:232
@ INSTANCE_COUNT_EXCEEDED
Definition profiling.h:239
@ MEMORY_LOST
Definition profiling.h:238
@ CORRUPTED
Definition profiling.h:237
@ ALLOCATED
Definition profiling.h:235
@ FAILED_ALLOCATION
Definition profiling.h:233
@ CANCELLED_ALLOCATION
Definition profiling.h:234
@ DESTROYED_SUCCESSFULLY
Definition profiling.h:236
ByteArray error_details
Definition profiling.h:244
int error_code
Definition profiling.h:243
Definition profiling.h:260
void record_delete_time(void)
void record_ready_time(void)
RegionInstance instance
Definition profiling.h:270
static const timestamp_t INVALID_TIMESTAMP
Definition profiling.h:268
timestamp_t delete_time
Definition profiling.h:273
timestamp_t create_time
Definition profiling.h:271
timestamp_t ready_time
Definition profiling.h:272
unsigned long long timestamp_t
Definition profiling.h:267
void record_create_time(void)
Definition profiling.h:89
Definition profiling.h:93
std::vector< uintptr_t > pcs
Definition profiling.h:96
std::vector< std::string > symbols
Definition profiling.h:97
Definition profiling.h:198
RegionInstance src_indirection_inst
Definition profiling.h:201
RequestType request_type
Definition profiling.h:207
std::vector< FieldID > src_fields
Definition profiling.h:203
std::vector< RegionInstance > src_insts
Definition profiling.h:199
unsigned int num_hops
Definition profiling.h:208
std::vector< RegionInstance > dst_insts
Definition profiling.h:200
FieldID src_indirection_field
Definition profiling.h:205
std::vector< FieldID > dst_fields
Definition profiling.h:204
RegionInstance dst_indirection_inst
Definition profiling.h:202
FieldID dst_indirection_field
Definition profiling.h:206
Definition profiling.h:188
RequestType
Definition profiling.h:192
@ COPY
Definition profiling.h:195
@ FILL
Definition profiling.h:193
@ REDUCE
Definition profiling.h:194
std::vector< InstInfo > inst_info
Definition profiling.h:210
Definition profiling.h:159
void record_wait_end(void)
void record_wait_start(void)
timestamp_t wait_end
Definition profiling.h:162
Event wait_event
Definition profiling.h:163
timestamp_t wait_ready
Definition profiling.h:161
timestamp_t wait_start
Definition profiling.h:160
void record_wait_ready(void)
Definition profiling.h:153
long long timestamp_t
Definition profiling.h:156
std::vector< WaitInterval > intervals
Definition profiling.h:170
static const timestamp_t INVALID_TIMESTAMP
Definition profiling.h:157
Definition profiling.h:213
Event finish_event
Definition profiling.h:215
Definition profiling.h:180
Memory source
Definition profiling.h:182
Memory target
Definition profiling.h:183
size_t size
Definition profiling.h:184
Definition profiling.h:174
Processor proc
Definition profiling.h:176
Definition profiling.h:69
ByteArray error_details
Definition profiling.h:86
Result result
Definition profiling.h:84
Result
Definition profiling.h:73
@ COMPLETED_WITH_ERRORS
Definition profiling.h:75
@ RUNNING
Definition profiling.h:76
@ TERMINATED_EARLY
Definition profiling.h:78
@ INTERRUPT_REQUESTED
Definition profiling.h:77
@ READY
Definition profiling.h:80
@ COMPLETED_SUCCESSFULLY
Definition profiling.h:74
@ WAITING
Definition profiling.h:79
@ CANCELLED
Definition profiling.h:81
int error_code
Definition profiling.h:85
Definition profiling.h:218
std::vector< Event > subgraph_finish_events
Definition profiling.h:223
Definition profiling.h:132
timestamp_t end_time
Definition profiling.h:147
OperationTimelineGPU()
Definition profiling.h:142
timestamp_t start_time
Definition profiling.h:146
bool is_valid(void) const
static const timestamp_t INVALID_TIMESTAMP
Definition profiling.h:140
long long timestamp_t
Definition profiling.h:139
Definition profiling.h:100
timestamp_t end_time
Definition profiling.h:121
static const timestamp_t INVALID_TIMESTAMP
Definition profiling.h:108
timestamp_t start_time
Definition profiling.h:120
OperationTimeline()
Definition profiling.h:110
void record_create_time(void)
void record_complete_time(void)
timestamp_t ready_time
Definition profiling.h:119
void record_end_time(void)
void record_ready_time(void)
timestamp_t complete_time
Definition profiling.h:122
bool is_valid(void) const
void record_start_time(void)
long long timestamp_t
Definition profiling.h:107
timestamp_t create_time
Definition profiling.h:118
Definition profiling.h:312
long long data_misses
Definition profiling.h:315
long long inst_misses
Definition profiling.h:314