From ab8b7bd46f9b29c3435235d22dbcae31a5f2cfe7 Mon Sep 17 00:00:00 2001 From: Michael Ispas Date: Tue, 3 Jun 2025 18:45:55 -0700 Subject: [PATCH] Replace hardcoded cmake --build -j flags in docs and scripts mac: $(sysctl -n hw.ncpu) - 1 linux: $(nproc) - 1 --- .ci/docker/common/install_openssl.sh | 2 +- .ci/scripts/build-qnn-sdk.sh | 2 +- .ci/scripts/build_llama_android.sh | 4 +- .ci/scripts/setup-openvino.sh | 2 +- .ci/scripts/test_llama.sh | 4 +- .ci/scripts/test_llama_torchao_lowbit.sh | 4 +- .ci/scripts/test_model.sh | 4 +- .ci/scripts/test_quantized_aot_lib.sh | 2 +- .ci/scripts/utils.sh | 4 +- .github/workflows/trunk.yml | 2 +- CMakeLists.txt | 2 +- backends/apple/coreml/scripts/build_tests.sh | 4 +- backends/arm/scripts/build_executor_runner.sh | 2 +- backends/arm/scripts/build_executorch.sh | 2 +- .../arm/scripts/build_portable_kernels.sh | 2 +- backends/cadence/build_cadence_fusionG3.sh | 4 +- backends/cadence/build_cadence_hifi4.sh | 4 +- backends/cadence/build_cadence_runner.sh | 4 +- backends/cadence/runtime/executor_main.sh | 4 +- backends/mediatek/scripts/mtk_build.sh | 2 +- backends/vulkan/README.md | 4 +- backends/vulkan/docs/android_demo.md | 4 +- backends/xnnpack/README.md | 2 +- docs/source/backends-cadence.md | 2 +- docs/source/backends-vulkan.md | 4 +- ...lama3-qualcomm-ai-engine-direct-backend.md | 4 +- docs/source/llm/getting-started.md | 6 +- .../tutorial-xnnpack-delegate-lowering.md | 2 +- .../using-executorch-building-from-source.md | 4 +- examples/apple/mps/README.md | 4 +- .../mps/scripts/build_mps_executor_runner.sh | 4 +- examples/apple/mps/test_mps.sh | 4 +- .../docs/delegates/qualcomm_README.md | 4 +- examples/devtools/test_example_runner.sh | 4 +- examples/mediatek/mtk_build_examples.sh | 4 +- examples/models/llama/README.md | 12 +- examples/models/phi-3-mini-lora/README.md | 2 +- examples/models/phi-3-mini/README.md | 4 +- examples/portable/README.md | 2 +- .../portable/custom_ops/test_custom_ops.sh | 4 +- .../scripts/test_demo_backend_delegation.sh | 2 +- examples/qualcomm/test_qualcomm.sh | 4 +- .../selective_build/test_selective_build.sh | 6 +- examples/xnnpack/README.md | 4 +- .../xnnpack/quantization/test_quantize.sh | 2 +- executorch.sln | 110 ++++++++++++++++++ extension/training/README.md | 2 +- kernels/README.md | 4 +- test/build_optimized_size_test.sh | 4 +- test/build_size_test.sh | 4 +- test/run_oss_cpp_tests.sh | 2 +- 51 files changed, 197 insertions(+), 87 deletions(-) create mode 100644 executorch.sln diff --git a/.ci/docker/common/install_openssl.sh b/.ci/docker/common/install_openssl.sh index 4f1828f6b5e..ef0c2b05a8f 100755 --- a/.ci/docker/common/install_openssl.sh +++ b/.ci/docker/common/install_openssl.sh @@ -17,7 +17,7 @@ tar xf "${OPENSSL}.tar.gz" pushd "${OPENSSL}" || true ./config --prefix=/opt/openssl -d "-Wl,--enable-new-dtags,-rpath,$(LIBRPATH)" # NOTE: openssl install errors out when built with the -j option -make -j6; make install_sw +make -j$((nproc) - 1); make install_sw # Link the ssl libraries to the /usr/lib folder. ln -s /opt/openssl/lib/lib* /usr/lib popd || true diff --git a/.ci/scripts/build-qnn-sdk.sh b/.ci/scripts/build-qnn-sdk.sh index 806df85d211..45458f1ee53 100755 --- a/.ci/scripts/build-qnn-sdk.sh +++ b/.ci/scripts/build-qnn-sdk.sh @@ -35,7 +35,7 @@ set_up_aot() { -DEXECUTORCH_BUILD_EXTENSION_TENSOR=ON \ -DEXECUTORCH_ENABLE_EVENT_TRACER=ON \ -DPYTHON_EXECUTABLE=python3 - cmake --build $PWD --target "PyQnnManagerAdaptor" "PyQnnWrapperAdaptor" -j$(nproc) + cmake --build $PWD --target "PyQnnManagerAdaptor" "PyQnnWrapperAdaptor" -j$((nproc) -1) # install Python APIs to correct import path # The filename might vary depending on your Python and host version. cp -f backends/qualcomm/PyQnnManagerAdaptor.cpython-310-x86_64-linux-gnu.so $EXECUTORCH_ROOT/backends/qualcomm/python diff --git a/.ci/scripts/build_llama_android.sh b/.ci/scripts/build_llama_android.sh index ed0fa5d16bb..535f2a26ae5 100644 --- a/.ci/scripts/build_llama_android.sh +++ b/.ci/scripts/build_llama_android.sh @@ -31,7 +31,7 @@ install_executorch_and_backend_lib() { -DXNNPACK_ENABLE_ARM_BF16=OFF \ -Bcmake-android-out . - cmake --build cmake-android-out -j4 --target install --config Release + cmake --build cmake-android-out -j$((nproc) -1) --target install --config Release } build_llama_runner() { @@ -48,7 +48,7 @@ build_llama_runner() { -DCMAKE_BUILD_TYPE=Release \ -Bcmake-android-out/examples/models/llama examples/models/llama - cmake --build cmake-android-out/examples/models/llama -j4 --config Release + cmake --build cmake-android-out/examples/models/llama -j$((nproc) -1) --config Release } install_executorch_and_backend_lib build_llama_runner diff --git a/.ci/scripts/setup-openvino.sh b/.ci/scripts/setup-openvino.sh index ff667619125..5c85c0a75c2 100755 --- a/.ci/scripts/setup-openvino.sh +++ b/.ci/scripts/setup-openvino.sh @@ -16,7 +16,7 @@ git submodule update --init --recursive sudo ./install_build_dependencies.sh mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON -make -j$(nproc) +make -j$((nproc) -1) cd .. cmake --install build --prefix dist diff --git a/.ci/scripts/test_llama.sh b/.ci/scripts/test_llama.sh index 4ed5ec308c5..07c6f820d4c 100644 --- a/.ci/scripts/test_llama.sh +++ b/.ci/scripts/test_llama.sh @@ -158,7 +158,7 @@ cmake_install_executorch_libraries() { -DEXECUTORCH_BUILD_QNN="$QNN" \ -DQNN_SDK_ROOT="$QNN_SDK_ROOT" \ -Bcmake-out . - cmake --build cmake-out -j9 --target install --config "$CMAKE_BUILD_TYPE" + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config "$CMAKE_BUILD_TYPE" } cmake_build_llama_runner() { @@ -173,7 +173,7 @@ cmake_build_llama_runner() { -DCMAKE_BUILD_TYPE="$CMAKE_BUILD_TYPE" \ -Bcmake-out/${dir} \ ${dir} - cmake --build cmake-out/${dir} -j9 --config "$CMAKE_BUILD_TYPE" + cmake --build cmake-out/${dir} -j$(($(nproc) - 1)) --config "$CMAKE_BUILD_TYPE" } diff --git a/.ci/scripts/test_llama_torchao_lowbit.sh b/.ci/scripts/test_llama_torchao_lowbit.sh index 300f091c142..92b96b1a103 100644 --- a/.ci/scripts/test_llama_torchao_lowbit.sh +++ b/.ci/scripts/test_llama_torchao_lowbit.sh @@ -36,7 +36,7 @@ cmake -DPYTHON_EXECUTABLE=python \ -DEXECUTORCH_BUILD_KERNELS_OPTIMIZED=ON \ -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ -Bcmake-out . -cmake --build cmake-out -j16 --target install --config Release +cmake --build cmake-out -j$(( $(nproc) - 1 )) --target install --config Release # Install llama runner with torchao cmake -DPYTHON_EXECUTABLE=python \ @@ -49,7 +49,7 @@ cmake -DPYTHON_EXECUTABLE=python \ -DEXECUTORCH_BUILD_TORCHAO=ON \ -Bcmake-out/examples/models/llama \ examples/models/llama -cmake --build cmake-out/examples/models/llama -j16 --config Release +cmake --build cmake-out/examples/models/llama -j$(($(nproc) - 1)) --config Release # Download stories llama110m artifacts download_stories_model_artifacts diff --git a/.ci/scripts/test_model.sh b/.ci/scripts/test_model.sh index aa74f3a5447..37387cb88d6 100755 --- a/.ci/scripts/test_model.sh +++ b/.ci/scripts/test_model.sh @@ -59,13 +59,13 @@ build_cmake_executor_runner() { && cmake -DCMAKE_BUILD_TYPE=Release \ -DEXECUTORCH_BUILD_XNNPACK=ON \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" ..) - cmake --build ${CMAKE_OUTPUT_DIR} -j4 + cmake --build ${CMAKE_OUTPUT_DIR} -j$(($(nproc) - 1)) else cmake -DCMAKE_BUILD_TYPE=Debug \ -DEXECUTORCH_BUILD_KERNELS_OPTIMIZED=ON \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" \ -B${CMAKE_OUTPUT_DIR} . - cmake --build ${CMAKE_OUTPUT_DIR} -j4 --config Debug + cmake --build ${CMAKE_OUTPUT_DIR} -j$(($(nproc) - 1)) --config Debug fi } diff --git a/.ci/scripts/test_quantized_aot_lib.sh b/.ci/scripts/test_quantized_aot_lib.sh index b522eb7b418..5de4b17ca0d 100755 --- a/.ci/scripts/test_quantized_aot_lib.sh +++ b/.ci/scripts/test_quantized_aot_lib.sh @@ -23,7 +23,7 @@ build_cmake_quantized_aot_lib() { -DEXECUTORCH_BUILD_KERNELS_QUANTIZED_AOT=ON \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" ..) - cmake --build ${CMAKE_OUTPUT_DIR} -j4 + cmake --build ${CMAKE_OUTPUT_DIR} -j$(($(nproc) - 1)) } build_cmake_quantized_aot_lib diff --git a/.ci/scripts/utils.sh b/.ci/scripts/utils.sh index 34749fe5722..2eaeb12ccca 100644 --- a/.ci/scripts/utils.sh +++ b/.ci/scripts/utils.sh @@ -141,7 +141,7 @@ build_executorch_runner_cmake() { else CMAKE_JOBS=$(( $(nproc) - 1 )) fi - cmake --build "${CMAKE_OUTPUT_DIR}" -j "${CMAKE_JOBS}" + cmake --build "${CMAKE_OUTPUT_DIR}" -j$((nproc) -1) "${CMAKE_JOBS}" } build_executorch_runner() { @@ -162,7 +162,7 @@ cmake_install_executorch_lib() { -DCMAKE_BUILD_TYPE=Release \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" \ -Bcmake-out . - cmake --build cmake-out -j9 --target install --config Release + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release } download_stories_model_artifacts() { diff --git a/.github/workflows/trunk.yml b/.github/workflows/trunk.yml index cab558c9b56..3858810f1a7 100644 --- a/.github/workflows/trunk.yml +++ b/.github/workflows/trunk.yml @@ -561,7 +561,7 @@ jobs: -DEXECUTORCH_BUILD_DEVTOOLS=ON \ -DEXECUTORCH_ENABLE_EVENT_TRACER=ON \ -Bcmake-out . - cmake --build cmake-out -j16 --target install --config Release + cmake --build cmake-out -j$(($(sysctl -n hw.ncpu) - 1)) --target install --config Release echo "::endgroup::" echo "::group::Set up Hugging Face" diff --git a/CMakeLists.txt b/CMakeLists.txt index 10d4fcd95ba..f83955ac2f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ # building, and tends to speed up the build significantly. It's typical to use # "core count + 1" as the `-j` value. # ~~~ -# cmake --build cmake-out -j9 +# cmake --build cmake-out -j$(($(nproc) - 1)) # ~~~ # # ### Editing this file ### diff --git a/backends/apple/coreml/scripts/build_tests.sh b/backends/apple/coreml/scripts/build_tests.sh index 890385d5e24..7396ed13f3e 100755 --- a/backends/apple/coreml/scripts/build_tests.sh +++ b/backends/apple/coreml/scripts/build_tests.sh @@ -36,7 +36,7 @@ cmake "$EXECUTORCH_ROOT_PATH" -B"$CMAKE_EXECUTORCH_BUILD_DIR_PATH" \ -DEXECUTORCH_BUILD_XNNPACK=OFF \ -DEXECUTORCH_BUILD_GFLAGS=OFF -cmake --build "$CMAKE_EXECUTORCH_BUILD_DIR_PATH" -j9 -t executorch +cmake --build "$CMAKE_EXECUTORCH_BUILD_DIR_PATH" -j$(($(nproc) - 1)) -t executorch # Build protobuf echo "ExecuTorch: Building libprotobuf-lite" @@ -52,7 +52,7 @@ cmake "$PROTOBUF_DIR_PATH/cmake" -B"$CMAKE_PROTOBUF_BUILD_DIR_PATH" \ -DCMAKE_MACOSX_BUNDLE=OFF \ -DCMAKE_CXX_STANDARD=17 -cmake --build "$CMAKE_PROTOBUF_BUILD_DIR_PATH" -j9 -t libprotobuf-lite +cmake --build "$CMAKE_PROTOBUF_BUILD_DIR_PATH" -j$(($(nproc) - 1)) -t libprotobuf-lite # Copy required libraries echo "ExecuTorch: Copying libraries" diff --git a/backends/arm/scripts/build_executor_runner.sh b/backends/arm/scripts/build_executor_runner.sh index 807821d427f..a8c55689811 100755 --- a/backends/arm/scripts/build_executor_runner.sh +++ b/backends/arm/scripts/build_executor_runner.sh @@ -150,7 +150,7 @@ cmake \ echo "[${BASH_SOURCE[0]}] Configured CMAKE" -cmake --build ${output_folder}/cmake-out -j$(nproc) -- arm_executor_runner +cmake --build ${output_folder}/cmake-out -j$((nproc) -1) -- arm_executor_runner echo "[${BASH_SOURCE[0]}] Generated baremetal elf file:" find ${output_folder}/cmake-out -name "arm_executor_runner" diff --git a/backends/arm/scripts/build_executorch.sh b/backends/arm/scripts/build_executorch.sh index 3642b5d8446..a3dfd7e8316 100755 --- a/backends/arm/scripts/build_executorch.sh +++ b/backends/arm/scripts/build_executorch.sh @@ -136,7 +136,7 @@ cmake \ echo "[$(basename $0)] Configured CMAKE" -cmake --build ${et_build_dir} -j$(nproc) --target install --config ${build_type} -- +cmake --build ${et_build_dir} -j$((nproc) -1) --target install --config ${build_type} -- set +x diff --git a/backends/arm/scripts/build_portable_kernels.sh b/backends/arm/scripts/build_portable_kernels.sh index 2719fbb603e..5cabf22366f 100755 --- a/backends/arm/scripts/build_portable_kernels.sh +++ b/backends/arm/scripts/build_portable_kernels.sh @@ -75,7 +75,7 @@ cmake \ -B"${et_build_dir}/examples/arm" \ "${et_root_dir}/examples/arm" -cmake --build "${et_build_dir}/examples/arm" -j$(nproc) --config ${build_type} -- +cmake --build "${et_build_dir}/examples/arm" -j$((nproc) -1) --config ${build_type} -- set +x diff --git a/backends/cadence/build_cadence_fusionG3.sh b/backends/cadence/build_cadence_fusionG3.sh index 3ced26f8577..b14ed3a8abe 100644 --- a/backends/cadence/build_cadence_fusionG3.sh +++ b/backends/cadence/build_cadence_fusionG3.sh @@ -54,7 +54,7 @@ if $STEPWISE_BUILD; then -DHAVE_FNMATCH_H=OFF \ -Bcmake-out/backends/cadence \ backends/cadence - cmake --build cmake-out/backends/cadence -j8 + cmake --build cmake-out/backends/cadence -j$(($(nproc) - 1)) else echo "Building Cadence toolchain with ExecuTorch packages" cmake_prefix_path="${PWD}/cmake-out/lib/cmake/ExecuTorch;${PWD}/cmake-out/third-party/gflags" @@ -78,7 +78,7 @@ else -DEXECUTORCH_FUSION_G3_OPT=ON \ -DHAVE_FNMATCH_H=OFF \ -Bcmake-out - cmake --build cmake-out --target install --config Release -j8 + cmake --build cmake-out --target install --config Release -j$(($(nproc) - 1)) fi echo "Run simple model to verify cmake build" diff --git a/backends/cadence/build_cadence_hifi4.sh b/backends/cadence/build_cadence_hifi4.sh index 70f026fe0b2..e0a69b9b985 100644 --- a/backends/cadence/build_cadence_hifi4.sh +++ b/backends/cadence/build_cadence_hifi4.sh @@ -53,7 +53,7 @@ if $STEPWISE_BUILD; then -DHAVE_FNMATCH_H=OFF \ -Bcmake-out/backends/cadence \ backends/cadence - cmake --build cmake-out/backends/cadence -j8 + cmake --build cmake-out/backends/cadence -j$(($(nproc) - 1)) else echo "Building Cadence toolchain with ExecuTorch packages" cmake_prefix_path="${PWD}/cmake-out/lib/cmake/ExecuTorch;${PWD}/cmake-out/third-party/gflags" @@ -76,7 +76,7 @@ else -DEXECUTORCH_NNLIB_OPT=ON \ -DHAVE_FNMATCH_H=OFF \ -Bcmake-out - cmake --build cmake-out --target install --config Release -j8 + cmake --build cmake-out --target install --config Release -j$(($(nproc) - 1)) fi echo "Run simple model to verify cmake build" diff --git a/backends/cadence/build_cadence_runner.sh b/backends/cadence/build_cadence_runner.sh index a8f44719dc7..8d90cc9001a 100755 --- a/backends/cadence/build_cadence_runner.sh +++ b/backends/cadence/build_cadence_runner.sh @@ -27,7 +27,7 @@ main() { -DEXECUTORCH_ENABLE_EVENT_TRACER=ON \ -DEXECUTORCH_ENABLE_LOGGING=ON \ -Bcmake-out . - cmake --build cmake-out --target install --config Release -j16 + cmake --build cmake-out --target install --config Release -j$(($(nproc) - 1)) local example_dir=backends/cadence local build_dir="cmake-out/${example_dir}" @@ -39,7 +39,7 @@ main() { -DEXECUTORCH_ENABLE_LOGGING=ON \ -B"${build_dir}" \ "${example_dir}" - cmake --build "${build_dir}" --config Release -j16 + cmake --build "${build_dir}" --config Release -j$(($(nproc) - 1)) local runner="${PWD}/${build_dir}/cadence_runner" if [[ ! -f "${runner}" ]]; then diff --git a/backends/cadence/runtime/executor_main.sh b/backends/cadence/runtime/executor_main.sh index 7d6cba09b87..01859645a88 100644 --- a/backends/cadence/runtime/executor_main.sh +++ b/backends/cadence/runtime/executor_main.sh @@ -24,7 +24,7 @@ cmake_install_executorch_devtools_lib() { -DEXECUTORCH_ENABLE_EVENT_TRACER=ON \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" \ -Bcmake-out . - cmake --build cmake-out -j9 --target install --config Release + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release } test_cmake_devtools_example_runner() { @@ -40,7 +40,7 @@ test_cmake_devtools_example_runner() { ${example_dir} echo "Building ${example_dir}" - cmake --build ${build_dir} -j9 --config Release + cmake --build ${build_dir} -j$(($(nproc) - 1)) --config Release echo 'Running devtools/example_runner' ${build_dir}/example_runner --bundled_program_path="./CadenceDemoModel.bpte" diff --git a/backends/mediatek/scripts/mtk_build.sh b/backends/mediatek/scripts/mtk_build.sh index 6c935b3c80c..f01213f94c9 100755 --- a/backends/mediatek/scripts/mtk_build.sh +++ b/backends/mediatek/scripts/mtk_build.sh @@ -39,7 +39,7 @@ cmake -DBUCK2="$BUCK_PATH" \ # Build the project cd .. -cmake --build cmake-android-out -j4 +cmake --build cmake-android-out -j$(($(nproc) - 1)) # Switch back to the original directory cd - > /dev/null diff --git a/backends/vulkan/README.md b/backends/vulkan/README.md index 3ae80950645..65dcde007f0 100644 --- a/backends/vulkan/README.md +++ b/backends/vulkan/README.md @@ -177,7 +177,7 @@ Delegate: -DEXECUTORCH_BUILD_VULKAN=ON \ -DPYTHON_EXECUTABLE=python \ -Bcmake-android-out && \ - cmake --build cmake-android-out -j16 --target install) + cmake --build cmake-android-out -j$(($(nproc) - 1)) --target install) ``` ### Run the Vulkan model on device @@ -193,7 +193,7 @@ GPU! ```shell # Build a model runner binary linked with the Vulkan delegate libs -cmake --build cmake-android-out --target vulkan_executor_runner -j32 +cmake --build cmake-android-out --target vulkan_executor_runner -j$(($(nproc) - 1)) # Push model to device adb push vk_add.pte /data/local/tmp/vk_add.pte diff --git a/backends/vulkan/docs/android_demo.md b/backends/vulkan/docs/android_demo.md index 1f36b76ec6f..80fc763265c 100644 --- a/backends/vulkan/docs/android_demo.md +++ b/backends/vulkan/docs/android_demo.md @@ -94,7 +94,7 @@ binary using the Android NDK toolchain. -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ -DPYTHON_EXECUTABLE=python \ -Bcmake-android-out && \ - cmake --build cmake-android-out -j16 --target install) + cmake --build cmake-android-out -j$(($(nproc) - 1)) --target install) # Build LLaMA Runner library (rm -rf cmake-android-out/examples/models/llama && \ @@ -106,7 +106,7 @@ binary using the Android NDK toolchain. -DCMAKE_INSTALL_PREFIX=cmake-android-out \ -DPYTHON_EXECUTABLE=python \ -Bcmake-android-out/examples/models/llama && \ - cmake --build cmake-android-out/examples/models/llama -j16) + cmake --build cmake-android-out/examples/models/llama -j$(($(nproc) - 1))) ``` Finally, push and run the llama runner binary on your Android device. Note that diff --git a/backends/xnnpack/README.md b/backends/xnnpack/README.md index 411bec99d79..6ed44e4ea1c 100644 --- a/backends/xnnpack/README.md +++ b/backends/xnnpack/README.md @@ -116,7 +116,7 @@ cmake \ Then you can build the runtime componenets with ```bash -cmake --build cmake-out -j9 --target install --config Release +cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` Now you should be able to find the executable built at `./cmake-out/executor_runner` you can run the executable with the model you generated as such diff --git a/docs/source/backends-cadence.md b/docs/source/backends-cadence.md index 9f15656d39c..278af6f178d 100644 --- a/docs/source/backends-cadence.md +++ b/docs/source/backends-cadence.md @@ -186,7 +186,7 @@ cmake -DCMAKE_BUILD_TYPE=Debug \ -Bcmake-out/examples/cadence \ examples/cadence -cmake --build cmake-out/examples/cadence -j8 -t cadence_executorch_example +cmake --build cmake-out/examples/cadence -j$(($(nproc) - 1)) -t cadence_executorch_example ``` After having succesfully run the above step you should see two binary files in their CMake output directory. diff --git a/docs/source/backends-vulkan.md b/docs/source/backends-vulkan.md index 3ae80950645..65dcde007f0 100644 --- a/docs/source/backends-vulkan.md +++ b/docs/source/backends-vulkan.md @@ -177,7 +177,7 @@ Delegate: -DEXECUTORCH_BUILD_VULKAN=ON \ -DPYTHON_EXECUTABLE=python \ -Bcmake-android-out && \ - cmake --build cmake-android-out -j16 --target install) + cmake --build cmake-android-out -j$(($(nproc) - 1)) --target install) ``` ### Run the Vulkan model on device @@ -193,7 +193,7 @@ GPU! ```shell # Build a model runner binary linked with the Vulkan delegate libs -cmake --build cmake-android-out --target vulkan_executor_runner -j32 +cmake --build cmake-android-out --target vulkan_executor_runner -j$(($(nproc) - 1)) # Push model to device adb push vk_add.pte /data/local/tmp/vk_add.pte diff --git a/docs/source/llm/build-run-llama3-qualcomm-ai-engine-direct-backend.md b/docs/source/llm/build-run-llama3-qualcomm-ai-engine-direct-backend.md index 3dbba3ef5bb..174c901c440 100644 --- a/docs/source/llm/build-run-llama3-qualcomm-ai-engine-direct-backend.md +++ b/docs/source/llm/build-run-llama3-qualcomm-ai-engine-direct-backend.md @@ -61,7 +61,7 @@ llama3/Meta-Llama-3-8B-Instruct/tokenizer.model -p -c -c /dev/null diff --git a/examples/models/llama/README.md b/examples/models/llama/README.md index 52d7baeabbf..823774c3864 100644 --- a/examples/models/llama/README.md +++ b/examples/models/llama/README.md @@ -282,7 +282,7 @@ You can export and run the original Llama 3 8B instruct model. -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ -Bcmake-out . - cmake --build cmake-out -j16 --target install --config Release + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` Note for Mac users: There's a known linking issue with Xcode 15.1. Refer to the section of Common Issues and Mitigations below for solutions. @@ -299,7 +299,7 @@ Note for Mac users: There's a known linking issue with Xcode 15.1. Refer to the -Bcmake-out/examples/models/llama \ examples/models/llama - cmake --build cmake-out/examples/models/llama -j16 --config Release + cmake --build cmake-out/examples/models/llama -j$(($(sysctl -n hw.ncpu) - 1)) --config Release ``` 3. Run model. Run options available [here](https://github.com/pytorch/executorch/blob/main/examples/models/llama/main.cpp#L18-L40). @@ -339,7 +339,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ -Bcmake-out-android . -cmake --build cmake-out-android -j16 --target install --config Release +cmake --build cmake-out-android -j$(($(nproc) - 1)) --target install --config Release ``` **1.2 Build llama runner for android** @@ -358,7 +358,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -Bcmake-out-android/examples/models/llama \ examples/models/llama -cmake --build cmake-out-android/examples/models/llama -j16 --config Release +cmake --build cmake-out-android/examples/models/llama -j$(($(nproc) - 1)) --config Release ``` **2. Run on Android via adb shell** @@ -440,7 +440,7 @@ cmake -DPYTHON_EXECUTABLE=python \ -DEXECUTORCH_BUILD_KERNELS_OPTIMIZED=ON \ -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ -Bcmake-out . -cmake --build cmake-out -j16 --target install --config Release +cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` Next install the llama runner with torchao kernels enabled (similar to step 3.2 above): @@ -456,7 +456,7 @@ cmake -DPYTHON_EXECUTABLE=python \ -DEXECUTORCH_BUILD_TORCHAO=ON \ -Bcmake-out/examples/models/llama \ examples/models/llama -cmake --build cmake-out/examples/models/llama -j16 --config Release +cmake --build cmake-out/examples/models/llama -j$(($(nproc) - 1)) --config Release ``` Finally run your model (similar to step 3.3 above): diff --git a/examples/models/phi-3-mini-lora/README.md b/examples/models/phi-3-mini-lora/README.md index 62efda6c3dc..b91a4a8a901 100644 --- a/examples/models/phi-3-mini-lora/README.md +++ b/examples/models/phi-3-mini-lora/README.md @@ -24,7 +24,7 @@ python export_model.py (mkdir cmake-out && cd cmake-out && cmake ..) # Build the executor_runner target -cmake --build cmake-out --target executor_runner -j9 +cmake --build cmake-out --target executor_runner -j$(($(nproc) - 1)) # Run the model for inference. ./cmake-out/executor_runner --model_path phi3_mini_lora.pte diff --git a/examples/models/phi-3-mini/README.md b/examples/models/phi-3-mini/README.md index 3546ce7f1f2..4350cc8aa8c 100644 --- a/examples/models/phi-3-mini/README.md +++ b/examples/models/phi-3-mini/README.md @@ -35,7 +35,7 @@ python -m examples.models.phi-3-mini.export_phi-3-mini -c "4k" -s 128 -o phi-3-m -DEXECUTORCH_BUILD_KERNELS_CUSTOM=ON \ -Bcmake-out . - cmake --build cmake-out -j16 --target install --config Release + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` - Build Phi-3-mini runner. ``` @@ -49,7 +49,7 @@ cmake -DPYTHON_EXECUTABLE=python \ -Bcmake-out/examples/models/phi-3-mini \ examples/models/phi-3-mini -cmake --build cmake-out/examples/models/phi-3-mini -j16 --config Release +cmake --build cmake-out/examples/models/phi-3-mini -j$(($(nproc) - 1)) --config Release ``` - Run model. Options available [here](https://github.com/pytorch/executorch/blob/main/examples/models/phi-3-mini/main.cpp#L13-L30) ``` diff --git a/examples/portable/README.md b/examples/portable/README.md index ef9b44a48a3..fa0fb104679 100644 --- a/examples/portable/README.md +++ b/examples/portable/README.md @@ -49,7 +49,7 @@ Use `-h` (or `--help`) to see all the supported models. (mkdir cmake-out \ && cd cmake-out \ && cmake -DEXECUTORCH_PAL_DEFAULT=posix ..) \ - && cmake --build cmake-out -j32 --target executor_runner + && cmake --build cmake-out -j$(($(nproc) - 1)) --target executor_runner # Run the tool on the generated model. ./cmake-out/executor_runner --model_path mv2.pte diff --git a/examples/portable/custom_ops/test_custom_ops.sh b/examples/portable/custom_ops/test_custom_ops.sh index 5d21d393686..0585dcfb26c 100644 --- a/examples/portable/custom_ops/test_custom_ops.sh +++ b/examples/portable/custom_ops/test_custom_ops.sh @@ -30,7 +30,7 @@ test_cmake_custom_op_1() { ${example_dir} echo "Building ${example_dir}" - cmake --build ${build_dir} -j9 --config Release + cmake --build ${build_dir} -j$(($(nproc) - 1)) --config Release echo 'Running custom_ops_executor_runner' ${build_dir}/custom_ops_executor_runner --model_path="./${model_name}.pte" @@ -66,7 +66,7 @@ test_cmake_custom_op_2() { ${example_dir} echo "Building ${example_dir}" - cmake --build ${build_dir} -j9 --config Release + cmake --build ${build_dir} -j$(($(nproc) - 1)) --config Release EXT=$(get_shared_lib_ext) echo "Exporting ${model_name}.pte" diff --git a/examples/portable/scripts/test_demo_backend_delegation.sh b/examples/portable/scripts/test_demo_backend_delegation.sh index d1ecf9150f9..57452f12624 100644 --- a/examples/portable/scripts/test_demo_backend_delegation.sh +++ b/examples/portable/scripts/test_demo_backend_delegation.sh @@ -24,7 +24,7 @@ build_cmake_executor_runner() { && cd ${CMAKE_OUTPUT_DIR} \ && retry cmake -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" ..) - cmake --build ${CMAKE_OUTPUT_DIR} -j4 + cmake --build ${CMAKE_OUTPUT_DIR} -j$(($(nproc) - 1)) } test_demo_backend_delegation() { diff --git a/examples/qualcomm/test_qualcomm.sh b/examples/qualcomm/test_qualcomm.sh index 19d3d798418..1827c7b7726 100644 --- a/examples/qualcomm/test_qualcomm.sh +++ b/examples/qualcomm/test_qualcomm.sh @@ -21,7 +21,7 @@ cmake_install_executorch_qnn_lib() { -DEXECUTORCH_BUILD_QNN=ON \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" \ -Bcmake-out . - cmake --build cmake-out -j9 --target install --config Release + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release } test_cmake_qualcomm() { @@ -45,7 +45,7 @@ test_cmake_qualcomm() { ${example_dir} echo "Building ${example_dir}" - cmake --build ${build_dir} -j9 --config Release + cmake --build ${build_dir} -j$(($(nproc) - 1)) --config Release # Need to run on device # ${build_dir}/qnn_executor_runner --model_path="./mv2_qnn.pte" } diff --git a/examples/selective_build/test_selective_build.sh b/examples/selective_build/test_selective_build.sh index 324a4fe27a5..1df74742445 100644 --- a/examples/selective_build/test_selective_build.sh +++ b/examples/selective_build/test_selective_build.sh @@ -100,7 +100,7 @@ test_cmake_select_all_ops() { ${example_dir} echo "Building ${example_dir}" - cmake --build ${build_dir} -j9 --config Release + cmake --build ${build_dir} -j$(($(nproc) - 1)) --config Release echo 'Running selective build test' ${build_dir}/selective_build_test --model_path="./mv3.pte" @@ -129,7 +129,7 @@ aten,aten::clone.out" \ ${example_dir} echo "Building ${example_dir}" - cmake --build ${build_dir} -j9 --config Release + cmake --build ${build_dir} -j$(($(nproc) - 1)) --config Release echo 'Running selective build test' ${build_dir}/selective_build_test --model_path="./mv2.pte" @@ -152,7 +152,7 @@ test_cmake_select_ops_in_yaml() { ${example_dir} echo "Building ${example_dir}" - cmake --build ${build_dir} -j9 --config Release + cmake --build ${build_dir} -j$(($(nproc) - 1)) --config Release echo 'Running selective build test' ${build_dir}/selective_build_test --model_path="./custom_ops_1.pte" diff --git a/examples/xnnpack/README.md b/examples/xnnpack/README.md index 6fe1f0488b2..1cde7a66d85 100644 --- a/examples/xnnpack/README.md +++ b/examples/xnnpack/README.md @@ -50,7 +50,7 @@ cmake \ Then you can build the runtime components with ```bash -cmake --build cmake-out -j9 --target install --config Release +cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` Now finally you should be able to run this model with the following command @@ -104,7 +104,7 @@ cmake \ Then you can build the runtime componenets with ```bash -cmake --build cmake-out -j9 --target install --config Release +cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` Now you should be able to find the executable built at `./cmake-out/executor_runner` you can run the executable with the model you generated as such diff --git a/examples/xnnpack/quantization/test_quantize.sh b/examples/xnnpack/quantization/test_quantize.sh index 1f50667c788..5c886ab8cf4 100644 --- a/examples/xnnpack/quantization/test_quantize.sh +++ b/examples/xnnpack/quantization/test_quantize.sh @@ -56,7 +56,7 @@ test_cmake_quantization() { -DEXECUTORCH_BUILD_KERNELS_QUANTIZED_AOT=ON \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" ..) - cmake --build cmake-out -j4 + cmake --build cmake-out -j$(($(nproc) - 1)) EXT=$(get_shared_lib_ext) SO_LIB="cmake-out/kernels/quantized/libquantized_ops_aot_lib$EXT" diff --git a/executorch.sln b/executorch.sln new file mode 100644 index 00000000000..ab8dc920dec --- /dev/null +++ b/executorch.sln @@ -0,0 +1,110 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "third-party", "third-party", "{C53924FE-98D2-80FD-04F3-50636C3DA32C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "backends", "backends", "{81267934-4FE5-6C83-B806-5B06E723B05C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "flatbuffers", "flatbuffers", "{5026C768-8FD1-4085-4CC3-9F5C57A1BA40}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "net", "net", "{01E2E2B0-BBDC-4436-A1AF-6160D4D6D624}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Google.FlatBuffers", "third-party\flatbuffers\net\FlatBuffers\Google.FlatBuffers.csproj", "{68D1100F-88A4-E459-F792-1A099C6FF806}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C08BD72E-D16A-4985-4541-847D144CCFF5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatBuffers.Benchmarks", "third-party\flatbuffers\tests\FlatBuffers.Benchmarks\FlatBuffers.Benchmarks.csproj", "{31E7DBBD-7CDB-11F7-B8F3-99B7F5C8FF96}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatBuffers.Test", "third-party\flatbuffers\tests\FlatBuffers.Test\FlatBuffers.Test.csproj", "{26522F05-8CD1-D1CD-D0BB-BB6E3F5A5C36}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "arm", "arm", "{59B62699-1B6F-F720-B190-9FB90EE5E9E3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "third-party", "third-party", "{477CAA8C-9AF6-86B6-E15A-8EA998F1CB4D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "serialization_lib", "serialization_lib", "{7DF487A7-B2CB-14E6-0229-EF67D0C7F1FB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "third_party", "third_party", "{EC4174BD-2821-F221-653D-C23D2F52F154}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "flatbuffers", "flatbuffers", "{E11B79A9-2F91-145A-AC8A-246CF0950B72}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "net", "net", "{79EC58F1-E072-B5EF-0524-1334712EBD44}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatBuffers.net35", "backends\arm\third-party\serialization_lib\third_party\flatbuffers\net\FlatBuffers\FlatBuffers.net35.csproj", "{10B1584E-2E70-257B-DCF0-73B79D443A3A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Google.FlatBuffers", "backends\arm\third-party\serialization_lib\third_party\flatbuffers\net\FlatBuffers\Google.FlatBuffers.csproj", "{D05E2E1C-6D5B-FB54-28D4-7F736CFD50AF}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4BE31C1E-8669-80E7-6FA7-101B1999C5F8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatBuffers.Benchmarks", "backends\arm\third-party\serialization_lib\third_party\flatbuffers\tests\FlatBuffers.Benchmarks\FlatBuffers.Benchmarks.csproj", "{70998912-4988-D594-9A6E-E7B7C644DE81}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatBuffers.Core.Test", "backends\arm\third-party\serialization_lib\third_party\flatbuffers\tests\FlatBuffers.Test\FlatBuffers.Core.Test.csproj", "{9F65434A-883D-1C8F-36F9-6776D58BBC60}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlatBuffers.Test", "backends\arm\third-party\serialization_lib\third_party\flatbuffers\tests\FlatBuffers.Test\FlatBuffers.Test.csproj", "{29C77DE4-5474-74BF-DFE8-45A3CC80FADD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {68D1100F-88A4-E459-F792-1A099C6FF806}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68D1100F-88A4-E459-F792-1A099C6FF806}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68D1100F-88A4-E459-F792-1A099C6FF806}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68D1100F-88A4-E459-F792-1A099C6FF806}.Release|Any CPU.Build.0 = Release|Any CPU + {31E7DBBD-7CDB-11F7-B8F3-99B7F5C8FF96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {31E7DBBD-7CDB-11F7-B8F3-99B7F5C8FF96}.Debug|Any CPU.Build.0 = Debug|Any CPU + {31E7DBBD-7CDB-11F7-B8F3-99B7F5C8FF96}.Release|Any CPU.ActiveCfg = Release|Any CPU + {31E7DBBD-7CDB-11F7-B8F3-99B7F5C8FF96}.Release|Any CPU.Build.0 = Release|Any CPU + {26522F05-8CD1-D1CD-D0BB-BB6E3F5A5C36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26522F05-8CD1-D1CD-D0BB-BB6E3F5A5C36}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26522F05-8CD1-D1CD-D0BB-BB6E3F5A5C36}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26522F05-8CD1-D1CD-D0BB-BB6E3F5A5C36}.Release|Any CPU.Build.0 = Release|Any CPU + {10B1584E-2E70-257B-DCF0-73B79D443A3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10B1584E-2E70-257B-DCF0-73B79D443A3A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10B1584E-2E70-257B-DCF0-73B79D443A3A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10B1584E-2E70-257B-DCF0-73B79D443A3A}.Release|Any CPU.Build.0 = Release|Any CPU + {D05E2E1C-6D5B-FB54-28D4-7F736CFD50AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D05E2E1C-6D5B-FB54-28D4-7F736CFD50AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D05E2E1C-6D5B-FB54-28D4-7F736CFD50AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D05E2E1C-6D5B-FB54-28D4-7F736CFD50AF}.Release|Any CPU.Build.0 = Release|Any CPU + {70998912-4988-D594-9A6E-E7B7C644DE81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70998912-4988-D594-9A6E-E7B7C644DE81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70998912-4988-D594-9A6E-E7B7C644DE81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70998912-4988-D594-9A6E-E7B7C644DE81}.Release|Any CPU.Build.0 = Release|Any CPU + {9F65434A-883D-1C8F-36F9-6776D58BBC60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F65434A-883D-1C8F-36F9-6776D58BBC60}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F65434A-883D-1C8F-36F9-6776D58BBC60}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F65434A-883D-1C8F-36F9-6776D58BBC60}.Release|Any CPU.Build.0 = Release|Any CPU + {29C77DE4-5474-74BF-DFE8-45A3CC80FADD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29C77DE4-5474-74BF-DFE8-45A3CC80FADD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29C77DE4-5474-74BF-DFE8-45A3CC80FADD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29C77DE4-5474-74BF-DFE8-45A3CC80FADD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {5026C768-8FD1-4085-4CC3-9F5C57A1BA40} = {C53924FE-98D2-80FD-04F3-50636C3DA32C} + {01E2E2B0-BBDC-4436-A1AF-6160D4D6D624} = {5026C768-8FD1-4085-4CC3-9F5C57A1BA40} + {68D1100F-88A4-E459-F792-1A099C6FF806} = {01E2E2B0-BBDC-4436-A1AF-6160D4D6D624} + {C08BD72E-D16A-4985-4541-847D144CCFF5} = {5026C768-8FD1-4085-4CC3-9F5C57A1BA40} + {31E7DBBD-7CDB-11F7-B8F3-99B7F5C8FF96} = {C08BD72E-D16A-4985-4541-847D144CCFF5} + {26522F05-8CD1-D1CD-D0BB-BB6E3F5A5C36} = {C08BD72E-D16A-4985-4541-847D144CCFF5} + {59B62699-1B6F-F720-B190-9FB90EE5E9E3} = {81267934-4FE5-6C83-B806-5B06E723B05C} + {477CAA8C-9AF6-86B6-E15A-8EA998F1CB4D} = {59B62699-1B6F-F720-B190-9FB90EE5E9E3} + {7DF487A7-B2CB-14E6-0229-EF67D0C7F1FB} = {477CAA8C-9AF6-86B6-E15A-8EA998F1CB4D} + {EC4174BD-2821-F221-653D-C23D2F52F154} = {7DF487A7-B2CB-14E6-0229-EF67D0C7F1FB} + {E11B79A9-2F91-145A-AC8A-246CF0950B72} = {EC4174BD-2821-F221-653D-C23D2F52F154} + {79EC58F1-E072-B5EF-0524-1334712EBD44} = {E11B79A9-2F91-145A-AC8A-246CF0950B72} + {10B1584E-2E70-257B-DCF0-73B79D443A3A} = {79EC58F1-E072-B5EF-0524-1334712EBD44} + {D05E2E1C-6D5B-FB54-28D4-7F736CFD50AF} = {79EC58F1-E072-B5EF-0524-1334712EBD44} + {4BE31C1E-8669-80E7-6FA7-101B1999C5F8} = {E11B79A9-2F91-145A-AC8A-246CF0950B72} + {70998912-4988-D594-9A6E-E7B7C644DE81} = {4BE31C1E-8669-80E7-6FA7-101B1999C5F8} + {9F65434A-883D-1C8F-36F9-6776D58BBC60} = {4BE31C1E-8669-80E7-6FA7-101B1999C5F8} + {29C77DE4-5474-74BF-DFE8-45A3CC80FADD} = {4BE31C1E-8669-80E7-6FA7-101B1999C5F8} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DB517108-1AEF-4D84-827B-5517858D56A1} + EndGlobalSection +EndGlobal diff --git a/extension/training/README.md b/extension/training/README.md index f6f8d5139a6..96d7af23db6 100644 --- a/extension/training/README.md +++ b/extension/training/README.md @@ -248,7 +248,7 @@ cmake \ Then you can build the runtime componenets with ```bash -cmake --build cmake-out -j9 --target install --config Release +cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` Now you should be able to find the executable built at `./cmake-out/extension/training/train_xor` you can run the executable with the model you generated as such diff --git a/kernels/README.md b/kernels/README.md index 58931beb984..8c3d8a1c5fe 100644 --- a/kernels/README.md +++ b/kernels/README.md @@ -255,7 +255,7 @@ cmake -DCMAKE_INSTALL_PREFIX=cmake-out \ -DCMAKE_BUILD_TYPE=Release \ -DPYTHON_EXECUTABLE=python \ -Bcmake-out . -cmake --build cmake-out -j9 --target install --config Release +cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release ``` 2. The generated `NativeFunctions.h` file is located in ``` @@ -365,7 +365,7 @@ cmake . \ -DEXECUTORCH_BUILD_TESTS=ON \ -Bcmake-out -cmake --build cmake-out -j9 --target install +cmake --build cmake-out -j$(($(nproc) - 1)) --target install ``` 2. Run tests. You should see your test here. ``` diff --git a/test/build_optimized_size_test.sh b/test/build_optimized_size_test.sh index d7b055559f0..7a38c9a876e 100644 --- a/test/build_optimized_size_test.sh +++ b/test/build_optimized_size_test.sh @@ -30,14 +30,14 @@ cmake_install_executorch_lib() { -DEXECUTORCH_OPTIMIZE_SIZE=ON \ -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" \ -Bcmake-out . - cmake --build cmake-out -j9 --target install --config MinSizeRel + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config MinSizeRel } test_cmake_size_test() { CXXFLAGS="-g" retry cmake -DCMAKE_BUILD_TYPE=MinSizeRel -DEXECUTORCH_BUILD_KERNELS_OPTIMIZED=ON -DCMAKE_INSTALL_PREFIX=cmake-out -Bcmake-out/test test echo "Build size test" - cmake --build cmake-out/test -j9 --config MinSizeRel + cmake --build cmake-out/test -j$(($(nproc) - 1)) --config MinSizeRel echo 'ExecuTorch with no ops binary size, unstripped:' ls -al cmake-out/test/size_test diff --git a/test/build_size_test.sh b/test/build_size_test.sh index d020ab58c95..95124d365fd 100644 --- a/test/build_size_test.sh +++ b/test/build_size_test.sh @@ -32,7 +32,7 @@ cmake_install_executorch_lib() { -DPYTHON_EXECUTABLE="$PYTHON_EXECUTABLE" \ ${EXTRA_BUILD_ARGS} \ -Bcmake-out . - cmake --build cmake-out -j9 --target install --config Release + cmake --build cmake-out -j$(($(nproc) - 1)) --target install --config Release } test_cmake_size_test() { @@ -42,7 +42,7 @@ test_cmake_size_test() { -Bcmake-out/test test echo "Build size test" - cmake --build cmake-out/test -j9 --config Release + cmake --build cmake-out/test -j$(($(nproc) - 1)) --config Release echo 'ExecuTorch with no ops binary size, unstripped:' ls -al cmake-out/test/size_test diff --git a/test/run_oss_cpp_tests.sh b/test/run_oss_cpp_tests.sh index 422cd579d04..277185a5c06 100755 --- a/test/run_oss_cpp_tests.sh +++ b/test/run_oss_cpp_tests.sh @@ -49,7 +49,7 @@ build_executorch() { -DEXECUTORCH_BUILD_XNNPACK=ON \ -DEXECUTORCH_BUILD_TESTS=ON \ -Bcmake-out - cmake --build cmake-out -j9 --target install + cmake --build cmake-out -j$(($(nproc) - 1)) --target install } build_and_run_test() {