File tree Expand file tree Collapse file tree 3 files changed +21
-4
lines changed Expand file tree Collapse file tree 3 files changed +21
-4
lines changed Original file line number Diff line number Diff line change @@ -114,17 +114,16 @@ inline void event_tracer_create_event_block(
114
114
inline EventTracerEntry event_tracer_begin_profiling_event (
115
115
EventTracer* event_tracer,
116
116
char const * name) {
117
- EventTracerEntry event_tracer_entry;
118
117
#ifdef ET_EVENT_TRACER_ENABLED
119
118
if (event_tracer) {
120
- event_tracer_entry = event_tracer->start_profiling (name);
119
+ return event_tracer->start_profiling (name);
121
120
}
122
121
#else // ! ET_EVENT_TRACER_ENABLED
123
122
(void )event_tracer;
124
123
(void )name;
125
124
#endif
126
125
// There is no active tracer; this value will be ignored.
127
- return event_tracer_entry ;
126
+ return EventTracerEntry () ;
128
127
}
129
128
130
129
/* *
Original file line number Diff line number Diff line change @@ -905,7 +905,7 @@ Error Method::execute_instruction() {
905
905
EXECUTORCH_SCOPE_PROF (" OPERATOR_CALL" );
906
906
// TODO(T147221312): Also expose the temp allocator and tensor resizer
907
907
// via the context.
908
- KernelRuntimeContext context;
908
+ KernelRuntimeContext context (event_tracer_) ;
909
909
auto args = chain.argument_lists_ [step_state_.instr_idx ];
910
910
chain.kernels_ [step_state_.instr_idx ](context, args.data ());
911
911
Error err = context.failure_state ();
Original file line number Diff line number Diff line change 9
9
#pragma once
10
10
11
11
#include < executorch/runtime/core/error.h>
12
+ #include < executorch/runtime/core/event_tracer_hooks.h>
12
13
#include < executorch/runtime/platform/compiler.h>
13
14
14
15
namespace torch {
@@ -22,6 +23,11 @@ namespace executor {
22
23
*/
23
24
class KernelRuntimeContext {
24
25
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) {}
25
31
/* *
26
32
* Tells the runtime that the kernel call has failed. Prefer this over
27
33
* ET_CHECK_*(), which fatally panics the process/system.
@@ -43,11 +49,23 @@ class KernelRuntimeContext {
43
49
return failure_state_;
44
50
}
45
51
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
+
46
63
// TODO(T147221312): Add a way to allocate temporary memory.
47
64
48
65
// TODO(T147221312): Add a way to resize a tensor.
49
66
50
67
private:
68
+ EventTracer* event_tracer_;
51
69
Error failure_state_ = Error::Ok;
52
70
};
53
71
You can’t perform that action at this time.
0 commit comments