Skip to content

Commit 97bbaad

Browse files
tarun292facebook-github-bot
authored andcommitted
Add support for event_tracer in KernelContext and codegen layer
Differential Revision: D48975975 fbshipit-source-id: 033fa80537557245f59806232960efa6d0222b69
1 parent 96b83ce commit 97bbaad

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

runtime/core/event_tracer_hooks.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,16 @@ inline void event_tracer_create_event_block(
114114
inline EventTracerEntry event_tracer_begin_profiling_event(
115115
EventTracer* event_tracer,
116116
char const* name) {
117-
EventTracerEntry event_tracer_entry;
118117
#ifdef ET_EVENT_TRACER_ENABLED
119118
if (event_tracer) {
120-
event_tracer_entry = event_tracer->start_profiling(name);
119+
return event_tracer->start_profiling(name);
121120
}
122121
#else //! ET_EVENT_TRACER_ENABLED
123122
(void)event_tracer;
124123
(void)name;
125124
#endif
126125
// There is no active tracer; this value will be ignored.
127-
return event_tracer_entry;
126+
return EventTracerEntry();
128127
}
129128

130129
/**

runtime/executor/method.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -905,7 +905,7 @@ Error Method::execute_instruction() {
905905
EXECUTORCH_SCOPE_PROF("OPERATOR_CALL");
906906
// TODO(T147221312): Also expose the temp allocator and tensor resizer
907907
// via the context.
908-
KernelRuntimeContext context;
908+
KernelRuntimeContext context(event_tracer_);
909909
auto args = chain.argument_lists_[step_state_.instr_idx];
910910
chain.kernels_[step_state_.instr_idx](context, args.data());
911911
Error err = context.failure_state();

runtime/kernel/kernel_runtime_context.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#pragma once
1010

1111
#include <executorch/runtime/core/error.h>
12+
#include <executorch/runtime/core/event_tracer_hooks.h>
1213
#include <executorch/runtime/platform/compiler.h>
1314

1415
namespace torch {
@@ -22,6 +23,11 @@ namespace executor {
2223
*/
2324
class KernelRuntimeContext {
2425
public:
26+
/**
27+
* Construct a new kernel runtime context along with an optional event tracer.
28+
*/
29+
KernelRuntimeContext(EventTracer* event_tracer = nullptr)
30+
: event_tracer_(event_tracer) {}
2531
/**
2632
* Tells the runtime that the kernel call has failed. Prefer this over
2733
* ET_CHECK_*(), which fatally panics the process/system.
@@ -43,11 +49,23 @@ class KernelRuntimeContext {
4349
return failure_state_;
4450
}
4551

52+
/**
53+
* INTERNAL ONLY
54+
*
55+
* Returns a pointer to an instance of EventTracer to do profiling/debugging
56+
* logging inside the codegen layer. This is only for internal usage inside
57+
* the codegen layer and users should not be accessing this.
58+
*/
59+
EventTracer* internal_event_tracer() {
60+
return event_tracer_;
61+
}
62+
4663
// TODO(T147221312): Add a way to allocate temporary memory.
4764

4865
// TODO(T147221312): Add a way to resize a tensor.
4966

5067
private:
68+
EventTracer* event_tracer_;
5169
Error failure_state_ = Error::Ok;
5270
};
5371

0 commit comments

Comments
 (0)