Skip to content

Commit 4674508

Browse files
committed
Update on "[executorch][runtime] Add NamedDataMap to method load"
Add NamedDataMap as an arg to: - Method - load_method - parseTensor Use NamedDataMap to resolve external tensors in parseTensor. Test that the PTE + PTD file run well inside method_test. Differential Revision: [D67127327](https://our.internmc.facebook.com/intern/diff/D67127327/) [ghstack-poisoned]
2 parents ed41d21 + fda77c5 commit 4674508

File tree

227 files changed

+5600
-1426
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

227 files changed

+5600
-1426
lines changed

.buckconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@
3333
**/.git, \
3434
cmake-out, \
3535
pip-out
36+
37+
[buck2]
38+
restarter=true
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0a94bb432ed75cc2d950d81b2921363218a7e459
1+
27e35de6c288bffad1b4d18b393579c1d1a95547

.ci/docker/conda-env-ci.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
cmake=3.22.1
22
ninja=1.10.2
33
libuv
4+
llvm-openmp
45
pkg-config

.ci/scripts/gather_benchmark_configs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ def set_output(name: str, val: Any) -> None:
238238
try:
239239
with open(github_output, "a") as env:
240240
env.write(f"{name}={val}\n")
241-
except PermissionError:
241+
except (PermissionError, FileNotFoundError):
242242
# Fall back to printing in case of permission error in unit tests
243243
print(f"::set-output name={name}::{val}")
244244

.ci/scripts/setup-linux.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,7 @@ fi
2323
# of nightly. This allows CI to test against latest commits from PyTorch
2424
install_executorch "use-pt-pinned-commit"
2525
build_executorch_runner "${BUILD_TOOL}"
26-
do_not_use_nightly_on_ci
26+
27+
if [[ "${GITHUB_BASE_REF:-}" == *main* || "${GITHUB_BASE_REF:-}" == *gh* ]]; then
28+
do_not_use_nightly_on_ci
29+
fi

.ci/scripts/setup-macos.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ setup_macos_env_variables
121121
# NB: we need buck2 in all cases because cmake build also depends on calling
122122
# buck2 atm
123123
install_buck
124+
brew install libomp
124125
install_pip_dependencies
125126

126127
# TODO(huydhn): Unlike our self-hosted runner, GitHub runner doesn't have access
@@ -136,4 +137,7 @@ install_pytorch_and_domains
136137
# the pinned commit from PyTorch
137138
install_executorch "use-pt-pinned-commit"
138139
build_executorch_runner "${BUILD_TOOL}"
139-
do_not_use_nightly_on_ci
140+
141+
if [[ "${GITHUB_BASE_REF:-}" == *main* || "${GITHUB_BASE_REF:-}" == *gh* ]]; then
142+
do_not_use_nightly_on_ci
143+
fi

.github/workflows/pull.yml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -212,17 +212,14 @@ jobs:
212212
docker-image: executorch-ubuntu-22.04-clang12
213213
submodules: 'true'
214214
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
215-
timeout: 90
215+
timeout: 180
216216
script: |
217217
# The generic Linux job chooses to use base env, not the one setup by the image
218218
CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]")
219219
conda activate "${CONDA_ENV}"
220220
221221
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake"
222222
223-
# install pybind
224-
bash install_executorch.sh --pybind xnnpack --use-pt-pinned-commit
225-
226223
# install Llava requirements
227224
bash examples/models/llama/install_requirements.sh
228225
bash examples/models/llava/install_requirements.sh
@@ -483,9 +480,6 @@ jobs:
483480
484481
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake"
485482
486-
# install pybind
487-
bash install_executorch.sh --pybind xnnpack --use-pt-pinned-commit
488-
489483
# install phi-3-mini requirements
490484
bash examples/models/phi-3-mini/install_requirements.sh
491485
@@ -513,9 +507,6 @@ jobs:
513507
514508
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake"
515509
516-
# install pybind
517-
bash install_executorch.sh --pybind xnnpack --use-pt-pinned-commit
518-
519510
# install llama requirements
520511
bash examples/models/llama/install_requirements.sh
521512
@@ -535,17 +526,14 @@ jobs:
535526
docker-image: executorch-ubuntu-22.04-clang12
536527
submodules: 'true'
537528
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
538-
timeout: 90
529+
timeout: 180
539530
script: |
540531
# The generic Linux job chooses to use base env, not the one setup by the image
541532
CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]")
542533
conda activate "${CONDA_ENV}"
543534
544535
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake"
545536
546-
# install pybind
547-
bash install_executorch.sh --pybind xnnpack --use-pt-pinned-commit
548-
549537
# install llama requirements
550538
bash examples/models/llama/install_requirements.sh
551539
@@ -573,9 +561,6 @@ jobs:
573561
574562
PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake"
575563
576-
# install pybind
577-
bash install_executorch.sh --pybind xnnpack --use-pt-pinned-commit
578-
579564
# install llama requirements
580565
bash examples/models/llama/install_requirements.sh
581566

.gitmodules

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,9 @@
6464
[submodule "third-party/ao"]
6565
path = third-party/ao
6666
url = https://github.com/pytorch/ao.git
67+
[submodule "backends/cadence/utils/FACTO"]
68+
path = backends/cadence/utils/FACTO
69+
url = https://github.com/pytorch-labs/FACTO.git
70+
[submodule "third-party/pocketfft"]
71+
path = third-party/pocketfft
72+
url = https://github.com/mreineck/pocketfft

.mypy.ini

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ ignore_missing_imports = True
7777
[mypy-ruamel]
7878
ignore_missing_imports = True
7979

80+
[mypy-serializer.*]
81+
ignore_missing_imports = True
82+
8083
[mypy-setuptools.*]
8184
ignore_missing_imports = True
8285

CMakeLists.txt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,13 @@ cmake_dependent_option(
240240
"NOT EXECUTORCH_BUILD_ARM_BAREMETAL" OFF
241241
)
242242

243+
244+
if(EXECUTORCH_BUILD_EXTENSION_TRAINING)
245+
set(EXECUTORCH_BUILD_EXTENSION_TENSOR ON)
246+
set(EXECUTORCH_BUILD_EXTENSION_DATA_LOADER ON)
247+
set(EXECUTORCH_BUILD_EXTENSION_MODULE ON)
248+
endif()
249+
243250
if(EXECUTORCH_BUILD_KERNELS_CUSTOM_AOT)
244251
set(EXECUTORCH_BUILD_EXTENSION_TENSOR ON)
245252
set(EXECUTORCH_BUILD_KERNELS_CUSTOM ON)
@@ -791,6 +798,35 @@ if(EXECUTORCH_BUILD_PYBIND)
791798
install(TARGETS portable_lib
792799
LIBRARY DESTINATION executorch/extension/pybindings
793800
)
801+
802+
if(EXECUTORCH_BUILD_EXTENSION_TRAINING)
803+
804+
set(_pybind_training_dep_libs
805+
${TORCH_PYTHON_LIBRARY}
806+
etdump
807+
executorch
808+
util
809+
torch
810+
extension_training
811+
)
812+
813+
if(EXECUTORCH_BUILD_XNNPACK)
814+
# need to explicitly specify XNNPACK and microkernels-prod
815+
# here otherwise uses XNNPACK and microkernel-prod symbols from libtorch_cpu
816+
list(APPEND _pybind_training_dep_libs xnnpack_backend XNNPACK microkernels-prod)
817+
endif()
818+
819+
# pybind training
820+
pybind11_add_module(_training_lib SHARED extension/training/pybindings/_training_lib.cpp)
821+
822+
target_include_directories(_training_lib PRIVATE ${TORCH_INCLUDE_DIRS})
823+
target_compile_options(_training_lib PUBLIC ${_pybind_compile_options})
824+
target_link_libraries(_training_lib PRIVATE ${_pybind_training_dep_libs})
825+
826+
install(TARGETS _training_lib
827+
LIBRARY DESTINATION executorch/extension/training/pybindings
828+
)
829+
endif()
794830
endif()
795831

796832
if(EXECUTORCH_BUILD_KERNELS_CUSTOM)

0 commit comments

Comments
 (0)