From e29ea682dedb1ee33742b85adb8657afb10b1822 Mon Sep 17 00:00:00 2001 From: zjgarvey Date: Mon, 30 Sep 2024 13:00:01 -0500 Subject: [PATCH 1/3] Remove default iree-compile extra args from onnx-iree mode --- alt_e2eshark/e2e_testing/backends.py | 40 +++++++--------------------- alt_e2eshark/run.py | 2 +- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/alt_e2eshark/e2e_testing/backends.py b/alt_e2eshark/e2e_testing/backends.py index 8d8daf44..3311a386 100644 --- a/alt_e2eshark/e2e_testing/backends.py +++ b/alt_e2eshark/e2e_testing/backends.py @@ -34,36 +34,17 @@ class SimpleIREEBackend(BackendBase): '''This backend uses iree to compile and run MLIR modules for a specified hal_target_backend''' def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_args : List[str] = None): self.device = device + if hal_target_backend == "hip": + print("IREE compiler python bindings do not currently support the change to using iree-hal-target-device=hip. Defaulting to depreciated iree-hal-target-backends=rocm") + hal_target_backend = "rocm" self.hal_target_backend = hal_target_backend + self.extra_args = [] if extra_args: - self.extra_args = [] for a in extra_args: if a[0:2] == "--": self.extra_args.append(a) else: self.extra_args.append("--" + a) - elif hal_target_backend == "rocm": - # some extra args for Mi300x - some of these may not work for other chips - self.extra_args = [ - "--iree-rocm-target-chip=gfx942", - # "--iree-global-opt-propagate-transposes=true", - # "--iree-opt-outer-dim-concat=true", - # "--iree-opt-const-eval=false", - # "--iree-rocm-waves-per-eu=2", - # "--iree-llvmgpu-enable-prefetch", - # "--iree-flow-enable-aggressive-fusion", - # "--iree-flow-enable-fuse-horizontal-contractions=true", - # "--iree-opt-aggressively-propagate-transposes=true", - # "--iree-codegen-llvmgpu-use-vector-distribution=true", - # "--iree-preprocessing-pass-pipeline=builtin.module(util.func(iree-preprocessing-pad-to-intrinsics{pad-target-type=conv}))", - # maybe add iree-preprocessing-transpose-convolution-pipeline to preprocessing pipeline. - ] - elif hal_target_backend == "llvm-cpu": - self.extra_args = [ - "--iree-input-demote-i64-to-i32", - # "--iree-llvmcpu-fail-on-large-vector=0", - # "--iree-llvmcpu-stack-allocation-limit=300000", - ] def compile(self, module, *, save_to: str = None): # compile to a vmfb for llvm-cpu @@ -100,7 +81,10 @@ class CLIREEBackend(BackendBase): '''This backend calls iree through the command line to compile and run MLIR modules''' def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_args : List[str] = None): self.device = device - self.hal_target_backend = hal_target_backend + if hal_target_backend == "rocm": + print("Using 'iree-hal-target-device=hip', since 'iree-hal-target-backends' is depreciated") + hal_target_backend = "hip" + self.hal_target_device = hal_target_backend self.extra_args = [] if extra_args: for a in extra_args: @@ -111,7 +95,7 @@ def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_ def compile(self, module_path: str, *, save_to : str = None) -> str: vmfb_path = os.path.join(save_to, "compiled_model.vmfb") - arg_string = f"--iree-hal-target-backends={self.hal_target_backend} " + arg_string = f"--iree-hal-target-device={self.hal_target_device} " for arg in self.extra_args: arg_string += arg arg_string += " " @@ -160,12 +144,6 @@ def __init__(self, *, device="local-task", hal_target_device="llvm-cpu", extra_a self.extra_args = [ "--iree-hip-target=gfx90a", ] - elif hal_target_device == "llvm-cpu": - self.extra_args = [ - "--iree-input-demote-i64-to-i32", - # "--iree-llvmcpu-fail-on-large-vector=0", - # "--iree-llvmcpu-stack-allocation-limit=300000", - ] self.providers = ["IreeExecutionProvider"] # set provider options. provider_options_dict = dict() diff --git a/alt_e2eshark/run.py b/alt_e2eshark/run.py index 37cae113..bbb79464 100644 --- a/alt_e2eshark/run.py +++ b/alt_e2eshark/run.py @@ -319,7 +319,7 @@ def _get_argparse(): "--backend", choices=["llvm-cpu", "amd-aie", "rocm", "hip", "cuda", "vmvx", "metal-spirv", "vulkan-spirv"], default="llvm-cpu", - help="specifies the iree-hal-target-backend for compile phase", + help="specifies the iree-hal-target-device / iree-hal-target-backends for compile phase", ) parser.add_argument( "-ica", From 00b59f60a6163908a3dce84a7b51418e2adf7fb0 Mon Sep 17 00:00:00 2001 From: zjgarvey Date: Tue, 1 Oct 2024 13:38:11 -0500 Subject: [PATCH 2/3] Replace depreciated to deprecated --- alt_e2eshark/e2e_testing/backends.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alt_e2eshark/e2e_testing/backends.py b/alt_e2eshark/e2e_testing/backends.py index 3311a386..0efbbd7e 100644 --- a/alt_e2eshark/e2e_testing/backends.py +++ b/alt_e2eshark/e2e_testing/backends.py @@ -35,7 +35,7 @@ class SimpleIREEBackend(BackendBase): def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_args : List[str] = None): self.device = device if hal_target_backend == "hip": - print("IREE compiler python bindings do not currently support the change to using iree-hal-target-device=hip. Defaulting to depreciated iree-hal-target-backends=rocm") + print("IREE compiler python bindings do not currently support the change to using iree-hal-target-device=hip. Defaulting to deprecated iree-hal-target-backends=rocm") hal_target_backend = "rocm" self.hal_target_backend = hal_target_backend self.extra_args = [] @@ -82,7 +82,7 @@ class CLIREEBackend(BackendBase): def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_args : List[str] = None): self.device = device if hal_target_backend == "rocm": - print("Using 'iree-hal-target-device=hip', since 'iree-hal-target-backends' is depreciated") + print("Using 'iree-hal-target-device=hip', since 'iree-hal-target-backends' is deprecated") hal_target_backend = "hip" self.hal_target_device = hal_target_backend self.extra_args = [] From ecab023de13e94503d951378fa1d8642d1464fe7 Mon Sep 17 00:00:00 2001 From: zjgarvey Date: Thu, 24 Oct 2024 19:12:22 -0500 Subject: [PATCH 3/3] Revert to using target-backends flag. Don't modify user inputs. --- alt_e2eshark/e2e_testing/backends.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/alt_e2eshark/e2e_testing/backends.py b/alt_e2eshark/e2e_testing/backends.py index 0efbbd7e..bc226fb0 100644 --- a/alt_e2eshark/e2e_testing/backends.py +++ b/alt_e2eshark/e2e_testing/backends.py @@ -34,9 +34,6 @@ class SimpleIREEBackend(BackendBase): '''This backend uses iree to compile and run MLIR modules for a specified hal_target_backend''' def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_args : List[str] = None): self.device = device - if hal_target_backend == "hip": - print("IREE compiler python bindings do not currently support the change to using iree-hal-target-device=hip. Defaulting to deprecated iree-hal-target-backends=rocm") - hal_target_backend = "rocm" self.hal_target_backend = hal_target_backend self.extra_args = [] if extra_args: @@ -81,10 +78,7 @@ class CLIREEBackend(BackendBase): '''This backend calls iree through the command line to compile and run MLIR modules''' def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_args : List[str] = None): self.device = device - if hal_target_backend == "rocm": - print("Using 'iree-hal-target-device=hip', since 'iree-hal-target-backends' is deprecated") - hal_target_backend = "hip" - self.hal_target_device = hal_target_backend + self.hal_target_backend = hal_target_backend self.extra_args = [] if extra_args: for a in extra_args: @@ -95,7 +89,7 @@ def __init__(self, *, device="local-task", hal_target_backend="llvm-cpu", extra_ def compile(self, module_path: str, *, save_to : str = None) -> str: vmfb_path = os.path.join(save_to, "compiled_model.vmfb") - arg_string = f"--iree-hal-target-device={self.hal_target_device} " + arg_string = f"--iree-hal-target-backends={self.hal_target_backend} " for arg in self.extra_args: arg_string += arg arg_string += " "