From 2ad33a84528d4b91310c2c7049efa6cfffdfdd31 Mon Sep 17 00:00:00 2001 From: lucylq Date: Mon, 28 Apr 2025 13:16:20 -0700 Subject: [PATCH] Rename ModuleLinear -> ModuleAddMul In export_program, the `ModuleLinear` is a decomposed add mul. Renaming it to addmul, so that we can add a ModuleLinear that calls nn.Linear for backend program-data separation testing. Differential Revision: [D73679750](https://our.internmc.facebook.com/intern/diff/D73679750/) [ghstack-poisoned] --- codegen/tools/targets.bzl | 2 +- .../tools/test/test_gen_oplist_real_model.py | 2 +- .../flat_tensor/flat_tensor_data_map.cpp | 3 +- extension/flat_tensor/test/CMakeLists.txt | 14 ++++---- .../test/flat_tensor_data_map_test.cpp | 2 +- extension/flat_tensor/test/targets.bzl | 4 +-- .../module/test/state_dict_util_test.cpp | 2 +- extension/training/module/test/targets.bzl | 4 +-- runtime/executor/test/CMakeLists.txt | 32 +++++++++---------- runtime/executor/test/program_test.cpp | 6 ++-- runtime/executor/test/targets.bzl | 6 ++-- test/models/export_program.py | 2 +- test/models/targets.bzl | 8 ++--- 13 files changed, 44 insertions(+), 43 deletions(-) diff --git a/codegen/tools/targets.bzl b/codegen/tools/targets.bzl index fb629adf047..c37c77459df 100644 --- a/codegen/tools/targets.bzl +++ b/codegen/tools/targets.bzl @@ -179,7 +179,7 @@ def define_common_targets(is_fbcode = False): srcs = ["test/test_gen_oplist_real_model.py"], base_module = "", resources = { - "//executorch/test/models:exported_programs[ModuleLinear.pte]": "test/ModuleLinear.pte", + "//executorch/test/models:exported_programs[ModuleAddMul.pte]": "test/ModuleAddMul.pte", }, visibility = [ "//executorch/...", diff --git a/codegen/tools/test/test_gen_oplist_real_model.py b/codegen/tools/test/test_gen_oplist_real_model.py index 685e7f8e31b..93098cc512f 100644 --- a/codegen/tools/test/test_gen_oplist_real_model.py +++ b/codegen/tools/test/test_gen_oplist_real_model.py @@ -15,7 +15,7 @@ from libfb.py import parutil # type: ignore[import-not-found] -MODEL_PATH: Final[str] = parutil.get_file_path("ModuleLinear.pte", pkg=__package__) +MODEL_PATH: Final[str] = parutil.get_file_path("ModuleAddMul.pte", pkg=__package__) class TestGenOplistRealModel(unittest.TestCase): diff --git a/extension/flat_tensor/flat_tensor_data_map.cpp b/extension/flat_tensor/flat_tensor_data_map.cpp index 5f8f8e9d6e3..c5590cb61b1 100644 --- a/extension/flat_tensor/flat_tensor_data_map.cpp +++ b/extension/flat_tensor/flat_tensor_data_map.cpp @@ -253,7 +253,8 @@ ET_NODISCARD Result FlatTensorDataMap::get_key( index, num_keys); - if (flat_tensor_->named_data() != nullptr && index < flat_tensor_->named_data()->size()) { + if (flat_tensor_->named_data() != nullptr && + index < flat_tensor_->named_data()->size()) { return flat_tensor_->named_data()->Get(index)->key()->c_str(); } else { if (flat_tensor_->named_data() != nullptr) { diff --git a/extension/flat_tensor/test/CMakeLists.txt b/extension/flat_tensor/test/CMakeLists.txt index e22025215c5..6c3110065c2 100644 --- a/extension/flat_tensor/test/CMakeLists.txt +++ b/extension/flat_tensor/test/CMakeLists.txt @@ -19,23 +19,23 @@ set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../..) include(${EXECUTORCH_ROOT}/tools/cmake/Test.cmake) add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.ptd" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.ptd" COMMAND - python -m test.models.export_program --modules "ModuleLinear" + python -m test.models.export_program --modules "ModuleAddMul" --external-constants --outdir "${CMAKE_CURRENT_BINARY_DIR}" 2> /dev/null WORKING_DIRECTORY ${EXECUTORCH_ROOT} ) add_custom_target( extension_flat_tensor_test_resources - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.ptd" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.ptd" ) set(test_env - "ET_MODULE_LINEAR_PROGRAM_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.pte" - "ET_MODULE_LINEAR_DATA_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.ptd" + "ET_MODULE_ADD_MUL_PROGRAM_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.pte" + "ET_MODULE_ADD_MUL_DATA_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.ptd" ) set(_test_srcs flat_tensor_data_map_test.cpp flat_tensor_header_test.cpp) diff --git a/extension/flat_tensor/test/flat_tensor_data_map_test.cpp b/extension/flat_tensor/test/flat_tensor_data_map_test.cpp index ac4583eda88..0d8bf9659bb 100644 --- a/extension/flat_tensor/test/flat_tensor_data_map_test.cpp +++ b/extension/flat_tensor/test/flat_tensor_data_map_test.cpp @@ -35,7 +35,7 @@ class FlatTensorDataMapTest : public ::testing::Test { // Load data map. The eager linear model is defined at: // //executorch/test/models/linear_model.py - const char* path = std::getenv("ET_MODULE_LINEAR_DATA_PATH"); + const char* path = std::getenv("ET_MODULE_ADD_MUL_DATA_PATH"); Result loader = FileDataLoader::from(path); ASSERT_EQ(loader.error(), Error::Ok); diff --git a/extension/flat_tensor/test/targets.bzl b/extension/flat_tensor/test/targets.bzl index a2b96526ab5..4d798cc1a7c 100644 --- a/extension/flat_tensor/test/targets.bzl +++ b/extension/flat_tensor/test/targets.bzl @@ -35,8 +35,8 @@ def define_common_targets(is_fbcode=False): # The tests use this var to find the program file to load. This uses # an fbcode target path because the authoring/export tools # intentionally don't work in xplat (since they're host-only tools). - "ET_MODULE_LINEAR_PROGRAM_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.pte])", - "ET_MODULE_LINEAR_DATA_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.ptd])", + "ET_MODULE_ADD_MUL_PROGRAM_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleAddMul.pte])", + "ET_MODULE_ADD_MUL_DATA_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleAddMul.ptd])", } runtime.cxx_test( diff --git a/extension/training/module/test/state_dict_util_test.cpp b/extension/training/module/test/state_dict_util_test.cpp index 14e5b0d4f0d..af8bdff53e1 100644 --- a/extension/training/module/test/state_dict_util_test.cpp +++ b/extension/training/module/test/state_dict_util_test.cpp @@ -36,7 +36,7 @@ class LoadStateDictTest : public ::testing::Test { // Load data map. // The eager linear model is defined at: // //executorch/test/models/linear_model.py - const char* path = std::getenv("ET_MODULE_LINEAR_DATA_PATH"); + const char* path = std::getenv("ET_MODULE_ADD_MUL_DATA_PATH"); Result loader = FileDataLoader::from(path); ASSERT_EQ(loader.error(), Error::Ok); diff --git a/extension/training/module/test/targets.bzl b/extension/training/module/test/targets.bzl index 17e8d1fe6ef..4e813b360eb 100644 --- a/extension/training/module/test/targets.bzl +++ b/extension/training/module/test/targets.bzl @@ -16,8 +16,8 @@ def define_common_targets(is_fbcode = False): # an fbcode target path because the authoring/export tools # intentionally don't work in xplat (since they're host-only tools). "ET_MODULE_ADD_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleAdd.pte])", - "ET_MODULE_LINEAR_DATA_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.ptd])", - "ET_MODULE_LINEAR_PROGRAM_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.pte])", + "ET_MODULE_ADD_MUL_DATA_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleAddMul.ptd])", + "ET_MODULE_ADD_MUL_PROGRAM_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleAddMul.pte])", "ET_MODULE_TRAIN_DATA_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleSimpleTrain.ptd])", "ET_MODULE_TRAIN_PROGRAM_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleSimpleTrainProgram.pte])", "ET_MODULE_SIMPLE_TRAIN_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleSimpleTrain.pte])", diff --git a/runtime/executor/test/CMakeLists.txt b/runtime/executor/test/CMakeLists.txt index 512f832858f..879c8821818 100644 --- a/runtime/executor/test/CMakeLists.txt +++ b/runtime/executor/test/CMakeLists.txt @@ -18,22 +18,22 @@ set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../..) include(${EXECUTORCH_ROOT}/tools/cmake/Test.cmake) add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddHalf.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleAdd.pte" + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ModuleAdd.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddHalf.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMul.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.ptd" "${CMAKE_CURRENT_BINARY_DIR}/ModuleDynamicCatUnallocatedIO.pte" "${CMAKE_CURRENT_BINARY_DIR}/ModuleIndex.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinear.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.ptd" "${CMAKE_CURRENT_BINARY_DIR}/ModuleMultipleEntry.pte" "${CMAKE_CURRENT_BINARY_DIR}/ModuleSimpleTrain.pte" "${CMAKE_CURRENT_BINARY_DIR}/ModuleStateful.pte" COMMAND python3 -m test.models.export_program --modules - "ModuleAdd,ModuleAddHalf,ModuleDynamicCatUnallocatedIO,ModuleIndex,ModuleLinear,ModuleMultipleEntry,ModuleSimpleTrain,ModuleStateful" + "ModuleAdd,ModuleAddHalf,ModuleAddMul,ModuleDynamicCatUnallocatedIO,ModuleIndex,ModuleMultipleEntry,ModuleSimpleTrain,ModuleStateful" --outdir "${CMAKE_CURRENT_BINARY_DIR}" 2> /dev/null COMMAND - python3 -m test.models.export_program --modules "ModuleLinear" + python3 -m test.models.export_program --modules "ModuleAddMul" --external-constants --outdir "${CMAKE_CURRENT_BINARY_DIR}" 2> /dev/null COMMAND python3 -m test.models.export_delegated_program --modules "ModuleAddMul" @@ -43,13 +43,13 @@ add_custom_command( add_custom_target( generated_pte_files - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddHalf.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleAdd.pte" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/ModuleAdd.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddHalf.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMul.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.pte" + "${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.ptd" "${CMAKE_CURRENT_BINARY_DIR}/ModuleDynamicCatUnallocatedIO.pte" "${CMAKE_CURRENT_BINARY_DIR}/ModuleIndex.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinear.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.pte" - "${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.ptd" "${CMAKE_CURRENT_BINARY_DIR}/ModuleMultipleEntry.pte" "${CMAKE_CURRENT_BINARY_DIR}/ModuleSimpleTrain.pte" "${CMAKE_CURRENT_BINARY_DIR}/ModuleStateful.pte" @@ -57,13 +57,13 @@ add_custom_target( set(test_env "DEPRECATED_ET_MODULE_LINEAR_CONSTANT_BUFFER_PATH=${EXECUTORCH_ROOT}/test/models/deprecated/ModuleLinear-no-constant-segment.pte" - "ET_MODULE_ADD_HALF_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAddHalf.pte" "ET_MODULE_ADD_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAdd.pte" + "ET_MODULE_ADD_HALF_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAddHalf.pte" + "ET_MODULE_ADD_MUL_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMul.pte" + "ET_MODULE_ADD_MUL_PROGRAM_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.pte" + "ET_MODULE_ADD_MUL_DATA_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleAddMulProgram.ptd" "ET_MODULE_DYNAMIC_CAT_UNALLOCATED_IO_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleDynamicCatUnallocatedIO.pte" "ET_MODULE_INDEX_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleIndex.pte" - "ET_MODULE_LINEAR_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleLinear.pte" - "ET_MODULE_LINEAR_PROGRAM_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.pte" - "ET_MODULE_LINEAR_DATA_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleLinearProgram.ptd" "ET_MODULE_MULTI_ENTRY_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleMultipleEntry.pte" "ET_MODULE_SIMPLE_TRAIN_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleSimpleTrain.pte" "ET_MODULE_STATEFUL_PATH=${CMAKE_CURRENT_BINARY_DIR}/ModuleStateful.pte" diff --git a/runtime/executor/test/program_test.cpp b/runtime/executor/test/program_test.cpp index d82bfb50778..962bf8f548a 100644 --- a/runtime/executor/test/program_test.cpp +++ b/runtime/executor/test/program_test.cpp @@ -415,8 +415,8 @@ TEST_F(ProgramTest, LoadConstantSegmentWithNoConstantSegment) { } TEST_F(ProgramTest, LoadConstantSegment) { - // Load the serialized ModuleLinear data, with constants in the segment. - const char* linear_path = std::getenv("ET_MODULE_LINEAR_PATH"); + // Load the serialized ModuleAddMul data, with constants in the segment. + const char* linear_path = std::getenv("ET_MODULE_ADD_MUL_PATH"); Result linear_loader = FileDataLoader::from(linear_path); ASSERT_EQ(linear_loader.error(), Error::Ok); @@ -458,7 +458,7 @@ TEST_F(ProgramTest, LoadConstantSegment) { } TEST_F(ProgramTest, LoadConstantSegmentWhenConstantBufferExists) { - // Load the serialized ModuleLinear data, with constants in the flatbuffer and + // Load the serialized ModuleAddMul data, with constants in the flatbuffer and // no constants in the segment. const char* linear_path = std::getenv("DEPRECATED_ET_MODULE_LINEAR_CONSTANT_BUFFER_PATH"); diff --git a/runtime/executor/test/targets.bzl b/runtime/executor/test/targets.bzl index 75ea2674aa7..0ecff00eb8a 100644 --- a/runtime/executor/test/targets.bzl +++ b/runtime/executor/test/targets.bzl @@ -119,12 +119,12 @@ def define_common_targets(is_fbcode = False): "ET_MODULE_ADD_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleAdd.pte])", "ET_MODULE_DYNAMIC_CAT_UNALLOCATED_IO_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleDynamicCatUnallocatedIO.pte])", "ET_MODULE_INDEX_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleIndex.pte])", - "ET_MODULE_LINEAR_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleLinear.pte])", + "ET_MODULE_ADD_MUL_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleLinear.pte])", "ET_MODULE_MULTI_ENTRY_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleMultipleEntry.pte])", "ET_MODULE_SIMPLE_TRAIN_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleSimpleTrain.pte])", "ET_MODULE_STATEFUL_PATH": "$(location fbcode//executorch/test/models:exported_programs[ModuleStateful.pte])", - "ET_MODULE_LINEAR_PROGRAM_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.pte])", - "ET_MODULE_LINEAR_DATA_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.ptd])", + "ET_MODULE_ADD_MUL_PROGRAM_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.pte])", + "ET_MODULE_ADD_MUL_DATA_PATH": "$(location fbcode//executorch/test/models:exported_program_and_data[ModuleLinear.ptd])", } runtime.cxx_test( diff --git a/test/models/export_program.py b/test/models/export_program.py index 5ed9cba4f8e..5387df24aad 100644 --- a/test/models/export_program.py +++ b/test/models/export_program.py @@ -131,7 +131,7 @@ def get_export_kwargs(): return {"capture_config": CaptureConfig(pt2_mode=True, enable_aot=True)} -class ModuleLinear(torch.nn.Module): +class ModuleAddMul(torch.nn.Module): def __init__(self): super().__init__() self.a = 3 * torch.ones(2, 2, dtype=torch.float) diff --git a/test/models/targets.bzl b/test/models/targets.bzl index 0e3b881b706..db0f410d727 100644 --- a/test/models/targets.bzl +++ b/test/models/targets.bzl @@ -61,8 +61,8 @@ def define_common_targets(): MODULES_TO_EXPORT = [ "ModuleAdd", "ModuleAddHalf", + "ModuleAddMul", "ModuleBasic", - "ModuleLinear", "ModuleMultipleEntry", "ModuleIndex", "ModuleDynamicCatUnallocatedIO", @@ -94,7 +94,7 @@ def define_common_targets(): # Class names of nn.Modules for :exported_programs to export. MODULES_AND_DATA_TO_EXPORT = [ - "ModuleLinear", + "ModuleAddMul", "ModuleSimpleTrain", ] @@ -102,8 +102,8 @@ def define_common_targets(): name = "exported_program_and_data", cmd = "$(exe :export_program) --modules " + ",".join(MODULES_AND_DATA_TO_EXPORT) + " --external-constants --outdir $OUT", outs = { - "ModuleLinear.pte": ["ModuleLinearProgram.pte"], - "ModuleLinear.ptd": ["ModuleLinearProgram.ptd"], + "ModuleAddMul.pte": ["ModuleAddMulProgram.pte"], + "ModuleAddMul.ptd": ["ModuleAddMulProgram.ptd"], "ModuleSimpleTrainProgram.pte": ["ModuleSimpleTrainProgram.pte"], "ModuleSimpleTrain.ptd": ["ModuleSimpleTrainProgram.ptd"], },