From da1df94e64413790f2257c05a8762a98302e803e Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 09:30:02 -0800 Subject: [PATCH 1/9] Update [ghstack-poisoned] --- install_requirements.py | 343 +++++++++++++++++++++------------------- 1 file changed, 183 insertions(+), 160 deletions(-) diff --git a/install_requirements.py b/install_requirements.py index 26093cab84..0416a0710c 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -6,7 +6,9 @@ # LICENSE file in the root directory of this source tree. +import argparse import glob +import itertools import os import platform import re @@ -63,175 +65,196 @@ def python_is_compatible(): return True -if not python_is_compatible(): - sys.exit(1) +def clean(): + print("Cleaning build artifacts...") + print("Cleaning pip-out/...") + shutil.rmtree("pip-out/", ignore_errors=True) + dirs = glob.glob("cmake-out*/") + glob.glob("cmake-android-out/") + for d in dirs: + print(f"Cleaning {d}...") + shutil.rmtree(d, ignore_errors=True) + print("Done cleaning build artifacts.") -# Parse options. -EXECUTORCH_BUILD_PYBIND = "" -CMAKE_ARGS = os.getenv("CMAKE_ARGS", "") -CMAKE_BUILD_ARGS = os.getenv("CMAKE_BUILD_ARGS", "") -USE_PYTORCH_NIGHTLY = True +def main(args): + if not python_is_compatible(): + sys.exit(1) -args = sys.argv[1:] -for arg in args: - if arg == "--pybind": - pass - elif arg in ["coreml", "mps", "xnnpack"]: - if "--pybind" in args: - arg_upper = arg.upper() - EXECUTORCH_BUILD_PYBIND = "ON" - CMAKE_ARGS += f" -DEXECUTORCH_BUILD_{arg_upper}=ON" - else: - print(f"Error: {arg} must follow --pybind") - sys.exit(1) - elif arg == "off": - if "--pybind" in args: - if EXECUTORCH_BUILD_PYBIND == "ON": - print("Cannot turnoff pybind option as it is already set.") - sys.exit(1) + # Parse options. + + EXECUTORCH_BUILD_PYBIND = "" + CMAKE_ARGS = os.getenv("CMAKE_ARGS", "") + CMAKE_BUILD_ARGS = os.getenv("CMAKE_BUILD_ARGS", "") + USE_PYTORCH_NIGHTLY = True + + parser = argparse.ArgumentParser(prog="install_requirements") + parser.add_argument( + "--pybind", + action="append", + nargs="+", + help="one or more of coreml/mps/xnnpack, or off", + ) + parser.add_argument( + "--clean", + action="store_true", + help="clean build artifacts and pip-out instead of installing", + ) + parser.add_argument( + "--use-pt-pinned-commit", + action="store_true", + help="build from the pinned PyTorch commit instead of nightly", + ) + args = parser.parse_args(args) + if args.pybind: + # Flatten list of lists. + args.pybind = list(itertools.chain(*args.pybind)) + if "off" in args.pybind: + if len(args.pybind) != 1: + raise Exception( + f"Cannot combine `off` with other pybinds: {args.pybind}" + ) EXECUTORCH_BUILD_PYBIND = "OFF" else: - print(f"Error: {arg} must follow --pybind") - sys.exit(1) - - elif arg == "--clean": - print("Cleaning build artifacts...") - print("Cleaning pip-out/...") - shutil.rmtree("pip-out/", ignore_errors=True) - dirs = glob.glob("cmake-out*/") + glob.glob("cmake-android-out/") - for d in dirs: - print(f"Cleaning {d}...") - shutil.rmtree(d, ignore_errors=True) - print("Done cleaning build artifacts.") - sys.exit(0) - elif arg == "--use-pt-pinned-commit": + for pybind_arg in args.pybind: + if pybind_arg not in ["coreml", "mps", "xnnpack"]: + continue + EXECUTORCH_BUILD_PYBIND = "ON" + CMAKE_ARGS += f" -DEXECUTORCH_BUILD_{pybind_arg.upper()}=ON" + + if args.clean: + clean() + return + + if args.use_pt_pinned_commit: # This option is used in CI to make sure that PyTorch build from the pinned commit # is used instead of nightly. CI jobs wouldn't be able to catch regression from the # latest PT commit otherwise USE_PYTORCH_NIGHTLY = False - else: - print(f"Error: Unknown option {arg}") - sys.exit(1) -# If --pybind is not set explicitly for backends (e.g., --pybind xnnpack) -# or is not turned off explicitly (--pybind off) -# then install XNNPACK by default. -if EXECUTORCH_BUILD_PYBIND == "": - EXECUTORCH_BUILD_PYBIND = "ON" - CMAKE_ARGS += " -DEXECUTORCH_BUILD_XNNPACK=ON" - -# Use ClangCL on Windows. -# ClangCL is an alias to Clang that configures it to work in an MSVC-compatible -# mode. Using it on Windows to avoid compiler compatibility issues for MSVC. -if os.name == "nt": - CMAKE_ARGS += " -T ClangCL" - -# Since ExecuTorch often uses main-branch features of pytorch, only the nightly -# pip versions will have the required features. -# -# NOTE: If a newly-fetched version of the executorch repo changes the value of -# NIGHTLY_VERSION, you should re-run this script to install the necessary -# package versions. -NIGHTLY_VERSION = "dev20250104" - -# The pip repository that hosts nightly torch packages. -TORCH_NIGHTLY_URL = "https://download.pytorch.org/whl/nightly/cpu" - -# pip packages needed by exir. -EXIR_REQUIREMENTS = [ - # Setting USE_PYTORCH_NIGHTLY to false to test the pinned PyTorch commit. Note - # that we don't need to set any version number there because they have already - # been installed on CI before this step, so pip won't reinstall them - f"torch==2.6.0.{NIGHTLY_VERSION}" if USE_PYTORCH_NIGHTLY else "torch", - ( - f"torchvision==0.22.0.{NIGHTLY_VERSION}" - if USE_PYTORCH_NIGHTLY - else "torchvision" - ), # For testing. - "typing-extensions", -] - -# pip packages needed to run examples. -# TODO: Make each example publish its own requirements.txt -EXAMPLES_REQUIREMENTS = [ - "timm==1.0.7", - f"torchaudio==2.6.0.{NIGHTLY_VERSION}" if USE_PYTORCH_NIGHTLY else "torchaudio", - "torchsr==1.0.4", - "transformers==4.47.1", -] - -# pip packages needed for development. -DEVEL_REQUIREMENTS = [ - "cmake", # For building binary targets. - "pip>=23", # For building the pip package. - "pyyaml", # Imported by the kernel codegen tools. - "setuptools>=63", # For building the pip package. - "tomli", # Imported by extract_sources.py when using python < 3.11. - "wheel", # For building the pip package archive. - "zstd", # Imported by resolve_buck.py. - "ai-edge-model-explorer>=0.1.16", # For visualizing ExportedPrograms -] - -# Assemble the list of requirements to actually install. -# TODO: Add options for reducing the number of requirements. -REQUIREMENTS_TO_INSTALL = EXIR_REQUIREMENTS + DEVEL_REQUIREMENTS + EXAMPLES_REQUIREMENTS - -# Install the requirements. `--extra-index-url` tells pip to look for package -# versions on the provided URL if they aren't available on the default URL. -subprocess.run( - [ - sys.executable, - "-m", - "pip", - "install", - *REQUIREMENTS_TO_INSTALL, - "--extra-index-url", - TORCH_NIGHTLY_URL, - ], - check=True, -) - -LOCAL_REQUIREMENTS = [ - "third-party/ao", # We need the latest kernels for fast iteration, so not relying on pypi. -] - -# Install packages directly from local copy instead of pypi. -# This is usually not recommended. -subprocess.run( - [ - sys.executable, - "-m", - "pip", - "install", - *LOCAL_REQUIREMENTS, - ], - check=True, -) + # If --pybind is not set explicitly for backends (e.g., --pybind xnnpack) + # or is not turned off explicitly (--pybind off) + # then install XNNPACK by default. + if EXECUTORCH_BUILD_PYBIND == "": + EXECUTORCH_BUILD_PYBIND = "ON" + CMAKE_ARGS += " -DEXECUTORCH_BUILD_XNNPACK=ON" + + # Use ClangCL on Windows. + # ClangCL is an alias to Clang that configures it to work in an MSVC-compatible + # mode. Using it on Windows to avoid compiler compatibility issues for MSVC. + if os.name == "nt": + CMAKE_ARGS += " -T ClangCL" + + # Since ExecuTorch often uses main-branch features of pytorch, only the nightly + # pip versions will have the required features. + # + # NOTE: If a newly-fetched version of the executorch repo changes the value of + # NIGHTLY_VERSION, you should re-run this script to install the necessary + # package versions. + NIGHTLY_VERSION = "dev20250104" + + # The pip repository that hosts nightly torch packages. + TORCH_NIGHTLY_URL = "https://download.pytorch.org/whl/nightly/cpu" + + # pip packages needed by exir. + EXIR_REQUIREMENTS = [ + # Setting USE_PYTORCH_NIGHTLY to false to test the pinned PyTorch commit. Note + # that we don't need to set any version number there because they have already + # been installed on CI before this step, so pip won't reinstall them + f"torch==2.6.0.{NIGHTLY_VERSION}" if USE_PYTORCH_NIGHTLY else "torch", + ( + f"torchvision==0.22.0.{NIGHTLY_VERSION}" + if USE_PYTORCH_NIGHTLY + else "torchvision" + ), # For testing. + "typing-extensions", + ] + + # pip packages needed to run examples. + # TODO: Make each example publish its own requirements.txt + EXAMPLES_REQUIREMENTS = [ + "timm==1.0.7", + f"torchaudio==2.6.0.{NIGHTLY_VERSION}" if USE_PYTORCH_NIGHTLY else "torchaudio", + "torchsr==1.0.4", + "transformers==4.47.1", + ] + + # pip packages needed for development. + DEVEL_REQUIREMENTS = [ + "cmake", # For building binary targets. + "pip>=23", # For building the pip package. + "pyyaml", # Imported by the kernel codegen tools. + "setuptools>=63", # For building the pip package. + "tomli", # Imported by extract_sources.py when using python < 3.11. + "wheel", # For building the pip package archive. + "zstd", # Imported by resolve_buck.py. + "ai-edge-model-explorer>=0.1.16", # For visualizing ExportedPrograms + ] + + # Assemble the list of requirements to actually install. + # TODO: Add options for reducing the number of requirements. + REQUIREMENTS_TO_INSTALL = ( + EXIR_REQUIREMENTS + DEVEL_REQUIREMENTS + EXAMPLES_REQUIREMENTS + ) + + # Install the requirements. `--extra-index-url` tells pip to look for package + # versions on the provided URL if they aren't available on the default URL. + subprocess.run( + [ + sys.executable, + "-m", + "pip", + "install", + *REQUIREMENTS_TO_INSTALL, + "--extra-index-url", + TORCH_NIGHTLY_URL, + ], + check=True, + ) + + LOCAL_REQUIREMENTS = [ + "third-party/ao", # We need the latest kernels for fast iteration, so not relying on pypi. + ] + + # Install packages directly from local copy instead of pypi. + # This is usually not recommended. + subprocess.run( + [ + sys.executable, + "-m", + "pip", + "install", + *LOCAL_REQUIREMENTS, + ], + check=True, + ) + + # + # Install executorch pip package. This also makes `flatc` available on the path. + # The --extra-index-url may be necessary if pyproject.toml has a dependency on a + # pre-release or nightly version of a torch package. + # + + # Set environment variables + os.environ["EXECUTORCH_BUILD_PYBIND"] = EXECUTORCH_BUILD_PYBIND + os.environ["CMAKE_ARGS"] = CMAKE_ARGS + os.environ["CMAKE_BUILD_ARGS"] = CMAKE_BUILD_ARGS + + # Run the pip install command + subprocess.run( + [ + sys.executable, + "-m", + "pip", + "install", + ".", + "--no-build-isolation", + "-v", + "--extra-index-url", + TORCH_NIGHTLY_URL, + ], + check=True, + ) -# -# Install executorch pip package. This also makes `flatc` available on the path. -# The --extra-index-url may be necessary if pyproject.toml has a dependency on a -# pre-release or nightly version of a torch package. -# -# Set environment variables -os.environ["EXECUTORCH_BUILD_PYBIND"] = EXECUTORCH_BUILD_PYBIND -os.environ["CMAKE_ARGS"] = CMAKE_ARGS -os.environ["CMAKE_BUILD_ARGS"] = CMAKE_BUILD_ARGS - -# Run the pip install command -subprocess.run( - [ - sys.executable, - "-m", - "pip", - "install", - ".", - "--no-build-isolation", - "-v", - "--extra-index-url", - TORCH_NIGHTLY_URL, - ], - check=True, -) +if __name__ == "__main__": + main(sys.argv[1:]) From e411a1e597f37c13062021faf60fc27964656024 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 09:30:38 -0800 Subject: [PATCH 2/9] Update [ghstack-poisoned] --- install_requirements.py | 164 +++++++++++++++++++++------------------- 1 file changed, 85 insertions(+), 79 deletions(-) diff --git a/install_requirements.py b/install_requirements.py index 0416a0710c..199d090d47 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -76,94 +76,29 @@ def clean(): print("Done cleaning build artifacts.") -def main(args): - if not python_is_compatible(): - sys.exit(1) +# The pip repository that hosts nightly torch packages. +TORCH_NIGHTLY_URL = "https://download.pytorch.org/whl/nightly/cpu" - # Parse options. - EXECUTORCH_BUILD_PYBIND = "" - CMAKE_ARGS = os.getenv("CMAKE_ARGS", "") - CMAKE_BUILD_ARGS = os.getenv("CMAKE_BUILD_ARGS", "") - USE_PYTORCH_NIGHTLY = True - - parser = argparse.ArgumentParser(prog="install_requirements") - parser.add_argument( - "--pybind", - action="append", - nargs="+", - help="one or more of coreml/mps/xnnpack, or off", - ) - parser.add_argument( - "--clean", - action="store_true", - help="clean build artifacts and pip-out instead of installing", - ) - parser.add_argument( - "--use-pt-pinned-commit", - action="store_true", - help="build from the pinned PyTorch commit instead of nightly", - ) - args = parser.parse_args(args) - if args.pybind: - # Flatten list of lists. - args.pybind = list(itertools.chain(*args.pybind)) - if "off" in args.pybind: - if len(args.pybind) != 1: - raise Exception( - f"Cannot combine `off` with other pybinds: {args.pybind}" - ) - EXECUTORCH_BUILD_PYBIND = "OFF" - else: - for pybind_arg in args.pybind: - if pybind_arg not in ["coreml", "mps", "xnnpack"]: - continue - EXECUTORCH_BUILD_PYBIND = "ON" - CMAKE_ARGS += f" -DEXECUTORCH_BUILD_{pybind_arg.upper()}=ON" - - if args.clean: - clean() - return - - if args.use_pt_pinned_commit: - # This option is used in CI to make sure that PyTorch build from the pinned commit - # is used instead of nightly. CI jobs wouldn't be able to catch regression from the - # latest PT commit otherwise - USE_PYTORCH_NIGHTLY = False - - # If --pybind is not set explicitly for backends (e.g., --pybind xnnpack) - # or is not turned off explicitly (--pybind off) - # then install XNNPACK by default. - if EXECUTORCH_BUILD_PYBIND == "": - EXECUTORCH_BUILD_PYBIND = "ON" - CMAKE_ARGS += " -DEXECUTORCH_BUILD_XNNPACK=ON" - - # Use ClangCL on Windows. - # ClangCL is an alias to Clang that configures it to work in an MSVC-compatible - # mode. Using it on Windows to avoid compiler compatibility issues for MSVC. - if os.name == "nt": - CMAKE_ARGS += " -T ClangCL" - - # Since ExecuTorch often uses main-branch features of pytorch, only the nightly - # pip versions will have the required features. - # - # NOTE: If a newly-fetched version of the executorch repo changes the value of - # NIGHTLY_VERSION, you should re-run this script to install the necessary - # package versions. - NIGHTLY_VERSION = "dev20250104" +# Since ExecuTorch often uses main-branch features of pytorch, only the nightly +# pip versions will have the required features. +# +# NOTE: If a newly-fetched version of the executorch repo changes the value of +# NIGHTLY_VERSION, you should re-run this script to install the necessary +# package versions. +NIGHTLY_VERSION = "dev20250104" - # The pip repository that hosts nightly torch packages. - TORCH_NIGHTLY_URL = "https://download.pytorch.org/whl/nightly/cpu" +def install_requirements(use_pytorch_nightly): # pip packages needed by exir. EXIR_REQUIREMENTS = [ - # Setting USE_PYTORCH_NIGHTLY to false to test the pinned PyTorch commit. Note + # Setting use_pytorch_nightly to false to test the pinned PyTorch commit. Note # that we don't need to set any version number there because they have already # been installed on CI before this step, so pip won't reinstall them - f"torch==2.6.0.{NIGHTLY_VERSION}" if USE_PYTORCH_NIGHTLY else "torch", + f"torch==2.6.0.{NIGHTLY_VERSION}" if use_pytorch_nightly else "torch", ( f"torchvision==0.22.0.{NIGHTLY_VERSION}" - if USE_PYTORCH_NIGHTLY + if use_pytorch_nightly else "torchvision" ), # For testing. "typing-extensions", @@ -173,7 +108,7 @@ def main(args): # TODO: Make each example publish its own requirements.txt EXAMPLES_REQUIREMENTS = [ "timm==1.0.7", - f"torchaudio==2.6.0.{NIGHTLY_VERSION}" if USE_PYTORCH_NIGHTLY else "torchaudio", + f"torchaudio==2.6.0.{NIGHTLY_VERSION}" if use_pytorch_nightly else "torchaudio", "torchsr==1.0.4", "transformers==4.47.1", ] @@ -228,6 +163,77 @@ def main(args): check=True, ) + +def main(args): + if not python_is_compatible(): + sys.exit(1) + + # Parse options. + + EXECUTORCH_BUILD_PYBIND = "" + CMAKE_ARGS = os.getenv("CMAKE_ARGS", "") + CMAKE_BUILD_ARGS = os.getenv("CMAKE_BUILD_ARGS", "") + use_pytorch_nightly = True + + parser = argparse.ArgumentParser(prog="install_requirements") + parser.add_argument( + "--pybind", + action="append", + nargs="+", + help="one or more of coreml/mps/xnnpack, or off", + ) + parser.add_argument( + "--clean", + action="store_true", + help="clean build artifacts and pip-out instead of installing", + ) + parser.add_argument( + "--use-pt-pinned-commit", + action="store_true", + help="build from the pinned PyTorch commit instead of nightly", + ) + args = parser.parse_args(args) + if args.pybind: + # Flatten list of lists. + args.pybind = list(itertools.chain(*args.pybind)) + if "off" in args.pybind: + if len(args.pybind) != 1: + raise Exception( + f"Cannot combine `off` with other pybinds: {args.pybind}" + ) + EXECUTORCH_BUILD_PYBIND = "OFF" + else: + for pybind_arg in args.pybind: + if pybind_arg not in ["coreml", "mps", "xnnpack"]: + continue + EXECUTORCH_BUILD_PYBIND = "ON" + CMAKE_ARGS += f" -DEXECUTORCH_BUILD_{pybind_arg.upper()}=ON" + + if args.clean: + clean() + return + + if args.use_pt_pinned_commit: + # This option is used in CI to make sure that PyTorch build from the pinned commit + # is used instead of nightly. CI jobs wouldn't be able to catch regression from the + # latest PT commit otherwise + use_pytorch_nightly = False + + install_requirements(use_pytorch_nightly) + + # If --pybind is not set explicitly for backends (e.g., --pybind xnnpack) + # or is not turned off explicitly (--pybind off) + # then install XNNPACK by default. + if EXECUTORCH_BUILD_PYBIND == "": + EXECUTORCH_BUILD_PYBIND = "ON" + CMAKE_ARGS += " -DEXECUTORCH_BUILD_XNNPACK=ON" + + # Use ClangCL on Windows. + # ClangCL is an alias to Clang that configures it to work in an MSVC-compatible + # mode. Using it on Windows to avoid compiler compatibility issues for MSVC. + if os.name == "nt": + CMAKE_ARGS += " -T ClangCL" + # # Install executorch pip package. This also makes `flatc` available on the path. # The --extra-index-url may be necessary if pyproject.toml has a dependency on a From 6e9745ccf560f032d6a619f305631fc0d206f178 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 09:30:51 -0800 Subject: [PATCH 3/9] Update [ghstack-poisoned] --- install_requirements.py | 26 +++++++------------------- requirements-dev.txt | 2 ++ requirements-examples.txt | 5 +++++ 3 files changed, 14 insertions(+), 19 deletions(-) create mode 100644 requirements-dev.txt create mode 100644 requirements-examples.txt diff --git a/install_requirements.py b/install_requirements.py index 199d090d47..e959b891bc 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -101,34 +101,16 @@ def install_requirements(use_pytorch_nightly): if use_pytorch_nightly else "torchvision" ), # For testing. - "typing-extensions", ] - # pip packages needed to run examples. - # TODO: Make each example publish its own requirements.txt EXAMPLES_REQUIREMENTS = [ - "timm==1.0.7", f"torchaudio==2.6.0.{NIGHTLY_VERSION}" if use_pytorch_nightly else "torchaudio", - "torchsr==1.0.4", - "transformers==4.47.1", - ] - - # pip packages needed for development. - DEVEL_REQUIREMENTS = [ - "cmake", # For building binary targets. - "pip>=23", # For building the pip package. - "pyyaml", # Imported by the kernel codegen tools. - "setuptools>=63", # For building the pip package. - "tomli", # Imported by extract_sources.py when using python < 3.11. - "wheel", # For building the pip package archive. - "zstd", # Imported by resolve_buck.py. - "ai-edge-model-explorer>=0.1.16", # For visualizing ExportedPrograms ] # Assemble the list of requirements to actually install. # TODO: Add options for reducing the number of requirements. REQUIREMENTS_TO_INSTALL = ( - EXIR_REQUIREMENTS + DEVEL_REQUIREMENTS + EXAMPLES_REQUIREMENTS + EXIR_REQUIREMENTS + EXAMPLES_REQUIREMENTS ) # Install the requirements. `--extra-index-url` tells pip to look for package @@ -139,6 +121,10 @@ def install_requirements(use_pytorch_nightly): "-m", "pip", "install", + "-r", + "requirements-dev.txt", + "-r", + "requirements-examples.txt", *REQUIREMENTS_TO_INSTALL, "--extra-index-url", TORCH_NIGHTLY_URL, @@ -158,6 +144,8 @@ def install_requirements(use_pytorch_nightly): "-m", "pip", "install", + # Without --no-build-isolation, setup.py can't find the torch module. + "--no-build-isolation", *LOCAL_REQUIREMENTS, ], check=True, diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000000..4771fb13c3 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,2 @@ +# For visualizing ExportedPrograms +ai-edge-model-explorer >= 0.1.16 diff --git a/requirements-examples.txt b/requirements-examples.txt new file mode 100644 index 0000000000..d4126a178a --- /dev/null +++ b/requirements-examples.txt @@ -0,0 +1,5 @@ +# pip packages needed to run examples. +# TODO: Make each example publish its own requirements.txt +timm == 1.0.7 +torchsr == 1.0.4 +transformers ==4.47.1 From 6d655497e2ca0e753f05bc27f46b3cd01af68be7 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 10:53:40 -0800 Subject: [PATCH 4/9] Update [ghstack-poisoned] --- .ci/scripts/utils.sh | 6 +++--- .github/workflows/apple.yml | 2 +- .github/workflows/pull.yml | 10 +++++----- backends/apple/mps/setup.md | 2 +- backends/cadence/build_cadence_fusionG3.sh | 2 +- backends/cadence/build_cadence_hifi4.sh | 2 +- backends/vulkan/docs/android_demo.md | 2 +- backends/xnnpack/README.md | 2 +- build/test_ios.sh | 2 +- docs/README.md | 2 +- docs/source/apple-runtime.md | 2 +- docs/source/build-run-xtensa.md | 2 +- docs/source/getting-started-setup.md | 20 +++++++++---------- docs/source/llm/getting-started.md | 6 +++--- .../runtime-build-and-cross-compilation.md | 4 ++-- .../tutorial-xnnpack-delegate-lowering.md | 2 +- .../android/ExecuTorchDemo/README.md | 4 ++-- .../docs/delegates/mediatek_README.md | 2 +- .../docs/delegates/qualcomm_README.md | 2 +- .../docs/delegates/xnnpack_README.md | 4 ++-- .../apple_ios/ExecuTorchDemo/README.md | 2 +- .../LLaMA/docs/delegates/mps_README.md | 2 +- .../LLaMA/docs/delegates/xnnpack_README.md | 4 ++-- .../demo-apps/react-native/rnllama/README.md | 4 ++-- examples/devtools/build_example_runner.sh | 2 +- examples/models/llama/README.md | 6 +++--- examples/models/llava/README.md | 2 +- examples/models/phi-3-mini-lora/README.md | 4 ++-- examples/models/phi-3-mini/README.md | 2 +- examples/portable/README.md | 2 +- examples/xnnpack/README.md | 2 +- extension/pybindings/README.md | 4 ++-- extension/training/README.md | 2 +- ...requirements.bat => install_executorch.bat | 0 ...l_requirements.py => install_executorch.py | 0 ...l_requirements.sh => install_executorch.sh | 0 36 files changed, 59 insertions(+), 59 deletions(-) rename install_requirements.bat => install_executorch.bat (100%) rename install_requirements.py => install_executorch.py (100%) rename install_requirements.sh => install_executorch.sh (100%) diff --git a/.ci/scripts/utils.sh b/.ci/scripts/utils.sh index ebed4a3150..be684b7bfa 100644 --- a/.ci/scripts/utils.sh +++ b/.ci/scripts/utils.sh @@ -17,7 +17,7 @@ retry () { } clean_executorch_install_folders() { - ./install_requirements.sh --clean + ./install_executorch.sh --clean } install_executorch() { @@ -25,9 +25,9 @@ install_executorch() { # Install executorch, this assumes that Executorch is checked out in the # current directory. if [[ "${1:-}" == "use-pt-pinned-commit" ]]; then - ./install_requirements.sh --pybind xnnpack --use-pt-pinned-commit + ./install_executorch.sh --pybind xnnpack --use-pt-pinned-commit else - ./install_requirements.sh --pybind xnnpack + ./install_executorch.sh --pybind xnnpack fi # Just print out the list of packages for debugging pip list diff --git a/.github/workflows/apple.yml b/.github/workflows/apple.yml index 2e85eeec76..8ac755bf5d 100644 --- a/.github/workflows/apple.yml +++ b/.github/workflows/apple.yml @@ -9,7 +9,7 @@ on: paths: - .ci/scripts/setup-ios.sh - .github/workflows/apple.yml - - install_requirements.sh + - install_executorch.sh - backends/apple/** - build/build_apple_frameworks.sh - build/build_apple_llm_demo.sh diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index d1b64e7598..8930c83ba4 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -200,7 +200,7 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake" # install pybind - bash install_requirements.sh --pybind xnnpack + bash install_executorch.sh --pybind xnnpack # install Llava requirements bash examples/models/llama/install_requirements.sh @@ -414,7 +414,7 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake" # install pybind - bash install_requirements.sh --pybind xnnpack + bash install_executorch.sh --pybind xnnpack # install phi-3-mini requirements bash examples/models/phi-3-mini/install_requirements.sh @@ -441,7 +441,7 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake" # install pybind - bash install_requirements.sh --pybind xnnpack + bash install_executorch.sh --pybind xnnpack # install llama requirements bash examples/models/llama/install_requirements.sh @@ -468,7 +468,7 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake" # install pybind - bash install_requirements.sh --pybind xnnpack + bash install_executorch.sh --pybind xnnpack # install llama requirements bash examples/models/llama/install_requirements.sh @@ -495,7 +495,7 @@ jobs: PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "cmake" # install pybind - bash install_requirements.sh --pybind xnnpack + bash install_executorch.sh --pybind xnnpack # install llama requirements bash examples/models/llama/install_requirements.sh diff --git a/backends/apple/mps/setup.md b/backends/apple/mps/setup.md index 7cd4c240a4..8234487653 100644 --- a/backends/apple/mps/setup.md +++ b/backends/apple/mps/setup.md @@ -97,7 +97,7 @@ I 00:00:00.122615 executorch:mps_executor_runner.mm:501] Model verified successf ### [Optional] Run the generated model directly using pybind 1. Make sure `pybind` MPS support was installed: ```bash -./install_requirements.sh --pybind mps +./install_executorch.sh --pybind mps ``` 2. Run the `mps_example` script to trace the model and run it directly from python: ```bash diff --git a/backends/cadence/build_cadence_fusionG3.sh b/backends/cadence/build_cadence_fusionG3.sh index 7a4dd68fb3..7cdcc38c04 100644 --- a/backends/cadence/build_cadence_fusionG3.sh +++ b/backends/cadence/build_cadence_fusionG3.sh @@ -12,7 +12,7 @@ unset XTENSA_CORE export XTENSA_CORE=FCV_FG3GP git submodule sync git submodule update --init -./install_requirements.sh +./install_executorch.sh rm -rf cmake-out diff --git a/backends/cadence/build_cadence_hifi4.sh b/backends/cadence/build_cadence_hifi4.sh index 28a3812752..603f3b85f7 100644 --- a/backends/cadence/build_cadence_hifi4.sh +++ b/backends/cadence/build_cadence_hifi4.sh @@ -12,7 +12,7 @@ unset XTENSA_CORE export XTENSA_CORE=nxp_rt600_RI23_11_newlib git submodule sync git submodule update --init -./install_requirements.sh +./install_executorch.sh rm -rf cmake-out diff --git a/backends/vulkan/docs/android_demo.md b/backends/vulkan/docs/android_demo.md index ce23eb989f..7eab1c21f8 100644 --- a/backends/vulkan/docs/android_demo.md +++ b/backends/vulkan/docs/android_demo.md @@ -81,7 +81,7 @@ First, build and install ExecuTorch libraries, then build the LLaMA runner binary using the Android NDK toolchain. ```shell -./install_requirements.sh --clean +./install_executorch.sh --clean (mkdir cmake-android-out && \ cmake . -DCMAKE_INSTALL_PREFIX=cmake-android-out \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ diff --git a/backends/xnnpack/README.md b/backends/xnnpack/README.md index 2184257b79..967a852599 100644 --- a/backends/xnnpack/README.md +++ b/backends/xnnpack/README.md @@ -98,7 +98,7 @@ After exporting the XNNPACK Delegated model, we can now try running it with exam cd executorch # Get a clean cmake-out directory -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-out # Configure cmake diff --git a/build/test_ios.sh b/build/test_ios.sh index 150a974cc1..cdc02098ce 100755 --- a/build/test_ios.sh +++ b/build/test_ios.sh @@ -63,7 +63,7 @@ say "Installing Requirements" pip install --upgrade cmake pip setuptools wheel zstd -./install_requirements.sh --pybind coreml mps xnnpack +./install_executorch.sh --pybind coreml mps xnnpack export PATH="$(realpath third-party/flatbuffers/cmake-out):$PATH" ./build/install_flatc.sh diff --git a/docs/README.md b/docs/README.md index c65bd8474e..dd1fded5aa 100644 --- a/docs/README.md +++ b/docs/README.md @@ -65,7 +65,7 @@ To build the documentation locally: 1. Run: ```bash - bash install_requirements.sh + bash install_executorch.sh ``` 1. Go to the `docs/` directory. diff --git a/docs/source/apple-runtime.md b/docs/source/apple-runtime.md index bfda12db21..fe744add52 100644 --- a/docs/source/apple-runtime.md +++ b/docs/source/apple-runtime.md @@ -109,7 +109,7 @@ python3 -m venv .venv && source .venv/bin/activate && pip install --upgrade pip 4. Install the required dependencies, including those needed for the backends like [Core ML](build-run-coreml.md) or [MPS](build-run-mps.md), if you plan to build them as well: ```bash -./install_requirements.sh --pybind coreml mps xnnpack +./install_executorch.sh --pybind coreml mps xnnpack # Optional dependencies for Core ML backend. ./backends/apple/coreml/scripts/install_requirements.sh diff --git a/docs/source/build-run-xtensa.md b/docs/source/build-run-xtensa.md index bc90ee5292..6097c9095a 100644 --- a/docs/source/build-run-xtensa.md +++ b/docs/source/build-run-xtensa.md @@ -162,7 +162,7 @@ In order to run the CMake build, you need the path to the following: ```bash cd executorch -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-out # prebuild and install executorch library cmake -DCMAKE_TOOLCHAIN_FILE=/backends/cadence/cadence.cmake \ diff --git a/docs/source/getting-started-setup.md b/docs/source/getting-started-setup.md index e21a73195c..fe0b042e60 100644 --- a/docs/source/getting-started-setup.md +++ b/docs/source/getting-started-setup.md @@ -92,23 +92,23 @@ Alternatively, if you would like to experiment with ExecuTorch quickly and easil # Install ExecuTorch pip package and its dependencies, as well as # development tools like CMake. # If developing on a Mac, make sure to install the Xcode Command Line Tools first. - ./install_requirements.sh + ./install_executorch.sh ``` - Use the [`--pybind` flag](https://github.com/pytorch/executorch/blob/main/install_requirements.sh#L26-L29) to install with pybindings and dependencies for other backends. + Use the [`--pybind` flag](https://github.com/pytorch/executorch/blob/main/install_executorch.sh#L26-L29) to install with pybindings and dependencies for other backends. ```bash - ./install_requirements.sh --pybind + ./install_executorch.sh --pybind # Example: pybindings with CoreML *only* - ./install_requirements.sh --pybind coreml + ./install_executorch.sh --pybind coreml # Example: pybinds with CoreML *and* XNNPACK - ./install_requirements.sh --pybind coreml xnnpack + ./install_executorch.sh --pybind coreml xnnpack ``` - By default, `./install_requirements.sh` command installs pybindings for XNNPACK. To disable any pybindings altogether: + By default, `./install_executorch.sh` command installs pybindings for XNNPACK. To disable any pybindings altogether: ```bash - ./install_requirements.sh --pybind off + ./install_executorch.sh --pybind off ``` After setting up your environment, you are ready to convert your PyTorch programs @@ -125,7 +125,7 @@ to ExecuTorch. > > ```bash > # From the root of the executorch repo: -> ./install_requirements.sh --clean +> ./install_executorch.sh --clean > git submodule sync > git submodule update --init > ``` @@ -208,7 +208,7 @@ The ExecuTorch repo uses CMake to build its C++ code. Here, we'll configure it t ```bash # Clean and configure the CMake build system. Compiled programs will # appear in the executorch/cmake-out directory we create here. - ./install_requirements.sh --clean + ./install_executorch.sh --clean (mkdir cmake-out && cd cmake-out && cmake ..) # Build the executor_runner target @@ -226,7 +226,7 @@ The ExecuTorch repo uses CMake to build its C++ code. Here, we'll configure it t > > ```bash > # From the root of the executorch repo: -> ./install_requirements.sh --clean +> ./install_executorch.sh --clean > git submodule sync > git submodule update --init > ``` diff --git a/docs/source/llm/getting-started.md b/docs/source/llm/getting-started.md index 9f88d7de36..f0de7cc9c9 100644 --- a/docs/source/llm/getting-started.md +++ b/docs/source/llm/getting-started.md @@ -52,7 +52,7 @@ git submodule update --init # Create a conda environment and install requirements. conda create -yn executorch python=3.10.0 conda activate executorch -./install_requirements.sh +./install_executorch.sh cd ../.. ``` @@ -83,7 +83,7 @@ cd third-party/executorch git submodule update --init # Install requirements. -PYTHON_EXECUTABLE=python ./install_requirements.sh +PYTHON_EXECUTABLE=python ./install_executorch.sh cd ../.. ``` @@ -396,7 +396,7 @@ At this point, the working directory should contain the following files: If all of these are present, you can now build and run: ```bash -./install_requirements.sh --clean +./install_executorch.sh --clean (mkdir cmake-out && cd cmake-out && cmake ..) cmake --build cmake-out -j10 ./cmake-out/nanogpt_runner diff --git a/docs/source/runtime-build-and-cross-compilation.md b/docs/source/runtime-build-and-cross-compilation.md index f30d2d28d1..3574b76b6d 100644 --- a/docs/source/runtime-build-and-cross-compilation.md +++ b/docs/source/runtime-build-and-cross-compilation.md @@ -45,7 +45,7 @@ cd executorch # Clean and configure the CMake build system. It's good practice to do this # whenever cloning or pulling the upstream repo. -./install_requirements.sh --clean +./install_executorch.sh --clean (mkdir cmake-out && cd cmake-out && cmake ..) ``` @@ -122,7 +122,7 @@ Following are instruction on how to perform cross compilation for Android and iO Assuming Android NDK is available, run: ```bash # Run the following lines from the `executorch/` folder -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-android-out && cd cmake-android-out # point -DCMAKE_TOOLCHAIN_FILE to the location where ndk is installed diff --git a/docs/source/tutorial-xnnpack-delegate-lowering.md b/docs/source/tutorial-xnnpack-delegate-lowering.md index f4579e2cce..c81f61878c 100644 --- a/docs/source/tutorial-xnnpack-delegate-lowering.md +++ b/docs/source/tutorial-xnnpack-delegate-lowering.md @@ -147,7 +147,7 @@ After exporting the XNNPACK Delegated model, we can now try running it with exam cd executorch # Get a clean cmake-out directory -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-out # Configure cmake diff --git a/examples/demo-apps/android/ExecuTorchDemo/README.md b/examples/demo-apps/android/ExecuTorchDemo/README.md index 1feb9ca92d..931509891a 100644 --- a/examples/demo-apps/android/ExecuTorchDemo/README.md +++ b/examples/demo-apps/android/ExecuTorchDemo/README.md @@ -70,7 +70,7 @@ export ANDROID_NDK= export ANDROID_ABI=arm64-v8a # Run the following lines from the `executorch/` folder -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-android-out # Build the core executorch library @@ -114,7 +114,7 @@ export ANDROID_NDK= export ANDROID_ABI=arm64-v8a export QNN_SDK_ROOT= -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-android-out cmake . -DCMAKE_INSTALL_PREFIX=cmake-android-out \ -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" \ diff --git a/examples/demo-apps/android/LlamaDemo/docs/delegates/mediatek_README.md b/examples/demo-apps/android/LlamaDemo/docs/delegates/mediatek_README.md index b80ea51646..6351640dcc 100644 --- a/examples/demo-apps/android/LlamaDemo/docs/delegates/mediatek_README.md +++ b/examples/demo-apps/android/LlamaDemo/docs/delegates/mediatek_README.md @@ -36,7 +36,7 @@ git submodule update --init ``` Install dependencies ``` -./install_requirements.sh +./install_executorch.sh ``` ## Setup Environment Variables ### Download Buck2 and make executable diff --git a/examples/demo-apps/android/LlamaDemo/docs/delegates/qualcomm_README.md b/examples/demo-apps/android/LlamaDemo/docs/delegates/qualcomm_README.md index 7790f66923..92afe613f7 100644 --- a/examples/demo-apps/android/LlamaDemo/docs/delegates/qualcomm_README.md +++ b/examples/demo-apps/android/LlamaDemo/docs/delegates/qualcomm_README.md @@ -34,7 +34,7 @@ git submodule update --init ``` Install dependencies ``` -./install_requirements.sh +./install_executorch.sh ``` ## Setup QNN diff --git a/examples/demo-apps/android/LlamaDemo/docs/delegates/xnnpack_README.md b/examples/demo-apps/android/LlamaDemo/docs/delegates/xnnpack_README.md index 087bd24260..a2ac04ae93 100644 --- a/examples/demo-apps/android/LlamaDemo/docs/delegates/xnnpack_README.md +++ b/examples/demo-apps/android/LlamaDemo/docs/delegates/xnnpack_README.md @@ -36,12 +36,12 @@ git submodule update --init ``` Install dependencies ``` -./install_requirements.sh +./install_executorch.sh ``` Optional: Use the --pybind flag to install with pybindings. ``` -./install_requirements.sh --pybind xnnpack +./install_executorch.sh --pybind xnnpack ``` diff --git a/examples/demo-apps/apple_ios/ExecuTorchDemo/README.md b/examples/demo-apps/apple_ios/ExecuTorchDemo/README.md index 4a4e682a4a..844c83d220 100644 --- a/examples/demo-apps/apple_ios/ExecuTorchDemo/README.md +++ b/examples/demo-apps/apple_ios/ExecuTorchDemo/README.md @@ -51,7 +51,7 @@ python3 -m venv .venv && source .venv/bin/activate pip install --upgrade cmake pip setuptools wheel -./install_requirements.sh --pybind coreml mps xnnpack +./install_executorch.sh --pybind coreml mps xnnpack ``` ### 4. Backend Dependencies diff --git a/examples/demo-apps/apple_ios/LLaMA/docs/delegates/mps_README.md b/examples/demo-apps/apple_ios/LLaMA/docs/delegates/mps_README.md index eb3c244dee..bfe66bbd4e 100644 --- a/examples/demo-apps/apple_ios/LLaMA/docs/delegates/mps_README.md +++ b/examples/demo-apps/apple_ios/LLaMA/docs/delegates/mps_README.md @@ -33,7 +33,7 @@ git submodule update --init Install dependencies ``` -./install_requirements.sh +./install_executorch.sh ``` ## Prepare Models diff --git a/examples/demo-apps/apple_ios/LLaMA/docs/delegates/xnnpack_README.md b/examples/demo-apps/apple_ios/LLaMA/docs/delegates/xnnpack_README.md index 1e03993c94..b357628042 100644 --- a/examples/demo-apps/apple_ios/LLaMA/docs/delegates/xnnpack_README.md +++ b/examples/demo-apps/apple_ios/LLaMA/docs/delegates/xnnpack_README.md @@ -32,11 +32,11 @@ git submodule update --init Install dependencies ``` -./install_requirements.sh +./install_executorch.sh ``` Optional: Use the --pybind flag to install with pybindings. ``` -./install_requirements.sh --pybind xnnpack +./install_executorch.sh --pybind xnnpack ``` ## Prepare Models In this demo app, we support text-only inference with up-to-date Llama models and image reasoning inference with LLaVA 1.5. diff --git a/examples/demo-apps/react-native/rnllama/README.md b/examples/demo-apps/react-native/rnllama/README.md index 76c44a6621..33c607d635 100644 --- a/examples/demo-apps/react-native/rnllama/README.md +++ b/examples/demo-apps/react-native/rnllama/README.md @@ -26,7 +26,7 @@ A React Native mobile application for running LLaMA language models using ExecuT 3. Pull submodules: `git submodule sync && git submodule update --init` -4. Install dependencies: `./install_requirements.sh --pybind xnnpack && ./examples/models/llama/install_requirements.sh` +4. Install dependencies: `./install_executorch.sh --pybind xnnpack && ./examples/models/llama/install_requirements.sh` 5. Follow the instructions in the [README](https://github.com/pytorch/executorch/blob/main/examples/models/llama/README.md#option-a-download-and-export-llama32-1b3b-model) to export a model as `.pte` @@ -40,4 +40,4 @@ A React Native mobile application for running LLaMA language models using ExecuT 10. Select the model and tokenizer in the app to start chatting: -[![rnllama]](https://github.com/user-attachments/assets/b339f1ec-8b80-41f0-b3f6-ded6698ac926) \ No newline at end of file +[![rnllama]](https://github.com/user-attachments/assets/b339f1ec-8b80-41f0-b3f6-ded6698ac926) diff --git a/examples/devtools/build_example_runner.sh b/examples/devtools/build_example_runner.sh index 693996940d..b6a14bcfb1 100755 --- a/examples/devtools/build_example_runner.sh +++ b/examples/devtools/build_example_runner.sh @@ -37,7 +37,7 @@ done main() { cd "${EXECUTORCH_ROOT}" - ./install_requirements.sh --clean + ./install_executorch.sh --clean if [[ "${BUILD_COREML}" == "ON" ]]; then cmake -DCMAKE_INSTALL_PREFIX=cmake-out \ diff --git a/examples/models/llama/README.md b/examples/models/llama/README.md index cf9553c1c6..7a8838fb01 100644 --- a/examples/models/llama/README.md +++ b/examples/models/llama/README.md @@ -148,7 +148,7 @@ Llama 3 8B performance was measured on the Samsung Galaxy S22, S24, and OnePlus ## Step 1: Setup > :warning: **double check your python environment**: make sure `conda activate ` is run before all the bash and python scripts. -1. Follow the [tutorial](https://pytorch.org/executorch/main/getting-started-setup) to set up ExecuTorch. For installation run `./install_requirements.sh --pybind xnnpack` +1. Follow the [tutorial](https://pytorch.org/executorch/main/getting-started-setup) to set up ExecuTorch. For installation run `./install_executorch.sh --pybind xnnpack` 2. Run `examples/models/llama/install_requirements.sh` to install a few dependencies. @@ -440,8 +440,8 @@ This example tries to reuse the Python code, with minimal modifications to make ``` git clean -xfd pip uninstall executorch -./install_requirements.sh --clean -./install_requirements.sh --pybind xnnpack +./install_executorch.sh --clean +./install_executorch.sh --pybind xnnpack ``` - If you encounter `pthread` related issues during link time, add `pthread` in `target_link_libraries` in `CMakeLists.txt` - On Mac, if there is linking error in Step 4 with error message like diff --git a/examples/models/llava/README.md b/examples/models/llava/README.md index ad2f3f3dc9..d0dc71c0a8 100644 --- a/examples/models/llava/README.md +++ b/examples/models/llava/README.md @@ -37,7 +37,7 @@ application to test things out on device. Run the following command to generate `llava.pte`, `tokenizer.bin` and an image tensor (serialized in TorchScript) `image.pt`. -Prerequisite: run `install_requirements.sh` to install ExecuTorch and run +Prerequisite: run `install_executorch.sh` to install ExecuTorch and run `examples/models/llava/install_requirements.sh` to install dependencies. ```bash diff --git a/examples/models/phi-3-mini-lora/README.md b/examples/models/phi-3-mini-lora/README.md index 8e4b242807..2b7cc0ba40 100644 --- a/examples/models/phi-3-mini-lora/README.md +++ b/examples/models/phi-3-mini-lora/README.md @@ -5,7 +5,7 @@ To see how you can use the model exported for training in a fully involved finet ## Instructions ### Step 1: [Optional] Install ExecuTorch dependencies -`./install_requirements.sh` in ExecuTorch root directory. +`./install_executorch.sh` in ExecuTorch root directory. ### Step 2: Install Requirements - `./examples/models/phi-3-mini-lora/install_requirements.sh` @@ -19,7 +19,7 @@ python export_model.py 2. Run the inference model using an example runtime. For more detailed steps on this, check out [Build & Run](https://pytorch.org/executorch/stable/getting-started-setup.html#build-run). ``` # Clean and configure the CMake build system. Compiled programs will appear in the executorch/cmake-out directory we create here. -./install_requirements.sh --clean +./install_executorch.sh --clean (mkdir cmake-out && cd cmake-out && cmake ..) # Build the executor_runner target diff --git a/examples/models/phi-3-mini/README.md b/examples/models/phi-3-mini/README.md index e5a86c4177..ba878d42a3 100644 --- a/examples/models/phi-3-mini/README.md +++ b/examples/models/phi-3-mini/README.md @@ -3,7 +3,7 @@ This example demonstrates how to run a [Phi-3-mini](https://huggingface.co/micro # Instructions ## Step 1: Setup -1. Follow the [tutorial](https://pytorch.org/executorch/main/getting-started-setup) to set up ExecuTorch. For installation run `./install_requirements.sh --pybind xnnpack` +1. Follow the [tutorial](https://pytorch.org/executorch/main/getting-started-setup) to set up ExecuTorch. For installation run `./install_executorch.sh --pybind xnnpack` 2. Currently, we support transformers v4.44.2. Install transformers with the following command: ``` pip uninstall -y transformers ; pip install transformers==4.44.2 diff --git a/examples/portable/README.md b/examples/portable/README.md index e469df1510..a6658197da 100644 --- a/examples/portable/README.md +++ b/examples/portable/README.md @@ -45,7 +45,7 @@ Use `-h` (or `--help`) to see all the supported models. ```bash # Build the tool from the top-level `executorch` directory. -./install_requirements.sh --clean +./install_executorch.sh --clean (mkdir cmake-out \ && cd cmake-out \ && cmake -DEXECUTORCH_PAL_DEFAULT=posix ..) \ diff --git a/examples/xnnpack/README.md b/examples/xnnpack/README.md index a519d935b5..624dd33b84 100644 --- a/examples/xnnpack/README.md +++ b/examples/xnnpack/README.md @@ -86,7 +86,7 @@ After exporting the XNNPACK Delegated model, we can now try running it with exam cd executorch # Get a clean cmake-out directory -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-out # Configure cmake diff --git a/extension/pybindings/README.md b/extension/pybindings/README.md index 8c1adf2c22..767c0266ed 100644 --- a/extension/pybindings/README.md +++ b/extension/pybindings/README.md @@ -9,7 +9,7 @@ pip install . --no-build-isolation Or when installing the rest of dependencies: ```bash -install_requirements.sh --pybind +install_executorch.sh --pybind ``` # Link Backends @@ -25,7 +25,7 @@ pip install . --no-build-isolation Similarly, when installing the rest of dependencies: ```bash -install_requirements.sh --pybind coreml mps xnnpack +install_executorch.sh --pybind coreml mps xnnpack ``` ## Functions diff --git a/extension/training/README.md b/extension/training/README.md index 44195471a7..f6f8d5139a 100644 --- a/extension/training/README.md +++ b/extension/training/README.md @@ -230,7 +230,7 @@ After exporting the model for training, we can now try learning using CMake. We cd executorch # Get a clean cmake-out directory -./install_requirements.sh --clean +./install_executorch.sh --clean mkdir cmake-out # Configure cmake diff --git a/install_requirements.bat b/install_executorch.bat similarity index 100% rename from install_requirements.bat rename to install_executorch.bat diff --git a/install_requirements.py b/install_executorch.py similarity index 100% rename from install_requirements.py rename to install_executorch.py diff --git a/install_requirements.sh b/install_executorch.sh similarity index 100% rename from install_requirements.sh rename to install_executorch.sh From ac71f8dd53104b14599a5d8fced31160c724a82c Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 11:49:19 -0800 Subject: [PATCH 5/9] Update [ghstack-poisoned] --- install_requirements.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/install_requirements.py b/install_requirements.py index e959b891bc..ac674770c9 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -109,9 +109,7 @@ def install_requirements(use_pytorch_nightly): # Assemble the list of requirements to actually install. # TODO: Add options for reducing the number of requirements. - REQUIREMENTS_TO_INSTALL = ( - EXIR_REQUIREMENTS + EXAMPLES_REQUIREMENTS - ) + REQUIREMENTS_TO_INSTALL = EXIR_REQUIREMENTS + EXAMPLES_REQUIREMENTS # Install the requirements. `--extra-index-url` tells pip to look for package # versions on the provided URL if they aren't available on the default URL. From 9a1dddefabce33c1cdd0a70b2b485d57f4610a91 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 13:35:16 -0800 Subject: [PATCH 6/9] Update [ghstack-poisoned] --- install_requirements.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/install_requirements.py b/install_requirements.py index 0416a0710c..f2b4510a08 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -76,6 +76,9 @@ def clean(): print("Done cleaning build artifacts.") +VALID_PYBINDS = ["coreml", "mps", "xnnpack"] + + def main(args): if not python_is_compatible(): sys.exit(1) @@ -105,6 +108,11 @@ def main(args): help="build from the pinned PyTorch commit instead of nightly", ) args = parser.parse_args(args) + + if args.clean: + clean() + return + if args.pybind: # Flatten list of lists. args.pybind = list(itertools.chain(*args.pybind)) @@ -116,15 +124,13 @@ def main(args): EXECUTORCH_BUILD_PYBIND = "OFF" else: for pybind_arg in args.pybind: - if pybind_arg not in ["coreml", "mps", "xnnpack"]: - continue + if pybind_arg not in VALID_PYBINDS: + raise Exception( + f"Unrecognized pybind argument {pybind_arg}; valid options are: {", ".join(VALID_PYBINDS)}" + ) EXECUTORCH_BUILD_PYBIND = "ON" CMAKE_ARGS += f" -DEXECUTORCH_BUILD_{pybind_arg.upper()}=ON" - if args.clean: - clean() - return - if args.use_pt_pinned_commit: # This option is used in CI to make sure that PyTorch build from the pinned commit # is used instead of nightly. CI jobs wouldn't be able to catch regression from the From a8933913fbd8ade1013248c79d74eabe5be568dc Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 14:11:23 -0800 Subject: [PATCH 7/9] Update [ghstack-poisoned] --- install_requirements.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_requirements.py b/install_requirements.py index fc75011669..1081967d8f 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -209,7 +209,7 @@ def main(args): for pybind_arg in args.pybind: if pybind_arg not in VALID_PYBINDS: raise Exception( - f"Unrecognized pybind argument {pybind_arg}; valid options are: {", ".join(VALID_PYBINDS)}" + f"Unrecognized pybind argument {pybind_arg}; valid options are: {', '.join(VALID_PYBINDS)}" ) EXECUTORCH_BUILD_PYBIND = "ON" CMAKE_ARGS += f" -DEXECUTORCH_BUILD_{pybind_arg.upper()}=ON" From bf753a8dfdab241785063d9d624adc84f171255a Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 14:20:01 -0800 Subject: [PATCH 8/9] Update [ghstack-poisoned] --- install_requirements.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_requirements.py b/install_requirements.py index f2b4510a08..f1e0c75fd5 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -90,7 +90,7 @@ def main(args): CMAKE_BUILD_ARGS = os.getenv("CMAKE_BUILD_ARGS", "") USE_PYTORCH_NIGHTLY = True - parser = argparse.ArgumentParser(prog="install_requirements") + parser = argparse.ArgumentParser() parser.add_argument( "--pybind", action="append", From 1d4dfab7b47fed36dd2b5f5d53382e27272c7dc0 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 16 Jan 2025 15:31:09 -0800 Subject: [PATCH 9/9] Update [ghstack-poisoned] --- install_requirements.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_requirements.py b/install_requirements.py index 649502c399..c16cacca46 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -126,7 +126,7 @@ def main(args): for pybind_arg in args.pybind: if pybind_arg not in VALID_PYBINDS: raise Exception( - f"Unrecognized pybind argument {pybind_arg}; valid options are: {", ".join(VALID_PYBINDS)}" + f"Unrecognized pybind argument {pybind_arg}; valid options are: {', '.join(VALID_PYBINDS)}" ) EXECUTORCH_BUILD_PYBIND = "ON" CMAKE_ARGS += f" -DEXECUTORCH_BUILD_{pybind_arg.upper()}=ON"