diff --git a/extension/module/module.cpp b/extension/module/module.cpp index aa750e2691e..328f13b482a 100644 --- a/extension/module/module.cpp +++ b/extension/module/module.cpp @@ -66,7 +66,7 @@ runtime::Result> load_file( Module::Module( const std::string& file_path, const LoadMode load_mode, - std::unique_ptr event_tracer) + std::unique_ptr event_tracer) : file_path_(file_path), load_mode_(load_mode), memory_allocator_(std::make_unique()), @@ -81,7 +81,7 @@ Module::Module( const std::string& file_path, const std::string& data_map_path, const LoadMode load_mode, - std::unique_ptr event_tracer) + std::unique_ptr event_tracer) : file_path_(file_path), data_map_path_(data_map_path), load_mode_(load_mode), @@ -97,7 +97,7 @@ Module::Module( std::unique_ptr data_loader, std::unique_ptr memory_allocator, std::unique_ptr temp_allocator, - std::unique_ptr event_tracer, + std::unique_ptr event_tracer, std::unique_ptr data_map_loader) : data_loader_(std::move(data_loader)), memory_allocator_( @@ -116,7 +116,7 @@ Module::Module( std::shared_ptr program, std::unique_ptr memory_allocator, std::unique_ptr temp_allocator, - std::unique_ptr event_tracer, + std::unique_ptr event_tracer, std::unique_ptr data_map_loader) : program_(std::move(program)), memory_allocator_( @@ -292,5 +292,6 @@ runtime::Error Module::set_output( output_tensor.mutable_data_ptr(), output_tensor.nbytes(), output_index); } + } // namespace extension } // namespace executorch diff --git a/extension/module/module.h b/extension/module/module.h index dc7c930d7c6..2d6998ddc20 100644 --- a/extension/module/module.h +++ b/extension/module/module.h @@ -13,7 +13,7 @@ #include #include #include - +#include #include namespace executorch { @@ -49,7 +49,7 @@ class Module { explicit Module( const std::string& file_path, const LoadMode load_mode = LoadMode::MmapUseMlock, - std::unique_ptr event_tracer = nullptr); + std::unique_ptr event_tracer = nullptr); /** * Constructs an instance by loading a program from a file with specified @@ -64,7 +64,7 @@ class Module { const std::string& file_path, const std::string& data_map_path, const LoadMode load_mode = LoadMode::MmapUseMlock, - std::unique_ptr event_tracer = nullptr); + std::unique_ptr event_tracer = nullptr); /** * Constructs an instance with the provided data loader and memory allocator. @@ -80,7 +80,7 @@ class Module { std::unique_ptr data_loader, std::unique_ptr memory_allocator = nullptr, std::unique_ptr temp_allocator = nullptr, - std::unique_ptr event_tracer = nullptr, + std::unique_ptr event_tracer = nullptr, std::unique_ptr data_map_loader = nullptr); /** @@ -98,7 +98,7 @@ class Module { std::shared_ptr program, std::unique_ptr memory_allocator = nullptr, std::unique_ptr temp_allocator = nullptr, - std::unique_ptr event_tracer = nullptr, + std::unique_ptr event_tracer = nullptr, std::unique_ptr data_map_loader = nullptr); Module(const Module&) = delete; @@ -438,10 +438,14 @@ class Module { * @returns A pointer to the EventTracer instance. Returns nullptr if no * EventTracer is set. */ - inline runtime::EventTracer* event_tracer() const { + inline etdump::ETDumpGen* event_tracer() const { return event_tracer_.get(); } + bool has_etdump() { + return static_cast(event_tracer_); + } + private: struct MethodHolder { std::vector> planned_buffers; @@ -459,7 +463,7 @@ class Module { std::unique_ptr data_loader_; std::unique_ptr memory_allocator_; std::unique_ptr temp_allocator_; - std::unique_ptr event_tracer_; + std::unique_ptr event_tracer_; std::unique_ptr data_map_loader_; std::unique_ptr data_map_; diff --git a/extension/module/targets.bzl b/extension/module/targets.bzl index 09a610a1fca..05ba9825d14 100644 --- a/extension/module/targets.bzl +++ b/extension/module/targets.bzl @@ -28,6 +28,7 @@ def define_common_targets(): "//executorch/extension/flat_tensor:flat_tensor_data_map", ], exported_deps = [ + "//executorch/devtools/etdump:etdump_flatcc" + aten_suffix, "//executorch/runtime/executor:program" + aten_suffix, ], ) diff --git a/extension/training/module/training_module.h b/extension/training/module/training_module.h index 7bf81623c04..b278e54af81 100644 --- a/extension/training/module/training_module.h +++ b/extension/training/module/training_module.h @@ -33,7 +33,7 @@ class ET_EXPERIMENTAL TrainingModule final std::unique_ptr data_loader, std::unique_ptr memory_allocator = nullptr, std::unique_ptr temp_allocator = nullptr, - std::unique_ptr event_tracer = nullptr, + std::unique_ptr event_tracer = nullptr, std::unique_ptr data_map_data_loader = nullptr) : executorch::extension::Module( std::move(data_loader),