diff --git a/backends/arm/cmsis_pack/README.md b/backends/arm/cmsis_pack/README.md index 8fbc780389f..14bccb819f2 100644 --- a/backends/arm/cmsis_pack/README.md +++ b/backends/arm/cmsis_pack/README.md @@ -64,7 +64,7 @@ cmake \ -DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON \ -DEXECUTORCH_BUILD_FLATC=ON \ -Bcmake-out-arm . -cmake --build cmake-out-arm --config Release -j$(nproc) +cmake --build cmake-out-arm --config Release -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) # 2. Build the pack. --output-dir is where the .pack archive lands # (created if absent); each invocation rewrites this directory. diff --git a/backends/arm/scripts/docgen/ethos-u/ethos-u-getting-started-tutorial.md.in b/backends/arm/scripts/docgen/ethos-u/ethos-u-getting-started-tutorial.md.in index bce2eb7000a..2a9cc1d7a4d 100644 --- a/backends/arm/scripts/docgen/ethos-u/ethos-u-getting-started-tutorial.md.in +++ b/backends/arm/scripts/docgen/ethos-u/ethos-u-getting-started-tutorial.md.in @@ -91,7 +91,7 @@ cmake -S examples/arm/executor_runner/standalone \ -DETHOSU_TARGET_NPU_CONFIG=ethos-u55-128 \ -DMEMORY_MODE=Shared_Sram \ -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded -cmake --build ethos_u_minimal_example -j$(nproc) -- arm_executor_runner +cmake --build ethos_u_minimal_example -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner ``` ```{tip} diff --git a/docs/source/backends/arm-cortex-m/arm-cortex-m-overview.md b/docs/source/backends/arm-cortex-m/arm-cortex-m-overview.md index 9094ab96d51..dfc925462ae 100644 --- a/docs/source/backends/arm-cortex-m/arm-cortex-m-overview.md +++ b/docs/source/backends/arm-cortex-m/arm-cortex-m-overview.md @@ -144,7 +144,7 @@ cmake --preset arm-baremetal \ -DCMAKE_BUILD_TYPE=Release \ -DEXECUTORCH_BUILD_DEVTOOLS=ON \ -Bcmake-out-arm -cmake --build cmake-out-arm --target install -j$(nproc) +cmake --build cmake-out-arm --target install -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) # Build the executor runner, linking the .pte into the binary cmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake \ @@ -153,7 +153,7 @@ cmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/examples/arm/ethos-u-setup/arm-none-eabi-gcc -DTARGET_CPU=cortex-m55 \ -Bbuild \ examples/arm/executor_runner -cmake --build build -j$(nproc) -- arm_executor_runner +cmake --build build -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner ``` Run on a simulated Cortex-M target: diff --git a/docs/source/backends/arm-ethos-u/tutorials/ethos-u-getting-started.md b/docs/source/backends/arm-ethos-u/tutorials/ethos-u-getting-started.md index 7e4056720d2..7d72e127ce4 100644 --- a/docs/source/backends/arm-ethos-u/tutorials/ethos-u-getting-started.md +++ b/docs/source/backends/arm-ethos-u/tutorials/ethos-u-getting-started.md @@ -164,7 +164,7 @@ cmake -S examples/arm/executor_runner/standalone \ -DETHOSU_TARGET_NPU_CONFIG=ethos-u55-128 \ -DMEMORY_MODE=Shared_Sram \ -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded -cmake --build ethos_u_minimal_example -j$(nproc) -- arm_executor_runner +cmake --build ethos_u_minimal_example -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner ``` ```{tip} diff --git a/examples/arm/cortex_m_mv2_example.ipynb b/examples/arm/cortex_m_mv2_example.ipynb index 36844b4e5fd..711a0c1175e 100644 --- a/examples/arm/cortex_m_mv2_example.ipynb +++ b/examples/arm/cortex_m_mv2_example.ipynb @@ -129,14 +129,14 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": "%%bash\n\n# Build executorch libraries cross-compiled for arm baremetal to executorch/cmake-out-arm\ncmake --preset arm-baremetal \\\n-DCMAKE_BUILD_TYPE=Release \\\n-DEXECUTORCH_BUILD_DEVTOOLS=ON \\\n-B../../cmake-out-arm ../..\ncmake --build ../../cmake-out-arm --target install -j$(nproc) \n" + "source": "%%bash\n\n# Build executorch libraries cross-compiled for arm baremetal to executorch/cmake-out-arm\ncmake --preset arm-baremetal \\\n-DCMAKE_BUILD_TYPE=Release \\\n-DEXECUTORCH_BUILD_DEVTOOLS=ON \\\n-B../../cmake-out-arm ../..\ncmake --build ../../cmake-out-arm --target install -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) \n" }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": "%%bash \n# Build example executor runner application to examples/arm/cortex_m_mv2_example\n# Note that this is the same runner as used in the Ethos-U example, creating some overlap in the config even though the Ethos-U is not used.\ncmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/ethos-u-setup/arm-none-eabi-gcc.cmake \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DET_PTE_FILE_PATH=cortex_m_mv2_example.bpte \\\n -DTARGET_CPU=cortex-m55 \\\n -DETHOSU_TARGET_NPU_CONFIG=ethos-u55-128 \\\n -DMEMORY_MODE=Shared_Sram \\\n -DET_BUNDLE_IO=ON \\\n -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded \\\n -Bcortex_m_mv2_example \\\n -S executor_runner/standalone\ncmake --build cortex_m_mv2_example -j$(nproc) -- arm_executor_runner" + "source": "%%bash \n# Build example executor runner application to examples/arm/cortex_m_mv2_example\n# Note that this is the same runner as used in the Ethos-U example, creating some overlap in the config even though the Ethos-U is not used.\ncmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/ethos-u-setup/arm-none-eabi-gcc.cmake \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DET_PTE_FILE_PATH=cortex_m_mv2_example.bpte \\\n -DTARGET_CPU=cortex-m55 \\\n -DETHOSU_TARGET_NPU_CONFIG=ethos-u55-128 \\\n -DMEMORY_MODE=Shared_Sram \\\n -DET_BUNDLE_IO=ON \\\n -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded \\\n -Bcortex_m_mv2_example \\\n -S executor_runner/standalone\ncmake --build cortex_m_mv2_example -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner" }, { "cell_type": "markdown", diff --git a/examples/arm/ethos_u_cmsis_nn_fallback_example.ipynb b/examples/arm/ethos_u_cmsis_nn_fallback_example.ipynb index 0dd8f7045fb..8b0c31d8ddf 100644 --- a/examples/arm/ethos_u_cmsis_nn_fallback_example.ipynb +++ b/examples/arm/ethos_u_cmsis_nn_fallback_example.ipynb @@ -206,7 +206,7 @@ " -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded \\\n", " -Bethos_u_cmsis_nn_fallback_example \\\n", " -S executor_runner/standalone\n", - "cmake --build ethos_u_cmsis_nn_fallback_example -j$(nproc) -- arm_executor_runner" + "cmake --build ethos_u_cmsis_nn_fallback_example -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner" ] }, { diff --git a/examples/arm/ethos_u_minimal_example.ipynb b/examples/arm/ethos_u_minimal_example.ipynb index 11f24019d23..d3abda41ffe 100644 --- a/examples/arm/ethos_u_minimal_example.ipynb +++ b/examples/arm/ethos_u_minimal_example.ipynb @@ -196,7 +196,7 @@ " -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded \\\n", " -Bethos_u_minimal_example \\\n", " -S executor_runner/standalone\n", - "cmake --build ethos_u_minimal_example -j$(nproc) -- arm_executor_runner" + "cmake --build ethos_u_minimal_example -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner" ] }, { diff --git a/examples/arm/image_classification_example_ethos_u/runtime/README.md b/examples/arm/image_classification_example_ethos_u/runtime/README.md index dbabb6874e8..c166250e802 100644 --- a/examples/arm/image_classification_example_ethos_u/runtime/README.md +++ b/examples/arm/image_classification_example_ethos_u/runtime/README.md @@ -8,7 +8,7 @@ $ cmake --preset arm-baremetal \ -DCMAKE_BUILD_TYPE=Release \ -B../../cmake-out-arm ../.. -cmake --build ../../cmake-out-arm --target install -j$(nproc) +cmake --build ../../cmake-out-arm --target install -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) ``` 3. Set up the build system. You need to provide path to the DEiT-Tiny pte generated in the @@ -21,7 +21,7 @@ $ cmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/ethos-u-setup/arm-none-eabi-gcc.cmake -DET 4. Compile the application. ``` -$ cmake --build simple_app_deit_tiny -j$(nproc) -- img_class_example +$ cmake --build simple_app_deit_tiny -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- img_class_example ``` 5. Deploy the application on the Corstone-320 Fixed Virtual Platform. Assuming you have the Corstone-320 installed on your path, do the following command to deploy the application. diff --git a/examples/arm/mobilesam_prompt_segmentation_example_ethos_u/runtime/README.md b/examples/arm/mobilesam_prompt_segmentation_example_ethos_u/runtime/README.md index f422edc6ad9..f201b88a5cf 100644 --- a/examples/arm/mobilesam_prompt_segmentation_example_ethos_u/runtime/README.md +++ b/examples/arm/mobilesam_prompt_segmentation_example_ethos_u/runtime/README.md @@ -19,7 +19,7 @@ Build and install the Arm bare-metal ExecuTorch libraries from cmake --preset arm-baremetal \ -DCMAKE_BUILD_TYPE=Release \ -B../../cmake-out-arm ../.. -cmake --build ../../cmake-out-arm --target install -j$(nproc) +cmake --build ../../cmake-out-arm --target install -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) ``` The Arm bare-metal preset installs into the build directory. If you use a @@ -67,7 +67,7 @@ can inspect and retune post-processing without re-exporting the graph. ## Compile ```bash -cmake --build mobilesam_point_runtime -j$(nproc) -- mobilesam_prompt_segmentation_example +cmake --build mobilesam_point_runtime -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- mobilesam_prompt_segmentation_example ``` ## Run on Corstone-320 FVP diff --git a/examples/arm/pruning_minimal_example.ipynb b/examples/arm/pruning_minimal_example.ipynb index a24c6626a15..01fb7e9601d 100644 --- a/examples/arm/pruning_minimal_example.ipynb +++ b/examples/arm/pruning_minimal_example.ipynb @@ -432,7 +432,7 @@ "cmake --preset arm-baremetal \\\n", "-DCMAKE_BUILD_TYPE=Release \\\n", "-B../../cmake-out-arm ../..\n", - "cmake --build ../../cmake-out-arm --target install -j$(nproc) " + "cmake --build ../../cmake-out-arm --target install -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) " ] }, { @@ -454,7 +454,7 @@ " -DSYSTEM_CONFIG=Ethos_U85_SYS_DRAM_Mid \\\n", " -Bethos_u_original_model \\\n", " -S executor_runner/standalone\n", - "cmake --build ethos_u_original_model -j$(nproc) -- arm_executor_runner" + "cmake --build ethos_u_original_model -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner" ] }, { @@ -500,7 +500,7 @@ " -DSYSTEM_CONFIG=Ethos_U85_SYS_DRAM_Mid \\\n", " -Bethos_u_pruned_model \\\n", " -S executor_runner/standalone\n", - "cmake --build ethos_u_pruned_model -j$(nproc) -- arm_executor_runner" + "cmake --build ethos_u_pruned_model -j$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu) + 1 )) -- arm_executor_runner" ] }, {