Skip to content

Commit f852a27

Browse files
[ExecuTorch] Separate extension.Module Namespaces from Aten and non-Aten
Separate `extension.Module` Namespaces to be `executorch::extension::module` and `executorch::extension::module_aten`, otherwise in the future there will be issues like P1799454769. It's similar to what we already did for bundled_program in #10307 Differential Revision: [D73903870](https://our.internmc.facebook.com/intern/diff/D73903870/) ghstack-source-id: 281114516 Pull Request resolved: #10576
1 parent c5dd476 commit f852a27

32 files changed

+89
-36
lines changed

docs/source/extension-module.md

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Let's see how we can run the `SimpleConv` model generated from the [Exporting to
1313
#include <executorch/extension/tensor/tensor.h>
1414

1515
using namespace ::executorch::extension;
16+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
1617

1718
// Create a Module.
1819
Module module("/path/to/model.pte");
@@ -221,6 +222,7 @@ Use [ExecuTorch Dump](etdump.md) to trace model execution. Create an `ETDumpGen`
221222
#include <executorch/devtools/etdump/etdump_flatcc.h>
222223

223224
using namespace ::executorch::extension;
225+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
224226

225227
Module module("/path/to/model.pte", Module::LoadMode::MmapUseMlock, std::make_unique<ETDumpGen>());
226228

docs/source/extension-tensor.md

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Imagine you’re working with a [`Module`](extension-module.md) interface, and y
1111

1212
using namespace executorch::aten;
1313
using namespace executorch::extension;
14+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
1415

1516
SizesType sizes[] = {2, 3};
1617
DimOrderType dim_order[] = {0, 1};
@@ -42,6 +43,7 @@ Here’s how you can use it:
4243
#include <executorch/extension/tensor/tensor.h>
4344
4445
using namespace executorch::extension;
46+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
4547
4648
auto tensor = make_tensor_ptr(
4749
{2, 3}, // sizes

docs/source/getting-started.md

+1
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ Loading and running a model using the high-level API can be done as follows:
194194
#include <executorch/extension/tensor/tensor.h>
195195

196196
using namespace ::executorch::extension;
197+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
197198

198199
// Load the model.
199200
Module module("/path/to/model.pte");

docs/source/llm/getting-started.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ Create a file called main.cpp with the following contents:
209209
using executorch::aten::ScalarType;
210210
using executorch::aten::Tensor;
211211
using executorch::extension::from_blob;
212-
using executorch::extension::Module;
212+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
213213
using executorch::runtime::EValue;
214214
using executorch::runtime::Result;
215215
```

docs/source/using-executorch-cpp.md

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ In addition the Module class, the tensor extension provides an encapsulated inte
1313
#include <executorch/extension/tensor/tensor.h>
1414

1515
using namespace ::executorch::extension;
16+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
1617

1718
// Load the model.
1819
Module module("/path/to/model.pte");

examples/llm_manual/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
using executorch::aten::ScalarType;
2121
using executorch::aten::Tensor;
2222
using executorch::extension::from_blob;
23-
using executorch::extension::Module;
23+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
2424
using executorch::runtime::EValue;
2525
using executorch::runtime::Result;
2626

examples/models/llama/runner/runner.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
namespace example {
2323

24-
using ::executorch::extension::Module;
24+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
2525
using ::executorch::runtime::Error;
2626
using ::executorch::runtime::Result;
2727

examples/models/llama/runner/runner.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class ET_EXPERIMENTAL Runner : public executorch::extension::llm::IRunner {
6060
bool shouldStop_{false};
6161

6262
// model
63-
std::unique_ptr<::executorch::extension::Module> module_;
63+
std::unique_ptr<::executorch::extension::ET_MODULE_NAMESPACE::Module> module_;
6464
std::string tokenizer_path_;
6565
std::unique_ptr<::tokenizers::Tokenizer> tokenizer_;
6666
std::unordered_map<std::string, int64_t> metadata_;

examples/models/llava/runner/llava_image_prefiller.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ namespace example {
1818
class ET_EXPERIMENTAL LlavaImagePrefiller
1919
: public ::executorch::extension::llm::ImagePrefiller {
2020
public:
21-
explicit LlavaImagePrefiller(::executorch::extension::Module* module)
21+
explicit LlavaImagePrefiller(
22+
::executorch::extension::ET_MODULE_NAMESPACE::Module* module)
2223
: ImagePrefiller(module){};
2324
/**
2425
* Prefill an LLM Module with the given image input.

examples/models/llava/runner/llava_text_decoder_runner.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ namespace example {
1717
class ET_EXPERIMENTAL LlavaTextDecoderRunner
1818
: public executorch::extension::llm::TextDecoderRunner {
1919
public:
20-
explicit LlavaTextDecoderRunner(executorch::extension::Module* module)
20+
explicit LlavaTextDecoderRunner(
21+
executorch::extension::ET_MODULE_NAMESPACE::Module* module)
2122
: TextDecoderRunner(module, true) {}
2223

2324
inline executorch::runtime::Result<executorch::aten::Tensor> step(

examples/models/phi-3-mini/runner.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include <pytorch/tokenizers/llama2c_tokenizer.h>
1717

1818
using executorch::aten::ScalarType;
19-
using executorch::extension::Module;
19+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
2020
using executorch::extension::llm::Sampler;
2121
using executorch::runtime::Error;
2222
using tokenizers::Llama2cTokenizer;

examples/models/phi-3-mini/runner.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Runner {
4242
uint64_t prefill(std::vector<uint64_t>& tokens);
4343
uint64_t run_model_step(uint64_t token);
4444

45-
std::unique_ptr<executorch::extension::Module> module_;
45+
std::unique_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module> module_;
4646
std::unique_ptr<tokenizers::Tokenizer> tokenizer_;
4747
std::unique_ptr<executorch::extension::llm::Sampler> sampler_;
4848
};

examples/qualcomm/oss_scripts/llama/runner/io_manager.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
using executorch::aten::Tensor;
1414
using executorch::aten::TensorImpl;
15-
using executorch::extension::Module;
15+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
1616
using executorch::runtime::Error;
1717
using executorch::runtime::MemoryAllocator;
1818
using executorch::runtime::MethodMeta;

examples/qualcomm/oss_scripts/llama/runner/io_manager.h

+11-5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
#include <executorch/extension/module/module.h>
2121
#include <executorch/runtime/executor/method_meta.h>
2222

23+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
24+
2325
namespace example {
2426

2527
enum EvalMode {
@@ -29,8 +31,8 @@ enum EvalMode {
2931
};
3032
class IoMgrBase {
3133
public:
32-
IoMgrBase(
33-
std::vector<std::shared_ptr<executorch::extension::Module>>& modules);
34+
IoMgrBase(std::vector<std::shared_ptr<
35+
executorch::extension::ET_MODULE_NAMESPACE::Module>>& modules);
3436
virtual ~IoMgrBase();
3537
virtual void init_io() = 0;
3638
virtual void reset_io(
@@ -81,13 +83,16 @@ class IoMgrBase {
8183
std::string,
8284
std::vector<std::vector<executorch::aten::TensorImpl*>>>
8385
output_tensors_;
84-
std::vector<std::shared_ptr<executorch::extension::Module>> modules_;
86+
std::vector<
87+
std::shared_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>
88+
modules_;
8589
};
8690

8791
class ShiftPointerIoMgr : public IoMgrBase {
8892
public:
8993
ShiftPointerIoMgr(
90-
std::vector<std::shared_ptr<executorch::extension::Module>>& modules,
94+
std::vector<std::shared_ptr<
95+
executorch::extension::ET_MODULE_NAMESPACE::Module>>& modules,
9196
int32_t context_len,
9297
int32_t prefill_ar_len,
9398
int32_t prefill_cache_len,
@@ -199,7 +204,8 @@ class ShiftPointerIoMgr : public IoMgrBase {
199204
class SmartMaskIoMgr : public IoMgrBase {
200205
public:
201206
SmartMaskIoMgr(
202-
std::vector<std::shared_ptr<executorch::extension::Module>>& modules,
207+
std::vector<std::shared_ptr<
208+
executorch::extension::ET_MODULE_NAMESPACE::Module>>& modules,
203209
int32_t context_len,
204210
int32_t prefill_ar_len,
205211
int32_t prefill_cache_len,

examples/qualcomm/oss_scripts/llama/runner/runner.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <sstream>
2424

2525
using executorch::aten::Tensor;
26-
using executorch::extension::Module;
26+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
2727
using executorch::extension::llm::Sampler;
2828
using executorch::extension::llm::time_in_ms;
2929
using executorch::runtime::Error;

examples/qualcomm/oss_scripts/llama/runner/runner.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,9 @@ class Runner {
101101
std::unordered_set<uint64_t> eos_id_;
102102
const int32_t n_bos_;
103103
const int32_t n_eos_;
104-
std::vector<std::shared_ptr<executorch::extension::Module>> modules_;
104+
std::vector<
105+
std::shared_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>
106+
modules_;
105107
std::string tokenizer_path_;
106108
std::string performance_output_path_;
107109
float logits_scale_;

examples/qualcomm/qaihub_scripts/llama/runner/io_memory.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
using executorch::aten::Tensor;
1616
using executorch::aten::TensorImpl;
17-
using executorch::extension::Module;
17+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
1818
using executorch::runtime::Error;
1919
using executorch::runtime::MethodMeta;
2020
using executorch::runtime::Result;

examples/qualcomm/qaihub_scripts/llama/runner/io_memory.h

+12-4
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ class Memory {
3232
public:
3333
Memory(
3434
const std::vector<std::string>& pos_embs_path,
35-
std::vector<std::shared_ptr<executorch::extension::Module>>& modules);
35+
std::vector<
36+
std::shared_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>&
37+
modules);
3638
virtual ~Memory();
3739
virtual void prepare_io(
3840
const std::vector<
@@ -51,15 +53,19 @@ class Memory {
5153
std::vector<std::vector<executorch::aten::TensorImpl*>> input_tensors_;
5254
std::vector<std::vector<executorch::aten::TensorImpl*>> output_tensors_;
5355
std::vector<std::string> pos_embs_path_;
54-
std::vector<std::shared_ptr<executorch::extension::Module>> modules_;
56+
std::vector<
57+
std::shared_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>
58+
modules_;
5559
std::vector<std::string> method_names_;
5660
};
5761

5862
class BertMemory : public Memory {
5963
public:
6064
BertMemory(
6165
const std::vector<std::string>& pos_embs_path,
62-
std::vector<std::shared_ptr<executorch::extension::Module>>& modules,
66+
std::vector<
67+
std::shared_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>&
68+
modules,
6369
std::vector<int> shard_layers);
6470
void prepare_io(const std::vector<executorch::runtime::Result<
6571
executorch::runtime::MethodMeta>>& methods_meta) override;
@@ -121,7 +127,9 @@ class KVCachedMemory : public Memory {
121127
public:
122128
KVCachedMemory(
123129
const std::vector<std::string>& pos_embs_path,
124-
std::vector<std::shared_ptr<executorch::extension::Module>>& modules,
130+
std::vector<
131+
std::shared_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>&
132+
modules,
125133
std::vector<int> shard_layers);
126134
void prepare_io(const std::vector<executorch::runtime::Result<
127135
executorch::runtime::MethodMeta>>& methods_meta) override;

examples/qualcomm/qaihub_scripts/llama/runner/runner.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#endif
3131

3232
using executorch::aten::Tensor;
33-
using executorch::extension::Module;
33+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
3434
using executorch::extension::llm::Sampler;
3535
using executorch::extension::llm::time_in_ms;
3636
using executorch::runtime::Error;

examples/qualcomm/qaihub_scripts/llama/runner/runner.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ class Runner {
9797
const int32_t vocab_size_;
9898
const int32_t max_seq_len_;
9999
int32_t eval_mode_;
100-
std::vector<std::shared_ptr<executorch::extension::Module>> modules_;
100+
std::vector<
101+
std::shared_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>
102+
modules_;
101103
std::vector<std::string> method_names_;
102104
std::string tokenizer_path_;
103105
float temperature_;

examples/qualcomm/qaihub_scripts/stable_diffusion/runner/runner.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
#include <executorch/runtime/platform/log.h>
2424

2525
using executorch::extension::from_blob;
26-
using executorch::extension::Module;
2726
using executorch::extension::TensorPtr;
27+
using executorch::extension::ET_MODULE_NAMESPACE::Module;
2828
using executorch::extension::llm::time_in_ms;
2929
using executorch::runtime::Error;
3030
using executorch::runtime::MethodMeta;

examples/qualcomm/qaihub_scripts/stable_diffusion/runner/runner.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,9 @@ class Runner {
111111

112112
private:
113113
Stats stats_;
114-
std::vector<std::unique_ptr<executorch::extension::Module>> modules_;
114+
std::vector<
115+
std::unique_ptr<executorch::extension::ET_MODULE_NAMESPACE::Module>>
116+
modules_;
115117
std::vector<std::string> method_names_;
116118
std::vector<std::vector<uint16_t>> time_emb_list_;
117119
std::unordered_map<std::string, int32_t> vocab_to_token_map_;

extension/android/jni/jni_layer.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
using namespace executorch::extension;
3838
using namespace torch::executor;
39+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
3940

4041
namespace executorch::extension {
4142
class TensorHybrid : public facebook::jni::HybridClass<TensorHybrid> {

extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
using namespace executorch::extension;
1717
using namespace executorch::runtime;
18+
using namespace executorch::extension::ET_MODULE_NAMESPACE::Module;
1819

1920
static inline EValue toEValue(ExecuTorchValue *value) {
2021
if (value.isTensor) {

extension/llm/runner/image_prefiller.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,17 @@
1414
#include <executorch/extension/module/module.h>
1515
#include <executorch/runtime/platform/compiler.h>
1616

17+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
18+
1719
namespace executorch {
1820
namespace extension {
1921
namespace llm {
2022

2123
// Assuming kv cache and parallel prefill are enabled.
2224
class ET_EXPERIMENTAL ImagePrefiller {
2325
public:
24-
explicit ImagePrefiller(::executorch::extension::Module* module)
26+
explicit ImagePrefiller(
27+
::executorch::extension::ET_MODULE_NAMESPACE::Module* module)
2528
: module_(module) {}
2629

2730
/**

extension/llm/runner/multimodal_runner.h

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
#include <executorch/extension/module/module.h>
3030
#include <pytorch/tokenizers/tokenizer.h>
3131

32+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
33+
3234
namespace executorch {
3335
namespace extension {
3436
namespace llm {

extension/llm/runner/text_decoder_runner.h

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#include <executorch/extension/tensor/tensor.h>
1616
#include <executorch/runtime/platform/compiler.h>
1717

18+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
19+
1820
namespace executorch {
1921
namespace extension {
2022
namespace llm {

extension/module/module.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
namespace executorch {
3838
namespace extension {
39+
namespace ET_MODULE_NAMESPACE {
3940

4041
using ET_RUNTIME_NAMESPACE::MethodMeta;
4142
using ET_RUNTIME_NAMESPACE::Program;
@@ -312,5 +313,6 @@ ET_NODISCARD inline runtime::Result<Method*> Module::get_method(
312313
return methods_[method_name].method.get();
313314
}
314315

316+
} // namespace ET_MODULE_NAMESPACE
315317
} // namespace extension
316318
} // namespace executorch

extension/module/module.h

+9-1
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,15 @@
1616

1717
#include <executorch/runtime/executor/program.h>
1818

19+
#ifdef USE_ATEN_LIB
20+
#define ET_MODULE_NAMESPACE module::aten
21+
#else // !USE_ATEN_LIB
22+
#define ET_MODULE_NAMESPACE module
23+
#endif // USE_ATEN_LIB
24+
1925
namespace executorch {
2026
namespace extension {
27+
namespace ET_MODULE_NAMESPACE {
2128

2229
using ET_RUNTIME_NAMESPACE::Method;
2330
using ET_RUNTIME_NAMESPACE::MethodMeta;
@@ -506,13 +513,14 @@ class Module {
506513
friend class ExecuTorchJni;
507514
};
508515

516+
} // namespace ET_MODULE_NAMESPACE
509517
} // namespace extension
510518
} // namespace executorch
511519

512520
namespace torch {
513521
namespace executor {
514522
// TODO(T197294990): Remove these deprecated aliases once all users have moved
515523
// to the new `::executorch` namespaces.
516-
using ::executorch::extension::Module;
524+
using ::executorch::extension::ET_MODULE_NAMESPACE::Module;
517525
} // namespace executor
518526
} // namespace torch

0 commit comments

Comments
 (0)