Skip to content

Commit 6003b69

Browse files
authored
Revert "Arm backend: Add pypi package install option for VGF backend" (#15681)
Reverts #15551 This is causing internal test failures: * Error outside of ExecuTorch: ModuleNotFoundError: No module named 'executorch.backends.arm.vgf.model_converter' Errors inside of ExecuTorch: * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:cos * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:custom_partition * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:debug_hook * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:decompose_avg_pool2d_pass * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:decompose_cosine_similarity_pass * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:decompose_div_pass * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:decompose_layernorm_pass * buck test '@fbcode//mode/opt' fbcode//executorch/backends/arm/test:decompose_linalg_vector_norm_pass
1 parent 3dbc15b commit 6003b69

File tree

8 files changed

+32
-222
lines changed

8 files changed

+32
-222
lines changed

backends/arm/CMakeLists.txt

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -48,44 +48,17 @@ endif()
4848

4949
# VGF backend builds
5050
if(EXECUTORCH_BUILD_VGF)
51+
52+
# include libvgf
53+
set(LIBVGF_PATH
54+
"${EXECUTORCH_ROOT}/examples/arm/ethos-u-scratch/ml-sdk-for-vulkan-manifest/sw/vgf-lib/"
55+
)
56+
5157
set(VULKAN_THIRD_PARTY_PATH ${EXECUTORCH_ROOT}/backends/vulkan/third-party)
5258
set(VULKAN_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH}/Vulkan-Headers/include)
5359
set(VOLK_HEADERS_PATH ${VULKAN_THIRD_PARTY_PATH}/volk)
5460

55-
if(APPLE
56-
OR CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64|aarch64)$"
57-
OR EXISTS
58-
"${EXECUTORCH_ROOT}/examples/arm/ethos-u-scratch/ml-sdk-for-vulkan-manifest/"
59-
)
60-
message(STATUS "libvgf sourced from local scratch tree")
61-
62-
# Legacy layout: libvgf sourced from local scratch tree
63-
set(LIBVGF_PATH
64-
"${EXECUTORCH_ROOT}/examples/arm/ethos-u-scratch/ml-sdk-for-vulkan-manifest/sw/vgf-lib/"
65-
)
66-
set(LIBVGF_STATIC "${LIBVGF_PATH}/build/src/libvgf.a")
67-
else()
68-
message(STATUS "libvgf installed from pip package")
69-
70-
set(Python3_FIND_VIRTUALENV FIRST)
71-
if(EXECUTORCH_ROOT AND EXISTS "${EXECUTORCH_ROOT}/env")
72-
set(Python3_EXECUTABLE "${EXECUTORCH_ROOT}/env/bin/python3")
73-
endif()
74-
75-
find_package(Python3 REQUIRED COMPONENTS Interpreter)
76-
77-
# Prefer arch-specific site-packages if present, else pure
78-
set(_vgf_site_arch "${Python3_SITEARCH}/vgf_lib/binaries")
79-
set(_vgf_site_pure "${Python3_SITELIB}/vgf_lib/binaries")
80-
if(EXISTS "${_vgf_site_arch}")
81-
set(LIBVGF_PATH "${_vgf_site_arch}")
82-
else()
83-
set(LIBVGF_PATH "${_vgf_site_pure}")
84-
endif()
85-
86-
set(LIBVGF_STATIC "${LIBVGF_PATH}/lib/libvgf.a")
87-
endif()
88-
61+
set(LIBVGF_STATIC "${LIBVGF_PATH}/build/src/libvgf.a")
8962
set(LIBVGF_INCLUDE "${LIBVGF_PATH}/include/")
9063

9164
add_library(vgf STATIC IMPORTED)

backends/arm/requirements-arm-vgf.txt

Lines changed: 0 additions & 8 deletions
This file was deleted.

backends/arm/scripts/mlsdk_utils.sh

Lines changed: 1 addition & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -205,51 +205,7 @@ function setup_path_emulation_layer() {
205205
model_emulation_layer_path="$(cd "${mlsdk_manifest_dir}/sw/emulation-layer/" && pwd)"
206206
prepend_env_in_setup_path LD_LIBRARY_PATH "${model_emulation_layer_path}/deploy/lib"
207207
prepend_env_in_setup_path DYLD_LIBRARY_PATH "${model_emulation_layer_path}/deploy/lib"
208-
prepend_env_in_setup_path VK_LAYER_PATH "${model_emulation_layer_path}/deploy/share/vulkan/explicit_layer.d"
209208
prepend_env_in_setup_path VK_INSTANCE_LAYERS VK_LAYER_ML_Tensor_Emulation
210209
prepend_env_in_setup_path VK_INSTANCE_LAYERS VK_LAYER_ML_Graph_Emulation
211-
}
212-
213-
function setup_path_emulation_layer_from_pip() {
214-
if ! command -v emulation_layer >/dev/null 2>&1; then
215-
echo "[mlsdk_utils] 'emulation_layer' command not found; skipping pip emulation layer path setup"
216-
return
217-
fi
218-
219-
local output
220-
if ! output=$(emulation_layer 2>/dev/null); then
221-
echo "[mlsdk_utils] Failed to query emulation_layer environment; skipping"
222-
return
223-
fi
224-
225-
local exports
226-
exports=$(echo "$output" | grep '^export ' || true)
227-
228-
local ld_line
229-
ld_line=$(echo "$exports" | grep 'LD_LIBRARY_PATH=' || true)
230-
if [[ -n "${ld_line}" ]]; then
231-
local ld_value=${ld_line#export LD_LIBRARY_PATH=}
232-
ld_value=${ld_value%%:\$LD_LIBRARY_PATH*}
233-
if [[ -n "${ld_value}" ]]; then
234-
prepend_env_in_setup_path LD_LIBRARY_PATH "${ld_value}"
235-
fi
236-
fi
237-
238-
local vk_add_line
239-
vk_add_line=$(echo "$exports" | grep 'VK_ADD_LAYER_PATH=' || true)
240-
if [[ -n "${vk_add_line}" ]]; then
241-
local vk_add_value=${vk_add_line#export VK_ADD_LAYER_PATH=}
242-
if [[ -n "${vk_add_value}" ]]; then
243-
prepend_env_in_setup_path VK_ADD_LAYER_PATH "${vk_add_value}"
244-
fi
245-
fi
246-
247-
local vk_instance_line
248-
vk_instance_line=$(echo "$exports" | grep 'VK_INSTANCE_LAYERS=' || true)
249-
if [[ -n "${vk_instance_line}" ]]; then
250-
local vk_instance_value=${vk_instance_line#export VK_INSTANCE_LAYERS=}
251-
if [[ -n "${vk_instance_value}" ]]; then
252-
prepend_env_in_setup_path VK_INSTANCE_LAYERS "${vk_instance_value}"
253-
fi
254-
fi
210+
prepend_env_in_setup_path VK_LAYER_PATH "${model_emulation_layer_path}/deploy/share/vulkan/explicit_layer.d"
255211
}

backends/arm/scripts/run_vkml.sh

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,9 @@ if [[ -z ${model} ]]; then echo "Model name needs to be provided"; exit 1; fi
5050

5151
source ${setup_path_script}
5252

53-
if ! command -v "${converter}" >/dev/null 2>&1; then
54-
if command -v model_converter >/dev/null 2>&1; then
55-
converter="model_converter"
56-
fi
57-
fi
58-
59-
command -v "${converter}" >/dev/null 2>&1 \
60-
|| { echo "Could not find a model converter executable (tried model-converter, model_converter). ${_setup_msg}"; exit 1; }
53+
# basic checks before we get started
54+
hash ${converter} \
55+
|| { echo "Could not find ${converter} on PATH, ${_setup_msg}"; exit 1; }
6156

6257

6358

backends/arm/test/runner_utils.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
from executorch.backends.arm.tosa.compile_spec import TosaCompileSpec
3232
from executorch.backends.arm.tosa.specification import Tosa_1_00, TosaSpecification
3333
from executorch.backends.arm.vgf import VgfCompileSpec
34-
from executorch.backends.arm.vgf.model_converter import find_model_converter_binary
3534
from executorch.exir import ExecutorchProgramManager, ExportedProgram
3635
from executorch.exir.lowered_backend_module import LoweredBackendModule
3736
from torch.fx.node import Node
@@ -679,15 +678,11 @@ def corstone320_installed() -> bool:
679678

680679

681680
def model_converter_installed() -> bool:
682-
model_converter = find_model_converter_binary()
683-
if model_converter is None:
684-
return False
685-
681+
cmd = ["model-converter", "--version"]
686682
try:
687-
_run_cmd([model_converter, "--version"], check=True)
688-
except Exception:
683+
_run_cmd(cmd, check=True)
684+
except:
689685
return False
690-
691686
return True
692687

693688

backends/arm/vgf/backend.py

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,13 @@
1717
import tempfile
1818
from typing import final, List
1919

20-
from executorch.backends.arm.tosa.backend import ( # type: ignore[import-not-found]
20+
from executorch.backends.arm.tosa.backend import (
2121
arm_get_first_delegation_tag,
2222
TOSABackend,
2323
)
24-
25-
from executorch.backends.arm.vgf.compile_spec import ( # type: ignore[import-not-found]
26-
VgfCompileSpec,
27-
)
28-
from executorch.backends.arm.vgf.model_converter import ( # type: ignore[import-not-found]
29-
require_model_converter_binary,
30-
)
31-
from executorch.exir.backend.backend_details import ( # type: ignore[import-not-found]
32-
BackendDetails,
33-
PreprocessResult,
34-
)
35-
from executorch.exir.backend.compile_spec_schema import ( # type: ignore[import-not-found]
36-
CompileSpec,
37-
)
24+
from executorch.backends.arm.vgf.compile_spec import VgfCompileSpec
25+
from executorch.exir.backend.backend_details import BackendDetails, PreprocessResult
26+
from executorch.exir.backend.compile_spec_schema import CompileSpec
3827
from torch.export.exported_program import ExportedProgram
3928

4029
# debug functionality
@@ -107,10 +96,9 @@ def vgf_compile(
10796
f.write(tosa_flatbuffer)
10897

10998
additional_flags = " ".join(compile_flags)
110-
converter_binary = require_model_converter_binary()
11199
vgf_path = tosa_path + ".vgf"
112100
conversion_command = (
113-
f"{converter_binary} {additional_flags} -i {tosa_path} -o {vgf_path}"
101+
f"model-converter {additional_flags} -i {tosa_path} -o {vgf_path}"
114102
)
115103
try:
116104
subprocess.run(

backends/arm/vgf/model_converter.py

Lines changed: 0 additions & 34 deletions
This file was deleted.

examples/arm/setup.sh

Lines changed: 13 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ enable_model_converter=0 # model-converter tool for VGF output
2626
enable_vgf_lib=0 # vgf reader - runtime backend dependency
2727
enable_emulation_layer=0 # Vulkan layer driver - emulates Vulkan ML extensions
2828
enable_vulkan_sdk=0 # Download and export Vulkan SDK required by emulation layer
29-
enable_mlsdk_pip_install=0 # This is a temporary option that will soon be the default
3029

3130
# Figure out if setup.sh was called or sourced and save it into "is_script_sourced"
3231
(return 0 2>/dev/null) && is_script_sourced=1 || is_script_sourced=0
@@ -52,7 +51,6 @@ OPTION_LIST=(
5251
"--enable-emulation-layer Enable MLSDK Vulkan emulation layer"
5352
"--disable-ethos-u-deps Do not setup what is needed for Ethos-U"
5453
"--enable-mlsdk-deps Setup what is needed for MLSDK"
55-
"--install-mlsdk-deps-with-pip Use MLSDK PyPi package instead of building from source"
5654
"--mlsdk-manifest-url URL to the MLSDK manifest for vulkan."
5755
"--help Display help"
5856
)
@@ -142,10 +140,6 @@ function check_options() {
142140
enable_vela=0
143141
shift
144142
;;
145-
--install-mlsdk-deps-with-pip)
146-
enable_mlsdk_pip_install=1
147-
shift
148-
;;
149143
--enable-mlsdk-deps)
150144
enable_model_converter=1
151145
enable_vgf_lib=1
@@ -182,22 +176,12 @@ function setup_ethos_u_tools() {
182176
CMAKE_POLICY_VERSION_MINIMUM=3.5 BUILD_PYBIND=1 pip install --no-dependencies -r $et_dir/backends/arm/requirements-arm-ethos-u.txt
183177
}
184178

185-
function setup_mlsdk_dependencies() {
186-
log_step "mlsdk" "Installing MLSDK dependencies from pip"
187-
pip install -r $et_dir/backends/arm/requirements-arm-vgf.txt
188-
}
189-
190179
function create_setup_path(){
191180
cd "${root_dir}"
192181

193182
clear_setup_path
194183
log_step "path" "Generating setup path scripts at ${setup_path_script}"
195184

196-
local use_mlsdk_pip=0
197-
if use_mlsdk_pip_package; then
198-
use_mlsdk_pip=1
199-
fi
200-
201185
if [[ "${enable_fvps}" -eq 1 ]]; then
202186
setup_path_fvp
203187
fi
@@ -210,48 +194,19 @@ function create_setup_path(){
210194
setup_path_vulkan
211195
fi
212196

213-
if [[ "${enable_model_converter}" -eq 1 && "${use_mlsdk_pip}" -eq 0 ]]; then
197+
if [[ "${enable_model_converter}" -eq 1 ]]; then
214198
setup_path_model_converter
215199
fi
216200

217-
if [[ "${enable_vgf_lib}" -eq 1 && "${use_mlsdk_pip}" -eq 0 ]]; then
201+
if [[ "${enable_vgf_lib}" -eq 1 ]]; then
218202
setup_path_vgf_lib
219203
fi
220204

221205
if [[ "${enable_emulation_layer}" -eq 1 ]]; then
222-
if [[ "${use_mlsdk_pip}" -eq 0 ]]; then
223-
setup_path_emulation_layer
224-
else
225-
setup_path_emulation_layer_from_pip
226-
fi
227-
fi
228-
229-
log_step "path" "Update PATH by sourcing ${setup_path_script}.{sh|fish}"
230-
}
231-
232-
function use_mlsdk_pip_package() {
233-
os=$(uname -s)
234-
arch=$(uname -m)
235-
236-
if [[ "${enable_mlsdk_pip_install}" -eq 0 ]]; then
237-
return 1
238-
fi
239-
240-
if [[ "$os" == "Darwin" ]]; then
241-
if [[ "${enable_mlsdk_pip_install}" -eq 1 ]]; then
242-
log_step "mlsdk" "[error] MLSDK pip install not yet supported on MacOS"
243-
exit 1
244-
fi
245-
fi
246-
247-
if [[ "$arch" == "arm64" || "$arch" == "aarch64" ]]; then
248-
if [[ "${enable_mlsdk_pip_install}" -eq 1 ]]; then
249-
log_step "mlsdk" "[error] MLSDK pip install not yet supported on aarch64"
250-
exit 1
251-
fi
206+
setup_path_emulation_layer
252207
fi
253208

254-
return 0
209+
log_step "path" "Update PATH by sourcing ${setup_path_script}.{sh|fish}"
255210
}
256211

257212

@@ -269,7 +224,6 @@ if [[ $is_script_sourced -eq 0 ]]; then
269224
source $et_dir/backends/arm/scripts/fvp_utils.sh
270225
source $et_dir/backends/arm/scripts/toolchain_utils.sh
271226
source $et_dir/backends/arm/scripts/vulkan_utils.sh
272-
source $et_dir/backends/arm/scripts/mlsdk_utils.sh
273227

274228
log_step "main" "Checking platform and OS"
275229
check_platform_support
@@ -285,12 +239,8 @@ if [[ $is_script_sourced -eq 0 ]]; then
285239
mlsdk_manifest_dir="${root_dir}/${mlsdk_manifest_dir}"
286240
fi
287241

288-
log_step "options" \
289-
"root=${root_dir}, target-toolchain=${target_toolchain:-<default>}, mlsdk-dir=${mlsdk_manifest_dir}"
290-
log_step "options" \
291-
"ethos-u: fvps=${enable_fvps}, toolchain=${enable_baremetal_toolchain}, vela=${enable_vela} | " \
292-
"mlsdk: model-converter=${enable_model_converter}, vgf-lib=${enable_vgf_lib}, " \
293-
"emu-layer=${enable_emulation_layer}, vulkan-sdk=${enable_vulkan_sdk}"
242+
log_step "options" "root=${root_dir}, target-toolchain=${target_toolchain:-<default>}, mlsdk-dir=${mlsdk_manifest_dir}"
243+
log_step "options" "ethos-u: fvps=${enable_fvps}, toolchain=${enable_baremetal_toolchain}, vela=${enable_vela} | mlsdk: model-converter=${enable_model_converter}, vgf-lib=${enable_vgf_lib}, emu-layer=${enable_emulation_layer}, vulkan-sdk=${enable_vulkan_sdk}"
294244

295245
# Setup toolchain
296246
if [[ "${enable_baremetal_toolchain}" -eq 1 ]]; then
@@ -317,18 +267,13 @@ if [[ $is_script_sourced -eq 0 ]]; then
317267
if [[ "${enable_model_converter}" -eq 1 || \
318268
"${enable_vgf_lib}" -eq 1 || \
319269
"${enable_emulation_layer}" -eq 1 ]]; then
320-
log_step "mlsdk" "Configuring MLSDK components (model-converter=${enable_model_converter}, " \
321-
"vgf-lib=${enable_vgf_lib}, emu-layer=${enable_emulation_layer})"
322-
if use_mlsdk_pip_package; then
323-
setup_mlsdk_dependencies
324-
else
325-
log_step "mlsdk" "Installing MLSDK dependencies from source"
326-
setup_mlsdk ${root_dir} \
327-
${mlsdk_manifest_dir} \
328-
${enable_model_converter} \
329-
${enable_vgf_lib} \
330-
${enable_emulation_layer}
331-
fi
270+
log_step "mlsdk" "Configuring MLSDK components (model-converter=${enable_model_converter}, vgf-lib=${enable_vgf_lib}, emu-layer=${enable_emulation_layer})"
271+
source $et_dir/backends/arm/scripts/mlsdk_utils.sh
272+
setup_mlsdk "${root_dir}" \
273+
"${mlsdk_manifest_dir}" \
274+
"${enable_model_converter}" \
275+
"${enable_vgf_lib}" \
276+
"${enable_emulation_layer}"
332277
fi
333278

334279
# Create the setup_path.sh used to create the PATH variable for shell

0 commit comments

Comments
 (0)