Skip to content

Commit 732d92b

Browse files
tarun292facebook-github-bot
authored andcommitted
Add support for using ETDumpGen (flatcc) in sdk/executor_runner (#502)
Summary: Pull Request resolved: #502 Adding support to output etdump (flatcc) in sdk/executor_runner. Reviewed By: vmpuri Differential Revision: D48975977 fbshipit-source-id: 0bda68dbbf7a48b8962690ceb67cefde5857e044
1 parent 63e0f76 commit 732d92b

File tree

7 files changed

+40
-5
lines changed

7 files changed

+40
-5
lines changed

runtime/core/event_tracer_hooks.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,32 @@ namespace internal {
3737
class EventTracerProfileScope final {
3838
public:
3939
EventTracerProfileScope(EventTracer* event_tracer, const char* name) {
40+
#ifdef ET_EVENT_TRACER_ENABLED
4041
event_tracer_ = event_tracer;
4142
if (event_tracer_ == nullptr) {
4243
return;
4344
}
4445
event_entry_ = event_tracer->start_profiling(name);
46+
#else //! ET_EVENT_TRACER_ENABLED
47+
(void)event_tracer;
48+
(void)name;
49+
#endif
4550
}
4651

4752
~EventTracerProfileScope() {
53+
#ifdef ET_EVENT_TRACER_ENABLED
4854
if (event_tracer_ == nullptr) {
4955
return;
5056
}
5157
event_tracer_->end_profiling(event_entry_);
58+
#endif
5259
}
5360

5461
private:
62+
#ifdef ET_EVENT_TRACER_ENABLED
5563
EventTracer* event_tracer_;
5664
EventTracerEntry event_entry_;
65+
#endif
5766
};
5867

5968
/**
@@ -70,22 +79,32 @@ class EventTracerProfileInstructionScope final {
7079
EventTracer* event_tracer,
7180
ChainID chain_idx,
7281
DebugHandle debug_handle) {
82+
#ifdef ET_EVENT_TRACER_ENABLED
7383
event_tracer_ = event_tracer;
7484
if (event_tracer_ == nullptr) {
7585
return;
7686
}
7787
event_tracer_->set_chain_debug_handle(chain_idx, debug_handle);
88+
#else //! ET_EVENT_TRACER_ENABLED
89+
(void)event_tracer;
90+
(void)chain_idx;
91+
(void)debug_handle;
92+
#endif
7893
}
7994

8095
~EventTracerProfileInstructionScope() {
96+
#ifdef ET_EVENT_TRACER_ENABLED
8197
if (event_tracer_ == nullptr) {
8298
return;
8399
}
84100
event_tracer_->set_chain_debug_handle(kUnsetChainId, kUnsetDebugHandle);
101+
#endif
85102
}
86103

87104
private:
105+
#ifdef ET_EVENT_TRACER_ENABLED
88106
EventTracer* event_tracer_;
107+
#endif
89108
};
90109

91110
/**

sdk/etdump/etdump_flatcc.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace torch {
1515
namespace executor {
1616

1717
// Constructor implementation
18-
ETDumpGen::ETDumpGen(void* buffer, size_t buf_size) {
18+
ETDumpGen::ETDumpGen() {
1919
// Initialize the flatcc builder using the buffer and buffer size
2020
flatcc_builder_init(&builder);
2121
flatbuffers_buffer_start(&builder, etdump_ETDump_file_identifier);
@@ -241,6 +241,10 @@ etdump_result ETDumpGen::get_etdump_data() {
241241
etdump_RunData_events_end(&builder);
242242
} else if (etdump_gen_state == ETDumpGen_Adding_Allocators) {
243243
etdump_RunData_allocators_end(&builder);
244+
} else if (etdump_gen_state == ETDumpGen_Init) {
245+
result.buf = nullptr;
246+
result.size = 0;
247+
return result;
244248
}
245249
etdump_ETDump_run_data_push_end(&builder);
246250
etdump_ETDump_run_data_end(&builder);

sdk/etdump/etdump_flatcc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ struct etdump_result {
3232

3333
class ETDumpGen : public EventTracer {
3434
public:
35-
ETDumpGen(void* buffer, size_t buf_size);
35+
ETDumpGen();
3636

3737
~ETDumpGen() override;
3838
void clear_builder();

sdk/etdump/targets.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ def define_common_targets():
180180
srcs = [
181181
"etdump_flatcc.cpp",
182182
],
183-
headers = [
183+
exported_headers = [
184184
"etdump_flatcc.h",
185185
],
186186
deps = [

sdk/etdump/tests/etdump_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ProfilerETDumpTest : public ::testing::Test {
2525
const size_t buf_size = 8192;
2626
buf = static_cast<uint8_t*>(malloc(buf_size * sizeof(uint8_t)));
2727

28-
etdump_gen = new ETDumpGen(buf, buf_size);
28+
etdump_gen = new ETDumpGen();
2929
}
3030

3131
void TearDown() override {

sdk/runners/executor_runner.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <executorch/runtime/platform/profiler.h>
1717
#include <executorch/runtime/platform/runtime.h>
1818
#include <executorch/sdk/etdump/etdump.h>
19+
#include <executorch/sdk/etdump/etdump_flatcc.h>
1920
#include <executorch/util/bundled_program_verification.h>
2021
#include <executorch/util/util.h>
2122
#ifdef USE_ATEN_LIB
@@ -304,7 +305,9 @@ int main(int argc, char** argv) {
304305
//
305306

306307
prof_tok = EXECUTORCH_BEGIN_PROF("load model");
307-
Result<Method> method = program->load_method(method_name, &memory_manager);
308+
torch::executor::ETDumpGen etdump_gen = torch::executor::ETDumpGen();
309+
Result<Method> method =
310+
program->load_method(method_name, &memory_manager, &etdump_gen);
308311
EXECUTORCH_END_PROF(prof_tok);
309312
ET_CHECK_MSG(
310313
method.ok(),
@@ -433,5 +436,13 @@ int main(int argc, char** argv) {
433436
}
434437
}
435438

439+
etdump_result result = etdump_gen.get_etdump_data();
440+
if (result.buf != nullptr && result.size > 0) {
441+
FILE* f = fopen(FLAGS_etdump_path.c_str(), "w+");
442+
fwrite((uint8_t*)result.buf, 1, result.size, f);
443+
fclose(f);
444+
free(result.buf);
445+
}
446+
436447
return 0;
437448
}

sdk/runners/targets.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ def define_common_targets():
4848
"//executorch/runtime/executor/test:test_backend_with_delegate_mapping" + aten_suffix,
4949
"//executorch/runtime/executor:program" + aten_suffix,
5050
"//executorch/sdk/etdump:etdump",
51+
"//executorch/sdk/etdump:etdump_flatcc",
5152
"//executorch/util:bundled_program_verification" + aten_suffix,
5253
"//executorch/extension/data_loader:buffer_data_loader",
5354
"//executorch/extension/data_loader:file_data_loader",

0 commit comments

Comments
 (0)