@@ -66,7 +66,7 @@ runtime::Result<std::unique_ptr<runtime::DataLoader>> load_file(
66
66
Module::Module (
67
67
const std::string& file_path,
68
68
const LoadMode load_mode,
69
- std::unique_ptr<runtime::EventTracer > event_tracer)
69
+ std::unique_ptr<etdump::ETDumpGen > event_tracer)
70
70
: file_path_(file_path),
71
71
load_mode_ (load_mode),
72
72
memory_allocator_(std::make_unique<MallocMemoryAllocator>()),
@@ -81,7 +81,7 @@ Module::Module(
81
81
const std::string& file_path,
82
82
const std::string& data_map_path,
83
83
const LoadMode load_mode,
84
- std::unique_ptr<runtime::EventTracer > event_tracer)
84
+ std::unique_ptr<etdump::ETDumpGen > event_tracer)
85
85
: file_path_(file_path),
86
86
data_map_path_(data_map_path),
87
87
load_mode_(load_mode),
@@ -97,8 +97,10 @@ Module::Module(
97
97
std::unique_ptr<runtime::DataLoader> data_loader,
98
98
std::unique_ptr<runtime::MemoryAllocator> memory_allocator,
99
99
std::unique_ptr<runtime::MemoryAllocator> temp_allocator,
100
- std::unique_ptr<runtime::EventTracer> event_tracer,
101
- std::unique_ptr<runtime::DataLoader> data_map_loader)
100
+ std::unique_ptr<etdump::ETDumpGen> event_tracer,
101
+ std::unique_ptr<runtime::DataLoader> data_map_loader,
102
+ size_t debug_buffer_size,
103
+ runtime::Program::Verification program_verification)
102
104
: data_loader_(std::move(data_loader)),
103
105
memory_allocator_(
104
106
memory_allocator ? std::move(memory_allocator)
@@ -108,15 +110,17 @@ Module::Module(
108
110
: std::make_unique<MallocMemoryAllocator>()),
109
111
event_tracer_(std::move(event_tracer)),
110
112
data_map_loader_(std::move(data_map_loader)),
111
- data_map_(nullptr ) {
113
+ data_map_(nullptr ),
114
+ debug_buffer_size_(debug_buffer_size),
115
+ program_verification_(program_verification) {
112
116
runtime::runtime_init ();
113
117
}
114
118
115
119
Module::Module (
116
120
std::shared_ptr<runtime::Program> program,
117
121
std::unique_ptr<runtime::MemoryAllocator> memory_allocator,
118
122
std::unique_ptr<runtime::MemoryAllocator> temp_allocator,
119
- std::unique_ptr<runtime::EventTracer > event_tracer,
123
+ std::unique_ptr<etdump::ETDumpGen > event_tracer,
120
124
std::unique_ptr<runtime::DataLoader> data_map_loader)
121
125
: program_(std::move(program)),
122
126
memory_allocator_(
@@ -129,6 +133,14 @@ Module::Module(
129
133
data_map_loader_(std::move(data_map_loader)),
130
134
data_map_(nullptr ) {
131
135
runtime::runtime_init ();
136
+ if (event_tracer_ && debug_buffer_size_ > 0 ) {
137
+ // If a debug buffer was requested for the ETDump, allocate it and make
138
+ // sure its lifetime is as long as the event_tracer.
139
+ debug_buffer_ = std::make_unique<uint8_t []>(debug_buffer_size_);
140
+ event_tracer_->set_debug_buffer (get_etdump_debug_buffer ());
141
+ event_tracer_->set_event_tracer_debug_level (
142
+ runtime::EventTracerDebugLogLevel::kIntermediateOutputs );
143
+ }
132
144
}
133
145
134
146
runtime::Error Module::load (const runtime::Program::Verification verification) {
@@ -266,12 +278,6 @@ runtime::Error Module::set_inputs(
266
278
const std::vector<runtime::EValue>& input_values) {
267
279
ET_CHECK_OK_OR_RETURN_ERROR (load_method (method_name));
268
280
auto & inputs = methods_.at (method_name).inputs ;
269
- ET_CHECK_OR_RETURN_ERROR (
270
- inputs.size () == input_values.size (),
271
- InvalidArgument,
272
- " input size: %zu does not match method input size: %zu" ,
273
- input_values.size (),
274
- inputs.size ());
275
281
inputs = input_values;
276
282
return runtime::Error::Ok;
277
283
}
@@ -292,5 +298,6 @@ runtime::Error Module::set_output(
292
298
output_tensor.mutable_data_ptr (), output_tensor.nbytes (), output_index);
293
299
}
294
300
301
+
295
302
} // namespace extension
296
303
} // namespace executorch
0 commit comments