From 748b15b3b272c30a73a27bd1ffdee4c4749f4757 Mon Sep 17 00:00:00 2001 From: hboyraz Date: Fri, 15 May 2026 14:22:48 -0700 Subject: [PATCH 01/91] Gate weights cache on runtime option instead of compile-time macro (#19603) (#19603) Summary: Replaces the compile-time `#ifdef ENABLE_XNNPACK_WEIGHTS_CACHE` gate in XNNCompiler.cpp with a runtime boolean plumbed from `XnnpackBackendOptions::resolve_weight_cache(context)` through `XNNPACKBackend::init` to `XNNCompiler::compileModel`. This fixes a silent-disable bug: previously, runtime opt-in via `set_option(weight_cache_option_key, true)` was silently a no-op unless the build also set `-c executorch.xnnpack_weights_cache=1`, because the cache pointer handed to `xnn_create_runtime_v4` was hardcoded to nullptr when the macro was undefined. Multimethod LoRA models re-packed the entire backbone for every method load, costing hundreds of MB of resident memory. The runtime path now keys all three cache-relevant code regions (unpacked-data load, cache pointer handoff to xnn_create_runtime_v4, and finalize_for_runtime) on `bool use_weight_cache` resolved per-init from the BackendInitContext. The `Result>` declaration in compileModel was reshaped to plain `vector` since `Result<>` is non-assignable, which is required for the new runtime branch. Reviewed By: GregoryComer Differential Revision: D105123995 Co-authored-by: Hakan Boyraz --- backends/xnnpack/runtime/XNNCompiler.cpp | 120 ++++++++++---------- backends/xnnpack/runtime/XNNCompiler.h | 3 +- backends/xnnpack/runtime/XNNPACKBackend.cpp | 3 +- 3 files changed, 67 insertions(+), 59 deletions(-) diff --git a/backends/xnnpack/runtime/XNNCompiler.cpp b/backends/xnnpack/runtime/XNNCompiler.cpp index 103bdeb6b82..df24dc4ba1f 100644 --- a/backends/xnnpack/runtime/XNNCompiler.cpp +++ b/backends/xnnpack/runtime/XNNCompiler.cpp @@ -181,7 +181,8 @@ Result getConstantDataPtr( const uint8_t* constant_data_ptr, const NamedDataMap* named_data_map, std::vector& freeable_buffers, - XNNWeightsCache* weights_cache) { + XNNWeightsCache* weights_cache, + bool use_weight_cache) { if (buffer_idx) { if (!constant_data_ptr) { // TODO(T172265611): Remove constant_buffer in flatbuffer path after BC @@ -230,30 +231,30 @@ Result getConstantDataPtr( InvalidProgram, "Named key is null"); const std::string& data_name = constant_data_offset->named_key()->str(); -#ifdef ENABLE_XNNPACK_WEIGHTS_CACHE - Result data_ptr = - weights_cache->load_unpacked_data(data_name); - if (!data_ptr.ok()) { - ET_LOG(Error, "Failed to load weights from cache"); - return data_ptr.error(); - } - return data_ptr.get(); -#else - Result buffer = - named_data_map->get_data(data_name.c_str()); - if (!buffer.ok()) { - ET_LOG( - Error, - "Failed to get constant data for key %s from named_data_map. Error code: %u", - data_name.c_str(), - static_cast(buffer.error())); - return buffer.error(); + if (use_weight_cache) { + Result data_ptr = + weights_cache->load_unpacked_data(data_name); + if (!data_ptr.ok()) { + ET_LOG(Error, "Failed to load weights from cache"); + return data_ptr.error(); + } + return data_ptr.get(); + } else { + Result buffer = + named_data_map->get_data(data_name.c_str()); + if (!buffer.ok()) { + ET_LOG( + Error, + "Failed to get constant data for key %s from named_data_map. Error code: %u", + data_name.c_str(), + static_cast(buffer.error())); + return buffer.error(); + } + const uint8_t* data_ptr = + static_cast(buffer.get().data()); + freeable_buffers.push_back(std::move(buffer.get())); + return data_ptr; } - const uint8_t* data_ptr = - static_cast(buffer.get().data()); - freeable_buffers.push_back(std::move(buffer.get())); - return data_ptr; -#endif } } } @@ -267,14 +268,16 @@ Result getConstantDataPtr( const uint8_t* constant_data_ptr, const NamedDataMap* named_data_map, std::vector& freeable_buffers, - XNNWeightsCache* weights_cache) { + XNNWeightsCache* weights_cache, + bool use_weight_cache) { return getConstantDataPtr( tensor_value->constant_buffer_idx(), flatbuffer_graph, constant_data_ptr, named_data_map, freeable_buffers, - weights_cache); + weights_cache, + use_weight_cache); } /** @@ -293,7 +296,8 @@ Error defineTensor( CompileAllocator& allocator, const NamedDataMap* named_data_map, std::vector& freeable_buffers, - XNNWeightsCache* weights_cache) { + XNNWeightsCache* weights_cache, + bool use_weight_cache) { const fb_xnnpack::XNNTensorValue* tensor_value = nullptr; const fb_xnnpack::XNNQuantizedTensorValue* qtensor_value = nullptr; @@ -347,7 +351,8 @@ Error defineTensor( constant_data_ptr, named_data_map, freeable_buffers, - weights_cache); + weights_cache, + use_weight_cache); if (!buffer_result.ok()) { return buffer_result.error(); } @@ -502,7 +507,8 @@ Error defineTensor( constant_data_ptr, named_data_map, freeable_buffers, - weights_cache); + weights_cache, + use_weight_cache); if (!scale_result.ok()) { return scale_result.error(); } @@ -548,7 +554,8 @@ Error defineTensor( constant_data_ptr, named_data_map, freeable_buffers, - weights_cache); + weights_cache, + use_weight_cache); if (!scale_data_result.ok()) { return scale_data_result.error(); } @@ -1976,7 +1983,8 @@ ET_NODISCARD Error XNNCompiler::compileModel( XNNExecutor* executor, XNNWeightsCache* weights_cache, xnn_workspace_t workspace, - const NamedDataMap* named_data_map) { + const NamedDataMap* named_data_map, + bool use_weight_cache) { Result header = XNNHeader::Parse(buffer_pointer, num_bytes); const uint8_t* flatbuffer_data = nullptr; const uint8_t* constant_data = nullptr; @@ -2086,7 +2094,8 @@ ET_NODISCARD Error XNNCompiler::compileModel( compile_allocator, named_data_map, unpacked_buffers, - weights_cache); + weights_cache, + use_weight_cache); if (err != Error::Ok) { return err; @@ -2108,19 +2117,16 @@ ET_NODISCARD Error XNNCompiler::compileModel( xnn_runtime_t runtime_ptr = nullptr; - // XNNWeightsCache if weights cache is not enabled, then XNNWeightsCache - // just manages the unpacked weights until the runtime is created. -#ifdef ENABLE_XNNPACK_WEIGHTS_CACHE - ET_CHECK_OR_RETURN_ERROR( - unpacked_buffers.size() == 0, - Internal, - "Weight Cache is enabled, which means unpacked buffers should be owned by the cache"); - xnn_weights_cache_t weights_cache_ptr = - weights_cache->get_num_unpacked_data() > 0 ? weights_cache->get() - : nullptr; -#else xnn_weights_cache_t weights_cache_ptr = nullptr; -#endif + if (use_weight_cache) { + ET_CHECK_OR_RETURN_ERROR( + unpacked_buffers.size() == 0, + Internal, + "Weight Cache is enabled, which means unpacked buffers should be owned by the cache"); + weights_cache_ptr = weights_cache->get_num_unpacked_data() > 0 + ? weights_cache->get() + : nullptr; + } // NOLINTBEGIN(facebook-hte-NullableDereference) - weights cache is allowed to // be null @@ -2139,25 +2145,25 @@ ET_NODISCARD Error XNNCompiler::compileModel( "XNN Runtime creation failed with code: %s", xnn_status_to_string(status)); -#ifdef ENABLE_XNNPACK_WEIGHTS_CACHE - auto packed_weights_names = weights_cache->finalize_for_runtime(); - ET_CHECK_OR_RETURN_ERROR( - packed_weights_names.ok(), - Internal, - "Failed to finalize weights cache after creating the xnn runtime") -#else - for (auto& buffer : unpacked_buffers) { - buffer.Free(); + std::vector packed_weights_names; + if (use_weight_cache) { + auto packed_weights_names_result = weights_cache->finalize_for_runtime(); + ET_CHECK_OR_RETURN_ERROR( + packed_weights_names_result.ok(), + Internal, + "Failed to finalize weights cache after creating the xnn runtime"); + packed_weights_names = std::move(packed_weights_names_result.get()); + } else { + for (auto& buffer : unpacked_buffers) { + buffer.Free(); + } } - Result> packed_weights_names = - std::vector(); -#endif err = executor->initialize( // NOLINT: runtime_ptr is non-null runtime_ptr, std::move(input_ids), std::move(output_ids), - std::move(packed_weights_names.get())); + std::move(packed_weights_names)); return err; }; diff --git a/backends/xnnpack/runtime/XNNCompiler.h b/backends/xnnpack/runtime/XNNCompiler.h index bcc87351d7d..639df0438cb 100644 --- a/backends/xnnpack/runtime/XNNCompiler.h +++ b/backends/xnnpack/runtime/XNNCompiler.h @@ -29,7 +29,8 @@ class XNNCompiler { XNNExecutor* executor, XNNWeightsCache* weights_cache, xnn_workspace_t workspace, - const NamedDataMap* named_data_map); + const NamedDataMap* named_data_map, + bool use_weight_cache); }; } // namespace delegate diff --git a/backends/xnnpack/runtime/XNNPACKBackend.cpp b/backends/xnnpack/runtime/XNNPACKBackend.cpp index 23a3f4c4b1f..1076e5f2e25 100644 --- a/backends/xnnpack/runtime/XNNPACKBackend.cpp +++ b/backends/xnnpack/runtime/XNNPACKBackend.cpp @@ -110,7 +110,8 @@ class XnnpackBackend final executor, weights_cache_.get(), workspace_ptr, - named_data_map); + named_data_map, + use_weight_cache); // This backend does not need its processed data after compiling the model. processed->Free(); From e6bf1492a4fc5a1b074925a01a69cc029a24fc03 Mon Sep 17 00:00:00 2001 From: Gregory Comer Date: Fri, 15 May 2026 14:58:56 -0700 Subject: [PATCH 02/91] Revert "Add grammar fields to GenerationConfig for constrained decoding" (#19620) This reverts commit 7355d7b52d622f01db1b6f61b4e30678817df4f3. ### Summary Temporarily reverting to restore test health for QNN jobs. --- extension/llm/runner/irunner.h | 8 -------- 1 file changed, 8 deletions(-) diff --git a/extension/llm/runner/irunner.h b/extension/llm/runner/irunner.h index c9584dda879..bb7dd767fea 100644 --- a/extension/llm/runner/irunner.h +++ b/extension/llm/runner/irunner.h @@ -33,14 +33,6 @@ struct GenerationConfig { // Whether to echo the input prompt in the output bool echo = true; - // Grammar definition for constrained decoding (e.g. a JSON schema, regex, - // Lark CFG, or GBNF grammar). Empty string means no constraint. - std::string grammar; - - // Grammar format: "json_schema", "regex", "lark", or "gbnf". - // Only used when grammar is non-empty. - std::string grammar_type; - // Whether to ignore EOS token and continue generating until max_new_tokens bool ignore_eos = false; From 125d6516e548332f246fddd2e8eb761871083328 Mon Sep 17 00:00:00 2001 From: christine-long-meta <163800716+christine-long-meta@users.noreply.github.com> Date: Fri, 15 May 2026 18:43:55 -0400 Subject: [PATCH 03/91] Add a16w8 per-op test for mean_dim (#19594) (#19594) Summary: Add int16 activation / int8 weight (a16w8) quantization tests for `aten.mean.dim` on Ethos-U55 and Ethos-U85. ## Changes - Add `a16w8_mean_test_parameters` dict with 11 test configurations covering keepdim/no-keepdim, positive/negative dims, dim=None, and ranks 1-4 - Add `test_mean_dim_a16w8_u55_INT` using `EthosU55PipelineINT` with `a16w8_quantization=True, symmetric_io_quantization=True` - Add `test_mean_dim_a16w8_u85_INT` using `EthosU85PipelineINT` with same kwargs - Register `ops/test_mean_dim.py` in `fbcode/` and `xplat/` `targets.bzl` Differential Revision: D104532361 --- backends/arm/test/ops/test_mean_dim.py | 66 ++++++++++++++++++++++++++ backends/arm/test/targets.bzl | 1 + 2 files changed, 67 insertions(+) diff --git a/backends/arm/test/ops/test_mean_dim.py b/backends/arm/test/ops/test_mean_dim.py index 2b60dc0211f..a5931fc3cbe 100644 --- a/backends/arm/test/ops/test_mean_dim.py +++ b/backends/arm/test/ops/test_mean_dim.py @@ -6,6 +6,7 @@ # LICENSE file in the root directory of this source tree. from typing import Callable +import pytest import torch from executorch.backends.arm.test import common from executorch.backends.arm.test.tester.test_pipeline import ( @@ -393,3 +394,68 @@ def test_mean_tosa_INT(test_data): symmetric_io_quantization=True, ) pipeline.run() + + +a16w8_mean_test_parameters = { + "rank_2_keepdim": lambda: (torch.rand(7, 3), (0, 1), True), + "rank_3_keepdim": lambda: (torch.rand(5, 7, 3), (0, 1, 2), True), + "rand_23_keepdim": lambda: (torch.rand(1, 5, 7, 3), (2, 3), True), + "rand_0123_keepdim": lambda: (torch.rand(1, 5, 7, 3), (0, 1, 2, 3), True), + "rand_none_keepdim": lambda: (torch.rand(1, 5, 7, 3), None, True), + "rank_2": lambda: (torch.rand(5, 7), (-2, -1), False), + "rand_123": lambda: (torch.rand(1, 5, 7, 3), (-3, -2, -1), False), +} + +a16w8_mean_test_parameters_u85_xfails = { + "rank_1_keepdim": lambda: (torch.rand(7), 0, True), + "rand_1_keepdim": lambda: (torch.rand(1, 5, 7, 3), (1), True), + "rank_1": lambda: (torch.rand(7), (-1), False), + "rand_3": lambda: (torch.rand(1, 5, 7, 3), (-1), False), +} + + +@common.parametrize( + "test_data", {**a16w8_mean_test_parameters, **a16w8_mean_test_parameters_u85_xfails} +) +@common.XfailIfNoCorstone300 +def test_mean_dim_a16w8_u55_INT(test_data): + test_data, dim, keep_dim = test_data() + pipeline = EthosU55PipelineINT[input_t]( + MeanDim(dim, keep_dim), + (test_data,), + [], + symmetric_io_quantization=True, + a16w8_quantization=True, + ) + pipeline.run() + + +@common.parametrize("test_data", a16w8_mean_test_parameters) +@common.XfailIfNoCorstone320 +def test_mean_dim_a16w8_u85_INT(test_data): + test_data, dim, keep_dim = test_data() + pipeline = EthosU85PipelineINT[input_t]( + MeanDim(dim, keep_dim), + (test_data,), + [], + symmetric_io_quantization=True, + a16w8_quantization=True, + ) + pipeline.run() + + +@common.parametrize("test_data", a16w8_mean_test_parameters_u85_xfails) +@pytest.mark.xfail( + reason="U85 mean_dim a16w8 produces all-zero output for single-dim reductions" +) +@common.XfailIfNoCorstone320 +def test_mean_dim_a16w8_u85_INT_xfail(test_data): + test_data, dim, keep_dim = test_data() + pipeline = EthosU85PipelineINT[input_t]( + MeanDim(dim, keep_dim), + (test_data,), + [], + symmetric_io_quantization=True, + a16w8_quantization=True, + ) + pipeline.run() diff --git a/backends/arm/test/targets.bzl b/backends/arm/test/targets.bzl index d53e5630808..b8030ae7ba8 100644 --- a/backends/arm/test/targets.bzl +++ b/backends/arm/test/targets.bzl @@ -38,6 +38,7 @@ def define_arm_tests(): "ops/test_to_copy.py", "ops/test_exp.py", "ops/test_reciprocal.py", + "ops/test_mean_dim.py", ] # Quantization From a8cfe2b6ce23fa7ab081f7cee322356daa847f2e Mon Sep 17 00:00:00 2001 From: Jacob Szwejbka Date: Fri, 15 May 2026 15:46:49 -0700 Subject: [PATCH 04/91] Thread method-scoped kernel registry through Program and Method (#19561) Differential Revision: D98080033 Pull Request resolved: https://github.com/pytorch/executorch/pull/19561 --- runtime/executor/method.cpp | 21 +++++-- runtime/executor/method.h | 11 +++- runtime/executor/program.cpp | 6 +- runtime/executor/program.h | 4 +- .../kernel/test/operator_registry_test.cpp | 63 +++++++++++++++++++ 5 files changed, 96 insertions(+), 9 deletions(-) diff --git a/runtime/executor/method.cpp b/runtime/executor/method.cpp index 1610804586d..8eb48480463 100644 --- a/runtime/executor/method.cpp +++ b/runtime/executor/method.cpp @@ -802,8 +802,19 @@ Error Method::resolve_operator( } // Find a kernel with the matching name and tensor meta. - Result op_function = - get_op_function_from_registry(operator_name, {meta, count}); + // Try method-scoped registry first (if provided), then fall back to global. + auto resolve_op_function = [&]() -> Result { + if (!kernel_registry_.empty()) { + Result method_scoped_op_function = + get_op_function_from_registry( + operator_name, {meta, count}, kernel_registry_); + if (method_scoped_op_function.ok()) { + return method_scoped_op_function; + } + } + return get_op_function_from_registry(operator_name, {meta, count}); + }; + Result op_function = resolve_op_function(); if (!op_function.ok()) { ET_LOG( Error, @@ -831,7 +842,8 @@ Result Method::load( MemoryManager* memory_manager, EventTracer* event_tracer, const NamedDataMap* external_data_map, - const LoadBackendOptionsMap* backend_options) { + const LoadBackendOptionsMap* backend_options, + Span kernel_registry) { MemoryAllocator* temp_allocator = memory_manager->temp_allocator(); if (temp_allocator == nullptr) { PlatformMemoryAllocator* platform_allocator = @@ -844,7 +856,8 @@ Result Method::load( new (platform_allocator) PlatformMemoryAllocator(); temp_allocator = platform_allocator; } - Method method(program, memory_manager, event_tracer, temp_allocator); + Method method( + program, memory_manager, event_tracer, temp_allocator, kernel_registry); ET_LOG(Debug, "Loading method: %s.", s_plan->name()->c_str()); Error err = method.init(s_plan, external_data_map, backend_options); if (err != Error::Ok) { diff --git a/runtime/executor/method.h b/runtime/executor/method.h index a390341960e..834325f008c 100644 --- a/runtime/executor/method.h +++ b/runtime/executor/method.h @@ -23,6 +23,7 @@ #include #include #include +#include #include // Forward declare flatbuffer types. This is a public header and must not @@ -82,6 +83,7 @@ class Method final { merged_data_map_(std::move(rhs.merged_data_map_)), external_constants_(rhs.external_constants_), n_external_constants_(rhs.n_external_constants_), + kernel_registry_(rhs.kernel_registry_), init_state_(rhs.init_state_) { // Required: clear out fields that the dtor looks at, so that we don't free // anything twice. @@ -331,7 +333,8 @@ class Method final { const Program* program, MemoryManager* memory_manager, EventTracer* event_tracer, - MemoryAllocator* temp_allocator) + MemoryAllocator* temp_allocator, + Span kernel_registry = {}) : step_state_(), program_(program), memory_manager_(memory_manager), @@ -348,6 +351,7 @@ class Method final { merged_data_map_(nullptr), external_constants_(nullptr), n_external_constants_(0), + kernel_registry_(kernel_registry), init_state_(InitializationState::Uninitialized) {} /// Static factory used by Program. @@ -357,7 +361,8 @@ class Method final { MemoryManager* memory_manager, EventTracer* event_tracer, const NamedDataMap* named_data_map, - const LoadBackendOptionsMap* backend_options = nullptr); + const LoadBackendOptionsMap* backend_options = nullptr, + Span kernel_registry = {}); /** * Initialize the method from its serialized representation. @@ -403,6 +408,8 @@ class Method final { NamedData* external_constants_; size_t n_external_constants_ = 0; + Span kernel_registry_; + InitializationState init_state_; /** diff --git a/runtime/executor/program.cpp b/runtime/executor/program.cpp index 31c02831448..4c0337e56d8 100644 --- a/runtime/executor/program.cpp +++ b/runtime/executor/program.cpp @@ -371,7 +371,8 @@ Result Program::load_method( MemoryManager* memory_manager, EventTracer* event_tracer, const NamedDataMap* named_data_map, - const LoadBackendOptionsMap* backend_options) const { + const LoadBackendOptionsMap* backend_options, + Span kernel_registry) const { EXECUTORCH_SCOPE_PROF("Program::load_method"); internal::event_tracer_create_event_block(event_tracer, "Default"); internal::EventTracerProfileMethodScope event_tracer_scope = @@ -394,7 +395,8 @@ Result Program::load_method( memory_manager, event_tracer, named_data_map, - backend_options); + backend_options, + kernel_registry); } Result Program::method_meta(const char* method_name) const { diff --git a/runtime/executor/program.h b/runtime/executor/program.h index c4b96a241d7..e1208e52454 100644 --- a/runtime/executor/program.h +++ b/runtime/executor/program.h @@ -21,6 +21,7 @@ #include #include #include +#include #include // Forward declare flatbuffer types. This is a public header and must not @@ -151,7 +152,8 @@ class Program final { MemoryManager* memory_manager, EventTracer* event_tracer = nullptr, const NamedDataMap* named_data_map = nullptr, - const LoadBackendOptionsMap* backend_options = nullptr) const; + const LoadBackendOptionsMap* backend_options = nullptr, + Span kernel_registry = {}) const; /** * Gathers metadata for the named method. diff --git a/runtime/kernel/test/operator_registry_test.cpp b/runtime/kernel/test/operator_registry_test.cpp index ddc7207ed47..83a72482d70 100644 --- a/runtime/kernel/test/operator_registry_test.cpp +++ b/runtime/kernel/test/operator_registry_test.cpp @@ -440,6 +440,69 @@ TEST_F(OperatorRegistryTest, GetOpFunctionUsesProvidedKernelList) { EXPECT_EQ(run_kernel(*fallback_func), 50); } +TEST_F(OperatorRegistryTest, ProvidedKernelListMissCanFallBackToGlobal) { + std::array buf{}; + Error err = make_kernel_key( + {{ScalarType::Long, {0, 1, 2, 3}}}, buf.data(), buf.size()); + ASSERT_EQ(err, Error::Ok); + KernelKey long_key = KernelKey(buf.data()); + + Kernel global_kernel = Kernel( + "test::provided_kernel_list_global_fallback", + KernelKey{}, + [](KernelRuntimeContext& context, Span stack) { + (void)context; + *(stack[0]) = Scalar(50); + }); + err = register_kernels({&global_kernel, 1}); + ASSERT_EQ(err, Error::Ok); + + Kernel scoped_kernel = Kernel( + "test::provided_kernel_list_global_fallback", + long_key, + [](KernelRuntimeContext& context, Span stack) { + (void)context; + *(stack[0]) = Scalar(100); + }); + Span scoped_registry(&scoped_kernel, 1); + + std::array dims = {0, 1, 2, 3}; + auto dim_order_type = Span(dims.data(), dims.size()); + std::array long_meta = { + TensorMeta(ScalarType::Long, dim_order_type)}; + Span long_kernel_key(long_meta.data(), long_meta.size()); + + std::array float_meta = { + TensorMeta(ScalarType::Float, dim_order_type)}; + Span float_kernel_key(float_meta.data(), float_meta.size()); + + auto run_kernel = [](OpFunction func) { + EValue value = Scalar(0); + std::array stack = {&value}; + KernelRuntimeContext context{}; + func(context, Span(stack.data(), stack.size())); + return value.toScalar().to(); + }; + + Result scoped_func = get_op_function_from_registry( + "test::provided_kernel_list_global_fallback", + long_kernel_key, + scoped_registry); + ASSERT_EQ(scoped_func.error(), Error::Ok); + EXPECT_EQ(run_kernel(*scoped_func), 100); + + Result scoped_miss = get_op_function_from_registry( + "test::provided_kernel_list_global_fallback", + float_kernel_key, + scoped_registry); + ASSERT_EQ(scoped_miss.error(), Error::OperatorMissing); + + Result global_func = get_op_function_from_registry( + "test::provided_kernel_list_global_fallback", float_kernel_key); + ASSERT_EQ(global_func.error(), Error::Ok); + EXPECT_EQ(run_kernel(*global_func), 50); +} + TEST_F(OperatorRegistryTest, DoubleRegisterKernelsDies) { std::array buf_long_contiguous; Error err = make_kernel_key( From d1db6b75c4bb4ba786201cf8468e3e36c6a79208 Mon Sep 17 00:00:00 2001 From: telgamal-1 Date: Fri, 15 May 2026 17:54:37 -0700 Subject: [PATCH 05/91] Add CoreML-stable RMSNorm for llama eager paths (#19523) (#19523) Differential Revision: D104862210 Pull Request resolved: https://github.com/pytorch/executorch/pull/19523 --- .../apple/coreml/llama/llama_transformer.py | 61 +------------- examples/models/llama/norm.py | 82 +++++++++++++++++++ 2 files changed, 83 insertions(+), 60 deletions(-) diff --git a/examples/apple/coreml/llama/llama_transformer.py b/examples/apple/coreml/llama/llama_transformer.py index ae98c327b45..0175d0deaf6 100644 --- a/examples/apple/coreml/llama/llama_transformer.py +++ b/examples/apple/coreml/llama/llama_transformer.py @@ -14,7 +14,7 @@ import torch import torch.nn.functional as F -from executorch.examples.models.llama.norm import RMSNorm +from executorch.examples.models.llama.norm import RMSNorm, RMSNormCoreML # noqa: F401 from executorch.examples.models.llama.rope import ( hf_apply_rotary_emb, @@ -109,65 +109,6 @@ def __post_init__(self): self.head_dim = self.dim // self.n_heads -class CoreMLRMSNorm(torch.nn.Module): - def __init__(self, dim: int, eps: float = 1e-6): - """ - Initialize the RMSNorm normalization layer. - - Args: - dim (int): The dimension of the input tensor. - eps (float, optional): A small value added to the denominator for numerical stability. Default is 1e-6. - - Attributes: - eps (float): A small value added to the denominator for numerical stability. - weight (nn.Parameter): Learnable scaling parameter. - - """ - super().__init__() - self.dim = dim - self.eps = eps - self.weight = nn.Parameter(torch.ones(dim)) - - def _norm(self, x): - """ - Apply the RMSNorm normalization to the input tensor. - - Args: - x (torch.Tensor): The input tensor. - - Returns: - torch.Tensor: The normalized tensor. - - """ - # CoreML ignores casts to FP32, so existing implementation of RMSNorm was not stable - # We instead use (x * sqrt(n)) / norm(x, dim=-1) - # Using torch.norm and preserving this op in CoreML improves stability - # Note, we ignore eps, but could add it by using torch.norm(torch.concat(x, sqrt(n*eps))) in the denominator - # In future, we want to add CoreML support for the functional RMSNorm op - # We have yet to do large scale evaluations on the numeric stability of this solution, but note that - # it appears better than what exists currently (removing FP32 casts and using FP16) - rms_norm_eps0 = ( - x - * torch.sqrt(torch.tensor(self.dim, dtype=x.dtype)) - * torch.reciprocal(torch.linalg.vector_norm(x, dim=-1, keepdim=True)) - ) - return rms_norm_eps0 - - def forward(self, x): - """ - Forward pass through the RMSNorm layer. - - Args: - x (torch.Tensor): The input tensor. - - Returns: - torch.Tensor: The output tensor after applying RMSNorm. - - """ - output = self._norm(x) - return output * self.weight - - class Rope(torch.nn.Module): def __init__(self, params: ModelArgs): super().__init__() diff --git a/examples/models/llama/norm.py b/examples/models/llama/norm.py index e424ee0361a..e1e47ea02cf 100644 --- a/examples/models/llama/norm.py +++ b/examples/models/llama/norm.py @@ -57,6 +57,54 @@ def __init__(self, dim: int, eps: float = 1e-6): self.weight.requires_grad = False +class RMSNormCoreML(torch.nn.Module): + def __init__(self, dim: int, eps: float = 1e-6): + """ + CoreML-friendly RMSNorm — uses `torch.linalg.vector_norm` so the op is + preserved in the CoreML graph for numerical stability. + + Args: + dim (int): The dimension of the input tensor. + eps (float, optional): Floor on the L2-norm denominator + (`clamp_min(‖x‖₂, √(dim·eps))`). Prevents `0/0 = NaN` on + zero-padded positions and matches standard RMSNorm's + `rsqrt(mean(x²) + eps)` semantics on a zero input. Must be > 0. + + Attributes: + eps (float): Floor coefficient consumed by `_norm`. + weight (nn.Parameter): Learnable scaling parameter. + """ + super().__init__() + assert eps > 0, ( + "RMSNormCoreML requires eps > 0; eps=0 collapses the denominator " + "floor and produces NaN on zero-padded positions" + ) + self.dim = dim + self.eps = eps + self.weight = nn.Parameter(torch.ones(dim)) + + def _norm(self, x): + # Floor the denominator to avoid 0 / 0 = NaN on zero-padded positions + # (chunked prefill in StaticAttentionIOManager pads each chunk to + # input_len with zeros). Use sqrt(dim * eps) so the floor matches + # standard RMSNorm's eps semantics (`rsqrt(mean(x²) + eps)`) and is + # large enough to survive fp16 (1e-6 alone underflows in fp16). + floor_val = torch.sqrt(torch.tensor(self.dim * self.eps, dtype=x.dtype)) + norm_val = torch.clamp_min( + torch.linalg.vector_norm(x, dim=-1, keepdim=True), floor_val + ) + rms_norm_eps0 = ( + x + * torch.sqrt(torch.tensor(self.dim, dtype=x.dtype)) + * torch.reciprocal(norm_val) + ) + return rms_norm_eps0 + + def forward(self, x): + output = self._norm(x) + return output * self.weight + + class RMSNormWithInputScale(torch.nn.Module): def __init__(self, dim: int, eps: float = 1e-5): super().__init__() @@ -83,3 +131,37 @@ def forward(self, hidden_states: torch.Tensor, gate: torch.Tensor) -> torch.Tens hidden_states = self.weight * hidden_states.to(input_dtype) hidden_states = hidden_states * F.silu(gate.to(torch.float32)) return hidden_states.to(input_dtype) + + +def replace_rms_norm_for_coreml_(model: torch.nn.Module) -> torch.nn.Module: + """In-place: walk `model` and swap every RMSNorm-family module for RMSNormCoreML. + + Mirrors the post-construction transform pattern used by torchao's + `quantize_(model, config)`: instead of threading a `use_coreml_norm` flag + through every norm construction site, build the model with the standard + norms and then call this once before CoreML export. Trained scale weights + are preserved. + + Swaps these classes (everything else is left alone): + * `RMSNorm` (this module) + * `ScalelessRMSNorm` (this module — no-op weight) + * `torch.nn.RMSNorm` (used for affine q_norm/k_norm in StaticAttention) + """ + for name, mod in list(model.named_modules()): + if not isinstance(mod, (RMSNorm, ScalelessRMSNorm, torch.nn.RMSNorm)): + continue + # All three carry the normalized dim either as `dim` or in `normalized_shape[-1]`. + dim = getattr(mod, "dim", None) or mod.normalized_shape[-1] + eps = getattr(mod, "eps", 1e-6) or 1e-6 + new = RMSNormCoreML(dim, eps=eps) + # Preserve trained scale (no-op for ScalelessRMSNorm). + if getattr(mod, "weight", None) is not None: + new.weight = mod.weight + # Locate parent module via the dotted name and rebind the attribute. + if "." in name: + parent_name, attr = name.rsplit(".", 1) + parent = model.get_submodule(parent_name) + else: + parent, attr = model, name + setattr(parent, attr, new) + return model From 42d87c487e55781073c6fee878ac901eebf6c6a3 Mon Sep 17 00:00:00 2001 From: Hansong Zhang <107070759+kirklandsign@users.noreply.github.com> Date: Fri, 15 May 2026 19:07:43 -0700 Subject: [PATCH 06/91] Fix GenerationConfig initialization in qnn_multimodal_runner Differential Revision: D105377713 Pull Request resolved: https://github.com/pytorch/executorch/pull/19621 --- .../oss_scripts/llama/qnn_multimodal_runner.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/examples/qualcomm/oss_scripts/llama/qnn_multimodal_runner.cpp b/examples/qualcomm/oss_scripts/llama/qnn_multimodal_runner.cpp index 1a7da5d62d3..29b6b9d7ddc 100644 --- a/examples/qualcomm/oss_scripts/llama/qnn_multimodal_runner.cpp +++ b/examples/qualcomm/oss_scripts/llama/qnn_multimodal_runner.cpp @@ -177,14 +177,15 @@ void start_multimodal_runner( } }; executorch::extension::llm::GenerationConfig config{ - true, - false, - -1, - false, - FLAGS_seq_len, - static_cast(FLAGS_temperature), - 0, - 0}; + .echo = true, + .ignore_eos = false, + .max_new_tokens = -1, + .warming = false, + .seq_len = FLAGS_seq_len, + .temperature = static_cast(FLAGS_temperature), + .num_bos = 0, + .num_eos = 0, + }; // 1. [Multimodal] Get raw files from input_list.txt std::vector audio_raw_files; From 7dbd972f683a457a5cbb2c8b91b61eea748b53f8 Mon Sep 17 00:00:00 2001 From: Siddartha Pothapragada Date: Fri, 15 May 2026 19:16:08 -0700 Subject: [PATCH 07/91] Fix libc++.so.1 missing for qnn-context-binary-utility (#19622) Differential Revision: D105378870 Pull Request resolved: https://github.com/pytorch/executorch/pull/19622 --- backends/qualcomm/tests/utils.py | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/backends/qualcomm/tests/utils.py b/backends/qualcomm/tests/utils.py index c6f0c1b840f..c25e1bf789d 100644 --- a/backends/qualcomm/tests/utils.py +++ b/backends/qualcomm/tests/utils.py @@ -122,8 +122,27 @@ def generate_context_binary( shell=True, executable="/bin/bash", capture_output=True, + text=True, + env=_qnn_subprocess_env(qnn_sdk, target), ) - assert os.path.isfile(f"{artifact_dir}/model_ctx.bin"), print(result.stderr) + assert os.path.isfile(f"{artifact_dir}/model_ctx.bin"), ( + f"Failed to generate context binary at {artifact_dir}/model_ctx.bin. " + f"returncode={result.returncode}\n" + f"stdout:\n{result.stdout}\n" + f"stderr:\n{result.stderr}" + ) + + +def _qnn_subprocess_env(qnn_sdk: str, target: str) -> Dict[str, str]: + """Return an env dict with LD_LIBRARY_PATH set so QNN SDK prebuilt + binaries (e.g. qnn-context-binary-utility) can resolve their bundled + libc++.so.1, which is shipped at $QNN_SDK_ROOT/lib//. + """ + env = os.environ.copy() + qnn_lib_dir = f"{qnn_sdk}/lib/{target}" + existing = env.get("LD_LIBRARY_PATH", "") + env["LD_LIBRARY_PATH"] = f"{qnn_lib_dir}:{existing}" if existing else qnn_lib_dir + return env def validate_context_binary(ctx_bin: bytes): @@ -149,8 +168,15 @@ def validate_context_binary(ctx_bin: bytes): shell=True, executable="/bin/bash", capture_output=True, + text=True, + env=_qnn_subprocess_env(qnn_sdk, target), + ) + assert os.path.isfile(f"{tmp_dir}/ctx.json"), ( + f"qnn-context-binary-utility failed to produce ctx.json. " + f"returncode={result.returncode}\n" + f"stdout:\n{result.stdout}\n" + f"stderr:\n{result.stderr}" ) - assert os.path.isfile(f"{tmp_dir}/ctx.json"), print(result.stderr) class TestQNN(unittest.TestCase): From 824cbff02f853d44322f82d36f4a83b8ccdd8b05 Mon Sep 17 00:00:00 2001 From: Ethan Ng Date: Fri, 15 May 2026 20:27:05 -0700 Subject: [PATCH 08/91] Prevent _safe_softmax decomposition in traceand rewire replaceSafeSoftmaxWithSoftmax Differential Revision: D105367634 Pull Request resolved: https://github.com/pytorch/executorch/pull/19619 --- backends/cadence/aot/compiler_funcs.py | 1 + backends/cadence/aot/passes.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/backends/cadence/aot/compiler_funcs.py b/backends/cadence/aot/compiler_funcs.py index bf7f79127a0..02dcde7fd39 100644 --- a/backends/cadence/aot/compiler_funcs.py +++ b/backends/cadence/aot/compiler_funcs.py @@ -35,6 +35,7 @@ def trace( model.eval() decomp_table = torch.export.default_decompositions() + ops_to_keep = [*(ops_to_keep or []), torch.ops.aten._safe_softmax.default] # pyre-fixme[6]: For 1st argument expected `Dict[typing.Callable[..., typing.Any remove_decompositions(decomp_table, ops_to_keep) program = torch.export.export(model, inputs, strict=strict).run_decompositions( diff --git a/backends/cadence/aot/passes.py b/backends/cadence/aot/passes.py index 8a03d72420e..f43ac3e4d2c 100644 --- a/backends/cadence/aot/passes.py +++ b/backends/cadence/aot/passes.py @@ -33,6 +33,7 @@ from executorch.backends.cadence.aot.replace_ops import ( CadenceReplaceOpsInGraph, ReplaceMulTensorWithMulAndFullOpsPass, + ReplaceSafeSoftmaxWithSoftmax, ) from executorch.backends.cadence.aot.simplify_ops import CadenceSimplifyOpsInGraph from executorch.backends.cadence.aot.type_dispatch import CompileTimeTypeDispatchPass @@ -131,7 +132,8 @@ def apply_torch_ops_passes(expo_program: ExportedProgram) -> ExportedProgram: """ aten_passes: List[Callable[[torch.fx.GraphModule], Optional[PassResult]]] = [ - ReplaceMulTensorWithMulAndFullOpsPass() + ReplaceSafeSoftmaxWithSoftmax(), + ReplaceMulTensorWithMulAndFullOpsPass(), ] # TODO(T230417247): Use PassResult which is currently ignored. PassManager(aten_passes)(expo_program.graph_module) From 87b667b47bca92544f957731878c72ee2cbecade Mon Sep 17 00:00:00 2001 From: pytorchbot Date: Mon, 18 May 2026 00:40:23 -0700 Subject: [PATCH 09/91] [Executorch] Enable madvise based mmap (#19586) This PR was created by the merge bot to help merge the original PR into the main branch. ghstack PR number: https://github.com/pytorch/executorch/pull/19553 by @kimishpatel ^ Please use this as the source of truth for the PR details, comments, and reviews ghstack PR base: https://github.com/pytorch/executorch/tree/gh/kimishpatel/240/base ghstack PR head: https://github.com/pytorch/executorch/tree/gh/kimishpatel/240/head Merge bot PR base: https://github.com/pytorch/executorch/tree/main Merge bot PR head: https://github.com/pytorch/executorch/tree/gh/kimishpatel/240/orig Differential Revision: [D104318324](https://our.internmc.facebook.com/intern/diff/D104318324/) @diff-train-skip-merge Co-authored-by: Kimish Patel --- extension/data_loader/mman.h | 19 +++++++++++++++++++ extension/data_loader/mmap_data_loader.cpp | 4 ++++ extension/data_loader/mmap_data_loader.h | 4 ++++ .../test/mmap_data_loader_test.cpp | 6 ++++++ extension/module/module.cpp | 11 +++++++++++ extension/module/module.h | 2 ++ extension/module/test/module_test.cpp | 17 +++++++++++++++++ 7 files changed, 63 insertions(+) diff --git a/extension/data_loader/mman.h b/extension/data_loader/mman.h index 26a9ee08067..fb6fe4fd39b 100644 --- a/extension/data_loader/mman.h +++ b/extension/data_loader/mman.h @@ -43,6 +43,16 @@ ET_INLINE off_t get_mmap_offset(size_t offset) { return static_cast(offset); } +/** + * Hint the kernel to prefetch pages eagerly and to optimize for sequential + * reads. Intended to reduce page-fault stutter during model initialization + * when the caller does not want to mlock the pages into RAM. + */ +ET_INLINE void madvise_pages_willneed_sequential(void* addr, size_t len) { + ::madvise(addr, len, MADV_WILLNEED); + ::madvise(addr, len, MADV_SEQUENTIAL); +} + #else #define NOMINMAX @@ -80,4 +90,13 @@ ET_INLINE uint64_t get_mmap_offset(size_t offset) { return static_cast(offset); } +/** + * No-op on Windows: there is no direct equivalent to madvise(MADV_WILLNEED | + * MADV_SEQUENTIAL) and the existing mman_windows shim does not implement one. + */ +ET_INLINE void madvise_pages_willneed_sequential(void* addr, size_t len) { + (void)addr; + (void)len; +} + #endif diff --git a/extension/data_loader/mmap_data_loader.cpp b/extension/data_loader/mmap_data_loader.cpp index 5d77b67cc59..b07c8dd7d62 100644 --- a/extension/data_loader/mmap_data_loader.cpp +++ b/extension/data_loader/mmap_data_loader.cpp @@ -249,6 +249,10 @@ Result MmapDataLoader::load( // No need to keep track of this. munmap() will unlock as a side effect. } + if (mlock_config_ == MlockConfig::UseMadvise) { + madvise_pages_willneed_sequential(pages, map_size); + } + // The requested data is at an offset into the mapped pages. const void* data = static_cast(pages) + offset - range.start; diff --git a/extension/data_loader/mmap_data_loader.h b/extension/data_loader/mmap_data_loader.h index c0496a39d4b..2bbdd96013b 100644 --- a/extension/data_loader/mmap_data_loader.h +++ b/extension/data_loader/mmap_data_loader.h @@ -38,6 +38,10 @@ class MmapDataLoader final : public executorch::runtime::DataLoader { UseMlock, /// Call `mlock()` on loaded pages, ignoring errors if it fails. UseMlockIgnoreErrors, + /// Use madvise(MADV_WILLNEED | MADV_SEQUENTIAL) instead of mlock. + /// Tells the kernel to prefetch pages eagerly and optimize for + /// sequential reads, without pinning them in RAM. + UseMadvise, }; /** diff --git a/extension/data_loader/test/mmap_data_loader_test.cpp b/extension/data_loader/test/mmap_data_loader_test.cpp index df071fd7474..e08001af245 100644 --- a/extension/data_loader/test/mmap_data_loader_test.cpp +++ b/extension/data_loader/test/mmap_data_loader_test.cpp @@ -244,6 +244,12 @@ TEST_F(MmapDataLoaderTest, InBoundsLoadsSucceedUseMlockIgnoreErrors) { MmapDataLoader::MlockConfig::UseMlockIgnoreErrors); } +TEST_F(MmapDataLoaderTest, InBoundsLoadsSucceedUseMadvise) { + // There's no portable way to verify madvise() is called, but exercise the + // path to make sure the code still behaves correctly. + test_in_bounds_loads_succeed(MmapDataLoader::MlockConfig::UseMadvise); +} + TEST_F(MmapDataLoaderTest, FinalPageOfUnevenFileSucceeds) { // Create a file whose length is not an even multiple of a page. // Each 4-byte word in the file has a different value. diff --git a/extension/module/module.cpp b/extension/module/module.cpp index ec7236276f5..0b95a86ac1e 100644 --- a/extension/module/module.cpp +++ b/extension/module/module.cpp @@ -70,6 +70,17 @@ runtime::Result> make_data_loader( std::move(*res_mlock_ignore)); break; } + case Module::LoadMode::MmapUseMadvise: { + auto res_madvise = MmapDataLoader::from( + file_path.c_str(), MmapDataLoader::MlockConfig::UseMadvise); + if (!res_madvise.ok()) { + return res_madvise.error(); + } + data_loader = + std::make_unique>( + std::move(*res_madvise)); + break; + } } return data_loader; } diff --git a/extension/module/module.h b/extension/module/module.h index 08a68b2676b..5f2c30bbfbe 100644 --- a/extension/module/module.h +++ b/extension/module/module.h @@ -51,6 +51,8 @@ class Module { MmapUseMlock, /// Use memory locking and ignore errors. MmapUseMlockIgnoreErrors, + /// Use mmap with madvise(MADV_WILLNEED | MADV_SEQUENTIAL) hints. + MmapUseMadvise, }; /** diff --git a/extension/module/test/module_test.cpp b/extension/module/test/module_test.cpp index 7e1d657094c..1e010504789 100644 --- a/extension/module/test/module_test.cpp +++ b/extension/module/test/module_test.cpp @@ -50,6 +50,23 @@ TEST_F(ModuleTest, TestLoad) { EXPECT_TRUE(module.is_loaded()); } +TEST_F(ModuleTest, TestLoadMmapUseMadvise) { + Module module(model_path_, Module::LoadMode::MmapUseMadvise); + + EXPECT_FALSE(module.is_loaded()); + const auto error = module.load(); + EXPECT_EQ(error, Error::Ok); + EXPECT_TRUE(module.is_loaded()); + + auto tensor = make_tensor_ptr({2, 2}, {1.f, 2.f, 3.f, 4.f}); + + const auto result = module.execute("forward", {tensor, tensor, 1.0}); + EXPECT_EQ(result.error(), Error::Ok); + + const auto expected = make_tensor_ptr({2, 2}, {2.f, 4.f, 6.f, 8.f}); + EXPECT_TENSOR_CLOSE(result->at(0).toTensor(), *expected.get()); +} + TEST_F(ModuleTest, TestLoadNonExistent) { Module module("/path/to/nonexistent/file.pte"); const auto error = module.load(); From df3fa0d58698b388adc7fc06373d55fb9386bb09 Mon Sep 17 00:00:00 2001 From: roman-janik-nxp Date: Mon, 18 May 2026 11:21:05 +0200 Subject: [PATCH 10/91] NXP backend: Add QAT tests for AvgPool, MaxPool and Mul tensor ops (#19572) ### Summary Add QAT tests for AvgPool, MaxPool and Mul tensor ops for Neutron backend using the new Neutron MLIR flow. ### Test plan Unit tests provided. cc @robert-kalmar --- .../test_avg_pool2d_converter.py | 20 +++++++ .../test_max_pool_2d_converter.py | 22 ++++++++ .../test_mul_tensor_converter.py | 52 ++++++++++++++----- 3 files changed, 81 insertions(+), 13 deletions(-) diff --git a/backends/nxp/tests/ir/converter/node_converter/test_avg_pool2d_converter.py b/backends/nxp/tests/ir/converter/node_converter/test_avg_pool2d_converter.py index 26d615e156f..2c73ccd8092 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_avg_pool2d_converter.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_avg_pool2d_converter.py @@ -29,6 +29,9 @@ ToNHWCPreprocess, ) from executorch.backends.nxp.tests.graph_verifier import DetailedGraphVerifier +from executorch.backends.nxp.tests.model_output_comparator import ( + NumericalStatsOutputComparator, +) from executorch.backends.nxp.tests.models import AvgPool2dConvModule, AvgPool2dModule from executorch.backends.nxp.tests.nsys_testing import lower_run_compare @@ -314,6 +317,23 @@ def test__basic_nsys_inference(self, mocker): model, input_shape, graph_verifier, use_new_flow_neutron_c=True ) + def test__basic_nsys_inference_qat(self, mocker): + input_shape = (2, 9, 6, 15) + model = AvgPool2dModule(False, 0) + comparator = NumericalStatsOutputComparator() + graph_verifier = DetailedGraphVerifier( + mocker, expected_delegated_ops={AvgPool2D: 1}, expected_non_delegated_ops={} + ) + + lower_run_compare( + model, + input_shape, + graph_verifier, + output_comparator=comparator, + use_new_flow_neutron_c=True, + use_qat=True, + ) + def test__kernel_size_limit(self, mocker): kernel_size = (1, 4096) input_shape = (1, 4) + kernel_size diff --git a/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py b/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py index 7a1c798caa3..2299c13e83a 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py @@ -17,6 +17,9 @@ ToChannelLastPreprocess, ) from executorch.backends.nxp.tests.graph_verifier import DetailedGraphVerifier +from executorch.backends.nxp.tests.model_output_comparator import ( + NumericalStatsOutputComparator, +) from executorch.backends.nxp.tests.nsys_testing import lower_run_compare from executorch.backends.nxp.tests.ops_aliases import ( ExecutorchDelegateCall, @@ -280,6 +283,25 @@ def test__basic_nsys_inference(self, mocker): model = MaxPool2dModule() self.assert_delegated(model, input_shape, mocker) + def test__basic_nsys_inference_qat(self, mocker): + input_shape = (2, 11, 7, 16) # The old flow limited the batch size to 1. + model = MaxPool2dModule() + comparator = NumericalStatsOutputComparator() + graph_verifier = DetailedGraphVerifier( + mocker, + expected_delegated_ops={MaxPool2DWithIndices: 1, GetItem: 1}, + expected_non_delegated_ops={}, + ) + + lower_run_compare( + model, + input_shape, + graph_verifier, + output_comparator=comparator, + use_new_flow_neutron_c=True, + use_qat=True, + ) + def test__kernel_size_limit(self, mocker): kernel_size = (1, 4096) input_shape = (1, 4) + kernel_size diff --git a/backends/nxp/tests/ir/converter/node_converter/test_mul_tensor_converter.py b/backends/nxp/tests/ir/converter/node_converter/test_mul_tensor_converter.py index 4e298bc9407..927af47bbf5 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_mul_tensor_converter.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_mul_tensor_converter.py @@ -20,7 +20,10 @@ ToChannelFirstPreprocess, ToChannelLastPreprocess, ) -from executorch.backends.nxp.tests.graph_verifier import BaseGraphVerifier +from executorch.backends.nxp.tests.graph_verifier import DetailedGraphVerifier +from executorch.backends.nxp.tests.model_output_comparator import ( + NumericalStatsOutputComparator, +) from executorch.backends.nxp.tests.models import ( MulTensorConvModule, MulTensorModule, @@ -229,19 +232,42 @@ class TestMulTensorNewNeutronFlow: pytest.param((1, 4, 8, 8), id="4D."), ], ) - def test__basic_nsys_inference(self, x_input_shape): + def test__basic_nsys_inference(self, x_input_shape, mocker): + x_input_spec = ModelInputSpec(x_input_shape) + model = MulTensorModule() + graph_verifier = DetailedGraphVerifier( + mocker, expected_delegated_ops={MulTensor: 1}, expected_non_delegated_ops={} + ) + + lower_run_compare( + model, + [x_input_spec, x_input_spec], + graph_verifier, + use_new_flow_neutron_c=True, + ) + + @pytest.mark.parametrize( + "x_input_shape", + [ + pytest.param((1, 4, 8), id="3D."), + pytest.param((1, 4, 8, 8), id="4D."), + ], + ) + def test__basic_nsys_inference_qat(self, x_input_shape, mocker): x_input_spec = ModelInputSpec(x_input_shape) model = MulTensorModule() - graph_verifier = BaseGraphVerifier( - exp_num_delegate_call_nodes=1, - exp_non_delegated_nodes=[], + comparator = NumericalStatsOutputComparator() + graph_verifier = DetailedGraphVerifier( + mocker, expected_delegated_ops={MulTensor: 1}, expected_non_delegated_ops={} ) lower_run_compare( model, [x_input_spec, x_input_spec], graph_verifier, + output_comparator=comparator, use_new_flow_neutron_c=True, + use_qat=True, ) @pytest.mark.parametrize( @@ -259,11 +285,10 @@ def test__basic_nsys_inference(self, x_input_shape): ), ], ) - def test__correct_broadcast(self, input_spec): + def test__correct_broadcast(self, input_spec, mocker): model = MulTensorModule() - graph_verifier = BaseGraphVerifier( - exp_num_delegate_call_nodes=1, - exp_non_delegated_nodes=[], + graph_verifier = DetailedGraphVerifier( + mocker, expected_delegated_ops={MulTensor: 1}, expected_non_delegated_ops={} ) lower_run_compare( @@ -308,16 +333,17 @@ def test__incorrect_broadcast(self, input_spec): ), ], ) - def test__w_conv(self, x_input_shape): + def test__w_conv(self, x_input_shape, mocker): model = MulTensorConvModule() n, c, h, w = x_input_shape y_input_spec = ModelInputSpec((n, 8, h, w)) x_input_spec = ModelInputSpec(x_input_shape) - graph_verifier = BaseGraphVerifier( - exp_num_delegate_call_nodes=1, - exp_non_delegated_nodes=[], + graph_verifier = DetailedGraphVerifier( + mocker, + expected_delegated_ops={MulTensor: 1, Convolution: 1}, + expected_non_delegated_ops={}, ) lower_run_compare( From c531386804f04fe710a79e9ccdfa952061a6bd9d Mon Sep 17 00:00:00 2001 From: robert-kalmar Date: Mon, 18 May 2026 11:43:39 +0200 Subject: [PATCH 11/91] NXP backend: Sync config importer to nxp internal CI changes (#19552) ### Test plan Existing unit test --- backends/nxp/tests/config_importer.py | 2 +- backends/nxp/tests/nsys_testing.py | 1 + backends/nxp/tests/outputs_dir_importer.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backends/nxp/tests/config_importer.py b/backends/nxp/tests/config_importer.py index 286e4fd0f73..dd424584cde 100644 --- a/backends/nxp/tests/config_importer.py +++ b/backends/nxp/tests/config_importer.py @@ -8,7 +8,7 @@ logger = logging.getLogger(__name__) try: - import test.python.config as test_config # noqa F401 + import config as test_config # noqa F401 logger.debug("Importing from executorch-integration") except ImportError: diff --git a/backends/nxp/tests/nsys_testing.py b/backends/nxp/tests/nsys_testing.py index 9d25c309d25..636e1a28a44 100644 --- a/backends/nxp/tests/nsys_testing.py +++ b/backends/nxp/tests/nsys_testing.py @@ -608,6 +608,7 @@ def _get_caller_name(): def execute_cmd(cmd, cwd="."): env = environ.copy() # Copy the current environment env["LD_LIBRARY_PATH"] = str(NSYS_PATH.parent) + logger.debug(f"Running command: {cmd}") with subprocess.Popen( cmd, diff --git a/backends/nxp/tests/outputs_dir_importer.py b/backends/nxp/tests/outputs_dir_importer.py index c018123c949..425bf44a31e 100644 --- a/backends/nxp/tests/outputs_dir_importer.py +++ b/backends/nxp/tests/outputs_dir_importer.py @@ -8,7 +8,7 @@ logger = logging.getLogger(__name__) try: - import test.python.outputs_dir as outputs_dir # noqa F401 + import outputs_dir as outputs_dir # noqa F401 logger.debug("Importing from executorch-integration") except ImportError: From 3c68b67efbeb2eaaf00d0ce5af1947cdb120b97c Mon Sep 17 00:00:00 2001 From: Baris <90050875+bdemirb@users.noreply.github.com> Date: Mon, 18 May 2026 11:54:38 +0100 Subject: [PATCH 12/91] Arm backend: Stabilize MobileNetV3 fp16 TOSA test (#19590) cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Baris Demir Co-authored-by: Baris Demir --- backends/arm/test/models/test_mobilenet_v3_arm.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backends/arm/test/models/test_mobilenet_v3_arm.py b/backends/arm/test/models/test_mobilenet_v3_arm.py index eccdc839e62..da9f99010b1 100644 --- a/backends/arm/test/models/test_mobilenet_v3_arm.py +++ b/backends/arm/test/models/test_mobilenet_v3_arm.py @@ -47,14 +47,17 @@ def test_mv3_tosa_FP(): @pytest.mark.slow def test_mv3_tosa_FP_fp16(): - inputs_fp16 = tuple(t.to(torch.float16) for t in model_inputs) + input_tensor_fp16 = torch.rand( + 1, 3, 232, 232, generator=torch.Generator().manual_seed(0) + ) + inputs_fp16 = (normalize(input_tensor_fp16).to(torch.float16),) pipeline = TosaPipelineFP[input_t]( mv3_fp16, inputs_fp16, aten_op=[], exir_op=[], use_to_edge_transform_and_lower=True, - atol=5e-2, + atol=6e-2, ) pipeline.run() From 9beca1fdd6159a20090b137a9e3b0a7e37504ed4 Mon Sep 17 00:00:00 2001 From: Baris <90050875+bdemirb@users.noreply.github.com> Date: Mon, 18 May 2026 11:55:13 +0100 Subject: [PATCH 13/91] Arm backend: Stabilize VGF bilinear fp16 test (#19613) cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Baris Demir Co-authored-by: Baris Demir --- backends/arm/test/ops/test_upsample_bilinear2d.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backends/arm/test/ops/test_upsample_bilinear2d.py b/backends/arm/test/ops/test_upsample_bilinear2d.py index f084e0ebe14..705f9ba4d20 100644 --- a/backends/arm/test/ops/test_upsample_bilinear2d.py +++ b/backends/arm/test/ops/test_upsample_bilinear2d.py @@ -551,12 +551,21 @@ def test_upsample_bilinear2d_vec_vgf_no_quant_Upsample(test_data: torch.Tensor): @common.SkipIfNoModelConverter def test_upsample_bilinear2d_vec_vgf_no_quant_Interpolate(test_data: torch.Tensor): data, size, scale_factor, compare = test_data() + match data.dtype: + case torch.float16: + atol = 1e-2 + rtol = 1e-2 + case _: + atol = 1e-3 + rtol = 1e-3 pipeline = VgfPipeline[input_t1]( Interpolate(size, scale_factor), (data,), aten_op, exir_op, quantize=False, + atol=atol, + rtol=rtol, ) if not compare: pipeline.pop_stage(-1) From 2649109afc10c8f1a61be34cfe75d82559d42c4b Mon Sep 17 00:00:00 2001 From: Per Held Date: Wed, 13 May 2026 10:44:31 +0200 Subject: [PATCH 14/91] Arm backend: Update gcc to 15.2 The output from gcc 13.3 and 15.2 compared: d_print_comp_inner 9,608 -> 11,884 (+2,276) _vfprintf_r 7,072 -> 8,484 (+1,412) _dtoa_r 3,260 -> 3,596 (+336 shown? actually +336 by symbol) _svfprintf_r 6,988 -> 8,208 (+1,220) _vfiprintf_r 3,692 -> 4,524 (+832) d_print_mod 1,584 -> 1,942 (+358) d_type 1,952 -> 2,124 (+172) __gxx_personality_v0 1,068 -> 1,124 (+56) New/now-large visible entries in the GCC 15.2 log include: __ieee754_fmod 924 _Unwind_VRS_Pop 778 d_name 776 ExecuTorch itself did not grow. ExecuTorch .text total: GCC 13.3: 15,334 GCC 15.2: 15,006 delta: -328 Signed-off-by: per.held@arm.com Change-Id: I5c3e9388f3a6d87fd987811d7dc04e9ef85cb69d --- .github/workflows/pull.yml | 2 +- backends/arm/scripts/toolchain_utils.sh | 18 +++++++++--------- third-party/CMakeLists.txt | 7 +++++++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index bfe83b853d1..25a5d571f8e 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -547,7 +547,7 @@ jobs: setup_script_args="" if [[ ${{ matrix.os}} == "bare_metal" ]]; then toolchain_prefix=arm-none-eabi- - threshold="111000" # 111 KiB + threshold="118000" # GCC 15.2 baseline: 115868 bytes, 2026-05-13 toolchain_cmake=examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake elif [[ ${{ matrix.os}} == "zephyr-preset" ]]; then setup_script_args="--target-toolchain zephyr" diff --git a/backends/arm/scripts/toolchain_utils.sh b/backends/arm/scripts/toolchain_utils.sh index 5b37bcee7b4..0ed1058fa28 100644 --- a/backends/arm/scripts/toolchain_utils.sh +++ b/backends/arm/scripts/toolchain_utils.sh @@ -22,20 +22,20 @@ source "${script_dir}/utils.sh" function gcc_select_toolchain() { if [[ "${ARCH}" == "x86_64" ]] ; then - toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz" - toolchain_dir="arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi" - toolchain_md5_checksum="0601a9588bc5b9c99ad2b56133b7f118" + toolchain_url="https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-x86_64-arm-none-eabi.tar.xz" + toolchain_dir="arm-gnu-toolchain-15.2.rel1-x86_64-arm-none-eabi" + toolchain_md5_checksum="da62bef8821e7fc2a9b5d023871036e0" toolchain_archive="${toolchain_dir}.tar.xz" elif [[ "${ARCH}" == "aarch64" ]] || [[ "${ARCH}" == "arm64" ]] ; then if [[ "${OS}" == "Darwin" ]]; then - toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz" - toolchain_dir="arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi" - toolchain_md5_checksum="f1c18320bb3121fa89dca11399273f4e" + toolchain_url="https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-darwin-arm64-arm-none-eabi.tar.xz" + toolchain_dir="arm-gnu-toolchain-15.2.rel1-darwin-arm64-arm-none-eabi" + toolchain_md5_checksum="e91fd6348ba0f3e5ec35eeba1ad7e2b8" toolchain_archive="${toolchain_dir}.tar.xz" elif [[ "${OS}" == "Linux" ]]; then - toolchain_url="https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi.tar.xz" - toolchain_dir="arm-gnu-toolchain-13.3.rel1-aarch64-arm-none-eabi" - toolchain_md5_checksum="303102d97b877ebbeb36b3158994b218" + toolchain_url="https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-aarch64-arm-none-eabi.tar.xz" + toolchain_dir="arm-gnu-toolchain-15.2.rel1-aarch64-arm-none-eabi" + toolchain_md5_checksum="458c5d9b362726c9ac20c96f1894ae13" toolchain_archive="${toolchain_dir}.tar.xz" fi else diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt index 7e49a18c42c..67da4833283 100644 --- a/third-party/CMakeLists.txt +++ b/third-party/CMakeLists.txt @@ -151,6 +151,13 @@ set(FLATCC_INSTALL CACHE BOOL "" ) add_subdirectory(flatcc) +if(CMAKE_C_COMPILER_ID STREQUAL "GNU" + AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 15 +) + target_compile_options( + flatccrt PRIVATE -Wno-error=unterminated-string-initialization + ) +endif() # Unfortunately flatcc writes libs directly in to the source tree [1]. So to # ensure the target lib is created last, force flatcc_cli to build first. # From ed499c026d790a0c1fc70ff97cc1d5283e2185a6 Mon Sep 17 00:00:00 2001 From: Zingo Andersen Date: Mon, 18 May 2026 13:50:50 +0200 Subject: [PATCH 15/91] Arm backend: Generate random conv2d test inputs lazily (#19556) Conv2d operator tests were creating random inputs at module import time. The Arm test seed is applied later by an autouse pytest fixture, so those tensors were not actually controlled by ARM_TEST_SEED. That made tests nondeterministic across fresh pytest processes and could expose different quantization behavior from run to run. Generate the affected inputs lazily inside each test case so the existing seed fixture makes them reproducible and ARM_TEST_SEED=RANDOM can re-randomize the intended data. Signed-off-by: Zingo Andersen --- backends/arm/test/ops/test_conv2d.py | 618 +++++++++++++++------------ 1 file changed, 339 insertions(+), 279 deletions(-) diff --git a/backends/arm/test/ops/test_conv2d.py b/backends/arm/test/ops/test_conv2d.py index 310471a966c..fdb625f5580 100644 --- a/backends/arm/test/ops/test_conv2d.py +++ b/backends/arm/test/ops/test_conv2d.py @@ -124,299 +124,316 @@ def forward(self, x): return x -conv2d_2x2_3x2x14x14_nobias = Conv2d( - in_channels=2, - out_channels=3, - kernel_size=(2, 2), - stride=1, - bias=False, - padding=3, - width=14, - height=14, - batches=2, - padding_mode="circular", -) +def conv2d_2x2_3x2x14x14_nobias(): + return Conv2d( + in_channels=2, + out_channels=3, + kernel_size=(2, 2), + stride=1, + bias=False, + padding=3, + width=14, + height=14, + batches=2, + padding_mode="circular", + ) -conv2d_3x3_1x3x12x12_st1_pd1_reflect = Conv2d( - in_channels=3, - out_channels=4, - kernel_size=(3, 3), - stride=1, - padding=3, - width=12, - height=12, - batches=1, - padding_mode="reflect", -) -conv2d_3x3_1x3x12x12_st1_pd1_replicate = Conv2d( - in_channels=3, - out_channels=4, - kernel_size=(3, 3), - stride=1, - padding=3, - width=12, - height=12, - batches=1, - padding_mode="replicate", -) +def conv2d_3x3_1x3x12x12_st1_pd3_reflect(): + return Conv2d( + in_channels=3, + out_channels=4, + kernel_size=(3, 3), + stride=1, + padding=3, + width=12, + height=12, + batches=1, + padding_mode="reflect", + ) -conv2d_3x3_1x3x24x24_st1 = Conv2d( - in_channels=3, - out_channels=10, - kernel_size=(3, 3), - stride=1, - padding=0, - width=24, - height=24, - batches=1, -) -conv2d_3x3_1x3x12x12_st2_pd1 = Conv2d( - in_channels=3, - out_channels=4, - kernel_size=(3, 3), - stride=2, - padding=1, - width=12, - height=12, - batches=1, -) +def conv2d_3x3_1x3x12x12_st1_pd3_replicate(): + return Conv2d( + in_channels=3, + out_channels=4, + kernel_size=(3, 3), + stride=1, + padding=3, + width=12, + height=12, + batches=1, + padding_mode="replicate", + ) -conv2d_1x1_1x2x16x16_st1 = Conv2d( - in_channels=2, - out_channels=1, - kernel_size=(1, 1), - stride=1, - padding=0, - width=16, - height=16, - batches=1, -) -conv2d_2x2_2x1x14x13_st2 = Conv2d( - in_channels=2, - out_channels=1, - kernel_size=(2, 2), - stride=2, - padding=0, - width=14, - height=13, - batches=1, -) +def conv2d_3x3_1x3x24x24_st1(): + return Conv2d( + in_channels=3, + out_channels=10, + kernel_size=(3, 3), + stride=1, + padding=0, + width=24, + height=24, + batches=1, + ) -conv2d_5x5_3x2x24x24_st1 = Conv2d( - in_channels=2, - out_channels=3, - kernel_size=(5, 5), - stride=1, - padding=0, - width=24, - height=24, - batches=2, -) -conv2d_3x3_1x3x28x28_st2_pd1 = Conv2d( - in_channels=3, - out_channels=16, - kernel_size=(3, 3), - stride=2, - padding=1, - width=28, - height=28, - batches=1, -) +def conv2d_3x3_1x3x12x12_st2_pd1(): + return Conv2d( + in_channels=3, + out_channels=4, + kernel_size=(3, 3), + stride=2, + padding=1, + width=12, + height=12, + batches=1, + ) -conv2d_5x5_1x3x14x15_st3_pd1 = Conv2d( - in_channels=3, - out_channels=16, - kernel_size=(5, 5), - stride=3, - padding=1, - width=14, - height=15, - batches=1, -) -conv2d_7x7_1x3x16x16_st2_pd1_dl2 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(7, 7), - stride=2, - padding=1, - dilation=2, - width=16, - height=16, - batches=1, -) +def conv2d_1x1_1x2x16x16_st1(): + return Conv2d( + in_channels=2, + out_channels=1, + kernel_size=(1, 1), + stride=1, + padding=0, + width=16, + height=16, + batches=1, + ) -conv2d_7x7_1x3x15x15_st1_pd0_dl1 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(7, 7), - stride=1, - padding=0, - dilation=1, - width=15, - height=15, - batches=1, -) -conv2d_5x5_1x3x14x14_st5_pd0_dl1 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(5, 5), - stride=5, - padding=0, - dilation=1, - width=14, - height=14, - batches=1, -) +def conv2d_2x2_2x1x14x13_st2(): + return Conv2d( + in_channels=2, + out_channels=1, + kernel_size=(2, 2), + stride=2, + padding=0, + width=14, + height=13, + batches=1, + ) -conv2d_5x5_1x3x9x9_st5_pd0_dl1 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(5, 5), - stride=5, - padding=0, - dilation=1, - width=9, - height=9, - batches=1, -) -conv2d_3x3_1x3x8x9_st3_pd0_dl1 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(3, 3), - stride=3, - padding=0, - dilation=1, - width=8, - height=9, - batches=1, -) +def conv2d_5x5_3x2x24x24_st1(): + return Conv2d( + in_channels=2, + out_channels=3, + kernel_size=(5, 5), + stride=1, + padding=0, + width=24, + height=24, + batches=2, + ) -conv2d_3x3_1x3x9x8_st3_pd0_dl1 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(3, 3), - stride=3, - padding=0, - dilation=1, - width=8, - height=9, - batches=1, -) -conv2d_3x4_1x3x7x7_st3_pd0_dl1 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(3, 4), - stride=3, - padding=0, - dilation=1, - width=7, - height=7, - batches=1, -) +def conv2d_3x3_1x3x28x28_st2_pd1(): + return Conv2d( + in_channels=3, + out_channels=16, + kernel_size=(3, 3), + stride=2, + padding=1, + width=28, + height=28, + batches=1, + ) -conv2d_4x3_1x3x7x7_st3_pd0_dl1 = Conv2d( - in_channels=3, - out_channels=3, - kernel_size=(4, 3), - stride=3, - padding=0, - dilation=1, - width=7, - height=7, - batches=1, -) -two_conv2d_nobias = Conv2d( - nbr_conv=2, - width=32, - height=32, - in_channels=[3, 10], - out_channels=[10, 15], - kernel_size=[(5, 5), (5, 5)], - stride=[1, 1], - padding=[0, 0], - bias=[False, False], - batches=1, -) +def conv2d_5x5_1x3x14x15_st3_pd1(): + return Conv2d( + in_channels=3, + out_channels=16, + kernel_size=(5, 5), + stride=3, + padding=1, + width=14, + height=15, + batches=1, + ) -two_conv2d = Conv2d( - nbr_conv=2, - width=32, - height=32, - in_channels=[3, 10], - out_channels=[10, 15], - kernel_size=[(5, 5), (5, 5)], - stride=[1, 1], - padding=[0, 0], - bias=[True, True], - batches=1, -) -conv2d_groups = Conv2d( - in_channels=12, - out_channels=9, - kernel_size=(3, 3), - stride=1, - padding=0, - dilation=1, - width=7, - height=7, - batches=1, - groups=3, - bias=False, -) +def conv2d_7x7_1x3x16x16_st2_pd1_dl2(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(7, 7), + stride=2, + padding=1, + dilation=2, + width=16, + height=16, + batches=1, + ) -conv2d_groups_bias = Conv2d( - in_channels=15, - out_channels=5, - kernel_size=(3, 3), - stride=1, - padding=0, - dilation=1, - width=7, - height=7, - batches=1, - groups=5, - bias=True, -) -# Shenanigan to get a nicer output when test fails. With unittest it looks like: -# FAIL: test_convolution_2d_tosa_INT_2_3x3_1x3x12x12_st2_pd1 -test_data_FP = { - "2x2_3x2x14x14_nobias_circular": lambda: conv2d_2x2_3x2x14x14_nobias, - "3x3_1x3x12x12_st1_pd1_reflect": lambda: conv2d_3x3_1x3x12x12_st1_pd1_reflect, - "3x3_1x3x12x12_st1_pd1_replicate": lambda: conv2d_3x3_1x3x12x12_st1_pd1_replicate, - "3x3_1x3x24x24_st1": lambda: conv2d_3x3_1x3x24x24_st1, - "3x3_1x3x12x12_st2_pd1": lambda: conv2d_3x3_1x3x12x12_st2_pd1, - "1x1_1x2x16x16_st1": lambda: conv2d_1x1_1x2x16x16_st1, - "2x2_2x1x14x13_st2_needs_adjust_pass": lambda: conv2d_2x2_2x1x14x13_st2, - "5x5_1x3x14x15_st3_pd1_needs_adjust_pass": lambda: conv2d_5x5_1x3x14x15_st3_pd1, - "7x7_1x3x16x16_st2_pd1_dl2_needs_adjust_pass": lambda: conv2d_7x7_1x3x16x16_st2_pd1_dl2, - "7x7_1x3x15x15_st1_pd0_dl1_needs_adjust_pass": lambda: conv2d_7x7_1x3x15x15_st1_pd0_dl1, - "5x5_1x3x14x14_st5_pd0_dl1_needs_adjust_pass": lambda: conv2d_5x5_1x3x14x14_st5_pd0_dl1, - "5x5_1x3x9x9_st5_pd0_dl1_needs_adjust_pass": lambda: conv2d_5x5_1x3x9x9_st5_pd0_dl1, - "3x3_1x3x9x8_st3_pd0_dl1_needs_adjust_pass": lambda: conv2d_3x3_1x3x9x8_st3_pd0_dl1, - "3x3_1x3x8x9_st3_pd0_dl1_needs_adjust_pass": lambda: conv2d_3x3_1x3x8x9_st3_pd0_dl1, - "3x4_1x3x7x7_st3_pd0_dl1_needs_adjust_pass": lambda: conv2d_3x4_1x3x7x7_st3_pd0_dl1, - "4x3_1x3x7x7_st3_pd0_dl1_needs_adjust_pass": lambda: conv2d_4x3_1x3x7x7_st3_pd0_dl1, - "5x5_3x2x24x24_st1": lambda: conv2d_5x5_3x2x24x24_st1, - "3x3_1x3x28x28_st2_pd1": lambda: conv2d_3x3_1x3x28x28_st2_pd1, - "two_conv2d_nobias": lambda: two_conv2d_nobias, - "two_conv2d": lambda: two_conv2d, - "groups": lambda: conv2d_groups, - "groups_bias": lambda: conv2d_groups_bias, -} +def conv2d_7x7_1x3x15x15_st1_pd0_dl1(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(7, 7), + stride=1, + padding=0, + dilation=1, + width=15, + height=15, + batches=1, + ) -test_data_FP_bf16 = { - "bf16_3x3": lambda: Conv2d( + +def conv2d_5x5_1x3x14x14_st5_pd0_dl1(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(5, 5), + stride=5, + padding=0, + dilation=1, + width=14, + height=14, + batches=1, + ) + + +def conv2d_5x5_1x3x9x9_st5_pd0_dl1(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(5, 5), + stride=5, + padding=0, + dilation=1, + width=9, + height=9, + batches=1, + ) + + +def conv2d_3x3_1x3x8x9_st3_pd0_dl1(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(3, 3), + stride=3, + padding=0, + dilation=1, + width=8, + height=9, + batches=1, + ) + + +def conv2d_3x3_1x3x9x8_st3_pd0_dl1(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(3, 3), + stride=3, + padding=0, + dilation=1, + width=9, + height=8, + batches=1, + ) + + +def conv2d_3x4_1x3x7x7_st3_pd0_dl1(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(3, 4), + stride=3, + padding=0, + dilation=1, + width=7, + height=7, + batches=1, + ) + + +def conv2d_4x3_1x3x7x7_st3_pd0_dl1(): + return Conv2d( + in_channels=3, + out_channels=3, + kernel_size=(4, 3), + stride=3, + padding=0, + dilation=1, + width=7, + height=7, + batches=1, + ) + + +def two_conv2d_nobias(): + return Conv2d( + nbr_conv=2, + width=32, + height=32, + in_channels=[3, 10], + out_channels=[10, 15], + kernel_size=[(5, 5), (5, 5)], + stride=[1, 1], + padding=[0, 0], + bias=[False, False], + batches=1, + ) + + +def two_conv2d(): + return Conv2d( + nbr_conv=2, + width=32, + height=32, + in_channels=[3, 10], + out_channels=[10, 15], + kernel_size=[(5, 5), (5, 5)], + stride=[1, 1], + padding=[0, 0], + bias=[True, True], + batches=1, + ) + + +def conv2d_groups(): + return Conv2d( + in_channels=12, + out_channels=9, + kernel_size=(3, 3), + stride=1, + padding=0, + dilation=1, + width=7, + height=7, + batches=1, + groups=3, + bias=False, + ) + + +def conv2d_groups_bias(): + return Conv2d( + in_channels=15, + out_channels=5, + kernel_size=(3, 3), + stride=1, + padding=0, + dilation=1, + width=7, + height=7, + batches=1, + groups=5, + bias=True, + ) + + +def conv2d_bf16_3x3(): + return Conv2d( height=12, width=12, in_channels=3, @@ -426,8 +443,11 @@ def forward(self, x): padding=(1, 1), bias=True, dtype=torch.bfloat16, - ), - "bf16_1x1": lambda: Conv2d( + ) + + +def conv2d_bf16_1x1(): + return Conv2d( height=8, width=8, in_channels=2, @@ -437,10 +457,11 @@ def forward(self, x): padding=(0, 3), bias=False, dtype=torch.bfloat16, - ), -} -test_data_FP_fp16 = { - "fp16_3x3": lambda: Conv2d( + ) + + +def conv2d_fp16_3x3(): + return Conv2d( height=12, width=12, in_channels=3, @@ -450,8 +471,11 @@ def forward(self, x): padding=(1, 1), bias=True, dtype=torch.float16, - ), - "fp16_1x1": lambda: Conv2d( + ) + + +def conv2d_fp16_1x1(): + return Conv2d( height=8, width=8, in_channels=2, @@ -461,7 +485,43 @@ def forward(self, x): padding=(0, 3), bias=False, dtype=torch.float16, - ), + ) + + +# Shenanigan to get a nicer output when test fails. With unittest it looks like: +# FAIL: test_convolution_2d_tosa_INT_2_3x3_1x3x12x12_st2_pd1 +test_data_FP = { + "2x2_3x2x14x14_nobias_circular": conv2d_2x2_3x2x14x14_nobias, + "3x3_1x3x12x12_st1_pd3_reflect": conv2d_3x3_1x3x12x12_st1_pd3_reflect, + "3x3_1x3x12x12_st1_pd3_replicate": conv2d_3x3_1x3x12x12_st1_pd3_replicate, + "3x3_1x3x24x24_st1": conv2d_3x3_1x3x24x24_st1, + "3x3_1x3x12x12_st2_pd1": conv2d_3x3_1x3x12x12_st2_pd1, + "1x1_1x2x16x16_st1": conv2d_1x1_1x2x16x16_st1, + "2x2_2x1x14x13_st2_needs_adjust_pass": conv2d_2x2_2x1x14x13_st2, + "5x5_1x3x14x15_st3_pd1_needs_adjust_pass": conv2d_5x5_1x3x14x15_st3_pd1, + "7x7_1x3x16x16_st2_pd1_dl2_needs_adjust_pass": conv2d_7x7_1x3x16x16_st2_pd1_dl2, + "7x7_1x3x15x15_st1_pd0_dl1_needs_adjust_pass": conv2d_7x7_1x3x15x15_st1_pd0_dl1, + "5x5_1x3x14x14_st5_pd0_dl1_needs_adjust_pass": conv2d_5x5_1x3x14x14_st5_pd0_dl1, + "5x5_1x3x9x9_st5_pd0_dl1_needs_adjust_pass": conv2d_5x5_1x3x9x9_st5_pd0_dl1, + "3x3_1x3x9x8_st3_pd0_dl1_needs_adjust_pass": conv2d_3x3_1x3x9x8_st3_pd0_dl1, + "3x3_1x3x8x9_st3_pd0_dl1_needs_adjust_pass": conv2d_3x3_1x3x8x9_st3_pd0_dl1, + "3x4_1x3x7x7_st3_pd0_dl1_needs_adjust_pass": conv2d_3x4_1x3x7x7_st3_pd0_dl1, + "4x3_1x3x7x7_st3_pd0_dl1_needs_adjust_pass": conv2d_4x3_1x3x7x7_st3_pd0_dl1, + "5x5_3x2x24x24_st1": conv2d_5x5_3x2x24x24_st1, + "3x3_1x3x28x28_st2_pd1": conv2d_3x3_1x3x28x28_st2_pd1, + "two_conv2d_nobias": two_conv2d_nobias, + "two_conv2d": two_conv2d, + "groups": conv2d_groups, + "groups_bias": conv2d_groups_bias, +} + +test_data_FP_bf16 = { + "bf16_3x3": conv2d_bf16_3x3, + "bf16_1x1": conv2d_bf16_1x1, +} +test_data_FP_fp16 = { + "fp16_3x3": conv2d_fp16_3x3, + "fp16_1x1": conv2d_fp16_1x1, } # Generate a new test set paired with per_channel_quant=True/False. From 9fe99520c2b6696c9718e8bf59ae48f0d3928492 Mon Sep 17 00:00:00 2001 From: Xingguo Li <100689130+xingguo01@users.noreply.github.com> Date: Mon, 18 May 2026 13:32:18 +0100 Subject: [PATCH 16/91] Arm backend: Add static cache integration test with llama (#18404) Add static cache integration tests in llama cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Xingguo Li Co-authored-by: Elena Zhelezina --- backends/arm/_passes/rewrite_conv_pass.py | 8 +- backends/arm/test/models/test_llama.py | 94 ++++++++- backends/transforms/decompose_sdpa.py | 196 +++++++++++++----- .../transforms/test/test_decompose_sdpa.py | 96 +++++++++ 4 files changed, 335 insertions(+), 59 deletions(-) create mode 100644 backends/transforms/test/test_decompose_sdpa.py diff --git a/backends/arm/_passes/rewrite_conv_pass.py b/backends/arm/_passes/rewrite_conv_pass.py index 27565e93452..ed4df2e43b6 100644 --- a/backends/arm/_passes/rewrite_conv_pass.py +++ b/backends/arm/_passes/rewrite_conv_pass.py @@ -153,7 +153,13 @@ def _add_bias( output_dtype = node.meta["val"].dtype bias_data = torch.zeros(size=(output_channels,), dtype=output_dtype) - with graph_module.graph.inserting_after(weight_node): + # Constant placeholders must appear before user-input placeholders in + # the graph. Insert the synthetic bias at the first placeholder slot + # instead of near the conv node. + first_placeholder = next( + n for n in graph_module.graph.nodes if n.op == "placeholder" + ) + with graph_module.graph.inserting_before(first_placeholder): bias_node = create_constant_placeholder( self.exported_program, graph=graph_module.graph, diff --git a/backends/arm/test/models/test_llama.py b/backends/arm/test/models/test_llama.py index 704e3e07926..1602aa7b4ba 100644 --- a/backends/arm/test/models/test_llama.py +++ b/backends/arm/test/models/test_llama.py @@ -31,7 +31,11 @@ from executorch.extension.llm.export.config.llm_config import LlmConfig +from transformers import GenerationConfig, LlamaConfig, LlamaForCausalLM +from transformers.integrations.executorch import TorchExportableModuleForDecoderOnlyLM + input_t = Tuple[torch.Tensor] +input_th = Tuple[torch.Tensor, torch.Tensor] # Add project dir to sys path to workaround importlib.import_module() conditions in model_factory.py this_files_dir = os.path.dirname(os.path.abspath(__file__)) @@ -41,6 +45,22 @@ logger = logging.getLogger(__name__) +class HFPositionalAdapter(torch.nn.Module): + def __init__(self, exportable): + super().__init__() + self.inner = exportable + + def forward(self, input_ids, cache_position): + # HF StaticCache eager path requires int64 index tensors, but keeping + # cache_position as int32 during export capture avoids adding an extra + # int64->int32 cast node in the lowered graph. + if torch._dynamo.is_compiling(): + cp = cache_position + else: + cp = cache_position.to(torch.long) + return self.inner(input_ids=input_ids, cache_position=cp) + + class TestLlama: """Test class of Llama models. @@ -51,6 +71,44 @@ class TestLlama: """ + def prepare_model_hf_static(self): + """ + Build a tiny HF LLaMA wrapped with TorchExportableModuleForDecoderOnlyLM (StaticCache) + See https://github.com/huggingface/transformers/blob/main/src/transformers/integrations/executorch.py#L214C17-L214C53 + """ + # Tiny config + cfg = LlamaConfig( + vocab_size=32000, + hidden_size=256, + intermediate_size=512, + num_hidden_layers=2, + num_attention_heads=4, + num_key_value_heads=2, + use_cache=True, + ) + base = LlamaForCausalLM(cfg).eval() + + # REQUIRED: generation_config must request a 'static' cache with batch_size & max_cache_len + base.generation_config = GenerationConfig( + use_cache=True, + cache_implementation="static", + cache_config={"batch_size": 1, "max_cache_len": 128}, + ) + + exportable = TorchExportableModuleForDecoderOnlyLM( + model=base, batch_size=1, max_cache_len=128 + ) + + # Positional adapter so the pipeline can call module(*inputs) + model_for_pipeline = HFPositionalAdapter(exportable).eval() + + # The tester will call model(*inputs). Provide (input_ids, cache_position) + input_ids = torch.tensor([[0]], dtype=torch.long) # shape [1, 1] + cache_position = torch.tensor([0], dtype=torch.int32) # shape [1] + inputs = (input_ids, cache_position) + + return model_for_pipeline, inputs, None + def prepare_model(self): checkpoint = None params_file = None @@ -86,6 +144,10 @@ def prepare_model(self): # TODO: Enable key value cache args = [ "--disable_dynamic_shape", + "--max_seq_length", + "4096", + "--max_context_length", + "4096", "-c", checkpoint, "-p", @@ -93,6 +155,7 @@ def prepare_model(self): "--model", model_name, ] + parser = build_args_parser() args = parser.parse_args(args) llm_config = LlmConfig.from_args(args) @@ -123,11 +186,10 @@ def test_llama_tosa_FP(): aten_op=[], exir_op=[], custom_path="llama_tosa_fb", - run_on_tosa_ref_model=False, # Just want to write TOSA FB to disk + run_on_tosa_ref_model=True, use_to_edge_transform_and_lower=True, transform_passes=[InsertInt32CastsAfterInt64PlaceholdersPass()], ) - pipeline.add_stage_after("to_executorch", pipeline.tester.serialize) pipeline.run() @@ -144,12 +206,36 @@ def test_llama_tosa_INT(): aten_op=[], exir_op=[], custom_path="llama_tosa_fb_int", - run_on_tosa_ref_model=False, # Just want to write TOSA FB to disk + run_on_tosa_ref_model=True, use_to_edge_transform_and_lower=True, frobenius_threshold=None, cosine_threshold=None, ) - pipeline.add_stage_after("to_executorch", pipeline.tester.serialize) + pipeline.run() + + +def test_llama_tosa_INT_static(): + llama_model, llama_inputs, _ = TestLlama().prepare_model_hf_static() + if llama_model is None or llama_inputs is None: + pytest.skip("Missing model and/or input files") + + with torch.no_grad(): + pipeline = TosaPipelineINT[input_th]( + llama_model, + llama_inputs, + aten_op=[], + exir_op=[], + custom_path="llama_tosa_hf_static_int", + run_on_tosa_ref_model=True, + use_to_edge_transform_and_lower=True, + fold_quantize=True, + ) + # NOTE: HF StaticCache INT currently keeps two delegated subgraphs + # after partitioning on this path, so expect two delegate calls in EXIR. + pipeline.change_args( + "check_count.exir", + {"torch.ops.higher_order.executorch_call_delegate": 2}, + ) pipeline.run() diff --git a/backends/transforms/decompose_sdpa.py b/backends/transforms/decompose_sdpa.py index 13acaa32f11..a0f3bc3ab65 100644 --- a/backends/transforms/decompose_sdpa.py +++ b/backends/transforms/decompose_sdpa.py @@ -14,6 +14,7 @@ from executorch.exir.pass_base import ExportPass, PassResult from torch._decomp import get_decompositions from torch.fx.experimental.proxy_tensor import make_fx +from torch.fx.node import Argument class DecomposeScaledDotProductAttention(ExportPass): @@ -22,6 +23,11 @@ class DecomposeScaledDotProductAttention(ExportPass): """ _passes_required_after: Set[Type[ExportPass]] = set() + _SDPA_OPTIONAL_ARGS = ( + ("attn_mask", None), + ("dropout_p", 0.0), + ("is_causal", False), + ) def __init__(self, allow_non_fake_inputs: bool = True) -> None: super().__init__() @@ -42,6 +48,105 @@ def call( graph_module.recompile() return PassResult(graph_module, True) + @staticmethod + def _extract_arg_value(arg: object) -> object: + if isinstance(arg, torch.fx.Node): + if "val" not in arg.meta: + raise RuntimeError(f"Missing meta['val'] for SDPA arg node: {arg.name}") + return arg.meta["val"] + return arg + + @classmethod + def _canonicalize_sdpa_call( + cls, node: torch.fx.Node + ) -> tuple[tuple[object, ...], object, object]: + input_args = list(node.args) + input_kwargs = dict(node.kwargs) + + canonical_args = list(input_args[:3]) + for arg_index, (arg_name, default) in enumerate( + cls._SDPA_OPTIONAL_ARGS, start=3 + ): + if len(input_args) > arg_index: + canonical_args.append(input_args[arg_index]) + else: + canonical_args.append(input_kwargs.pop(arg_name, default)) + + raw_scale = input_kwargs.pop("scale", None) + canonical_args.append(raw_scale) + scale = cls._extract_arg_value(raw_scale) + enable_gqa = cls._extract_arg_value(input_kwargs.pop("enable_gqa", False)) + if input_kwargs: + raise RuntimeError( + "Unsupported kwargs for scaled_dot_product_attention: " + f"{', '.join(sorted(input_kwargs.keys()))}" + ) + + return tuple(canonical_args), scale, enable_gqa + + @staticmethod + def _copy_decomposed_graph( + graph: torch.fx.Graph, + node: torch.fx.Node, + decomposed_module: torch.fx.GraphModule, + canonical_inputs: tuple[object, ...], + scale: object, + ) -> None: + decomposed_node_to_subgraph_node: dict[torch.fx.Node, Argument] = {} + last_decomposed_node: torch.fx.Node | None = None + placeholder_nodes = [ + decomposed_node + for decomposed_node in decomposed_module.graph.nodes + if decomposed_node.op == "placeholder" + ] + if len(placeholder_nodes) != len(canonical_inputs): + raise RuntimeError( + "Unexpected placeholder count when decomposing " + "scaled_dot_product_attention" + ) + for decomposed_node, arg in zip(placeholder_nodes, canonical_inputs): + decomposed_node_to_subgraph_node[decomposed_node] = arg + + for decomposed_node in decomposed_module.graph.nodes: + if decomposed_node.op == "output": + output_arg = decomposed_node.args[0] + if not isinstance(output_arg, torch.fx.Node): + raise RuntimeError( + "Unexpected non-node output when decomposing " + "scaled_dot_product_attention" + ) + last_decomposed_node = output_arg + + for decomposed_node in decomposed_module.graph.nodes: + decomposed_node.meta["nn_module_stack"] = node.meta.get("nn_module_stack") + if decomposed_node.op == "placeholder": + continue + + if decomposed_node.op == "output" and last_decomposed_node is not None: + for user in node.users.copy(): + user.replace_input_with( + node, + decomposed_node_to_subgraph_node[last_decomposed_node], + ) + continue + + if scale is not None and decomposed_node.target in [ + torch.ops.aten.mul.Scalar + ]: + new_args = list(decomposed_node.args) + new_args[1] = math.sqrt(scale) + decomposed_node.args = tuple(new_args) + + subgraph_node = graph.node_copy( + decomposed_node, + arg_transform=lambda x: decomposed_node_to_subgraph_node[x], + ) + subgraph_node.meta["nn_module_stack"] = node.meta.get("nn_module_stack") + subgraph_node.meta["source_fn_stack"] = [ + (subgraph_node, subgraph_node.target) + ] + decomposed_node_to_subgraph_node[decomposed_node] = subgraph_node + def _decompose_sdpa_node( self, graph_module: torch.fx.GraphModule, @@ -49,12 +154,43 @@ def _decompose_sdpa_node( allow_non_fake_inputs: bool, ) -> None: graph = graph_module.graph - input_tensors = (input_node.meta["val"] for input_node in node.all_input_nodes) - scale = node.kwargs.get("scale", None) + + canonical_inputs, scale, enable_gqa = self._canonicalize_sdpa_call(node) + input_tensors = tuple(self._extract_arg_value(arg) for arg in canonical_inputs) + + def _sdpa_with_gqa( + q, k, v, attn_mask=None, dropout_p=0.0, is_causal=False, scale=None + ): + # Shapes: (B, H, T, D) + Hq = q.shape[1] + Hk = k.shape[1] + if Hq != Hk: + # LLaMA-style GQA: tile K and V heads to match Q + if not enable_gqa: + raise ValueError( + "SDPA head mismatch requires enable_gqa=True: " + f"Hq={Hq}, Hk={Hk}" + ) + if Hq % Hk != 0: + raise ValueError(f"GQA mismatch: Hq={Hq}, Hk={Hk}") + r = Hq // Hk + B, _, Tk, D = k.shape + k = k.unsqueeze(2).expand(B, Hk, r, Tk, D).reshape(B, Hq, Tk, D) + v = v.unsqueeze(2).expand(B, Hk, r, Tk, D).reshape(B, Hq, Tk, D) + return torch.ops.aten.scaled_dot_product_attention.default( + q, + k, + v, + attn_mask, + dropout_p, + is_causal, + scale=scale, + enable_gqa=enable_gqa, + ) # refer to pytorch/test/test_decomp.py decomposed_module = make_fx( - node.target, + _sdpa_with_gqa, decomposition_table=get_decompositions( # pyre-fixme[6] [ torch.ops.aten._scaled_dot_product_flash_attention_for_cpu.default, @@ -65,56 +201,8 @@ def _decompose_sdpa_node( )(*input_tensors) with graph.inserting_before(node): - name_to_input_tensor_map = {} - for i, arg in enumerate(node.args): - name_to_input_tensor_map[f"arg{i}_1"] = arg - - decomposed_node_to_subgraph_node: dict[torch.fx.Node, torch.fx.Node] = {} - last_decomposed_node = None - # Create a mapping from input nodes in decomposed module to original nodes. - # In decomposed module, there are only input tensors for placeholder op. - for decomposed_node in decomposed_module.graph.nodes: - if decomposed_node.op == "placeholder": - decomposed_node_to_subgraph_node[decomposed_node] = ( - name_to_input_tensor_map[decomposed_node.name] - ) - - if decomposed_node.op == "output": - last_decomposed_node = decomposed_node.args[0] - - # Copy node from decompose graph module - for decomposed_node in decomposed_module.graph.nodes: - node.meta["nn_module_stack"] = decomposed_node.meta.get( - "nn_module_stack" - ) - if decomposed_node.op == "placeholder": - continue - - if decomposed_node.op == "output" and last_decomposed_node is not None: - for user in node.users.copy(): - user.replace_input_with( - node, - decomposed_node_to_subgraph_node[last_decomposed_node], - ) - continue - - if scale is not None and decomposed_node.target in [ - torch.ops.aten.mul.Scalar - ]: - new_args = list(decomposed_node.args) - # Based on the implementation of _scaled_dot_product_attention_math, - # the scale is applied to q and k before matmul. - # refer to pytorch/aten/src/ATen/native/transformers/attention.cpp#L873 - new_args[1] = math.sqrt(scale) - decomposed_node.args = tuple(new_args) - - subgraph_node = graph.node_copy( - decomposed_node, - arg_transform=lambda x: decomposed_node_to_subgraph_node[x], - ) - subgraph_node.meta["source_fn_stack"] = [ - (subgraph_node, subgraph_node.target) - ] - decomposed_node_to_subgraph_node[decomposed_node] = subgraph_node + self._copy_decomposed_graph( + graph, node, decomposed_module, canonical_inputs, scale + ) graph.erase_node(node) diff --git a/backends/transforms/test/test_decompose_sdpa.py b/backends/transforms/test/test_decompose_sdpa.py new file mode 100644 index 00000000000..9d79666919f --- /dev/null +++ b/backends/transforms/test/test_decompose_sdpa.py @@ -0,0 +1,96 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +import unittest + +import torch +from executorch.backends.transforms.decompose_sdpa import ( + DecomposeScaledDotProductAttention, +) +from torch.export import export + + +class TestDecomposeScaledDotProductAttention(unittest.TestCase): + def test_decompose_sdpa_requires_enable_gqa_for_head_mismatch(self) -> None: + class Model(torch.nn.Module): + def forward(self, q, k, v): + return torch.nn.functional.scaled_dot_product_attention( + q, k, v, enable_gqa=True + ) + + q = torch.randn(1, 4, 3, 4) + k = torch.randn(1, 2, 3, 4) + v = torch.randn(1, 2, 3, 4) + + graph_module = export(Model().eval(), (q, k, v), strict=True).module() + for node in graph_module.graph.nodes: + if node.target == torch.ops.aten.scaled_dot_product_attention.default: + node.kwargs = {**node.kwargs, "enable_gqa": False} + break + + with self.assertRaisesRegex(ValueError, "enable_gqa=True"): + DecomposeScaledDotProductAttention()(graph_module) + + def test_decompose_sdpa_preserves_kwargs(self) -> None: + class Block(torch.nn.Module): + def forward(self, q, k, v, mask): + return torch.nn.functional.scaled_dot_product_attention( + q, + k, + v, + attn_mask=mask, + scale=0.25, + ) + + class Model(torch.nn.Module): + def __init__(self) -> None: + super().__init__() + self.block = Block() + + def forward(self, q, k, v, mask): + return self.block(q, k, v, mask) + + q = torch.randn(1, 2, 3, 4) + k = torch.randn(1, 2, 3, 4) + v = torch.randn(1, 2, 3, 4) + mask = torch.tensor( + [[[[True, False, True], [True, True, False], [False, True, True]]]] + ) + + graph_module = export(Model().eval(), (q, k, v, mask), strict=True).module() + + before_output = graph_module(q, k, v, mask) + original_nn_module_stack = None + self.assertTrue( + any( + node.target == torch.ops.aten.scaled_dot_product_attention.default + for node in graph_module.graph.nodes + if node.op == "call_function" + ) + ) + for node in graph_module.graph.nodes: + if node.op == "call_function" and ( + node.target == torch.ops.aten.scaled_dot_product_attention.default + ): + original_nn_module_stack = node.meta.get("nn_module_stack") + break + + self.assertIsNotNone(original_nn_module_stack) + + DecomposeScaledDotProductAttention()(graph_module) + + self.assertFalse( + any( + node.target == torch.ops.aten.scaled_dot_product_attention.default + for node in graph_module.graph.nodes + if node.op == "call_function" + ) + ) + for node in graph_module.graph.nodes: + if node.op == "call_function": + self.assertEqual( + node.meta.get("nn_module_stack"), original_nn_module_stack + ) + torch.testing.assert_close(graph_module(q, k, v, mask), before_output) From a142873b38eafe83b0822b46eac14cda033cc381 Mon Sep 17 00:00:00 2001 From: christine-long-meta <163800716+christine-long-meta@users.noreply.github.com> Date: Mon, 18 May 2026 08:48:29 -0400 Subject: [PATCH 17/91] Add a16w8 per-op test for var (#19596) Summary: Add int16 activation / int8 weight (a16w8) quantization tests for `aten.var` on Ethos-U55 and Ethos-U85. ## Changes - Add `test_var_a16w8_u55_INT` and `test_var_a16w8_u85_INT` using `EthosU55PipelineINT`/`EthosU85PipelineINT` with `a16w8_quantization=True, symmetric_io_quantization=True` - Split `Var.test_parameters` into passing (`a16w8_var_test_parameters`, keepdim=True) and xfail (`a16w8_var_test_parameters_xfails`, keepdim=False) groups for the a16w8 tests - Mark `keepdim=False` cases (`var_3d_no_keep_dim_0_correction`, `var_4d_no_keep_dim_0_5_correction`) as `pytest.mark.xfail` since var a16w8 produces incorrect output for scalar/reduced-rank output - Register `ops/test_var.py` in `fbcode/` and `xplat/` `targets.bzl` Differential Revision: D104532362 --- backends/arm/test/ops/test_var.py | 46 +++++++++++++++++++++++++++++-- backends/arm/test/targets.bzl | 1 + 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/backends/arm/test/ops/test_var.py b/backends/arm/test/ops/test_var.py index a7943bfc19b..35aa2857d3b 100644 --- a/backends/arm/test/ops/test_var.py +++ b/backends/arm/test/ops/test_var.py @@ -141,6 +141,18 @@ def forward( return x.var(dim=self.dim, keepdim=self.keepdim, correction=self.correction) +# Var parameters that pass on Ethos-U hardware (keepdim=True only) +var_test_parameters_hw = { + "var_4d_keep_dim_0_correction": lambda: (torch.randn(1, 50, 10, 20), True, 0), + "var_4d_keep_dim_1_correction": lambda: (torch.randn(1, 30, 15, 20), True, 1), +} + +a16w8_var_test_parameters = { + "var_4d_keep_dim_0_correction": lambda: (torch.randn(1, 50, 10, 20), True, 0), + "var_4d_keep_dim_1_correction": lambda: (torch.randn(1, 30, 15, 20), True, 1), +} + + ########## ## Var ### ########## @@ -170,7 +182,7 @@ def test_var_dim_tosa_INT_no_dim(test_data: Tuple): pipeline.run() -@common.parametrize("test_data", Var.test_parameters) +@common.parametrize("test_data", var_test_parameters_hw) @common.XfailIfNoCorstone300 def test_var_dim_u55_INT_no_dim(test_data: Tuple): test_data, keepdim, correction = test_data() @@ -183,7 +195,7 @@ def test_var_dim_u55_INT_no_dim(test_data: Tuple): pipeline.run() -@common.parametrize("test_data", Var.test_parameters) +@common.parametrize("test_data", var_test_parameters_hw) @common.XfailIfNoCorstone320 def test_var_dim_u85_INT_no_dim(test_data: Tuple): test_data, keepdim, correction = test_data() @@ -224,6 +236,36 @@ def test_var_dim_vgf_quant_no_dim(test_data: Tuple): pipeline.run() +@common.parametrize("test_data", a16w8_var_test_parameters) +@common.XfailIfNoCorstone300 +def test_var_a16w8_u55_INT(test_data: Tuple): + test_data, keepdim, correction = test_data() + pipeline = EthosU55PipelineINT[input_t1]( + Var(keepdim, correction), + (test_data,), + aten_ops=[], + exir_ops=[], + a16w8_quantization=True, + symmetric_io_quantization=True, + ) + pipeline.run() + + +@common.parametrize("test_data", a16w8_var_test_parameters) +@common.XfailIfNoCorstone320 +def test_var_a16w8_u85_INT(test_data: Tuple): + test_data, keepdim, correction = test_data() + pipeline = EthosU85PipelineINT[input_t1]( + Var(keepdim, correction), + (test_data,), + aten_ops=[], + exir_ops=[], + a16w8_quantization=True, + symmetric_io_quantization=True, + ) + pipeline.run() + + ############# ## VarDim ### ############# diff --git a/backends/arm/test/targets.bzl b/backends/arm/test/targets.bzl index b8030ae7ba8..30fa348414f 100644 --- a/backends/arm/test/targets.bzl +++ b/backends/arm/test/targets.bzl @@ -39,6 +39,7 @@ def define_arm_tests(): "ops/test_exp.py", "ops/test_reciprocal.py", "ops/test_mean_dim.py", + "ops/test_var.py", ] # Quantization From 3ceb89cf1b9333d92b2d274b08495512fd5344f6 Mon Sep 17 00:00:00 2001 From: Mergen Nachin Date: Mon, 18 May 2026 11:22:59 -0400 Subject: [PATCH 18/91] Gemma 4 31B: chat template, inv_freq dedup, CI hardening (#19614) - Chat template: Gemma 4 31B-IT is instruction-tuned and produces degenerate output without chat-template wrapping. Auto-wrap --prompt with the IT template in both inference.py and the C++ runner; --raw-prompt / --raw_prompt skips wrapping for pre-formatted input. - inv_freq dedup: Extract _compute_inv_freq() on Gemma4Attention so __init__ and materialize_runtime_buffers share a single implementation instead of duplicating the RoPE frequency computation. - CI hardening: Check for "Paris" in the export inference sanity check instead of just checking the script doesn't crash. Restore gemma4_31b unit tests in the CUDA build job. - Docs: Update README.md and model.md to reflect chat template and inv_freq changes. --------- Co-authored-by: mnachin Co-authored-by: Gasoonjia --- .ci/scripts/export_model_artifact.sh | 54 +++++++++++++++++- .ci/scripts/test_model_e2e.sh | 19 ++++++- .github/workflows/cuda.yml | 26 ++++++++- examples/models/gemma4_31b/README.md | 6 ++ examples/models/gemma4_31b/inference.py | 73 +++++++++++++++++++------ examples/models/gemma4_31b/main.cpp | 12 ++++ examples/models/gemma4_31b/model.md | 2 +- examples/models/gemma4_31b/model.py | 48 +++++++++------- 8 files changed, 196 insertions(+), 44 deletions(-) diff --git a/.ci/scripts/export_model_artifact.sh b/.ci/scripts/export_model_artifact.sh index 1f75d850e84..9adea394993 100755 --- a/.ci/scripts/export_model_artifact.sh +++ b/.ci/scripts/export_model_artifact.sh @@ -195,9 +195,17 @@ case "$HF_MODEL" in PREPROCESSOR_FEATURE_SIZE="" PREPROCESSOR_OUTPUT="" ;; + SocialLocalMobile/gemma-4-31B-it-HQQ-INT4) + MODEL_NAME="gemma4_31b" + TASK="" + MAX_SEQ_LEN="" + EXTRA_PIP="" + PREPROCESSOR_FEATURE_SIZE="" + PREPROCESSOR_OUTPUT="" + ;; *) echo "Error: Unsupported model '$HF_MODEL'" - echo "Supported models: mistralai/Voxtral-Mini-3B-2507, mistralai/Voxtral-Mini-4B-Realtime-2602, openai/whisper-{small, medium, large, large-v2, large-v3, large-v3-turbo}, google/gemma-3-4b-it, Qwen/Qwen3-0.6B, nvidia/diar_streaming_sortformer_4spk-v2, nvidia/parakeet-tdt, facebook/dinov2-small-imagenet1k-1-layer, SocialLocalMobile/Qwen3.5-35B-A3B-HQQ-INT4" + echo "Supported models: mistralai/Voxtral-Mini-3B-2507, mistralai/Voxtral-Mini-4B-Realtime-2602, openai/whisper-{small, medium, large, large-v2, large-v3, large-v3-turbo}, google/gemma-3-4b-it, Qwen/Qwen3-0.6B, nvidia/diar_streaming_sortformer_4spk-v2, nvidia/parakeet-tdt, facebook/dinov2-small-imagenet1k-1-layer, SocialLocalMobile/Qwen3.5-35B-A3B-HQQ-INT4, SocialLocalMobile/gemma-4-31B-it-HQQ-INT4" exit 1 ;; esac @@ -459,6 +467,50 @@ if [ "$MODEL_NAME" = "qwen3_5_moe" ]; then exit 0 fi +# Gemma 4 31B uses a prequantized checkpoint and custom export script +if [ "$MODEL_NAME" = "gemma4_31b" ]; then + pip install safetensors huggingface_hub gguf + + # Download prequantized model outside OUTPUT_DIR to avoid uploading on failure + LOCAL_MODEL_DIR=$(mktemp -d) + INDUCTOR_CACHE=$(mktemp -d) + trap 'rm -rf "$LOCAL_MODEL_DIR" "$INDUCTOR_CACHE"' EXIT + + python -c "from huggingface_hub import snapshot_download; snapshot_download('${HF_MODEL}', local_dir='${LOCAL_MODEL_DIR}')" + + # Sanity check: run inference on the prequantized model + echo "::group::Inference sanity check" + INFERENCE_OUTPUT=$(python -m executorch.examples.models.gemma4_31b.inference \ + --prequantized "$LOCAL_MODEL_DIR" \ + --prompt "What is the capital of France?" \ + --max-new-tokens 32 \ + --temperature 0 \ + --no-compile 2>&1) + echo "$INFERENCE_OUTPUT" + if ! echo "$INFERENCE_OUTPUT" | grep -q "Paris"; then + echo "ERROR: Inference sanity check failed — expected 'Paris' in output" + exit 1 + fi + echo "::endgroup::" + + # Copy tokenizer for the runner + cp "$LOCAL_MODEL_DIR/tokenizer.json" "${OUTPUT_DIR}/tokenizer.json" + + # Export to .pte/.ptd (short cache dir avoids objcopy symbol length issues) + echo "::group::Export" + TORCHINDUCTOR_CACHE_DIR="$INDUCTOR_CACHE" \ + python -m executorch.examples.models.gemma4_31b.export \ + --prequantized "$LOCAL_MODEL_DIR" \ + --output-dir "${OUTPUT_DIR}" + echo "::endgroup::" + + test -f "${OUTPUT_DIR}/model.pte" + test -f "${OUTPUT_DIR}/aoti_cuda_blob.ptd" + ls -al "${OUTPUT_DIR}" + + exit 0 +fi + MAX_SEQ_LEN_ARG="" if [ -n "$MAX_SEQ_LEN" ]; then MAX_SEQ_LEN_ARG="--max_seq_len $MAX_SEQ_LEN" diff --git a/.ci/scripts/test_model_e2e.sh b/.ci/scripts/test_model_e2e.sh index 1678b0a4fbb..27b0dd9d597 100755 --- a/.ci/scripts/test_model_e2e.sh +++ b/.ci/scripts/test_model_e2e.sh @@ -228,9 +228,21 @@ case "$HF_MODEL" in AUDIO_FILE="" IMAGE_PATH="" ;; + SocialLocalMobile/gemma-4-31B-it-HQQ-INT4) + MODEL_NAME="gemma4_31b" + RUNNER_TARGET="gemma4_31b_runner" + RUNNER_PATH="gemma4_31b" + EXPECTED_OUTPUT="Paris" + PREPROCESSOR="" + TOKENIZER_URL="" + TOKENIZER_FILE="tokenizer.json" + AUDIO_URL="" + AUDIO_FILE="" + IMAGE_PATH="" + ;; *) echo "Error: Unsupported model '$HF_MODEL'" - echo "Supported models: mistralai/Voxtral-Mini-3B-2507, mistralai/Voxtral-Mini-4B-Realtime-2602, nvidia/diar_streaming_sortformer_4spk-v2, openai/whisper series (whisper-{small, medium, large, large-v2, large-v3, large-v3-turbo}), google/gemma-3-4b-it, Qwen/Qwen3-0.6B, nvidia/parakeet-tdt, facebook/dinov2-small-imagenet1k-1-layer, SocialLocalMobile/Qwen3.5-35B-A3B-HQQ-INT4" + echo "Supported models: mistralai/Voxtral-Mini-3B-2507, mistralai/Voxtral-Mini-4B-Realtime-2602, nvidia/diar_streaming_sortformer_4spk-v2, openai/whisper series (whisper-{small, medium, large, large-v2, large-v3, large-v3-turbo}), google/gemma-3-4b-it, Qwen/Qwen3-0.6B, nvidia/parakeet-tdt, facebook/dinov2-small-imagenet1k-1-layer, SocialLocalMobile/Qwen3.5-35B-A3B-HQQ-INT4, SocialLocalMobile/gemma-4-31B-it-HQQ-INT4" exit 1 ;; esac @@ -244,7 +256,7 @@ echo "::group::Prepare $MODEL_NAME Artifacts" # Download tokenizer files (skip for models that bundle tokenizer in export or do not use one) -if [ "$MODEL_NAME" != "parakeet" ] && [ "$MODEL_NAME" != "voxtral_realtime" ] && [ "$MODEL_NAME" != "sortformer" ] && [ "$MODEL_NAME" != "dinov2" ] && [ "$MODEL_NAME" != "qwen3_5_moe" ]; then +if [ "$MODEL_NAME" != "parakeet" ] && [ "$MODEL_NAME" != "voxtral_realtime" ] && [ "$MODEL_NAME" != "sortformer" ] && [ "$MODEL_NAME" != "dinov2" ] && [ "$MODEL_NAME" != "qwen3_5_moe" ] && [ "$MODEL_NAME" != "gemma4_31b" ]; then if [ "$TOKENIZER_FILE" != "" ]; then curl -L $TOKENIZER_URL/$TOKENIZER_FILE -o $MODEL_DIR/$TOKENIZER_FILE else @@ -368,6 +380,9 @@ EOF qwen3_5_moe) RUNNER_ARGS="$RUNNER_ARGS --tokenizer_path ${MODEL_DIR}/$TOKENIZER_FILE --prompt 'What is the capital of France?' --max_new_tokens 128 --temperature 0 --cuda_graph" ;; + gemma4_31b) + RUNNER_ARGS="$RUNNER_ARGS --tokenizer_path ${MODEL_DIR}/$TOKENIZER_FILE --prompt 'What is the capital of France?' --max_new_tokens 128 --temperature 0 --cuda_graph" + ;; voxtral_realtime) RUNNER_ARGS="--model_path ${MODEL_DIR}/model.pte --tokenizer_path ${MODEL_DIR}/$TOKENIZER_FILE --preprocessor_path ${MODEL_DIR}/$PREPROCESSOR --audio_path ${MODEL_DIR}/$AUDIO_FILE --temperature 0" # Add CUDA data path if present diff --git a/.github/workflows/cuda.yml b/.github/workflows/cuda.yml index 087917c1116..eb7fc5a8939 100644 --- a/.github/workflows/cuda.yml +++ b/.github/workflows/cuda.yml @@ -185,6 +185,8 @@ jobs: name: "dinov2-small-imagenet1k-1-layer" - repo: "SocialLocalMobile" name: "Qwen3.5-35B-A3B-HQQ-INT4" + - repo: "SocialLocalMobile" + name: "gemma-4-31B-it-HQQ-INT4" quant: - "non-quantized" - "quantized-int4-tile-packed" @@ -204,6 +206,15 @@ jobs: repo: "SocialLocalMobile" name: "Qwen3.5-35B-A3B-HQQ-INT4" quant: "quantized-int4-weight-only" + # Gemma 4 31B uses a prequantized checkpoint, only tile-packed + - model: + repo: "SocialLocalMobile" + name: "gemma-4-31B-it-HQQ-INT4" + quant: "non-quantized" + - model: + repo: "SocialLocalMobile" + name: "gemma-4-31B-it-HQQ-INT4" + quant: "quantized-int4-weight-only" # Voxtral Realtime only supports int4-tile-packed on CUDA - model: repo: "mistralai" @@ -258,7 +269,7 @@ jobs: with: timeout: 90 secrets-env: EXECUTORCH_HF_TOKEN - runner: ${{ matrix.model.name == 'Qwen3.5-35B-A3B-HQQ-INT4' && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} + runner: ${{ (matrix.model.name == 'Qwen3.5-35B-A3B-HQQ-INT4' || matrix.model.name == 'gemma-4-31B-it-HQQ-INT4') && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} gpu-arch-type: cuda gpu-arch-version: 12.6 use-custom-docker-registry: false @@ -315,6 +326,8 @@ jobs: name: "dinov2-small-imagenet1k-1-layer" - repo: "SocialLocalMobile" name: "Qwen3.5-35B-A3B-HQQ-INT4" + - repo: "SocialLocalMobile" + name: "gemma-4-31B-it-HQQ-INT4" quant: - "non-quantized" - "quantized-int4-tile-packed" @@ -334,6 +347,15 @@ jobs: repo: "SocialLocalMobile" name: "Qwen3.5-35B-A3B-HQQ-INT4" quant: "quantized-int4-weight-only" + # Gemma 4 31B uses a prequantized checkpoint, only tile-packed + - model: + repo: "SocialLocalMobile" + name: "gemma-4-31B-it-HQQ-INT4" + quant: "non-quantized" + - model: + repo: "SocialLocalMobile" + name: "gemma-4-31B-it-HQQ-INT4" + quant: "quantized-int4-weight-only" # Voxtral Realtime only supports int4-tile-packed on CUDA - model: repo: "mistralai" @@ -382,7 +404,7 @@ jobs: quant: "non-quantized" with: timeout: 90 - runner: ${{ matrix.model.name == 'Qwen3.5-35B-A3B-HQQ-INT4' && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} + runner: ${{ (matrix.model.name == 'Qwen3.5-35B-A3B-HQQ-INT4' || matrix.model.name == 'gemma-4-31B-it-HQQ-INT4') && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} gpu-arch-type: cuda gpu-arch-version: 12.6 use-custom-docker-registry: false diff --git a/examples/models/gemma4_31b/README.md b/examples/models/gemma4_31b/README.md index 6f567d739b7..94783c8f823 100644 --- a/examples/models/gemma4_31b/README.md +++ b/examples/models/gemma4_31b/README.md @@ -79,6 +79,9 @@ Writes `model.pte` and `model.ptd` into `--output-dir`. ## Eager inference +The prompt is automatically wrapped with the Gemma 4 IT chat template. +Pass `--raw-prompt` to skip template wrapping for pre-formatted input. + ```bash python examples/models/gemma4_31b/inference.py \ --prequantized ./gemma4_31b_int4 \ @@ -109,6 +112,9 @@ The binary lands at `cmake-out/examples/models/gemma4_31b/gemma4_31b_runner`. ## Run the .pte +The prompt is automatically wrapped with the Gemma 4 IT chat template. +Pass `--raw_prompt` to skip template wrapping for pre-formatted input. + ```bash ./gemma4_31b_runner \ --model_path ./gemma4_31b_exports/model.pte \ diff --git a/examples/models/gemma4_31b/inference.py b/examples/models/gemma4_31b/inference.py index 12785450d8c..e1563c04ff6 100644 --- a/examples/models/gemma4_31b/inference.py +++ b/examples/models/gemma4_31b/inference.py @@ -6,12 +6,15 @@ """Eager inference on Gemma 4 31B-IT (CUDA + torch.compile). -Two input paths: +Three input paths: --prequantized Load a quantized checkpoint (from quantize_and_save.py). --gguf Load a GGUF file (e.g., Q4_K_M from the community). + --bf16 Load the bf16 HF safetensors checkpoint via from_hf_checkpoint. -Packs for the target backend (--backend cuda), materializes runtime buffers, -optionally compiles with ``torch.compile``, and generates text autoregressively. +Gemma 4 31B-IT is instruction-tuned and requires chat-template formatting. +The ``--prompt`` is automatically wrapped with the Gemma 4 chat template +(``<|turn>user\\n{prompt}\\n<|turn>model\\n<|channel>thought\\n``; BOS is prepended separately). +Pass ``--raw-prompt`` to skip template wrapping (e.g., for pre-formatted input). Usage: python inference.py \\ @@ -33,7 +36,10 @@ import torch from executorch.examples.models.gemma4_31b.export import load_prequantized_model -from executorch.examples.models.gemma4_31b.model import materialize_runtime_buffers +from executorch.examples.models.gemma4_31b.model import ( + Gemma4_31B, + materialize_runtime_buffers, +) def _move_to_cuda(model, config) -> None: @@ -63,6 +69,18 @@ def _move_to_cuda(model, config) -> None: materialize_runtime_buffers(model, dtype=torch.bfloat16, device="cuda") +def apply_chat_template(prompt: str) -> str: + """Wrap a user prompt in the Gemma 4 IT chat template. + + Does not include BOS — ``generate()`` prepends it at the token-ID level. + """ + return ( + "<|turn>user\n" + + prompt + + "\n<|turn>model\n<|channel>thought\n" + ) + + def generate( model, tokenizer, @@ -131,6 +149,11 @@ def main() -> None: default=None, help="Path to a GGUF file (e.g., gemma-4-31B-it-Q4_K_M.gguf).", ) + src.add_argument( + "--bf16", + default=None, + help="Path to a bf16 hf directory (e.g., gemma-4-31B).", + ) parser.add_argument( "--tokenizer-path", default=None, @@ -155,6 +178,11 @@ def main() -> None: default=4096, help="KV cache length to allocate for this run.", ) + parser.add_argument( + "--raw-prompt", + action="store_true", + help="Skip chat-template wrapping (use if the prompt is already formatted).", + ) parser.add_argument( "--no-compile", action="store_true", @@ -171,12 +199,34 @@ def main() -> None: if args.backend == "cuda" and not torch.cuda.is_available(): parser.error("CUDA is required for the cuda backend.") + # ---- Tokenizer ---- + if args.tokenizer_path: + tokenizer_path = args.tokenizer_path + elif args.prequantized: + tokenizer_path = os.path.join(args.prequantized, "tokenizer.json") + elif args.bf16: + tokenizer_path = os.path.join(args.bf16, "tokenizer.json") + else: + parser.error("--tokenizer-path is required with --gguf.") + from tokenizers import Tokenizer + + tokenizer = Tokenizer.from_file(tokenizer_path) + + prompt_str = args.prompt if args.raw_prompt else apply_chat_template(args.prompt) + + # Gemma 4 EOS tokens (from generation_config.json: ids 1, 50, 106). + eos_token_ids = {1, 50, 106} + if args.gguf: from executorch.examples.models.gemma4_31b.gguf_loader import load_gguf_model model, config = load_gguf_model( args.gguf, args.max_seq_len, backend=args.backend ) + elif args.bf16: + model, config = Gemma4_31B.from_hf_checkpoint( + args.bf16, max_seq_len=args.max_seq_len + ) else: print(f"Loading prequantized model from {args.prequantized}...") model, config = load_prequantized_model( @@ -191,19 +241,6 @@ def main() -> None: print("Compiling model with torch.compile...") model = torch.compile(model, mode="default") - if args.tokenizer_path: - tokenizer_path = args.tokenizer_path - elif args.prequantized: - tokenizer_path = os.path.join(args.prequantized, "tokenizer.json") - else: - parser.error("--tokenizer-path is required with --gguf.") - from tokenizers import Tokenizer - - tokenizer = Tokenizer.from_file(tokenizer_path) - - # Gemma 4 EOS tokens (from generation_config.json: ids 1, 50, 106). - eos_token_ids = {1, 50, 106} - print(f"\nPrompt: {args.prompt}") print("-" * 40) @@ -211,7 +248,7 @@ def main() -> None: output = generate( model, tokenizer, - args.prompt, + prompt_str, max_new_tokens=args.max_new_tokens, temperature=args.temperature, eos_token_ids=eos_token_ids, diff --git a/examples/models/gemma4_31b/main.cpp b/examples/models/gemma4_31b/main.cpp index 0be2fef517c..3ddf64e410f 100644 --- a/examples/models/gemma4_31b/main.cpp +++ b/examples/models/gemma4_31b/main.cpp @@ -65,6 +65,10 @@ DEFINE_double(temperature, 0.8, "Sampling temperature (0 = near-greedy)."); DEFINE_int32(max_new_tokens, 128, "Maximum tokens to generate."); DEFINE_int32(bos_id, 2, "BOS token id to prepend (Gemma convention: 2)."); DEFINE_int32(eos_id, 1, "EOS token id (Gemma convention: 1)."); +DEFINE_bool( + raw_prompt, + false, + "Skip chat-template wrapping (use if the prompt is already formatted)."); DEFINE_bool( cuda_graph, false, @@ -232,6 +236,14 @@ int main(int argc, char** argv) { (std::istreambuf_iterator(f)), std::istreambuf_iterator()); } + // Wrap with Gemma 4 IT chat template unless --raw_prompt is set. + // BOS is prepended separately below; this adds the turn structure and the + // empty thought block required by the instruction-tuned model. + if (!FLAGS_raw_prompt) { + prompt_text = "<|turn>user\n" + prompt_text + + "\n<|turn>model\n<|channel>thought\n"; + } + // Encode prompt auto encode_result = tokenizer->encode(prompt_text); if (!encode_result.ok()) { diff --git a/examples/models/gemma4_31b/model.md b/examples/models/gemma4_31b/model.md index 8233b6d430e..51e420528f1 100644 --- a/examples/models/gemma4_31b/model.md +++ b/examples/models/gemma4_31b/model.md @@ -165,7 +165,7 @@ RoPE inv_freq buffers, and scalar constants are still on the meta device. them with real tensors: - KV caches → zeros in `dtype` (bf16 for inference, bf16 for export) -- `inv_freq` → moved to target device (cos/sin computed on the fly per forward) +- `inv_freq` → recomputed on target device (cos/sin computed on the fly per forward) - `embed_normalizer`, `logit_softcap`, `cache_positions` → scalar constants Called by `export.py` (device="cpu" for tracing) and `inference.py` diff --git a/examples/models/gemma4_31b/model.py b/examples/models/gemma4_31b/model.py index b0eb4004c52..f0aa2fac982 100644 --- a/examples/models/gemma4_31b/model.py +++ b/examples/models/gemma4_31b/model.py @@ -251,25 +251,7 @@ def __init__(self, config: Gemma4_31BConfig, layer_idx: int): self.k_norm = RMSNorm(self.head_dim, eps=config.rms_norm_eps) self.v_norm = RMSNormNoWeight(self.head_dim, eps=config.rms_norm_eps) - # Precomputed RoPE table for this layer (per-layer because head_dim - # and theta differ between sliding and full attention). For full - # attention layers we pass freq_base_dim=head_dim so the zero-padded - # On-the-fly RoPE: store only inv_freq, compute cos/sin per forward. - # Saves memory vs precomputed [max_seq_len, head_dim] tables. - if self.is_sliding: - rotary_dim = self.head_dim - else: - rotary_dim = int(self.head_dim * self.partial_rotary) - rope_angles = rotary_dim // 2 - inv_freq_rotated = 1.0 / ( - self.rope_theta ** (torch.arange(0, rotary_dim, 2).float() / self.head_dim) - ) - nope_angles = self.head_dim // 2 - rope_angles - if nope_angles > 0: - inv_freq = torch.cat([inv_freq_rotated, torch.zeros(nope_angles)]) - else: - inv_freq = inv_freq_rotated - self.register_buffer("inv_freq", inv_freq, persistent=False) + self.register_buffer("inv_freq", self._compute_inv_freq(), persistent=False) # KV cache. Sliding layers use a ring buffer (2x window) to save # memory; full layers use a flat buffer (max_seq_len). @@ -289,6 +271,30 @@ def __init__(self, config: Gemma4_31BConfig, layer_idx: int): use_index_copy=True, ) + def _compute_inv_freq(self, device: Optional[torch.device] = None) -> torch.Tensor: + """Compute RoPE inverse-frequency table for this layer.""" + if self.is_sliding: + rotary_dim = self.head_dim + else: + rotary_dim = int(self.head_dim * self.partial_rotary) + rope_angles = rotary_dim // 2 + inv_freq_rotated = 1.0 / ( + self.rope_theta + ** ( + torch.arange(0, rotary_dim, 2, device=device, dtype=torch.float32) + / self.head_dim + ) + ) + nope_angles = self.head_dim // 2 - rope_angles + if nope_angles > 0: + return torch.cat( + [ + inv_freq_rotated, + torch.zeros(nope_angles, device=device, dtype=torch.float32), + ] + ) + return inv_freq_rotated + def forward( self, x: torch.Tensor, @@ -675,7 +681,9 @@ def materialize_runtime_buffers( for layer in model.layers: attn = layer.self_attn - attn.inv_freq = attn.inv_freq.to(device) + attn.register_buffer( + "inv_freq", attn._compute_inv_freq(device=device), persistent=False + ) model.register_buffer( "embed_normalizer", From 6ca258946043638524583989ea901a3f379d7c15 Mon Sep 17 00:00:00 2001 From: Madhesh Date: Mon, 18 May 2026 21:53:00 +0530 Subject: [PATCH 19/91] =?UTF-8?q?docs(android):=20add=20Java=20API=20Refer?= =?UTF-8?q?ence=20(Javadoc)=20link,=20sidebar=20entry,=20=E2=80=A6=20(#195?= =?UTF-8?q?08)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Fixes #19356 — Unify and Improve the Android dev story ## Changes - Added Java API Reference (Javadoc) link to using-executorch-android page (1-line fix) - Added Javadoc entry to Android sidebar navigation - Created package-info.java for org.pytorch.executorch with overview and quick-start - Created package-info.java for org.pytorch.executorch.extension.llm - Created overview.html with top-level intro, quick-start code, and package descriptions - Updated build.gradle to pass -overview flag so overview.html is picked up by the build ## Testing All are verified by opening the documents manually. - Added a "Java API Reference" hyperlink directly in the using-executorch-android page → trivial 1-line fix Screenshot 2026-05-12 124608 - Added sidebar/nav entry under Platforms → Android → "Java API Reference (Javadoc)" Screenshot 2026-05-12 124524 - Improved the bare javadoc/index.html with an overview, quick-start code, and package descriptions Screenshot 2026-05-12 124548 cc @mergennachin @AlannaBurke @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani --- docs/source/android-section.md | 8 ++ docs/source/using-executorch-android.md | 3 +- .../android/executorch_android/build.gradle | 14 ++++ .../extension/llm/package-info.java | 51 ++++++++++- .../org/pytorch/executorch/package-info.java | 57 ++++++++++++- .../src/main/javadoc/overview.html | 84 +++++++++++++++++++ 6 files changed, 214 insertions(+), 3 deletions(-) create mode 100644 extension/android/executorch_android/src/main/javadoc/overview.html diff --git a/docs/source/android-section.md b/docs/source/android-section.md index a5774352bc1..dedb7df22d7 100644 --- a/docs/source/android-section.md +++ b/docs/source/android-section.md @@ -16,8 +16,16 @@ Deploy ExecuTorch on Android devices with hardware acceleration support. - {doc}`android-examples` — Explore Android Examples & Demos +## API Reference + +- [Java API Reference (Javadoc)](https://pytorch.org/executorch/main/javadoc/index.html) — Full Java class and method reference + ```{toctree} +:maxdepth: 1 :hidden: + using-executorch-android android-backends android-examples +Java API Reference (Javadoc) +``` diff --git a/docs/source/using-executorch-android.md b/docs/source/using-executorch-android.md index ef55ade68aa..0c034d99924 100644 --- a/docs/source/using-executorch-android.md +++ b/docs/source/using-executorch-android.md @@ -21,6 +21,7 @@ All ExecuTorch Android libraries are packaged into an Android library (AAR), exe The AAR artifact contains the Java library for users to integrate with their Java/Kotlin application code, as well as the corresponding JNI library (.so file), which is loaded by the Java code during initialization. - [Java library](https://github.com/pytorch/executorch/tree/main/extension/android/executorch_android/src/main/java/org/pytorch/executorch) +- [Java API Reference (Javadoc)](https://pytorch.org/executorch/main/javadoc/index.html) - JNI contains the JNI binding for the corresponding Java code, and ExecuTorch native library, including - Core ExecuTorch runtime libraries - XNNPACK backend @@ -240,4 +241,4 @@ using ExecuTorch AAR package. ## Java API reference -Please see [Java API reference](https://pytorch.org/executorch/main/javadoc/). +Please see [Java API reference](https://pytorch.org/executorch/main/javadoc/index.html). diff --git a/extension/android/executorch_android/build.gradle b/extension/android/executorch_android/build.gradle index f84aafe138c..3ee5b5877b3 100644 --- a/extension/android/executorch_android/build.gradle +++ b/extension/android/executorch_android/build.gradle @@ -114,3 +114,17 @@ repositories { url "https://central.sonatype.com/repository/maven-snapshots/" } } + +android.libraryVariants.all { variant -> + task("generate${variant.name.substring(0, 1).toUpperCase()}${variant.name.substring(1)}Javadoc", type: Javadoc) { + source = variant.javaCompileProvider.get().source + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + classpath += variant.javaCompileProvider.get().classpath + options { + overview = "src/main/javadoc/overview.html" + windowTitle = "ExecuTorch Android Java API" + docTitle = "ExecuTorch Android Java API" + links("https://docs.oracle.com/en/java/javase/11/docs/api/") + } + } +} diff --git a/extension/android/executorch_android/src/main/java/org/pytorch/executorch/extension/llm/package-info.java b/extension/android/executorch_android/src/main/java/org/pytorch/executorch/extension/llm/package-info.java index 2fcc8c9ec6b..86e19d09133 100644 --- a/extension/android/executorch_android/src/main/java/org/pytorch/executorch/extension/llm/package-info.java +++ b/extension/android/executorch_android/src/main/java/org/pytorch/executorch/extension/llm/package-info.java @@ -1,2 +1,51 @@ -/** Extension for LLM related use cases for ExecuTorch Android Java/JNI package. */ +/** + * ExecuTorch LLM extension for Android. + * + *

This package provides Java bindings for running large language models (LLMs) on Android using + * ExecuTorch. It supports text generation, tokenization, and streaming token callbacks. + * + *

Quick Start

+ * + *
{@code
+ * import org.pytorch.executorch.extension.llm.LlmModule;
+ *
+ * // Load a Llama model
+ * LlmModule llm = new LlmModule(
+ *     "/data/local/tmp/llama.pte",
+ *     "/data/local/tmp/tokenizer.bin",
+ *     0.8f
+ * );
+ * llm.load();
+ *
+ * // Generate text token by token
+ * llm.generate("Hello, my name is", 200, new LlmCallback() {
+ *     public void onResult(String token) {
+ *         System.out.print(token);
+ *     }
+ *     public void onStats(String stats) {
+ *         System.out.println("\nStats: " + stats);
+ *     }
+ * });
+ * }
+ * + *

Key Classes

+ * + *
    + *
  • {@link org.pytorch.executorch.extension.llm.LlmModule} — load and run an LLM + *
  • {@link org.pytorch.executorch.extension.llm.LlmModuleConfig} — configure model paths and + * settings + *
  • {@link org.pytorch.executorch.extension.llm.LlmGenerationConfig} — control generation + * (temperature, seq length) + *
+ * + *

More Resources

+ * + * + */ package org.pytorch.executorch.extension.llm; diff --git a/extension/android/executorch_android/src/main/java/org/pytorch/executorch/package-info.java b/extension/android/executorch_android/src/main/java/org/pytorch/executorch/package-info.java index 01d55ebc72b..7a5ed0bb5a5 100644 --- a/extension/android/executorch_android/src/main/java/org/pytorch/executorch/package-info.java +++ b/extension/android/executorch_android/src/main/java/org/pytorch/executorch/package-info.java @@ -1,2 +1,57 @@ -/** ExecuTorch Android Java/JNI package. This is the main package for generic use cases. */ +/** + * ExecuTorch Android Java API. + * + *

This package provides Java bindings for running ExecuTorch models on Android. Use these + * classes to load a {@code .pte} model file and run inference directly from your Java or Kotlin + * Android app — no C++ required. + * + *

Quick Start

+ * + *

Step 1. Add the dependency to your {@code app/build.gradle.kts}: + * + *

{@code
+ * dependencies {
+ *     implementation("org.pytorch:executorch-android:${executorch_version}")
+ * }
+ * }
+ * + *

Step 2. Load your model and run inference: + * + *

{@code
+ * import org.pytorch.executorch.EValue;
+ * import org.pytorch.executorch.Module;
+ * import org.pytorch.executorch.Tensor;
+ *
+ * // Load your exported .pte model file
+ * Module module = Module.load("/data/local/tmp/model.pte");
+ *
+ * // Build an input tensor  e.g. a 1x3x224x224 image
+ * float[] inputData = new float[1 * 3 * 224 * 224];
+ * Tensor inputTensor = Tensor.fromBlob(inputData, new long[]{1, 3, 224, 224});
+ *
+ * // Run inference
+ * EValue[] output = module.forward(EValue.from(inputTensor));
+ *
+ * // Read the result
+ * float[] scores = output[0].toTensor().getDataAsFloatArray();
+ * }
+ * + *

Key Classes

+ * + *
    + *
  • {@link org.pytorch.executorch.Module} — load and run a {@code .pte} model + *
  • {@link org.pytorch.executorch.Tensor} — create input tensors and read outputs + *
  • {@link org.pytorch.executorch.EValue} — wrap inputs and unwrap outputs + *
  • {@link org.pytorch.executorch.DType} — supported data types (FLOAT, INT32, etc.) + *
+ * + *

More Resources

+ * + * + */ package org.pytorch.executorch; diff --git a/extension/android/executorch_android/src/main/javadoc/overview.html b/extension/android/executorch_android/src/main/javadoc/overview.html new file mode 100644 index 00000000000..bd02ef2fcf9 --- /dev/null +++ b/extension/android/executorch_android/src/main/javadoc/overview.html @@ -0,0 +1,84 @@ + + + + ExecuTorch Android Java API + + + +

+ The ExecuTorch Android Java API lets you run PyTorch models on Android + devices using a simple Java or Kotlin interface. +

+ +

+ ExecuTorch is PyTorch's solution for on-device AI — from smartphones to + microcontrollers. The Java API wraps the native ExecuTorch runtime and gives + you clean Java classes to load models, build tensors, and run inference. +

+ +

Quick Start

+ +

Add the library to your app:

+ +
+// app/build.gradle.kts
+dependencies {
+    implementation("org.pytorch:executorch-android:${executorch_version}")
+}
+
+ +

Load a model and run inference:

+ +
+import org.pytorch.executorch.EValue;
+import org.pytorch.executorch.Module;
+import org.pytorch.executorch.Tensor;
+
+// Load your exported .pte model
+Module module = Module.load("/data/local/tmp/model.pte");
+
+// Create an input tensor (1x3x224x224 image)
+float[] data = new float[1 * 3 * 224 * 224];
+Tensor input = Tensor.fromBlob(data, new long[]{1, 3, 224, 224});
+
+// Run inference
+EValue[] output = module.forward(EValue.from(input));
+float[] scores = output[0].toTensor().getDataAsFloatArray();
+
+ +

Packages

+ + + + + + + + + + + + + + +
org.pytorch.executorchCore API. Contains Module to load and run models, Tensor for tensor operations, + and EValue to wrap inputs and outputs.
org.pytorch.executorch.extension.llmLLM extension. Contains LlmModule for running large language models like Llama + with streaming token generation.
org.pytorch.executorch.annotationsAPI annotations. Experimental marks APIs that may change in future releases.
+ +

Resources

+ + + + + From 985eeb74f0af4ad0d79f335374e732f0a694a9a1 Mon Sep 17 00:00:00 2001 From: Omkar Kabde Date: Mon, 18 May 2026 22:31:48 +0530 Subject: [PATCH 20/91] docs: add Android LLM runner page and HuggingFace (#19611) ## Summary 1. New `docs/source/llm/run-on-android.md`, a Java reference for the `executorch-android` AAR runner. Same shape as `run-on-ios.md`. Covers `LlmModule`, the `LlmModuleConfig` builder, `LlmGenerationConfig`, the `LlmCallback` methods, `load`/`stop`/`resetContext`, and the image/audio prefill variants. Points at LlamaDemo. 2. Added `run-on-android` to the LLM toctree in `working-with-llms.md`, sitting between the Qualcomm page and iOS. 3. In `getting-started.md`, swapped the two GitHub example links for the in-docs Android and iOS pages so users stay in the docs. 4. Added a tip admonition to `using-executorch-export.md` under Model Preparation, sending HF Hub users to `export-llm-optimum.md` before the manual flow. 5. Cleaned up `export-llm-optimum.md`. Removed the leftover "Method 1" framing since only the CLI path is documented, bumped the orphaned subheadings up a level, and pointed the Running on Device links at the new Android page and the existing iOS page (sample apps kept inline). Fixes #8790 cc @mergennachin @AlannaBurke @larryliu0820 @cccclai @helunwencser @jackzhxng @byjlw --- docs/source/llm/export-llm-optimum.md | 18 +-- docs/source/llm/getting-started.md | 4 +- docs/source/llm/run-on-android.md | 202 +++++++++++++++++++++++++ docs/source/llm/working-with-llms.md | 1 + docs/source/using-executorch-export.md | 4 + 5 files changed, 216 insertions(+), 13 deletions(-) create mode 100644 docs/source/llm/run-on-android.md diff --git a/docs/source/llm/export-llm-optimum.md b/docs/source/llm/export-llm-optimum.md index e2c8ee14743..b7de8d99689 100644 --- a/docs/source/llm/export-llm-optimum.md +++ b/docs/source/llm/export-llm-optimum.md @@ -45,15 +45,11 @@ Optimum ExecuTorch supports a wide range of model architectures including decode For the complete list of supported models, see the [Optimum ExecuTorch documentation](https://github.com/huggingface/optimum-executorch#-supported-models). -## Export Methods +## CLI Export -Optimum ExecuTorch offers two ways to export models: +The `optimum-cli` command is the recommended way to export Hugging Face models. It provides a single invocation that downloads the model from the Hub, applies the configured optimizations, and writes the resulting `.pte` file. -### Method 1: CLI Export - -The CLI is the simplest way to export models. It provides a single command to convert models from Hugging Face Hub to ExecuTorch format. - -#### Basic Export +### Basic Export ```bash optimum-cli export executorch \ @@ -63,7 +59,7 @@ optimum-cli export executorch \ --output_dir="./smollm2_exported" ``` -#### With Optimizations +### With Optimizations Add custom SDPA, KV cache optimization, and quantization: @@ -79,7 +75,7 @@ optimum-cli export executorch \ --output_dir="./smollm2_exported" ``` -#### Available CLI Arguments +### Available CLI Arguments Key arguments for LLM export include `--model`, `--task`, `--recipe` (backend), `--use_custom_sdpa`, `--use_custom_kv_cache`, `--qlinear` (linear quantization), `--qembedding` (embedding quantization), and `--max_seq_len`. @@ -156,8 +152,8 @@ print(generated_text) After verifying your model works correctly, deploy it to device: - [Running with C++](run-with-c-plus-plus.md) - Run exported models using ExecuTorch's C++ runtime -- [Running on Android](https://github.com/meta-pytorch/executorch-examples/tree/main/llm/android) - Deploy to Android devices -- [Running on iOS](https://github.com/meta-pytorch/executorch-examples/tree/main/llm/apple) - Deploy to iOS devices +- [Running on Android](run-on-android.md) - Java APIs for the `executorch-android` AAR (sample app: [LlamaDemo](https://github.com/meta-pytorch/executorch-examples/tree/main/llm/android)) +- [Running on iOS](run-on-ios.md) - Objective-C and Swift APIs for the `ExecuTorchLLM` framework (sample app: [etLLM](https://github.com/meta-pytorch/executorch-examples/tree/main/llm/apple)) ## Performance diff --git a/docs/source/llm/getting-started.md b/docs/source/llm/getting-started.md index 95caae6ddd9..1985a610cae 100644 --- a/docs/source/llm/getting-started.md +++ b/docs/source/llm/getting-started.md @@ -25,6 +25,6 @@ Deploying LLMs to ExecuTorch can be boiled down to a two-step process: (1) expor ### Running - [Running with C++](run-with-c-plus-plus.md) -- [Running on Android (XNNPack)](https://github.com/meta-pytorch/executorch-examples/tree/main/llm/android) +- [Running on Android](run-on-android.md) - [Running on Android (Qualcomm)](build-run-llama3-qualcomm-ai-engine-direct-backend.md) -- [Running on iOS](https://github.com/meta-pytorch/executorch-examples/tree/main/llm/apple) +- [Running on iOS](run-on-ios.md) diff --git a/docs/source/llm/run-on-android.md b/docs/source/llm/run-on-android.md new file mode 100644 index 00000000000..81abd6a79d5 --- /dev/null +++ b/docs/source/llm/run-on-android.md @@ -0,0 +1,202 @@ +# Running LLMs on Android + +ExecuTorch's LLM-specific runtime components provide an experimental Java interface around the core C++ LLM runtime, available through the `executorch-android` AAR. + +## Prerequisites + +Make sure you have a model and tokenizer files ready, as described in the prerequisites section of the [Running LLMs with C++](run-with-c-plus-plus.md) guide. + +To add the `executorch-android` library to your app, see [Using ExecuTorch on Android](../using-executorch-android.md). The LLM runner classes are bundled inside the same AAR as the generic `Module` API. + +## Runtime API + +Once the `executorch-android` AAR is on your classpath, you can import the LLM runner classes from the `org.pytorch.executorch.extension.llm` package. + +### Importing + +```java +import org.pytorch.executorch.extension.llm.LlmModule; +import org.pytorch.executorch.extension.llm.LlmModuleConfig; +import org.pytorch.executorch.extension.llm.LlmGenerationConfig; +import org.pytorch.executorch.extension.llm.LlmCallback; +``` + +### LlmModule + +The `LlmModule` class provides a simple Java interface for loading a text-generation model, configuring its tokenizer, generating token streams, and stopping execution. It also supports multimodal models that accept image and audio inputs alongside a text prompt. + +This API is experimental and subject to change. + +#### Initialization + +Create an `LlmModule` by specifying paths to your serialized model (`.pte`) and tokenizer files. For text-only models, the simple constructor is enough: + +```java +LlmModule module = new LlmModule( + "/data/local/tmp/llama-3.2-instruct.pte", + "/data/local/tmp/tokenizer.model", + 0.8f); +``` + +For finer control (multimodal model type, BOS/EOS handling, supplementary data files, load mode), use `LlmModuleConfig` with the fluent builder: + +```java +LlmModuleConfig config = LlmModuleConfig.create() + .modulePath("/data/local/tmp/llama-3.2-instruct.pte") + .tokenizerPath("/data/local/tmp/tokenizer.model") + .temperature(0.8f) + .modelType(LlmModuleConfig.MODEL_TYPE_TEXT) + .loadMode(LlmModuleConfig.LOAD_MODE_MMAP) + .build(); + +LlmModule module = new LlmModule(config); +``` + +Available load modes are `LOAD_MODE_FILE`, `LOAD_MODE_MMAP` (default), `LOAD_MODE_MMAP_USE_MLOCK`, and `LOAD_MODE_MMAP_USE_MLOCK_IGNORE_ERRORS`. Available model types are `MODEL_TYPE_TEXT`, `MODEL_TYPE_TEXT_VISION`, and `MODEL_TYPE_MULTIMODAL`. + +Construction itself is lightweight and does not load the program data immediately. + +#### Loading + +Explicitly load the model before generation to avoid paying the load cost during your first `generate` call. + +```java +int status = module.load(); +if (status != 0) { + // Handle load failure (status is an ExecuTorch runtime error code). +} +``` + +If you skip this step, the model is loaded lazily on the first `generate` call. + +#### Generating + +Generate tokens from a text prompt by passing an `LlmCallback` that receives each token as it is produced. The same callback also receives a JSON-encoded statistics string when generation completes. + +```java +LlmCallback callback = new LlmCallback() { + @Override + public void onResult(String token) { + // Called once per generated token. Append to your UI buffer here. + System.out.print(token); + } + + @Override + public void onStats(String statsJson) { + // Called once when generation finishes. See extension/llm/runner/stats.h + // for the field definitions. + System.out.println("\n" + statsJson); + } + + @Override + public void onError(int errorCode, String message) { + // Called if the runtime reports an error during generation. + } +}; + +module.generate("Once upon a time", callback); +``` + +For full control over generation parameters, use `LlmGenerationConfig`: + +```java +LlmGenerationConfig genConfig = LlmGenerationConfig.create() + .seqLen(2048) + .temperature(0.8f) + .echo(false) + .build(); + +module.generate("Once upon a time", genConfig, callback); +``` + +`LlmGenerationConfig` exposes `echo`, `maxNewTokens`, `seqLen`, `temperature`, `numBos`, `numEos`, and `warming`. Defaults match the C++ `GenerationConfig` documented in [Running LLMs with C++](run-with-c-plus-plus.md). + +#### Stopping Generation + +If you need to interrupt a long-running generation, call `stop()` from another thread (or from inside the `onResult` callback): + +```java +module.stop(); +``` + +Generation also runs synchronously on the calling thread, so make sure you invoke `generate()` off the main thread (for example, on a `HandlerThread` or via a `java.util.concurrent.Executor`). + +#### Resetting + +To clear the prefilled tokens from the KV cache and reset the start position to 0, call: + +```java +module.resetContext(); +``` + +This is the equivalent of `reset()` on the iOS runner and `reset()` on the C++ `IRunner`. + +### Multimodal Inputs + +For models declared as `MODEL_TYPE_TEXT_VISION` or `MODEL_TYPE_MULTIMODAL`, image and audio data are provided through dedicated prefill methods. After prefilling all modalities, call `generate()` with the text prompt to produce the response. + +#### Images + +Raw uint8 pixel data in CHW order can be supplied as an `int[]`, or as a direct `ByteBuffer` to avoid JNI array copies: + +```java +// As int[] +int[] pixels = ...; // length == channels * height * width +module.prefillImages(pixels, /*width=*/336, /*height=*/336, /*channels=*/3); + +// As direct ByteBuffer (preferred for large images) +ByteBuffer buffer = ByteBuffer.allocateDirect(3 * 336 * 336); +buffer.put(rawBytes).rewind(); +module.prefillImages(buffer, 336, 336, 3); +``` + +Pre-normalized float pixel data is also supported, both as a `float[]` and as a direct `ByteBuffer` in native byte order: + +```java +float[] normalized = ...; // length == channels * height * width +module.prefillImages(normalized, 336, 336, 3); + +ByteBuffer floatBuffer = ByteBuffer + .allocateDirect(3 * 336 * 336 * Float.BYTES) + .order(ByteOrder.nativeOrder()); +// fill floatBuffer with normalized values, then: +module.prefillNormalizedImage(floatBuffer, 336, 336, 3); +``` + +#### Audio + +Preprocessed audio features (for example mel spectrograms produced by a Whisper preprocessor) can be supplied as `byte[]` or `float[]`: + +```java +module.prefillAudio(features, /*batchSize=*/1, /*nBins=*/128, /*nFrames=*/3000); +``` + +Raw audio samples can be supplied with `prefillRawAudio`: + +```java +module.prefillRawAudio(samples, /*batchSize=*/1, /*nChannels=*/1, /*nSamples=*/16000); +``` + +#### Generating with Multimodal Prefill + +After prefilling each modality, run `generate()` with the text prompt as usual: + +```java +module.prefillImages(pixels, 336, 336, 3); +module.generate("What's in this image?", callback); +``` + +For text-vision models, a convenience overload accepts the image and prompt together: + +```java +module.generate( + pixels, /*width=*/336, /*height=*/336, /*channels=*/3, + "What's in this image?", + /*seqLen=*/768, + callback, + /*echo=*/false); +``` + +## Demo + +See the [Llama Android demo app](https://github.com/meta-pytorch/executorch-examples/tree/main/llm/android/LlamaDemo) in `executorch-examples` for an end-to-end project that wires `LlmModule`, `LlmCallback`, and a `HandlerThread` into a chat UI. diff --git a/docs/source/llm/working-with-llms.md b/docs/source/llm/working-with-llms.md index e4088efd12b..ce6daff6ce8 100644 --- a/docs/source/llm/working-with-llms.md +++ b/docs/source/llm/working-with-llms.md @@ -15,5 +15,6 @@ export-llm-optimum export-custom-llm run-with-c-plus-plus build-run-llama3-qualcomm-ai-engine-direct-backend +run-on-android run-on-ios ``` diff --git a/docs/source/using-executorch-export.md b/docs/source/using-executorch-export.md index d37dfae2ef7..30f2a22368e 100644 --- a/docs/source/using-executorch-export.md +++ b/docs/source/using-executorch-export.md @@ -45,6 +45,10 @@ Commonly used hardware backends are listed below. For mobile, consider using XNN The export process takes in a standard PyTorch model, typically a `torch.nn.Module`. This can be an custom model definition, or a model from an existing source, such as TorchVision or HuggingFace. See [Getting Started with ExecuTorch](getting-started.md) for an example of lowering a TorchVision model. +:::{tip} +Exporting a model from the [Hugging Face Hub](https://huggingface.co/models)? Use the [Optimum ExecuTorch](llm/export-llm-optimum.md) integration. It wraps the export and lowering steps below in a single CLI invocation and supports a wide range of decoder, encoder, multimodal, and seq2seq architectures out of the box. +::: + Model export is done from Python. This is commonly done through a Python script or from an interactive Python notebook, such as Jupyter or Colab. The example below shows instantiation and inputs for a simple PyTorch model. The inputs are prepared as a tuple of torch.Tensors, and the model can run with these inputs. ```python From 760aa39d37ef151f55f16596725e62b9a984c562 Mon Sep 17 00:00:00 2001 From: Scott Roy <161522778+metascroy@users.noreply.github.com> Date: Mon, 18 May 2026 10:06:18 -0700 Subject: [PATCH 21/91] Revert "Wire target_config Buck deps on cmsis_nn_py (#19604)" (#19644) Reverts pytorch/executorch#19604 This breaks internal CI --- backends/cortex_m/TARGETS | 10 ---------- backends/cortex_m/passes/BUCK | 2 -- 2 files changed, 12 deletions(-) diff --git a/backends/cortex_m/TARGETS b/backends/cortex_m/TARGETS index b84add05516..98d006cb48a 100644 --- a/backends/cortex_m/TARGETS +++ b/backends/cortex_m/TARGETS @@ -19,13 +19,3 @@ python_library( "fbsource//third-party/pypi/tabulate:tabulate", ], ) - -python_library( - name = "target_config", - srcs = [ - "target_config.py", - ], - deps = [ - "fbsource//third-party/cmsis-nn:cmsis_nn_py", - ], -) diff --git a/backends/cortex_m/passes/BUCK b/backends/cortex_m/passes/BUCK index 4e49c8cd319..9243cc986e8 100644 --- a/backends/cortex_m/passes/BUCK +++ b/backends/cortex_m/passes/BUCK @@ -31,7 +31,6 @@ fbcode_target(_kind = runtime.python_library, "activation_fusion_pass.py", "clamp_hardswish_pass.py", "convert_to_cortex_m_pass.py", - "cortex_m_pass.py", "cortex_m_pass_manager.py", "decompose_hardswish_pass.py", "decompose_mean_pass.py", @@ -40,7 +39,6 @@ fbcode_target(_kind = runtime.python_library, deps=[ "//caffe2:torch", "//executorch/backends/arm/_passes:passes", - "//executorch/backends/cortex_m:target_config", "//executorch/backends/cortex_m/ops:ops", "//executorch/backends/cortex_m/passes:passes_utils", "//executorch/backends/cortex_m/passes:replace_quant_nodes_pass", From 1c9c115d44331a95b10624e3d8ddeabede385bf4 Mon Sep 17 00:00:00 2001 From: pytorchbot Date: Mon, 18 May 2026 10:14:45 -0700 Subject: [PATCH 22/91] [ExecuTorch][MmapDataLoader] Issue F_RDADVISE on Apple platforms in UseMadvise path (#19587) This PR was created by the merge bot to help merge the original PR into the main branch. ghstack PR number: https://github.com/pytorch/executorch/pull/19554 by @kimishpatel ^ Please use this as the source of truth for the PR details, comments, and reviews ghstack PR base: https://github.com/pytorch/executorch/tree/gh/kimishpatel/241/base ghstack PR head: https://github.com/pytorch/executorch/tree/gh/kimishpatel/241/head Merge bot PR base: https://github.com/pytorch/executorch/tree/gh/kimishpatel/240/orig Merge bot PR head: https://github.com/pytorch/executorch/tree/gh/kimishpatel/241/orig Differential Revision: [D104318326](https://our.internmc.facebook.com/intern/diff/D104318326/) @diff-train-skip-merge --------- Co-authored-by: Kimish Patel Co-authored-by: Gasoonjia --- extension/data_loader/mman.h | 27 ++++++++++++++++++++++ extension/data_loader/mmap_data_loader.cpp | 1 + 2 files changed, 28 insertions(+) diff --git a/extension/data_loader/mman.h b/extension/data_loader/mman.h index fb6fe4fd39b..a7a335961c8 100644 --- a/extension/data_loader/mman.h +++ b/extension/data_loader/mman.h @@ -17,6 +17,7 @@ #ifndef _WIN32 +#include #include #include @@ -53,6 +54,24 @@ ET_INLINE void madvise_pages_willneed_sequential(void* addr, size_t len) { ::madvise(addr, len, MADV_SEQUENTIAL); } +/** + * On Apple platforms, schedule kernel read-ahead on the file descriptor itself + * via fcntl(F_RDADVISE). This is more aggressive than madvise for cold starts: + * it brings pages into the unified buffer cache so first-touch faults are + * serviced from RAM instead of storage. No-op on non-Apple POSIX platforms. + */ +ET_INLINE void fcntl_rdadvise_apple(int fd, size_t file_size) { +#if defined(__APPLE__) + struct radvisory advice; + advice.ra_offset = 0; + advice.ra_count = static_cast(file_size); + ::fcntl(fd, F_RDADVISE, &advice); +#else + (void)fd; + (void)file_size; +#endif +} + #else #define NOMINMAX @@ -99,4 +118,12 @@ ET_INLINE void madvise_pages_willneed_sequential(void* addr, size_t len) { (void)len; } +/** + * No-op on Windows: F_RDADVISE is an Apple-specific fcntl command. + */ +ET_INLINE void fcntl_rdadvise_apple(int fd, size_t file_size) { + (void)fd; + (void)file_size; +} + #endif diff --git a/extension/data_loader/mmap_data_loader.cpp b/extension/data_loader/mmap_data_loader.cpp index b07c8dd7d62..dc9e1a615bf 100644 --- a/extension/data_loader/mmap_data_loader.cpp +++ b/extension/data_loader/mmap_data_loader.cpp @@ -251,6 +251,7 @@ Result MmapDataLoader::load( if (mlock_config_ == MlockConfig::UseMadvise) { madvise_pages_willneed_sequential(pages, map_size); + fcntl_rdadvise_apple(fd_, file_size_); } // The requested data is at an offset into the mapped pages. From 30c9a26b8fc00395c2ac40917ec5de7aff13fcc2 Mon Sep 17 00:00:00 2001 From: Youngsik Yang Date: Tue, 19 May 2026 03:30:27 +0900 Subject: [PATCH 23/91] [Docs] Fix python specifiers in tutorials (#19280) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #18073 (This issue was already fixed before this PR) ## Problem The [setup tutorial](https://docs.pytorch.org/executorch/main/using-executorch-building-from-source.html) prescribes: ```bash conda create -yn executorch python=3.10.0 ``` This version has a CPython bug that leaves PyTorch's LeafSpec's init=False fields uninitialized. run_decompositions() in ExecuTorch deepcopies the LeafSpec nodes and crashes. This breaks the export pipeline (`to_edge_transform_and_lower`, `to_edge`, `run_decompositions`), which leads to any model export attempt failing unconditionally on Python 3.10.0. > The error message (`AttributeError: 'LeafSpec' object has no attribute 'type'`) > gives no indication that Python version is the cause, making it hard for tutorial followers to diagnose. ## Upstream Fix Status The fix has already landed in PyTorch `main` via pytorch/pytorch#177154 and is available in recent nightly builds. However, ExecuTorch currently pins to `torch==2.11`. The 2.11 branch was cut before the fix was merged, which means the upstream fix does not apply until the ExecutTorch's torch pin is bumped to 2.12. Until then, this PR is necessary to prevent tutorial followers from hitting the bug and getting lost. ## Resolution The CI build script (`.ci/docker/build.sh`) uses: ```bash PYTHON_VERSION=3.10 ``` conda interprets `python=3.10` as a **prefix**, installing the latest available 3.10.x — currently 3.10.16 — which does not have this bug. The CPython fix landed in 3.10.1. This discrepancy (`3.10` vs `3.10.0`) makes the bug invisible to CI while affecting any user who follows the setup tutorial. **Fix** python=3.10.0 -> python=3.10 to align the docs with CI. ## Test plan **Not working** ``` conda create -yn executorch3100 python=3.10.0 conda activate executorch3100 ``` **Working** ``` conda create -yn executorch310 python=3.10 conda activate executorch310 ``` ```python import torch from executorch.exir import to_edge_transform_and_lower from executorch.backends.xnnpack.partition.xnnpack_partitioner import XnnpackPartitioner class MyModel(torch.nn.Module): def forward(self, x): return x + 1 # 1. Export your PyTorch model model = MyModel().eval() example_inputs = (torch.randn(1, 3, 224, 224),) exported_program = torch.export.export(model, example_inputs) # 2. Optimize for target hardware (switch backends with one line) program = to_edge_transform_and_lower( exported_program, partitioner=[XnnpackPartitioner()] # CPU | CoreMLPartitioner() for iOS | QnnPartitioner() for Qualcomm ).to_executorch() ``` Co-authored-by: Gasoonjia --- docs/README.md | 2 +- docs/source/raspberry_pi_llama_tutorial.md | 2 +- docs/source/using-executorch-building-from-source.md | 2 +- examples/raspberry_pi/setup.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/README.md b/docs/README.md index 845267b32f6..da9e6a6a5df 100644 --- a/docs/README.md +++ b/docs/README.md @@ -52,7 +52,7 @@ To build the documentation locally: Or a Conda environment: ```bash - conda create -yn executorch python=3.10.0 && conda activate executorch + conda create -yn executorch python=3.10 && conda activate executorch ``` 1. Install dependencies: diff --git a/docs/source/raspberry_pi_llama_tutorial.md b/docs/source/raspberry_pi_llama_tutorial.md index 1e886db694a..46d6e3d4fb0 100644 --- a/docs/source/raspberry_pi_llama_tutorial.md +++ b/docs/source/raspberry_pi_llama_tutorial.md @@ -65,7 +65,7 @@ cd executorch ```bash # Create conda environment -conda create -yn executorch python=3.10.0 +conda create -yn executorch python=3.10 conda activate executorch # Upgrade pip diff --git a/docs/source/using-executorch-building-from-source.md b/docs/source/using-executorch-building-from-source.md index 5fabcfab682..170c3f8758d 100644 --- a/docs/source/using-executorch-building-from-source.md +++ b/docs/source/using-executorch-building-from-source.md @@ -45,7 +45,7 @@ portability details. ```bash git clone -b viable/strict https://github.com/pytorch/executorch.git cd executorch - conda create -yn executorch python=3.10.0 + conda create -yn executorch python=3.10 conda activate executorch ``` diff --git a/examples/raspberry_pi/setup.sh b/examples/raspberry_pi/setup.sh index 894a8365e6e..3bf34788d63 100755 --- a/examples/raspberry_pi/setup.sh +++ b/examples/raspberry_pi/setup.sh @@ -245,7 +245,7 @@ setup_environment() { # Check if conda is available if command -v conda &> /dev/null; then log_info "Creating conda environment..." - conda create -yn executorch python=3.10.0 + conda create -yn executorch python=3.10 eval "$(conda shell.bash hook)" conda activate executorch log_success "Created and activated conda environment: executorch" From 2a0a2f897bbdb51afdbe6e49de96e038e35ed46b Mon Sep 17 00:00:00 2001 From: Vasanthadithya Mundrathi Date: Tue, 19 May 2026 00:38:21 +0530 Subject: [PATCH 24/91] Update iOS SwiftPM docs for ExecuTorch 1.0.0 (#19565) Part of #17425. This refreshes the iOS SwiftPM documentation for the ExecuTorch 1.0.0 package flow. Changes: - Updates the remaining `swiftpm-0.6.0` guidance in the getting started page to use `swiftpm-1.0.0`. - Clarifies the Xcode product selection step for the simple XNNPACK app path. - Refreshes the Xcode package-product screenshot and demo video assets for the `swiftpm-1.0.0` flow. Validation: - `git diff --check` - Verified `docs/source/_static/img/swiftpm_xcode.mp4` duration is 94.37s at 1280x836 and sampled frames through package selection. cc @mergennachin @AlannaBurke @shoumikhin @cbilgin --- docs/source/_static/img/swiftpm_xcode.mp4 | Bin 3635918 -> 7982247 bytes docs/source/_static/img/swiftpm_xcode2.png | Bin 13628 -> 179003 bytes docs/source/getting-started.md | 2 +- docs/source/using-executorch-ios.md | 4 ++-- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/_static/img/swiftpm_xcode.mp4 b/docs/source/_static/img/swiftpm_xcode.mp4 index d2c0a2d85b13879eb96a91ad36a7a2545d93c069..bce5d5a8034dfa173d8191ba29b0f2c7ae737fe9 100644 GIT binary patch literal 7982247 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

hWr>aWTXwoLo*vLMqS1c5orEhH*?sh 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%0DFK#?{5R=> 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�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≶~gi^ZyRA?{Vy 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¨a6I8}mW;JDMf*l7+ZU+tto(?h>RDvCB`o61IZtVW4dlc ze$G$)c1Ml^Fww>8hA-EL02Y=`ZPVYKc?n9cDq94h2>C{4k{o+*GnH_W&+XB6qya6F zZH41wTe2b&ly~C6bO2C+*TxS50Q9Oj&-#Z#Y<*U*ItzdwqKMX%kTL!J5`!4Pj935q ziO=7^+;R&G+1)Sp7TakBl%lqem4)qFZ(`j;p}8UXasn@Z<5Vc*WL>Twu}DK>e+5%NkcO%(Q4J$<(Y(RwDreLw69+1(~47%G8dsvie?I2_`|R$I2mx(%*y zmNNyy_wn!(ikE2?n(=`z^C+MwuBFd~f7Ez*4fy&@g4Pf?eH^?ZM}^24S4?(e203~T z5XirEbIbiG7K3?FLAapDXU$`cu>s_O}WlG73iCJXCbR+xu$~9 z(3DRu#ip208$vV25;9Gsz*Ex{lNo{HEK|2LyD26zRe#QURc)g+A1T}sg;H?r1hCQG zeaDcn326_>2-F4Wa-g}U%KAWwYML3j(Fo<~4hDT16=@hVu6rW<`Uc8GEy(SkI*lew zHr_n<3`?0mF&@jJBGErQ&RRG#TVz&aQ^WYb&H=Fv1w*Nt>4AE?>-^j7Ikc+wQ9Hs5 zTX*1XqEGv-79-S09eD*k)GI1b|Lx22)p+dPLAgG9>Z)*`)`EXAUJ>{M*mkA3MfJM- z8a>GPH5Mz+-e{3de1awtqxESPgMKRS>m$sqz1paRkheJ!Cdm>&BC1b9b6!Q`E^&B= z!Z^A9cqX?s{1ZyAG(R@>6kX2kF(Y1Ut$U4YV`m&pB*rhWw)avRZ*HUP z#W}TlyttjBK)|cd(%NZ*>ZDBud+!HKe!2s;*8G0-H;Q zr71EN9F14_j5ZfY(6%cYa+^5l=G&?%Z6-p=eK<^>vlz}iqfLQsuNb&8kDjp z>Z{K2AoMGus+Qo9n}oHs7pp%tRF6woJ3cK2cEgg*Yv@^TWu1WLDX}{OaEyxgHih1i z1G3bAstXh3Z*LF8ht8BJMz-Z(FCsmn6D;#05s8beLN^)RhwCxQ*H8Vodpp58lpnJI zSlm=i$7W!NlUnm-&--#R_E)@!L#0o>;;EV$|EAg@COnMM2iU&>Sy}~ ztD^rQO3r&C@7#pt_5T4xK)b&LNDoz#LfjXO?^4B_e43P1b$RrFx$Y2)F}c_j?P%JO zNPBvYxJ)s$^iw1NbPLp*b8{iy7XM*UIoofQq5S#TlsM^5-2~GRq+wG(W}SEMib|elZK&C4S`qLz zeA~gQ(F*kXv_29Rhf_aRrsM_A)MJt}AI64w)=WlUH44O^k3(!9v2v4E=Osi3G1I9a z8}d0{dZch~PBn!d4pN@5YfEyF

+v9_ImKQixma?3R;5#t=T2|Nr|lKbJ1k2|M%B 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≻<>;Bi6oyMdt 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

;y1s{xveR(THYOn}xWN+n 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
WGBf!}5 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%0D=?boR~7E=lVF!(rUFG0bT} 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

utv)G&t+-7K5iG_Q~DqT`H%pY`I+hNmY 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%0D9h6KrN>YBWdC5 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 mb`k7)McApN{0emP` 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�Rh&9(u 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

pH%`-{E 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%0DR-b%FoYm{>181Nci!H%llnXCh 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

sg+~X># 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

j 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

{}>z8y_$n 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%0AUvcRZ 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�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

{QD2BU}40EnW3VyiXOP08ZtTQ7$Ri6y#=~=Ps$G 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

    H|*yp}{Mug!da(u$G+ftdwbVUCl! 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 ?#ka+{f7HYWUHc6G7G@W>uLI9AN> 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

    S5<=Br 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

    {`Fj+m@FVsW4e z)lhwyE;(0rxw4bGnl;%_-zzfxcIc^3IK~#T>X{c6@^$i$ZcEY7Wo>ut=~p2c;Xcid zi&-y1)F_n@WE88Kh%{n5&Prp^qhv%;to5n;!BpN2BA!ORr2ikx$_13fXhX#;7z3t$ zy$&u-Ji0`_l$PB|-=Jg->c7~8s4?FjH*EAPWRcFkw4%LagH81cOfFDIzO}FCTEw29 z+E)gM5ZOc_Oggrn#katxi?F%4!3Wz`nz^*ntBySPau2$VP2%{#XhKnD?Qa5p8%oYA z@|zhvDkdc-V_L55&~cnrz$m1!XEN?X+`nJGF3TCx+f@Ltlwx{NJAMuHa`f+vSgH0d5d~UmeRozQF(6NVK*u z?b*Z5UeA1SGJg#y^wcP*@h|n%LV5b4p!+Wo_%5|;B|Akq;44w^Ip=`#hxO2HPv1D# z{D%HDqY2M?*?SMqL)c%v@THR1KrT(`*c`zNH$Ob@Mtu~HWwoqGV{AI=zA(G#p^7s^ zRaL=Ksuh=%Ii#^j>Dha>?OSM#w;Grwz_;}E6;E4bhWv)O2vcY_ELKVk-45>4N$vXL zjblJTpJwUHtCV*mMKndjb<-$W;}Maqr+SMa;d`#AdNQv$q9eNP#DI<2bPG^2Dq6vk zXk4JwII^mqiR3KYy%8GG8w*a00VDJDP?3eY^pIjF`SfysX6$Z5^+tA>xiD%Me__q_ zgwAn4y_ro;F)YGq$<8*RIPvYVlQR&?_aNyG6XpTIRyMqhUg>>PKw z$YR*=H3Sk1a1l&_As*0&@53>;w8=Ku69jaUh5<|ze0$be^2n1$t8UaDnIpOMPg~{f zx>5%7ibpvBtn09^h{uI$>IY34mJ?buYo~BpTV_Q-I6kGS+ceiOBPCSb%?DqDRgMUK z)�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%0DL`~jX#jFKTn?t$_-6Kieah)$)G#wV0}sWbk!?o* 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

    cbaLP$&S3glc!Ko27KZCud?jUTdyL8Uix6@ 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¨*mt9Xf| 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

    h+3yRn|DQ0*>tJjN~>Wp~8`Az|XadFd4E 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�zT_g_>C(>8Gd68OvBg*8 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�~5_Ges>J?19H&QNZ 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�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

    @@ -128,23 +176,33 @@ Start Doxygen comments with DEPRECATED: See example usage. -

    -

    + + + + C++ + + Experimental + + + +Use the ET_EXPERIMENTAL annotation macro. + + + + Start Doxygen comments with EXPERIMENTAL:. + Java + Deprecated + Use java.lang.Deprecated. -

    -

    - -Use androidx.annotation.RequiresOptIn. -

    @@ -152,6 +210,19 @@ Use androidx.annotation.RequiresOptIn. + + +

    /**
     * Warning: This API is experimental.
    @@ -161,12 +232,11 @@ Use 
    -

    -

    -__attribute__((deprecated("This API is experimental and may change without notice.")));

    @@ -175,6 +245,18 @@ Use + +

    
     /**
    @@ -186,17 +268,28 @@ Use 
    +   
    +   
     

    +/// - Warning: Deprecated. Use `newMethod()` instead. + + + + Swift + + Experimental + +

    @available(*, message: "This API is experimental")

    -/// - Warning: Deprecated. Use `newMethod()` instead. -

    /// - Warning: This API is experimental. diff --git a/docs/source/backends-overview.md b/docs/source/backends-overview.md index 3d54a150eac..ad3d3b507c1 100644 --- a/docs/source/backends-overview.md +++ b/docs/source/backends-overview.md @@ -65,4 +65,5 @@ backends/arm-vgf/arm-vgf-overview build-run-openvino backends/nxp/nxp-overview backends-cadence -backends/samsung/samsung-overview +Samsung Exynos Backend +``` diff --git a/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md b/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md index faffedece35..0b82cc9e56f 100644 --- a/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md +++ b/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md @@ -209,7 +209,7 @@ ExecuTorch for the Ethos-U backend, you automatically install the compiler conta **→{doc}`/backends/arm-ethos-u/arm-ethos-u-troubleshooting` — Troubleshooting and common issues.** -**→{doc}`/backends/arm-ethos-u/tutorials/arm-ethos-u-tutorials` — Tutorials.** +**→{doc}`/backends/arm-ethos-u/tutorials/ethos-u-getting-started` — Getting started tutorial.** **→{doc}`/backends/arm-ethos-u/U55_op_support` — Ethos-U55 supported operators.** @@ -224,7 +224,7 @@ ExecuTorch for the Ethos-U backend, you automatically install the compiler conta arm-ethos-u-partitioner arm-ethos-u-quantization arm-ethos-u-troubleshooting -tutorials/arm-ethos-u-tutorials +tutorials/ethos-u-getting-started U55_op_support U85_op_support ``` diff --git a/docs/source/backends/arm-ethos-u/tutorials/arm-ethos-u-tutorials.md b/docs/source/backends/arm-ethos-u/tutorials/arm-ethos-u-tutorials.md deleted file mode 100644 index 4b540f2179d..00000000000 --- a/docs/source/backends/arm-ethos-u/tutorials/arm-ethos-u-tutorials.md +++ /dev/null @@ -1,10 +0,0 @@ -# Arm Ethos-U Backend Tutorials - -**→{doc}`ethos-u-getting-started`** - -```{toctree} -:maxdepth: 2 -:hidden: -:caption: Tutorials - -ethos-u-getting-started diff --git a/docs/source/backends/arm-vgf/arm-vgf-overview.md b/docs/source/backends/arm-vgf/arm-vgf-overview.md index dd3b00eb356..2f4523a1eb9 100644 --- a/docs/source/backends/arm-vgf/arm-vgf-overview.md +++ b/docs/source/backends/arm-vgf/arm-vgf-overview.md @@ -129,7 +129,7 @@ described in the rest of this guide but with a concrete end-to-end sample. **→{doc}`/backends/arm-vgf/arm-vgf-troubleshooting` — Debug common issues.** -**→{doc}`/backends/arm-vgf/tutorials/arm-vgf-tutorials` — Tutorials.** +**→{doc}`/backends/arm-vgf/tutorials/vgf-getting-started` — Getting started tutorial.** **→{doc}`/backends/arm-vgf/VGF_op_support` — VGF supported operators.** @@ -142,6 +142,6 @@ described in the rest of this guide but with a concrete end-to-end sample. arm-vgf-partitioner arm-vgf-quantization arm-vgf-troubleshooting -tutorials/arm-vgf-tutorials +tutorials/vgf-getting-started VGF_op_support ``` diff --git a/docs/source/backends/arm-vgf/tutorials/arm-vgf-tutorials.md b/docs/source/backends/arm-vgf/tutorials/arm-vgf-tutorials.md deleted file mode 100644 index ceb4304a814..00000000000 --- a/docs/source/backends/arm-vgf/tutorials/arm-vgf-tutorials.md +++ /dev/null @@ -1,10 +0,0 @@ -# Arm VGF Backend Tutorials - -**→{doc}`vgf-getting-started`** - -```{toctree} -:maxdepth: 2 -:hidden: -:caption: Tutorials - -vgf-getting-started diff --git a/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md b/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md index 9600f3b9d54..44e1ca59d93 100644 --- a/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md +++ b/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md @@ -168,9 +168,9 @@ To produce a pte file equivalent to the one above, run `python -m backends.arm.scripts.aot_arm_compiler --model_name=add --delegate --quantize --output=simple_example.pte --target=vgf` ``` -### Runtime: +## Runtime -## Build executor runtime +### Build executor runtime After the AOT compilation flow is done, we can build the executor runner target. For this tutorial, the default runner can be used. Build it with the following configuration: @@ -200,7 +200,7 @@ The block diagram below demonstrates, at the high level, how the various build a ![](arm-delegate-runtime-build.svg) -## Deploying and running on device +### Deploying and running on device Since we are using the Vulkan emulation layer, we can run the executor runner with the VGF delegate on the host machine: diff --git a/docs/source/backends/xnnpack/xnnpack-quantization.md b/docs/source/backends/xnnpack/xnnpack-quantization.md index e0180393f9e..74d8eafba72 100644 --- a/docs/source/backends/xnnpack/xnnpack-quantization.md +++ b/docs/source/backends/xnnpack/xnnpack-quantization.md @@ -61,7 +61,7 @@ See [PyTorch 2 Export Post Training Quantization](https://docs.pytorch.org/ao/ma The XNNPACK backend also supports quantizing models with the [torchao](https://github.com/pytorch/ao) quantize_ API. This is most commonly used for LLMs, requiring more advanced quantization. Since quantize_ is not backend aware, it is important to use a config that is compatible with CPU/XNNPACK: -* Quantize embeedings with `IntxWeightOnlyConfig` (with weight_dtype torch.int2, torch.int4, or torch.int8, using PerGroup or PerAxis granularity) +* Quantize embeddings with `IntxWeightOnlyConfig` (with weight_dtype torch.int2, torch.int4, or torch.int8, using PerGroup or PerAxis granularity) * Quantize linear layers with 4 bit weight and 8bit dynamic activation, use `Int8DynamicActivationIntxWeightConfig` (with weight_dtype=torch.int4, using PerGroup or PerAxis granularity) Below is a simple example, but a more detailed tutorial including accuracy evaluation on popular LLM benchmarks can be found in the [torchao documentation](https://docs.pytorch.org/ao/main/serving.html#mobile-deployment-with-executorch). @@ -79,13 +79,13 @@ embedding_config = IntxWeightOnlyConfig( weight_dtype=torch.int8, granularity=PerAxis(0), ) -qunatize_( +quantize_( eager_model, lambda m, fqn: isinstance(m, torch.nn.Embedding), ) -# Quatize linear layers with 8-bit dynamic activations and 4-bit weights +# Quantize linear layers with 8-bit dynamic activations and 4-bit weights linear_config = Int8DynamicActivationIntxWeightConfig( weight_dtype=torch.int4, weight_granularity=PerGroup(32), diff --git a/docs/source/conf.py b/docs/source/conf.py index d5799fa042b..4414281bd37 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -321,6 +321,8 @@ "llm/llama-demo-android": "../using-executorch-android.html", "tutorial-arm-ethos-u": "backends/arm-ethos-u/tutorials/ethos-u-getting-started.html", "tutorial-arm-vgf": "backends/arm-vgf/tutorials/vgf-getting-started.html", + "backends/arm-ethos-u/tutorials/arm-ethos-u-tutorials": "ethos-u-getting-started.html", + "backends/arm-vgf/tutorials/arm-vgf-tutorials": "vgf-getting-started.html", "visualization": "visualize.html", } diff --git a/docs/source/desktop-coreml.md b/docs/source/desktop-coreml.md index ff6551aa0c2..00149b03e68 100644 --- a/docs/source/desktop-coreml.md +++ b/docs/source/desktop-coreml.md @@ -1 +1,2 @@ ```{include} backends/coreml/coreml-overview.md +``` \ No newline at end of file diff --git a/docs/source/desktop-mps.md b/docs/source/desktop-mps.md index 13717675ba5..84e5b8b7792 100644 --- a/docs/source/desktop-mps.md +++ b/docs/source/desktop-mps.md @@ -1 +1,2 @@ ```{include} backends/mps/mps-overview.md +``` \ No newline at end of file diff --git a/docs/source/embedded-arm-ethos-u.md b/docs/source/embedded-arm-ethos-u.md index 6eb9622925d..cd3b7e525eb 100644 --- a/docs/source/embedded-arm-ethos-u.md +++ b/docs/source/embedded-arm-ethos-u.md @@ -1 +1,2 @@ ```{include} backends/arm-ethos-u/arm-ethos-u-overview.md +``` \ No newline at end of file diff --git a/docs/source/embedded-backends.md b/docs/source/embedded-backends.md index 147f6cfc151..31b04f1839d 100644 --- a/docs/source/embedded-backends.md +++ b/docs/source/embedded-backends.md @@ -13,7 +13,7 @@ Available hardware acceleration backends for embedded systems. ## NPU Acceleration -- {doc}`embedded-arm-ethos-u` — ARM Ethos-U NPU acceleration +- {doc}`embedded-arm-ethos-u` — Arm Ethos-U NPU acceleration - {doc}`embedded-nxp` — NXP eIQ Neutron Backend @@ -23,3 +23,4 @@ embedded-arm-cortex-m embedded-cadence embedded-arm-ethos-u embedded-nxp +``` diff --git a/docs/source/ir-exir.md b/docs/source/ir-exir.md index d3357d34a03..0c819cf558a 100644 --- a/docs/source/ir-exir.md +++ b/docs/source/ir-exir.md @@ -175,4 +175,19 @@ for all core ATen ops. ## Backend Dialect -See this [doc](compiler-backend-dialect.md) +Backend dialect is the optional, target-aware stage after Edge dialect. It is +used when a backend needs to rewrite the graph with backend-specific operators, +metadata, or delegated lowered modules before the program is converted to an +ExecuTorch program. For example, a backend pass can replace an Edge dialect +subgraph such as `addmm` followed by `relu` with a single backend operator that +the target can execute more efficiently. + +Unlike custom operators that may appear in eager mode, ATen dialect, or Edge +dialect, backend-specific operators are introduced only by passes that run after +Edge dialect. They are useful for target-specific fusions, lowering patterns, +or delegate integration where the resulting graph contains nodes meaningful only +to the selected backend. + +For details on when to use backend-specific operators, how they differ from +custom operators and delegates, and how to register replacement patterns with +`bind_pattern_to_op`, see [Backend Dialect](compiler-backend-dialect.md). diff --git a/docs/source/tools-section.md b/docs/source/tools-section.md index 6d8061dd33a..d2bb44086f8 100644 --- a/docs/source/tools-section.md +++ b/docs/source/tools-section.md @@ -13,7 +13,7 @@ In this section, explore ExecuTorch's comprehensive developer tools for profilin - {doc}`model-inspector` — Model Inspector - {doc}`memory-planning-inspection` — Memory Planning Inspection - {doc}`devtools-tutorial` — Development Utilities -- {doc}`visualize` — Model Visualization +- [Model Visualization](visualize.md) — Visualize exported models as computational graphs ```{toctree} :hidden: @@ -29,4 +29,5 @@ model-debugging model-inspector memory-planning-inspection devtools-tutorial -visualize +Model Visualization +``` From 869af13cc155f60d0c5de07b72dd79d02d050fe8 Mon Sep 17 00:00:00 2001 From: Scott Roy <161522778+metascroy@users.noreply.github.com> Date: Mon, 18 May 2026 17:13:54 -0700 Subject: [PATCH 32/91] Fix broken tests caused by runtime gtest skipping (#19658) Differential Revision: D105634345 Pull Request resolved: https://github.com/pytorch/executorch/pull/19658 --- kernels/test/op_clone_test.cpp | 19 +++++---- kernels/test/op_unbind_copy_test.cpp | 7 +-- kernels/test/supported_features_skip.h | 59 ++++++++++++++++++++++++++ kernels/test/targets.bzl | 11 ++++- 4 files changed, 83 insertions(+), 13 deletions(-) create mode 100644 kernels/test/supported_features_skip.h diff --git a/kernels/test/op_clone_test.cpp b/kernels/test/op_clone_test.cpp index 57a8aed2d6c..aec1c473f18 100644 --- a/kernels/test/op_clone_test.cpp +++ b/kernels/test/op_clone_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -73,9 +74,9 @@ class OpCloneTest : public OperatorTest { // regular test for clone.out TEST_F(OpCloneTest, AllDtypesSupported) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) test_dtype(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); #undef TEST_ENTRY @@ -88,9 +89,9 @@ TEST_F(OpCloneTest, EmptyInputSupported) { } TEST_F(OpCloneTest, MismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched sizes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched sizes"); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros({3, 2, 1, 1}); @@ -114,9 +115,9 @@ TEST_F(OpCloneTest, MismatchedTypesDie) { // MemoryFormat::Contiguous should not be allowed. The function is expected // depth if using the illegal memory format. TEST_F(OpCloneTest, MismatchedMemoryFormatDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle non contiguous memory formats"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle non contiguous memory formats"); TensorFactory tf_in; TensorFactory tf_out; Tensor input = diff --git a/kernels/test/op_unbind_copy_test.cpp b/kernels/test/op_unbind_copy_test.cpp index c98edc5e1f7..54b32ef73f6 100644 --- a/kernels/test/op_unbind_copy_test.cpp +++ b/kernels/test/op_unbind_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -269,9 +270,9 @@ TEST_F(OpUnbindCopyIntOutTest, UnbindWorksWithZeroSizedTensors) { } TEST_F(OpUnbindCopyIntOutTest, UnbindFailsWithWronglyAllocatedOutput) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched output shape"); TensorFactory tf; TensorListFactory tlf; diff --git a/kernels/test/supported_features_skip.h b/kernels/test/supported_features_skip.h new file mode 100644 index 00000000000..b9416b56870 --- /dev/null +++ b/kernels/test/supported_features_skip.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ + +#pragma once + +// `ET_SKIP_IF(cond, reason)` -- skip a kernel test when `cond` is true. +// +// Replaces the older inline pattern: +// if (SupportedFeatures::get()->is_aten) { +// GTEST_SKIP() << "ATen handles X"; +// } +// with: +// ET_SKIP_IF(SupportedFeatures::get()->is_aten, "ATen handles X"); +// +// OSS: expands to `if (cond) GTEST_SKIP() << reason;` (unchanged). +// fbcode: expands to `if (cond) return;` so the test reports PASS, not SKIP. +// +// fbcode's TestX flags consistently-skipping tests as "broken" -- see +// T208053850 and +// https://fb.workplace.com/groups/testinfra.discuss/permalink/2044665472719153/. +// Collapse back to the OSS form once that's resolved. +// +// `EXECUTORCH_INTERNAL` is set by BUCK gated on `runtime.is_oss` (see +// `runtime/executor/targets.bzl` for the existing precedent). + +#if defined(EXECUTORCH_INTERNAL) && EXECUTORCH_INTERNAL == 1 + +namespace executorch::testing::internal { +// No-op sink so `<<` chains in the reason still parse and type-check. +struct SkipReasonSink { + template + const SkipReasonSink& operator<<(const T&) const { + return *this; + } +}; +} // namespace executorch::testing::internal + +// `if/else` form avoids dangling-else hazards and lets the reason still +// participate in `<<` chains. +#define ET_SKIP_IF(cond, reason) \ + if ((cond)) { \ + return; \ + } else \ + ::executorch::testing::internal::SkipReasonSink{} << reason + +#else // !EXECUTORCH_INTERNAL + +#include + +#define ET_SKIP_IF(cond, reason) \ + if ((cond)) \ + GTEST_SKIP() << reason + +#endif // EXECUTORCH_INTERNAL diff --git a/kernels/test/targets.bzl b/kernels/test/targets.bzl index abf6329248d..bc51e336cb8 100644 --- a/kernels/test/targets.bzl +++ b/kernels/test/targets.bzl @@ -115,7 +115,16 @@ def define_common_targets(): runtime.cxx_library( name = "supported_features_header", srcs = [], - exported_headers = {"supported_features.h": ":supported_feature_header_gen[supported_features.h]"}, + exported_headers = { + "supported_features.h": ":supported_feature_header_gen[supported_features.h]", + "supported_features_skip.h": "supported_features_skip.h", + }, + # Set EXECUTORCH_INTERNAL=1 for fbcode-internal builds so the + # ET_SKIP_IF helper in supported_features_skip.h compiles to an + # early `return;` instead of GTEST_SKIP. This avoids TestX's + # "ConsistentlySkipping" / broken-test signal. OSS builds keep + # the canonical GTEST_SKIP behavior. See header for context. + exported_preprocessor_flags = [] if runtime.is_oss else ["-DEXECUTORCH_INTERNAL=1"], visibility = [ "//executorch/kernels/...", ], From 0a82163a9181a045584fe8ddddfddd68b6de0e13 Mon Sep 17 00:00:00 2001 From: billmguo Date: Mon, 18 May 2026 18:23:20 -0700 Subject: [PATCH 33/91] Back out "Make ScalelessRMSNorm a torch.nn.RMSNorm; fix SDPACustom view -> reshape" Differential Revision: D105623266 Pull Request resolved: https://github.com/pytorch/executorch/pull/19655 --- examples/models/llama/norm.py | 21 ++++++++----------- .../llama/source_transformation/sdpa.py | 4 ++-- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/examples/models/llama/norm.py b/examples/models/llama/norm.py index e1e47ea02cf..ec92b353eb4 100644 --- a/examples/models/llama/norm.py +++ b/examples/models/llama/norm.py @@ -41,20 +41,17 @@ def forward(self, x): return output * self.weight.type_as(x) -class ScalelessRMSNorm(torch.nn.RMSNorm): - """RMSNorm with weight hardcoded to ones and not trainable. - - Equivalent to a scaleless RMSNorm (no learnable scaling) but implemented as a - torch.nn.RMSNorm so the op composes/decomposes cleanly for backends like QNN - instead of being expressed as a hand-rolled decomposition. - """ - +class ScalelessRMSNorm(torch.nn.Module): def __init__(self, dim: int, eps: float = 1e-6): - super().__init__(dim, eps) + super().__init__() self.dim = dim - with torch.no_grad(): - self.weight.fill_(1.0) - self.weight.requires_grad = False + self.eps = eps + + def forward(self, x): + x_float = x.float() + return ( + x_float * torch.rsqrt((x_float * x_float).mean(-1, keepdim=True) + self.eps) + ).type_as(x) class RMSNormCoreML(torch.nn.Module): diff --git a/examples/models/llama/source_transformation/sdpa.py b/examples/models/llama/source_transformation/sdpa.py index 0285f3562cb..b10f684ccc0 100644 --- a/examples/models/llama/source_transformation/sdpa.py +++ b/examples/models/llama/source_transformation/sdpa.py @@ -69,7 +69,7 @@ def forward( 0, # dropout probability. Ignored by the code True, # is_causal ) - return output.reshape(bsz, seqlen, self.dim).to(dtype=input_dtype) + return output.view(bsz, seqlen, self.dim).to(dtype=input_dtype) def _replace_sdpa_with_custom_op( @@ -198,7 +198,7 @@ def forward( v_scale_fp32, ) - return output.reshape(bsz, seqlen, self.dim) + return output.view(bsz, seqlen, self.dim) def _update_attention_module_with_quantized_sdpa( From 12c25cfa97e6eb165296a71ebe0137c20e3725eb Mon Sep 17 00:00:00 2001 From: Scott Roy <161522778+metascroy@users.noreply.github.com> Date: Mon, 18 May 2026 19:47:33 -0700 Subject: [PATCH 34/91] Add entry_at(i) accessor to LoadBackendOptionsMap (#19645) Differential Revision: D105100370 Pull Request resolved: https://github.com/pytorch/executorch/pull/19645 --- runtime/backend/backend_options_map.h | 41 +++++++++++++++++++ .../backend/test/backend_options_map_test.cpp | 29 +++++++++++++ 2 files changed, 70 insertions(+) diff --git a/runtime/backend/backend_options_map.h b/runtime/backend/backend_options_map.h index 7d11911f4c4..f0c6a68c509 100644 --- a/runtime/backend/backend_options_map.h +++ b/runtime/backend/backend_options_map.h @@ -11,6 +11,7 @@ #include #include #include +#include #include @@ -171,6 +172,46 @@ class LoadBackendOptionsMap final { return size_; } + /** + * Non-owning view of a single (backend_id, options) entry, returned by + * entry_at(). The pointer / span are valid until the map is mutated or + * destroyed. + */ + struct EntryView { + const char* backend_id = nullptr; + Span options; + }; + + /** + * Returns the (backend_id, options) entry at the given index for + * enumeration over the map's contents. + * + * @param index The entry index. Must be < size(); behavior is undefined + * otherwise. Use this together with size() to walk every entry. + * @return EntryView referencing the entry's backend_id and options. The + * view is valid until the next mutation of, or destruction of, this + * map. + * + * Example: + * @code + * for (size_t i = 0; i < map.size(); ++i) { + * const auto entry = map.entry_at(i); + * // use entry.backend_id and entry.options ... + * } + * @endcode + */ + EntryView entry_at(size_t index) const { + ET_DCHECK_MSG( + index < size_, + "entry_at index %zu out of bounds (size=%zu)", + index, + size_); + return EntryView{ + entries_[index].backend_id, + Span( + entries_[index].options.data(), entries_[index].options.size())}; + } + private: static constexpr size_t kMaxBackends = 8; static constexpr size_t kMaxBackendIdLength = 64; diff --git a/runtime/backend/test/backend_options_map_test.cpp b/runtime/backend/test/backend_options_map_test.cpp index b98878d763b..f6466271ffa 100644 --- a/runtime/backend/test/backend_options_map_test.cpp +++ b/runtime/backend/test/backend_options_map_test.cpp @@ -365,3 +365,32 @@ TEST_F(LoadBackendOptionsMapTest, SetOptionsWithBuilderUpdatesExisting) { } EXPECT_EQ(num_threads2, 8); // Should be updated value } + +// Test entry_at returns each (backend_id, options) pair in insertion order +// and the spans reference the same data the corresponding get_options +// calls return. +TEST_F(LoadBackendOptionsMapTest, EntryAtEnumeratesAllEntries) { + LoadBackendOptionsMap map; + + BackendOptions<2> opts1; + opts1.set_option("k1", 1); + ASSERT_EQ(map.set_options("BackendA", opts1.view()), Error::Ok); + + BackendOptions<2> opts2; + opts2.set_option("k2", true); + opts2.set_option("k3", "v"); + ASSERT_EQ(map.set_options("BackendB", opts2.view()), Error::Ok); + + ASSERT_EQ(map.size(), 2u); + + const auto e0 = map.entry_at(0); + EXPECT_STREQ(e0.backend_id, "BackendA"); + EXPECT_EQ(e0.options.size(), 1u); + // Spans returned by entry_at point at the same storage as get_options. + EXPECT_EQ(e0.options.data(), map.get_options("BackendA").data()); + + const auto e1 = map.entry_at(1); + EXPECT_STREQ(e1.backend_id, "BackendB"); + EXPECT_EQ(e1.options.size(), 2u); + EXPECT_EQ(e1.options.data(), map.get_options("BackendB").data()); +} From d3f80b6cc2783c5e76eb3a1f533f092c76e8eb93 Mon Sep 17 00:00:00 2001 From: Gregory Comer Date: Mon, 18 May 2026 20:12:03 -0700 Subject: [PATCH 35/91] Retry all curl errors (#19656) ### Summary Update `curl` commands in CI scripts to retry all errors. This will hopefully improve CI reliability by reducing download failures. A common pattern from CI logs is the following. Note that the failure is not retried. ``` +++ curl --retry 3 --retry-delay 5 --retry-connrefused --continue-at - -Lo /tmp/android-ndk-r26c-linux.zip https://dl.google.com/android/repository/android-ndk-r26c-linux.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 637M 0 1280k 0 0 3727k 0 0:02:55 --:--:-- 0:02:55 3720k 2 637M 2 13.0M 0 0 9928k 0 0:01:05 0:00:01 0:01:04 9923k 4 637M 4 29.9M 0 0 12.7M 0 0:00:50 0:00:02 0:00:48 12.7M 4 637M 4 31.2M 0 0 7724k 0 0:01:24 0:00:04 0:01:20 7725k curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2) ``` https://github.com/pytorch/executorch/actions/runs/26048331262/job/76578254537#step:17:17111 Most of the curl commands in our scripts do retry, but only certain types of errors. Switching to `--retry-all-errors` should hopefully be more robust to flakes. If something is hard down, it may spending ~15s retrying, but that's fine. --- .ci/docker/common/install_android.sh | 6 +++--- .ci/docker/common/install_cache.sh | 2 +- .ci/docker/common/install_docs_reqs.sh | 4 ++-- .ci/docker/common/install_linter.sh | 2 +- .ci/scripts/setup-emscripten.sh | 2 +- .ci/scripts/setup-macos.sh | 4 ++-- .ci/scripts/setup-mediatek-deps.sh | 4 ++-- .ci/scripts/setup-openvino.sh | 2 +- .ci/scripts/setup-samsung-linux-deps.sh | 2 +- .ci/scripts/setup-vulkan-linux-deps.sh | 4 ++-- .ci/scripts/test_ios_ci.sh | 2 +- .ci/scripts/test_model_e2e.sh | 12 ++++++------ .ci/scripts/utils.sh | 4 ++-- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.ci/docker/common/install_android.sh b/.ci/docker/common/install_android.sh index d4dfe64b7d9..6e6f1e1568d 100755 --- a/.ci/docker/common/install_android.sh +++ b/.ci/docker/common/install_android.sh @@ -43,10 +43,10 @@ install_ndk() { ARCH=$(uname -m) if [ "${ARCH}" = "aarch64" ]; then # aarch64 NDK is not cached on S3, download from Google directly - curl -Os --retry 3 "https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" + curl -Os --retry 3 --retry-all-errors "https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" else # The NDK installation is cached on ossci-android S3 bucket - curl -Os --retry 3 "https://ossci-android.s3.amazonaws.com/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" + curl -Os --retry 3 --retry-all-errors "https://ossci-android.s3.amazonaws.com/android-ndk-${ANDROID_NDK_VERSION}-linux.zip" fi unzip -qo "android-ndk-${ANDROID_NDK_VERSION}-linux.zip" @@ -62,7 +62,7 @@ install_cmdtools() { pushd /tmp # The file is cached on ossci-android S3 bucket - curl -Os --retry 3 "https://ossci-android.s3.us-west-1.amazonaws.com/${CMDTOOLS_FILENAME}" + curl -Os --retry 3 --retry-all-errors "https://ossci-android.s3.us-west-1.amazonaws.com/${CMDTOOLS_FILENAME}" unzip -qo "${CMDTOOLS_FILENAME}" -d /opt ls -lah /opt/cmdline-tools/bin diff --git a/.ci/docker/common/install_cache.sh b/.ci/docker/common/install_cache.sh index f17b4cc6068..7b7d39994ca 100755 --- a/.ci/docker/common/install_cache.sh +++ b/.ci/docker/common/install_cache.sh @@ -34,7 +34,7 @@ install_ubuntu() { install_binary() { echo "Downloading sccache binary from S3 repo" - curl --retry 3 https://s3.amazonaws.com/ossci-linux/sccache -o /opt/cache/bin/sccache + curl --retry 3 --retry-all-errors https://s3.amazonaws.com/ossci-linux/sccache -o /opt/cache/bin/sccache chmod +x /opt/cache/bin/sccache } diff --git a/.ci/docker/common/install_docs_reqs.sh b/.ci/docker/common/install_docs_reqs.sh index 13aba8e5bd5..3b6d10c5c2b 100755 --- a/.ci/docker/common/install_docs_reqs.sh +++ b/.ci/docker/common/install_docs_reqs.sh @@ -12,10 +12,10 @@ if [ -n "$BUILD_DOCS" ]; then # Ignore error if gpg-agent doesn't exist (for Ubuntu 16.04) apt-get install -y gpg-agent || : - curl --retry 3 -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - + curl --retry 3 --retry-all-errors -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs - curl --retry 3 -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - + curl --retry 3 --retry-all-errors -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list apt-get update diff --git a/.ci/docker/common/install_linter.sh b/.ci/docker/common/install_linter.sh index d262176e49b..52d2d262685 100755 --- a/.ci/docker/common/install_linter.sh +++ b/.ci/docker/common/install_linter.sh @@ -15,5 +15,5 @@ source "$(dirname "${BASH_SOURCE[0]}")/utils.sh" pip_install -r requirements-lintrunner.txt # Install google-java-format -curl -L --retry 3 https://github.com/google/google-java-format/releases/download/v1.23.0/google-java-format_linux-x86-64 > /opt/google-java-format +curl -L --retry 3 --retry-all-errors https://github.com/google/google-java-format/releases/download/v1.23.0/google-java-format_linux-x86-64 > /opt/google-java-format chmod +x /opt/google-java-format diff --git a/.ci/scripts/setup-emscripten.sh b/.ci/scripts/setup-emscripten.sh index a4f4fd1a078..66477f24a7c 100644 --- a/.ci/scripts/setup-emscripten.sh +++ b/.ci/scripts/setup-emscripten.sh @@ -9,7 +9,7 @@ set -ex # need version >= 17 install_node() { - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash + curl --retry 3 --retry-all-errors -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash source "$HOME/.nvm/nvm.sh" nvm install 22 } diff --git a/.ci/scripts/setup-macos.sh b/.ci/scripts/setup-macos.sh index 6bd26e0b171..38863597224 100755 --- a/.ci/scripts/setup-macos.sh +++ b/.ci/scripts/setup-macos.sh @@ -34,7 +34,7 @@ install_buck() { # team for help. BUCK2_VERSION=$(cat ci_commit_pins/buck2.txt) BUCK2=buck2-aarch64-apple-darwin-${BUCK2_VERSION}.zst - curl -s "https://ossci-macos.s3.amazonaws.com/${BUCK2}" -o "${BUCK2}" + curl -s --retry 3 --retry-all-errors "https://ossci-macos.s3.amazonaws.com/${BUCK2}" -o "${BUCK2}" zstd -d "${BUCK2}" -o buck2 @@ -68,7 +68,7 @@ install_sccache() { # NB: The function is adopted from PyTorch MacOS build workflow # https://github.com/pytorch/pytorch/blob/main/.github/workflows/_mac-build.yml if ! command -v sccache &> /dev/null; then - sudo curl --retry 3 "https://s3.amazonaws.com/ossci-macos/sccache/sccache-v0.4.1-${RUNNER_ARCH}" --output "${SCCACHE_PATH}/sccache" + sudo curl --retry 3 --retry-all-errors "https://s3.amazonaws.com/ossci-macos/sccache/sccache-v0.4.1-${RUNNER_ARCH}" --output "${SCCACHE_PATH}/sccache" sudo chmod +x "${SCCACHE_PATH}/sccache" fi diff --git a/.ci/scripts/setup-mediatek-deps.sh b/.ci/scripts/setup-mediatek-deps.sh index f93a319e11a..d24bcfaa9ef 100755 --- a/.ci/scripts/setup-mediatek-deps.sh +++ b/.ci/scripts/setup-mediatek-deps.sh @@ -14,7 +14,7 @@ install_neuropilot() { echo "Start installing neuropilot." mkdir -p "${MEDIATEK_INSTALLATION_DIR}" - curl -Lo /tmp/neuropilot-express.tar.gz "https://s3.ap-southeast-1.amazonaws.com/mediatek.neuropilot.com/06302508-4c94-4bf2-9789-b0ee44e83e27.gz" + curl -Lo /tmp/neuropilot-express.tar.gz --retry 3 --retry-all-errors "https://s3.ap-southeast-1.amazonaws.com/mediatek.neuropilot.com/06302508-4c94-4bf2-9789-b0ee44e83e27.gz" echo "Finishing downloading neuropilot sdk." tar zxvf /tmp/neuropilot-express.tar.gz --strip-components=1 --directory "${MEDIATEK_INSTALLATION_DIR}" echo "Finishing unzip neuropilot sdk." @@ -33,7 +33,7 @@ setup_neuropilot() { } setup_calibration_data() { - curl -Lo /tmp/imagenette2-160.tgz https://s3.amazonaws.com/fast-ai-imageclas/imagenette2-160.tgz + curl -Lo /tmp/imagenette2-160.tgz --retry 3 --retry-all-errors https://s3.amazonaws.com/fast-ai-imageclas/imagenette2-160.tgz tar zxvf /tmp/imagenette2-160.tgz --strip-components=1 --directory "${MEDIATEK_INSTALLATION_DIR}" } diff --git a/.ci/scripts/setup-openvino.sh b/.ci/scripts/setup-openvino.sh index 4f3de081536..6acc691649b 100755 --- a/.ci/scripts/setup-openvino.sh +++ b/.ci/scripts/setup-openvino.sh @@ -37,7 +37,7 @@ else echo "Using OpenVINO stable release: ${OPENVINO_BUILD}" fi -curl -Lo /tmp/openvino_toolkit.tgz --retry 3 --fail ${OPENVINO_URL} +curl -Lo /tmp/openvino_toolkit.tgz --retry 3 --retry-all-errors --fail ${OPENVINO_URL} tar -xzf /tmp/openvino_toolkit.tgz mv "${OPENVINO_EXTRACTED_DIR}" openvino diff --git a/.ci/scripts/setup-samsung-linux-deps.sh b/.ci/scripts/setup-samsung-linux-deps.sh index 9aa9c4380a5..5af62ec35ca 100644 --- a/.ci/scripts/setup-samsung-linux-deps.sh +++ b/.ci/scripts/setup-samsung-linux-deps.sh @@ -43,7 +43,7 @@ download_and_extract() { local out_file="$3" echo "Downloading from ${download_url}..." - curl -fsSL --retry 3 \ + curl -fsSL --retry 3 --retry-all-errors \ -H "apikey: ${API_KEY}" \ -o "${out_file}" \ "${download_url}" diff --git a/.ci/scripts/setup-vulkan-linux-deps.sh b/.ci/scripts/setup-vulkan-linux-deps.sh index cd99ff0d6ff..a0dcb75ad4a 100755 --- a/.ci/scripts/setup-vulkan-linux-deps.sh +++ b/.ci/scripts/setup-vulkan-linux-deps.sh @@ -16,7 +16,7 @@ install_swiftshader() { _tmp_archive="/tmp/${_swiftshader_archive}" - curl --silent --show-error --location --fail --retry 3 \ + curl --silent --show-error --location --fail --retry 3 --retry-all-errors \ --output "${_tmp_archive}" "$_https_amazon_aws/${_swiftshader_archive}" tar -C "${_swiftshader_dir}" -xzf "${_tmp_archive}" @@ -35,7 +35,7 @@ install_vulkan_sdk() { _tmp_archive="/tmp/vulkansdk.tar.gz" - curl --silent --show-error --location --fail --retry 3 \ + curl --silent --show-error --location --fail --retry 3 --retry-all-errors \ --output "${_tmp_archive}" "${_vulkan_sdk_url}" tar -C "${_vulkan_sdk_dir}" -xJf "${_tmp_archive}" diff --git a/.ci/scripts/test_ios_ci.sh b/.ci/scripts/test_ios_ci.sh index 46c3f71f021..a961fac0dd3 100755 --- a/.ci/scripts/test_ios_ci.sh +++ b/.ci/scripts/test_ios_ci.sh @@ -55,7 +55,7 @@ mv $MODEL_NAME*.pte "$APP_PATH/Resources/Models/MobileNet/" say "Downloading Labels" -curl https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt \ +curl --retry 3 --retry-all-errors https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt \ -o "$APP_PATH/Resources/Models/MobileNet/imagenet_classes.txt" say "Creating Simulator" diff --git a/.ci/scripts/test_model_e2e.sh b/.ci/scripts/test_model_e2e.sh index 27b0dd9d597..e1ba976b0cc 100755 --- a/.ci/scripts/test_model_e2e.sh +++ b/.ci/scripts/test_model_e2e.sh @@ -258,17 +258,17 @@ echo "::group::Prepare $MODEL_NAME Artifacts" # Download tokenizer files (skip for models that bundle tokenizer in export or do not use one) if [ "$MODEL_NAME" != "parakeet" ] && [ "$MODEL_NAME" != "voxtral_realtime" ] && [ "$MODEL_NAME" != "sortformer" ] && [ "$MODEL_NAME" != "dinov2" ] && [ "$MODEL_NAME" != "qwen3_5_moe" ] && [ "$MODEL_NAME" != "gemma4_31b" ]; then if [ "$TOKENIZER_FILE" != "" ]; then - curl -L $TOKENIZER_URL/$TOKENIZER_FILE -o $MODEL_DIR/$TOKENIZER_FILE + curl -L --retry 3 --retry-all-errors $TOKENIZER_URL/$TOKENIZER_FILE -o $MODEL_DIR/$TOKENIZER_FILE else - curl -L $TOKENIZER_URL/tokenizer.json -o $MODEL_DIR/tokenizer.json - curl -L $TOKENIZER_URL/tokenizer_config.json -o $MODEL_DIR/tokenizer_config.json - curl -L $TOKENIZER_URL/special_tokens_map.json -o $MODEL_DIR/special_tokens_map.json + curl -L --retry 3 --retry-all-errors $TOKENIZER_URL/tokenizer.json -o $MODEL_DIR/tokenizer.json + curl -L --retry 3 --retry-all-errors $TOKENIZER_URL/tokenizer_config.json -o $MODEL_DIR/tokenizer_config.json + curl -L --retry 3 --retry-all-errors $TOKENIZER_URL/special_tokens_map.json -o $MODEL_DIR/special_tokens_map.json fi fi # Download test files if [ "$AUDIO_URL" != "" ]; then - curl -L $AUDIO_URL -o ${MODEL_DIR}/$AUDIO_FILE + curl -L --retry 3 --retry-all-errors $AUDIO_URL -o ${MODEL_DIR}/$AUDIO_FILE elif [[ "$MODEL_NAME" == *whisper* ]] || [ "$MODEL_NAME" = "voxtral_realtime" ]; then if ! command -v ffmpeg >/dev/null; then if [ "$(uname -s)" = "Linux" ] && command -v apt-get >/dev/null; then @@ -290,7 +290,7 @@ fi # Download test image for vision models if [ -n "${IMAGE_URL:-}" ]; then - curl -L "$IMAGE_URL" -o "${MODEL_DIR}/test_image.jpg" + curl -L --retry 3 --retry-all-errors "$IMAGE_URL" -o "${MODEL_DIR}/test_image.jpg" fi ls -al diff --git a/.ci/scripts/utils.sh b/.ci/scripts/utils.sh index b291374d667..486745f4bf6 100644 --- a/.ci/scripts/utils.sh +++ b/.ci/scripts/utils.sh @@ -242,8 +242,8 @@ cmake_install_executorch_lib() { download_stories_model_artifacts() { # Download stories110M.pt and tokenizer from Github - curl -Ls "https://huggingface.co/karpathy/tinyllamas/resolve/main/stories110M.pt" --output stories110M.pt - curl -Ls "https://raw.githubusercontent.com/karpathy/llama2.c/master/tokenizer.model" --output tokenizer.model + curl -Ls --retry 3 --retry-all-errors "https://huggingface.co/karpathy/tinyllamas/resolve/main/stories110M.pt" --output stories110M.pt + curl -Ls --retry 3 --retry-all-errors "https://raw.githubusercontent.com/karpathy/llama2.c/master/tokenizer.model" --output tokenizer.model # Create params.json file touch params.json echo '{"dim": 768, "multiple_of": 32, "n_heads": 12, "n_layers": 12, "norm_eps": 1e-05, "vocab_size": 32000}' > params.json From 1e76bb3cad5f299b55c930eda1ffafe6f06ce868 Mon Sep 17 00:00:00 2001 From: Oscar Andersson <87121123+oscarandersson8218@users.noreply.github.com> Date: Tue, 19 May 2026 07:56:17 +0200 Subject: [PATCH 36/91] Arm backend: Don't execute eagerly with sym-ints (#19638) Passes that eagerly executes ops with symbolic shapes to trace new metadata will break the graph. https://github.com/pytorch/pytorch/issues/182940 tries to figure out why eager execution breaks the graph. cc @digantdesai @freddan80 @per @zingo @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Oscar Andersson --- backends/arm/_passes/arm_pass_utils.py | 13 +++++++ .../normalize_delegate_io_layout_pass.py | 9 ++--- backends/arm/_passes/rewrite_conv_pass.py | 35 ++++++++----------- backends/arm/_passes/rewrite_upsample.py | 8 ++--- 4 files changed, 37 insertions(+), 28 deletions(-) diff --git a/backends/arm/_passes/arm_pass_utils.py b/backends/arm/_passes/arm_pass_utils.py index 9176f761220..000f92135eb 100644 --- a/backends/arm/_passes/arm_pass_utils.py +++ b/backends/arm/_passes/arm_pass_utils.py @@ -413,3 +413,16 @@ def to_2tuple(value): if len(value) == 1: return (value[0], value[0]) return tuple(value) + + +def permute_fake_tensor_metadata( + fake_tensor: FakeTensor, permute_dims: tuple[int, ...] +) -> FakeTensor: + permuted_shape = tuple(fake_tensor.shape[dim] for dim in permute_dims) + meta_tensor = torch.empty( + permuted_shape, + dtype=fake_tensor.dtype, + device="meta", + requires_grad=fake_tensor.requires_grad, + ) + return FakeTensor(fake_tensor.fake_mode, meta_tensor, fake_tensor.fake_device) diff --git a/backends/arm/_passes/normalize_delegate_io_layout_pass.py b/backends/arm/_passes/normalize_delegate_io_layout_pass.py index d1b1d964b87..c55eec5c851 100644 --- a/backends/arm/_passes/normalize_delegate_io_layout_pass.py +++ b/backends/arm/_passes/normalize_delegate_io_layout_pass.py @@ -11,6 +11,7 @@ create_node, get_first_fake_tensor, is_param_node, + permute_fake_tensor_metadata, ) from executorch.exir import ExportedProgram from executorch.exir.dialects._ops import ops as exir_ops @@ -63,8 +64,8 @@ def _normalize_input_layout(self, graph_module: torch.fx.GraphModule) -> bool: args=(node, list(transpose_perm)), from_node=node, ) - permute_node.meta["val"] = exir_ops.edge.aten.permute_copy.default( - node.meta["val"], list(transpose_perm) + permute_node.meta["val"] = permute_fake_tensor_metadata( + get_first_fake_tensor(node), transpose_perm ) users = [user for user in node.users if user != permute_node] @@ -91,8 +92,8 @@ def _rewrite_output_arg( args=(arg, list(dim_order)), from_node=arg, ) - permute_node.meta["val"] = exir_ops.edge.aten.permute_copy.default( - output_fake, list(dim_order) + permute_node.meta["val"] = permute_fake_tensor_metadata( + output_fake, dim_order ) return permute_node, True diff --git a/backends/arm/_passes/rewrite_conv_pass.py b/backends/arm/_passes/rewrite_conv_pass.py index ed4df2e43b6..a51f1ae0555 100644 --- a/backends/arm/_passes/rewrite_conv_pass.py +++ b/backends/arm/_passes/rewrite_conv_pass.py @@ -16,6 +16,7 @@ get_first_fake_tensor, get_param_tensor, is_persistent_buffer, + permute_fake_tensor_metadata, ) from executorch.backends.arm._passes.fold_qdq_with_annotated_qparams_pass import ( get_input_qparams, @@ -421,9 +422,10 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 args=(x, list(pre_permute_dims)), from_node=node, ) - x.meta["val"] = exir_ops.edge.aten.permute_copy.default( - input_fake_tensor, list(pre_permute_dims) + input_tensor_for_tosa_fake = permute_fake_tensor_metadata( + input_fake_tensor, pre_permute_dims ) + x.meta["val"] = input_tensor_for_tosa_fake weight = self._rewrite_weight( graph_module, weight, @@ -431,7 +433,6 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 permute_dims=OHWI_ORDER, name_suffix="ohwi", ) - input_tensor_for_tosa_fake = input_fake_tensor.permute(pre_permute_dims) weight_fake_tensor = get_first_fake_tensor(weight) conv_args = ( x, @@ -471,9 +472,10 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 args=(x, list(pre_permute_dims)), from_node=node, ) - x.meta["val"] = exir_ops.edge.aten.permute_copy.default( - input_fake_tensor, list(pre_permute_dims) + input_tensor_for_tosa_fake = permute_fake_tensor_metadata( + input_fake_tensor, pre_permute_dims ) + x.meta["val"] = input_tensor_for_tosa_fake weight = self._rewrite_weight( graph_module, weight, @@ -481,9 +483,6 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 permute_dims=ODHWI_ORDER, name_suffix="odhwi", ) - input_tensor_for_tosa_fake = input_fake_tensor.permute( - pre_permute_dims - ) weight_fake_tensor = get_first_fake_tensor(weight) elif self._is_depthwise_conv2d(node): target_op = exir_ops.backend.tosa.DEPTHWISE_CONV2D.default @@ -496,9 +495,10 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 args=(x, list(pre_permute_dims)), from_node=node, ) - x.meta["val"] = exir_ops.edge.aten.permute_copy.default( - input_fake_tensor, list(pre_permute_dims) + input_tensor_for_tosa_fake = permute_fake_tensor_metadata( + input_fake_tensor, pre_permute_dims ) + x.meta["val"] = input_tensor_for_tosa_fake kh, kw = weight_shape[2], weight_shape[3] in_channels = input_fake_tensor.shape[1] m_length = weight_shape[0] // in_channels @@ -510,9 +510,6 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 name_suffix="hwicm", reshape_dims=(kh, kw, in_channels, m_length), ) - input_tensor_for_tosa_fake = input_fake_tensor.permute( - pre_permute_dims - ) weight_fake_tensor = get_first_fake_tensor(weight) else: target_op = exir_ops.backend.tosa.CONV2D.default @@ -525,9 +522,10 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 args=(x, list(pre_permute_dims)), from_node=node, ) - x.meta["val"] = exir_ops.edge.aten.permute_copy.default( - input_fake_tensor, list(pre_permute_dims) + input_tensor_for_tosa_fake = permute_fake_tensor_metadata( + input_fake_tensor, pre_permute_dims ) + x.meta["val"] = input_tensor_for_tosa_fake weight = self._rewrite_weight( graph_module, weight, @@ -535,9 +533,6 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 permute_dims=NHWC_ORDER, name_suffix="ohwi", ) - input_tensor_for_tosa_fake = input_fake_tensor.permute( - pre_permute_dims - ) weight_fake_tensor = get_first_fake_tensor(weight) conv_args = ( @@ -612,8 +607,8 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 TosaSpecialDtype.meta_key() ): node_replacement.meta[TosaSpecialDtype.meta_key()] = special_dtype - node_replacement.meta["val"] = exir_ops.edge.aten.permute_copy.default( - node_replacement_fake_tensor, list(post_permute_dims) + node_replacement.meta["val"] = permute_fake_tensor_metadata( + node_replacement_fake_tensor, post_permute_dims ) node.replace_all_uses_with(node_replacement) diff --git a/backends/arm/_passes/rewrite_upsample.py b/backends/arm/_passes/rewrite_upsample.py index 9f81f5cbbe5..68a088286fa 100644 --- a/backends/arm/_passes/rewrite_upsample.py +++ b/backends/arm/_passes/rewrite_upsample.py @@ -13,6 +13,7 @@ create_node, create_shape_node, get_first_fake_tensor, + permute_fake_tensor_metadata, ) from executorch.backends.arm.tosa.mapping import TosaSpecialDtype from executorch.exir.dialects._ops import ops as exir_ops @@ -196,7 +197,7 @@ def call(self, graph_module): args=(x, list(self._NHWC_ORDER)), from_node=node, ) - pre_permute.meta["val"] = exir_ops.edge.aten.permute_copy.default( + pre_permute.meta["val"] = permute_fake_tensor_metadata( get_first_fake_tensor(x), list(self._NHWC_ORDER) ) @@ -255,9 +256,8 @@ def call(self, graph_module): args=(node_replacement, list(self._NHWC_INVERSE_ORDER)), from_node=node, ) - post_permute.meta["val"] = exir_ops.edge.aten.permute_copy.default( - node_replacement_fake, - list(self._NHWC_INVERSE_ORDER), + post_permute.meta["val"] = permute_fake_tensor_metadata( + node_replacement_fake, self._NHWC_INVERSE_ORDER ) node.replace_all_uses_with(post_permute) graph_module.graph.erase_node(node) From acf1ad9de1c07e7dfb971f0506f0ce332b0b2582 Mon Sep 17 00:00:00 2001 From: mcremon-meta <134334895+mcremon-meta@users.noreply.github.com> Date: Mon, 18 May 2026 23:08:04 -0700 Subject: [PATCH 37/91] Handle rank-changing views in RemovePermutesAroundElementwiseOps (#19538) Differential Revision: D104775244 Pull Request resolved: https://github.com/pytorch/executorch/pull/19538 --- ...ve_permutes_around_elementwise_tosa_ops.py | 16 +- backends/cadence/aot/remove_ops.py | 20 +- .../remove_permutes_around_elementwise_ops.py | 422 ++++++++++++++---- backends/transforms/targets.bzl | 2 + .../test/test_permute_optimization_passes.py | 401 +++++++++++++++++ 5 files changed, 764 insertions(+), 97 deletions(-) diff --git a/backends/arm/_passes/remove_permutes_around_elementwise_tosa_ops.py b/backends/arm/_passes/remove_permutes_around_elementwise_tosa_ops.py index e000b3d6fe8..fa6f6f7988c 100644 --- a/backends/arm/_passes/remove_permutes_around_elementwise_tosa_ops.py +++ b/backends/arm/_passes/remove_permutes_around_elementwise_tosa_ops.py @@ -11,13 +11,15 @@ class RemovePermutesAroundElementwiseTosaOps(RemovePermutesAroundElementwiseOps): - permutable_ops = { - *RemovePermutesAroundElementwiseOps.permutable_ops, - *TableOps.unary_table_ops.keys(), - *TableOps.special_table_ops, - exir_ops.backend.tosa.RESCALE.default, - exir_ops.backend.tosa.TABLE.default, - } + def __init__(self) -> None: + super().__init__( + extra_permutable_ops={ + *TableOps.unary_table_ops.keys(), + *TableOps.special_table_ops, + exir_ops.backend.tosa.RESCALE.default, + exir_ops.backend.tosa.TABLE.default, + } + ) def permute_subgraph(self, subgraph): # Original function will always permute constant nodes which is wrong for table ops diff --git a/backends/cadence/aot/remove_ops.py b/backends/cadence/aot/remove_ops.py index e532d088e5c..c221c3a5a18 100644 --- a/backends/cadence/aot/remove_ops.py +++ b/backends/cadence/aot/remove_ops.py @@ -603,16 +603,16 @@ def maybe_remove_or_replace(self, node: Node) -> bool: @register_cadence_pass(CadencePassAttribute(opt_level=2)) class RemovePermutesAroundElementwiseOps(_SharedRemovePermutesAroundElementwiseOps): - permutable_ops: set[EdgeOpOverload] = ( - _SharedRemovePermutesAroundElementwiseOps.permutable_ops - | { - exir_ops.edge.cadence.quantize_per_tensor.default, - exir_ops.edge.cadence.dequantize_per_tensor.default, - exir_ops.edge.cadence.quantized_relu.per_tensor, - exir_ops.edge.cadence.requantize.per_tensor, - exir_ops.edge.cadence.quantized_add.per_tensor, - } - ) + def __init__(self) -> None: + super().__init__( + extra_permutable_ops={ + exir_ops.edge.cadence.quantize_per_tensor.default, + exir_ops.edge.cadence.dequantize_per_tensor.default, + exir_ops.edge.cadence.quantized_relu.per_tensor, + exir_ops.edge.cadence.requantize.per_tensor, + exir_ops.edge.cadence.quantized_add.per_tensor, + } + ) @register_cadence_pass(CadencePassAttribute(opt_level=2)) diff --git a/backends/transforms/remove_permutes_around_elementwise_ops.py b/backends/transforms/remove_permutes_around_elementwise_ops.py index 8a4170e207e..7d14301f232 100644 --- a/backends/transforms/remove_permutes_around_elementwise_ops.py +++ b/backends/transforms/remove_permutes_around_elementwise_ops.py @@ -12,8 +12,8 @@ import torch import torch.fx +from executorch.backends.transforms.permute_pass_utils import get_arg from executorch.exir.dialects._ops import ops as exir_ops -from executorch.exir.dialects.edge._ops import EdgeOpOverload from executorch.exir.pass_base import ExportPass, PassResult @@ -39,23 +39,146 @@ class Subgraph: constant_edges_in: set[tuple[torch.fx.Node, torch.fx.Node]] = field( default_factory=set ) + # Per-node expected end permutation (may differ from end_permute + # when the subgraph contains rank-changing views). + node_end_permute: dict[torch.fx.Node, list[int]] = field(default_factory=dict) + # Per-node expected start permutation for upstream traversal. + node_start_permute: dict[torch.fx.Node, list[int]] = field(default_factory=dict) - # Ops explicitly listed as permutable. This includes non-pointwise ops - # that need special dimension-argument handling (cat, mean, sum, slice) - # and quantize/dequantize ops not tagged as pointwise in ATen. - # In addition to this set, any op tagged with torch.Tag.pointwise is - # automatically considered permutable (see is_node_permutable). - permutable_ops: set[EdgeOpOverload] = { - exir_ops.edge.quantized_decomposed.quantize_per_tensor.default, - exir_ops.edge.quantized_decomposed.dequantize_per_tensor.default, - # Ops that require special handling of dimension arguments. - exir_ops.edge.aten.cat.default, - exir_ops.edge.aten.mean.dim, - exir_ops.edge.aten.sum.dim_IntList, - exir_ops.edge.aten.slice_copy.Tensor, - } - - def call(self, graph_module: torch.fx.GraphModule) -> PassResult: + def __init__(self, extra_permutable_ops: set | None = None) -> None: + super().__init__() + self._permutable_ops = { + exir_ops.edge.aten.add.Tensor, + exir_ops.edge.aten.mul.Tensor, + exir_ops.edge.aten.sub.Tensor, + exir_ops.edge.aten.hardtanh.default, + exir_ops.edge.aten.clamp.default, + exir_ops.edge.aten.cat.default, + exir_ops.edge.aten.mean.dim, + exir_ops.edge.aten.sum.dim_IntList, + exir_ops.edge.aten.slice_copy.Tensor, + } + try: + self._permutable_ops.add( + exir_ops.edge.quantized_decomposed.quantize_per_tensor.default + ) + self._permutable_ops.add( + exir_ops.edge.quantized_decomposed.dequantize_per_tensor.default + ) + except AttributeError: + pass + if extra_permutable_ops: + self._permutable_ops |= extra_permutable_ops + self._sq_unsq_cache: dict[torch.fx.Node, bool] = {} + + _VIEW_OPS = ( + exir_ops.edge.aten.view_copy.default, + exir_ops.edge.aten.view.default, + ) + + _UNSQUEEZE_OPS = (exir_ops.edge.aten.unsqueeze_copy.default,) + + _SQUEEZE_OPS = (exir_ops.edge.aten.squeeze_copy.dim,) + + @staticmethod + def _find_extra_one(longer: list[int], shorter: list[int]) -> int: + """If longer has exactly one more element of value 1, return its index. Else -1.""" + if len(longer) != len(shorter) + 1: + return -1 + for i in range(len(shorter)): + if longer[i] != shorter[i]: + if longer[i] == 1 and shorter[i:] == longer[i + 1 :]: + return i + return -1 + return len(shorter) if longer[-1] == 1 else -1 + + def _is_squeeze_unsqueeze_view(self, node: torch.fx.Node) -> bool: + """Check if a node is a squeeze, unsqueeze, or view_copy that only + adds or removes a single dim of size 1.""" + if node in self._sq_unsq_cache: + return self._sq_unsq_cache[node] + result = self._check_squeeze_unsqueeze_view(node) + self._sq_unsq_cache[node] = result + return result + + def _check_squeeze_unsqueeze_view(self, node: torch.fx.Node) -> bool: + if node.target in self._UNSQUEEZE_OPS or node.target in self._SQUEEZE_OPS: + return True + if node.target not in self._VIEW_OPS: + return False + if node.meta.get("val") is None: + return False + inp = node.args[0] + if not isinstance(inp, torch.fx.Node) or inp.meta.get("val") is None: + return False + in_shape = inp.meta["val"].shape + out_shape = node.meta["val"].shape + if len(out_shape) == len(in_shape) + 1: + return self._find_extra_one(out_shape, in_shape) != -1 + if len(in_shape) == len(out_shape) + 1: + return self._find_extra_one(in_shape, out_shape) != -1 + return False + + def _adapt_permute_across_view( + self, permute: list[int], node: torch.fx.Node + ) -> list[int] | None: + """Adjust a permutation across a squeeze/unsqueeze boundary. + + Adapts from input-rank to output-rank space (downstream direction). + Returns the adjusted permutation, or None if not possible. + """ + # Handle explicit unsqueeze_copy(dim) + if node.target in self._UNSQUEEZE_OPS: + dim = cast(int, node.args[1]) + rank = len(permute) + index = dim if dim >= 0 else dim + rank + 1 + new_perm = [x + 1 if x >= index else x for x in permute] + new_perm.insert(index, index) + return new_perm + + # Handle explicit squeeze_copy(dim) + if node.target in self._SQUEEZE_OPS: + dim = cast(int, node.args[1]) + rank = len(permute) + index = dim if dim >= 0 else dim + rank + # index is a POSITION in the tensor; the permutation VALUE at + # that position is the logical dim being removed. + squeezed_value = permute[index] + new_perm = [ + x - 1 if x > squeezed_value else x + for x in permute + if x != squeezed_value + ] + return new_perm + + # Handle view_copy (squeeze/unsqueeze-like reshape) + inp = node.args[0] + assert isinstance(inp, torch.fx.Node) + in_shape = inp.meta["val"].shape + out_shape = node.meta["val"].shape + + if len(out_shape) == len(in_shape) + 1: + # unsqueeze: insert identity mapping at the new dim + index = self._find_extra_one(out_shape, in_shape) + new_perm = [x + 1 if x >= index else x for x in permute] + new_perm.insert(index, index) + return new_perm + elif len(in_shape) == len(out_shape) + 1: + # squeeze via view_copy: find the squeezed dim and remove it + index = self._find_extra_one(in_shape, out_shape) + # index is a POSITION in in_shape; the permutation VALUE at + # that position is the logical dim being removed. + squeezed_value = permute[index] + new_perm = [ + x - 1 if x > squeezed_value else x + for x in permute + if x != squeezed_value + ] + return new_perm + return None + + def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # noqa: C901 + self._sq_unsq_cache.clear() subgraphs_found: list[RemovePermutesAroundElementwiseOps.Subgraph] = [] processed_nodes: set[torch.fx.Node] = set() for node in graph_module.graph.find_nodes( @@ -67,18 +190,56 @@ def call(self, graph_module: torch.fx.GraphModule) -> PassResult: # Expected end permutation for the subgraph. end_permute = [start_permute.index(i) for i in range(len(start_permute))] + # Try direct users first (same-rank matching) for user in node.users: - if user.target not in self.permutable_ops and not self._is_pointwise( - user.target - ): + if not self.is_node_permutable(user): continue - # Create a separate subgraph for each user since there may be cases - # where only a portion of the users are permutable. subgraph = self.Subgraph(start_permute, end_permute) if self.visit(user, subgraph, processed_nodes): subgraphs_found.append(subgraph) - for node in subgraph.nodes: - processed_nodes.add(node) + for n in subgraph.nodes: + processed_nodes.add(n) + + # Also try: permute → view(squeeze/unsqueeze) → chain → ... + # If the permute's sole user is a squeeze/unsqueeze view, + # adapt the permutation across the view and search for a + # matching end permute at the new rank. + users = list(node.users.keys()) + if ( + len(users) == 1 + and self._is_squeeze_unsqueeze_view(users[0]) + and node not in processed_nodes + ): + view_node = users[0] + adapted_start = self._adapt_permute_across_view( + start_permute, view_node + ) + if adapted_start is not None: + adapted_end = [ + adapted_start.index(i) for i in range(len(adapted_start)) + ] + for view_user in view_node.users: + if not self.is_node_permutable(view_user): + continue + subgraph = self.Subgraph(adapted_start, adapted_end) + # Include the view in the subgraph + subgraph.nodes.add(view_node) + subgraph.node_end_permute[view_node] = adapted_end + # Use the ORIGINAL start_permute for the view node + # so update_view_copy can remap its shape correctly + subgraph.node_start_permute[view_node] = start_permute + # The start permute feeds into the view + subgraph.edges_in.add((node, view_node)) + if self.visit( + view_user, + subgraph, + processed_nodes, + adapted_end, + adapted_start, + ): + subgraphs_found.append(subgraph) + for n in subgraph.nodes: + processed_nodes.add(n) modified = False for subgraph in subgraphs_found: @@ -97,40 +258,86 @@ def visit( # noqa: C901 node: torch.fx.Node, subgraph: Subgraph, processed_nodes: set[torch.fx.Node], + current_end_permute: list[int] | None = None, + current_start_permute: list[int] | None = None, ) -> bool: + if current_end_permute is None: + current_end_permute = subgraph.end_permute + if current_start_permute is None: + current_start_permute = subgraph.start_permute + if node in subgraph.nodes: return True if node in processed_nodes or not self.is_node_permutable(node): return False subgraph.nodes.add(node) + subgraph.node_end_permute[node] = current_end_permute + subgraph.node_start_permute[node] = current_start_permute + + # If this is a squeeze/unsqueeze view, adapt permutations for + # traversal across the rank change boundary. + downstream_end = current_end_permute + downstream_start = current_start_permute + if self._is_squeeze_unsqueeze_view(node): + # Adapt start permute for downstream (input-rank → output-rank) + adapted_start = self._adapt_permute_across_view(current_start_permute, node) + if adapted_start is None: + return False + downstream_start = adapted_start + + # Derive end permute as the inverse of adapted start to ensure + # consistency. Computing start and end independently via + # _adapt_permute_across_view can produce mismatched results for + # squeeze views because the formula differs for "forward" vs + # "inverse" permutations. + downstream_end = [adapted_start.index(i) for i in range(len(adapted_start))] # Traverse downstream: for user in node.users: - # Output should either go to a matching permute or another permutable op. if user.target == exir_ops.edge.aten.permute_copy.default: - if self.get_permutation(user) != subgraph.end_permute: + user_perm = self.get_permutation(user) + if user_perm == downstream_end: + subgraph.edges_out.add((node, user)) + else: + # Check if permute → view(squeeze/unsqueeze) forms an + # end boundary at a different rank. + user_users = list(user.users.keys()) + if len(user_users) == 1 and self._is_squeeze_unsqueeze_view( + user_users[0] + ): + view_after = user_users[0] + # Adapt the start permute across the view and derive + # the expected end permute as its inverse. + adapted_start_after = self._adapt_permute_across_view( + downstream_start, view_after + ) + if adapted_start_after is not None: + adapted = [ + adapted_start_after.index(i) + for i in range(len(adapted_start_after)) + ] + if user_perm == adapted: + # Include both the permute and the view as end edges + subgraph.edges_out.add((node, user)) + # Mark the view for inclusion so it gets preserved + continue return False - subgraph.edges_out.add((node, user)) elif user.op == "output": - # Graph output requires the data in its original layout. - # Removing permutes here would silently change the output - # format, so treat this as an invalid subgraph boundary. return False - elif not self.visit(user, subgraph, processed_nodes): + elif not self.visit( + user, subgraph, processed_nodes, downstream_end, downstream_start + ): return False # Traverse upstream: for inp in node.all_input_nodes: - # Input should either come from a matching permute or another permutable op. if inp.target == exir_ops.edge.aten.permute_copy.default: - if self.get_permutation(inp) != subgraph.start_permute: + if self.get_permutation(inp) != current_start_permute: return False subgraph.edges_in.add((inp, node)) elif self._is_constant(inp): - # Only accept the constant if we can insert a compensating - # permute or view. Otherwise reject the subgraph. const_rank = self._get_node_rank(inp) - permute_rank = len(subgraph.end_permute) + permute_rank = len(current_end_permute) if const_rank is None: return False if const_rank > permute_rank: @@ -138,7 +345,13 @@ def visit( # noqa: C901 if const_rank < permute_rank and inp.meta.get("val") is None: return False subgraph.constant_edges_in.add((inp, node)) - elif not self.visit(inp, subgraph, processed_nodes): + elif not self.visit( + inp, + subgraph, + processed_nodes, + current_end_permute, + current_start_permute, + ): return False return True @@ -146,13 +359,19 @@ def visit( # noqa: C901 def _is_constant(self, node: torch.fx.Node) -> bool: """Check if a node's value is available at compile time. Only considers direct constants (get_attr, parameter/buffer/constant - placeholders) — does not recurse into call_function chains to avoid - stack overflow on deep graphs.""" + placeholders, full ops producing scalar constants) — does not recurse + into call_function chains to avoid stack overflow on deep graphs.""" if node.op == "get_attr": return True if node.op == "placeholder": target = str(node.target) return target.startswith(("b_", "p_", "c_")) + # full.default creates scalar constants (e.g. epsilon in LayerNorm) + if ( + node.op == "call_function" + and node.target == exir_ops.edge.aten.full.default + ): + return True return False def _get_node_rank(self, node: torch.fx.Node) -> int | None: @@ -171,27 +390,53 @@ def _is_pointwise(target) -> bool: return False def is_node_permutable(self, node: torch.fx.Node) -> bool: - if node.target in self.permutable_ops: - # Special-case validation for dim-based ops. + if node.target in self._permutable_ops: if node.target in ( exir_ops.edge.aten.mean.dim, exir_ops.edge.aten.sum.dim_IntList, ): - # keepdim should be True. - if len(node.args) >= 3: - if not node.args[2]: - return False - elif "keepdim" in node.kwargs: - if not node.kwargs["keepdim"]: - return False - else: - # Default keepdim is False. + if not get_arg(node, "keepdim", bool): return False return True - # Accept any op tagged as pointwise in ATen (elementwise). + if self._is_squeeze_unsqueeze_view(node): + return True return self._is_pointwise(node.target) - def permute_subgraph(self, subgraph: Subgraph) -> None: + def permute_subgraph(self, subgraph: Subgraph) -> None: # noqa: C901 + # Handle dimension related node arguments FIRST, before + # bypassing permutes (which changes node inputs/metadata). + for node in subgraph.nodes: + node_start_perm = subgraph.node_start_permute.get( + node, subgraph.start_permute + ) + if node.target == exir_ops.edge.aten.cat.default: + self.update_cat(node, node_start_perm) + elif node.target in ( + exir_ops.edge.aten.mean.dim, + exir_ops.edge.aten.sum.dim_IntList, + ): + self.update_mean_dim(node, node_start_perm) + elif node.target == exir_ops.edge.aten.slice_copy.Tensor: + self.update_slice_copy(node, node_start_perm) + elif node.target in self._VIEW_OPS: + self.update_view_copy(node, node_start_perm) + elif node.target in self._UNSQUEEZE_OPS: + # unsqueeze dim is in output space (rank + 1) + dim = cast(int, node.args[1]) + rank = len(node_start_perm) + index = dim if dim >= 0 else dim + rank + 1 + if index < rank: + node.update_arg(1, node_start_perm[index]) + else: + # Inserting at or beyond existing dims — position unchanged + node.update_arg(1, index) + elif node.target in self._SQUEEZE_OPS: + # squeeze dim is in input space (rank) + dim = cast(int, node.args[1]) + rank = len(node_start_perm) + index = dim if dim >= 0 else dim + rank + node.update_arg(1, node_start_perm[index]) + # Skip incoming permutes. for inp, out in subgraph.edges_in: assert inp.target == exir_ops.edge.aten.permute_copy.default @@ -201,38 +446,30 @@ def permute_subgraph(self, subgraph: Subgraph) -> None: out.replace_input_with(inp, cast(torch.fx.Node, inp.kwargs["input"])) # Insert compensating permute on constant inputs. - # Since the subgraph's start permutes are being removed, the subgraph - # will operate in the un-permuted (original) layout. Constants that - # were in the permuted layout need end_permute (the inverse of - # start_permute) to convert back to the original layout. for const_node, user_node in subgraph.constant_edges_in: graph = const_node.graph const_rank = self._get_node_rank(const_node) - permute_rank = len(subgraph.end_permute) + # Use the node-specific end_permute for the correct rank + node_end_perm = subgraph.node_end_permute.get( + user_node, subgraph.end_permute + ) + permute_rank = len(node_end_perm) with graph.inserting_after(const_node): if const_rank is not None and const_rank == permute_rank: new_node = graph.create_node( "call_function", exir_ops.edge.aten.permute_copy.default, - args=(const_node, subgraph.end_permute), + args=(const_node, node_end_perm), ) elif ( const_rank is not None and const_rank < permute_rank and const_node.meta.get("val") is not None ): - # Rank mismatch (e.g. rank-1 bias with rank-4 permute). - # The constant is broadcastable and its shape is smaller - # than the permute rank, so we can't apply the permute - # directly. Instead, use view_copy to rearrange the - # shape according to the end_permute restricted to - # the trailing dimensions. original_shape = list(const_node.meta["val"].shape) - # Pad shape to match permute rank for reordering padded = [1] * (permute_rank - const_rank) + original_shape - target_shape = [padded[d] for d in subgraph.end_permute] - # Strip leading 1s back to original rank + target_shape = [padded[d] for d in node_end_perm] target_shape = target_shape[permute_rank - const_rank :] new_node = graph.create_node( "call_function", @@ -240,7 +477,6 @@ def permute_subgraph(self, subgraph: Subgraph) -> None: args=(const_node, target_shape), ) else: - # Cannot determine rank or handle this case; skip. continue user_node.replace_input_with(const_node, new_node) @@ -249,18 +485,6 @@ def permute_subgraph(self, subgraph: Subgraph) -> None: assert out.target == exir_ops.edge.aten.permute_copy.default out.replace_all_uses_with(inp) - # Handle dimension related node arguments. - for node in subgraph.nodes: - if node.target == exir_ops.edge.aten.cat.default: - self.update_cat(node, subgraph.start_permute) - elif node.target in ( - exir_ops.edge.aten.mean.dim, - exir_ops.edge.aten.sum.dim_IntList, - ): - self.update_mean_dim(node, subgraph.start_permute) - elif node.target == exir_ops.edge.aten.slice_copy.Tensor: - self.update_slice_copy(node, subgraph.start_permute) - def update_cat(self, node: torch.fx.Node, start_permute: list[int]) -> None: if len(node.args) >= 2: node.update_arg(1, start_permute[cast(int, node.args[1])]) @@ -287,6 +511,44 @@ def update_slice_copy(self, node: torch.fx.Node, start_permute: list[int]) -> No else: node.update_kwarg("dim", start_permute[cast(int, node.kwargs["dim"])]) + def update_view_copy(self, node: torch.fx.Node, start_permute: list[int]) -> None: + """Adjust view_copy shape arg after permute removal. + + After removing the start permute, the view's input is in the original + (un-permuted) layout. Recompute the view's target shape accordingly. + """ + if node.meta.get("val") is None: + return + inp = node.args[0] + if not isinstance(inp, torch.fx.Node) or inp.meta.get("val") is None: + return + + in_shape = inp.meta["val"].shape + out_shape = node.meta["val"].shape + + # Compute un-permuted input shape + inverse_permute = [start_permute.index(i) for i in range(len(start_permute))] + unpermuted_in = [in_shape[inverse_permute[i]] for i in range(len(in_shape))] + + if len(out_shape) == len(in_shape) + 1: + # unsqueeze: find the inserted dim in the permuted output, + # then determine where it goes in the un-permuted layout + index = self._find_extra_one(out_shape, in_shape) + if index != -1: + new_shape = list(unpermuted_in) + new_shape.insert(index, 1) + node.update_arg(1, new_shape) + elif len(in_shape) == len(out_shape) + 1: + # squeeze: find the removed dim in the permuted input, + # map it to the un-permuted position, and remove it + index = self._find_extra_one(in_shape, out_shape) + if index != -1: + # Map the squeezed dim from permuted to un-permuted space + unpermuted_index = start_permute[index] + new_shape = list(unpermuted_in) + del new_shape[unpermuted_index] + node.update_arg(1, new_shape) + def get_permutation(self, permute_node: torch.fx.Node) -> list[int] | None: assert permute_node.target == exir_ops.edge.aten.permute_copy.default raw_permute: list[int] diff --git a/backends/transforms/targets.bzl b/backends/transforms/targets.bzl index 5c3343469ce..8c3603e293d 100644 --- a/backends/transforms/targets.bzl +++ b/backends/transforms/targets.bzl @@ -330,6 +330,7 @@ def define_common_targets(): "//executorch/backends/...", ], deps = [ + ":permute_pass_utils", "//caffe2:torch", "//executorch/exir:pass_base", "//executorch/exir/dialects:lib", @@ -376,6 +377,7 @@ def define_common_targets(): ":fuse_cascaded_transpose_or_permute_ops", ":fuse_cascaded_view_ops", ":postpone_permute_below_squeeze_view", + ":remove_permutes_around_elementwise_ops", ":replace_nop_transpose_or_permute_with_view", ], ) diff --git a/backends/transforms/test/test_permute_optimization_passes.py b/backends/transforms/test/test_permute_optimization_passes.py index bb326f125bc..7b56344ad2e 100644 --- a/backends/transforms/test/test_permute_optimization_passes.py +++ b/backends/transforms/test/test_permute_optimization_passes.py @@ -19,6 +19,9 @@ from executorch.backends.transforms.postpone_permute_below_squeeze_view import ( PostponePermuteOpBelowSqueezeOrUnsqueezeLikeView, ) +from executorch.backends.transforms.remove_permutes_around_elementwise_ops import ( + RemovePermutesAroundElementwiseOps, +) from executorch.backends.transforms.replace_nop_transpose_or_permute_with_view import ( ReplaceNopTransposeOrPermuteWithViewPass, ) @@ -380,6 +383,404 @@ def test_replace_nop_transpose_with_view_float(self) -> None: gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" ) + +# ────────────────────────────────────────────────────────────────────── +# Tests for RemovePermutesAroundElementwiseOps cross-view handling +# ────────────────────────────────────────────────────────────────────── + + +class RemovePermutesAcrossViewTest(unittest.TestCase): + def test_permute_view_squeeze_elementwise_view_unsqueeze_permute(self) -> None: + """permute(3D) → view(unsqueeze) → mul(4D) → view(squeeze) → permute(3D) + should have both permutes removed.""" + builder = GraphBuilder() + x_data = torch.randn(1, 128, 16) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + v1 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 16, 1, 128]) + ) + mul = builder.call_operator(op=exir_ops.edge.aten.mul.Tensor, args=(v1, v1)) + v2 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(mul, [1, 16, 128]) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v2, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 0 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "RemovePermutesAcrossView", + ) + + def test_4d_permute_squeeze_clamp_3d_permute(self) -> None: + """Cascade detector conv→LN boundary: permute_4D([0,3,1,2]) → + view(squeeze) → hardtanh → permute_3D([0,2,1]). + The two permutes should cancel across the squeeze+clamp.""" + builder = GraphBuilder() + x_data = torch.randn(1, 1, 16, 128) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 3, 1, 2]) + ) + v1 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 128, 16]) + ) + clamp = builder.call_operator( + op=exir_ops.edge.aten.hardtanh.default, args=(v1,) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(clamp, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 0 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "4D_permute_squeeze_clamp_3D_permute", + ) + + def test_permute_unsqueeze_cat_mul_squeeze_permute(self) -> None: + """Complex interaction: permute(3D) → view(unsqueeze to 4D) → + cat(two branches) → mul → view(squeeze to 3D) → permute(3D). + Tests cat + mul interacting with view/squeeze/unsqueeze boundaries.""" + builder = GraphBuilder() + x_data = torch.randn(1, 128, 16) + y_data = torch.randn(1, 128, 16) + x = builder.placeholder("x", x_data) + y = builder.placeholder("y", y_data) + # Permute both inputs + px = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + py = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(y, [0, 2, 1]) + ) + # Unsqueeze via view to 4D + vx = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(px, [1, 16, 1, 128]) + ) + vy = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(py, [1, 16, 1, 128]) + ) + # Cat along dim 2 (the unsqueezed dim) + cat = builder.call_operator( + op=exir_ops.edge.aten.cat.default, args=([vx, vy], 2) + ) + # Mul with itself + mul = builder.call_operator(op=exir_ops.edge.aten.mul.Tensor, args=(cat, cat)) + # Squeeze back via view + v_sq = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(mul, [1, 16, 256]) + ) + # End permute + p_end = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v_sq, [0, 2, 1]) + ) + builder.output([p_end]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + # The cat changes output shape so squeeze view won't match the + # original unsqueeze pattern; the pass should not fire here. + self.assertFalse(result.modified) + validate_numerics( + gm_before, + result.graph_module, + [x_data, y_data], + "permute_unsqueeze_cat_mul_squeeze_permute", + ) + + def test_permute_view_add_sub_mul_view_permute(self) -> None: + """Chain of multiple elementwise ops between view boundaries: + permute(3D) → view(unsqueeze) → add → sub → mul → view(squeeze) → permute(3D). + All three elementwise ops should be handled.""" + builder = GraphBuilder() + x_data = torch.randn(1, 128, 16) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + # Unsqueeze via view + v1 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 16, 1, 128]) + ) + # Chain of elementwise ops + add = builder.call_operator(op=exir_ops.edge.aten.add.Tensor, args=(v1, v1)) + sub = builder.call_operator(op=exir_ops.edge.aten.sub.Tensor, args=(add, v1)) + mul = builder.call_operator(op=exir_ops.edge.aten.mul.Tensor, args=(sub, sub)) + # Squeeze via view + v2 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(mul, [1, 16, 128]) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v2, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 0 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "permute_view_add_sub_mul_view_permute", + ) + + def test_permute_squeeze_clamp_add_permute(self) -> None: + """4D permute → squeeze(view) → hardtanh → add(with self) → 3D permute. + Tests clamp + add interacting across a squeeze boundary.""" + builder = GraphBuilder() + x_data = torch.randn(1, 1, 16, 128) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 3, 1, 2]) + ) + # Squeeze dim 2 (size 1) via view + v1 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 128, 16]) + ) + clamp = builder.call_operator( + op=exir_ops.edge.aten.hardtanh.default, args=(v1,) + ) + add = builder.call_operator( + op=exir_ops.edge.aten.add.Tensor, args=(clamp, clamp) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(add, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 0 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "permute_squeeze_clamp_add_permute", + ) + + def test_no_fire_non_squeeze_view(self) -> None: + """permute → view (not a squeeze/unsqueeze, changes shape) → mul → permute. + The pass should NOT remove permutes when the view is not a simple + squeeze/unsqueeze.""" + builder = GraphBuilder() + x_data = torch.randn(1, 6, 8) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + # This view reshapes 8x6 → 4x12, which is NOT a squeeze/unsqueeze + v1 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 4, 12]) + ) + mul = builder.call_operator(op=exir_ops.edge.aten.mul.Tensor, args=(v1, v1)) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(mul, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + # Should NOT have removed permutes (view is not squeeze/unsqueeze-like) + self.assertFalse(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 2 + ) + + def test_permute_unsqueeze_copy_mul_squeeze_copy_permute(self) -> None: + """permute(3D) → unsqueeze_copy(dim=2) → mul(4D) → squeeze_copy(dim=2) → permute(3D). + Tests the explicit unsqueeze_copy/squeeze_copy code paths in + _adapt_permute_across_view (distinct from view_copy).""" + builder = GraphBuilder() + x_data = torch.randn(1, 128, 16) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + unsq = builder.call_operator( + op=exir_ops.edge.aten.unsqueeze_copy.default, args=(p1, 2) + ) + mul = builder.call_operator(op=exir_ops.edge.aten.mul.Tensor, args=(unsq, unsq)) + sq = builder.call_operator( + op=exir_ops.edge.aten.squeeze_copy.dim, args=(mul, 2) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(sq, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 0 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "permute_unsqueeze_copy_mul_squeeze_copy_permute", + ) + + def test_4d_permute_squeeze_copy_clamp_3d_permute(self) -> None: + """4D permute([0,3,1,2]) → squeeze_copy(dim=2) → hardtanh → 3D permute([0,2,1]). + Tests the squeeze_copy code path at the start boundary (entering the + subgraph via squeeze_copy rather than view_copy).""" + builder = GraphBuilder() + x_data = torch.randn(1, 1, 16, 128) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 3, 1, 2]) + ) + sq = builder.call_operator(op=exir_ops.edge.aten.squeeze_copy.dim, args=(p1, 2)) + clamp = builder.call_operator( + op=exir_ops.edge.aten.hardtanh.default, args=(sq,) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(clamp, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 0 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "4D_permute_squeeze_copy_clamp_3D_permute", + ) + + def test_4d_permute_squeeze_view_slice_mul_3d_permute(self) -> None: + """4D permute([2,0,1,3]) → view(squeeze dim 0) → slice → mul → permute([1,0,2]). + Regression test for the Transformer pattern where the squeezed dim + position (0) differs from its permutation value (perm[0]=2). + Without the fix, _adapt_permute_across_view confuses the position + with the value, causing the pass to create an invalid subgraph that + leads to a shape mismatch at runtime.""" + builder = GraphBuilder() + # Distinct dim sizes to expose mismatched slicing + x_data = torch.randn(10, 32, 1, 64) + x = builder.placeholder("x", x_data) + # Permute puts the size-1 dim (input dim 2) at position 0 + # [10, 32, 1, 64] -> [1, 10, 32, 64] + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [2, 0, 1, 3]) + ) + # Squeeze dim 0 (size 1) via view_copy: [10, 32, 64] + v1 = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [10, 32, 64]) + ) + # Slice dim 0, taking 3 elements from size 10 + sl = builder.call_operator( + op=exir_ops.edge.aten.slice_copy.Tensor, args=(v1, 0, 0, 3) + ) + # Elementwise op + mul = builder.call_operator(op=exir_ops.edge.aten.mul.Tensor, args=(sl, sl)) + # End permute [1, 0, 2]: swap dims 0 and 1 + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(mul, [1, 0, 2]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + # With the fix, the adapted permutation becomes identity [0,1,2], + # so no matching end permute is found and the graph is unchanged. + # Before the fix, the wrong adapted permutation [1,0,2] would match + # the end permute and create an invalid subgraph, causing a crash. + result = cast(PassResult, p(original)) + self.assertFalse(result.modified) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "4D_permute_squeeze_view_slice_mul_3D_permute", + ) + + def test_permute_unsqueeze_copy_neg_dim_mul_squeeze_copy_permute(self) -> None: + """permute(3D) → unsqueeze_copy(dim=-1) → mul(4D) → squeeze_copy(dim=3) → permute(3D). + Tests unsqueeze with negative dim (output-space rank+1 normalization) + and dim=rank edge case that would IndexError with incorrect handling.""" + builder = GraphBuilder() + x_data = torch.randn(1, 128, 16) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + unsq = builder.call_operator( + op=exir_ops.edge.aten.unsqueeze_copy.default, args=(p1, -1) + ) + mul = builder.call_operator(op=exir_ops.edge.aten.mul.Tensor, args=(unsq, unsq)) + sq = builder.call_operator( + op=exir_ops.edge.aten.squeeze_copy.dim, args=(mul, 3) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(sq, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = RemovePermutesAroundElementwiseOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 0 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "permute_unsqueeze_copy_neg_dim_mul_squeeze_copy_permute", + ) + def test_replace_nop_transpose_with_view_int(self) -> None: x = torch.randint(low=0, high=100, size=(2, 1, 5), dtype=torch.int64) gm = single_op_builder( From 7324ed490429d79a6b373e749ea82ad5c6902e33 Mon Sep 17 00:00:00 2001 From: Sebastian Larsson <38941629+Sebastian-Larsson@users.noreply.github.com> Date: Tue, 19 May 2026 08:19:53 +0200 Subject: [PATCH 38/91] Arm backend: Preserve inputs for pow zero decomposition (#19637) Keep pow(x, 0) dependent on the original input when decomposing it to ones, so the TOSA graph still expects the user input. Signed-off-by: Sebastian Larsson --- backends/arm/_passes/decompose_int_pow_pass.py | 10 +++++++--- backends/arm/test/ops/test_pow.py | 1 - .../arm/test/passes/test_decompose_int_pow_pass.py | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/backends/arm/_passes/decompose_int_pow_pass.py b/backends/arm/_passes/decompose_int_pow_pass.py index 2df8d3b2522..bb29d34d6bf 100644 --- a/backends/arm/_passes/decompose_int_pow_pass.py +++ b/backends/arm/_passes/decompose_int_pow_pass.py @@ -32,12 +32,16 @@ def call_operator(self, op, args, kwargs, meta): x = args[0] exp = args[1] - # Handle zero first and return early if exp == 0: - # return a tensor of ones with the same shape as x - return super().call_operator( + zeros = super().call_operator( + exir_ops.edge.aten.sub.Tensor, (x, x), {}, meta, True + ) + ones = super().call_operator( exir_ops.edge.aten.full_like.default, (x, 1), {}, meta, True ) + return super().call_operator( + exir_ops.edge.aten.add.Tensor, (zeros, ones), {}, meta, True + ) if not isinstance(exp, int): return super().call_operator(op, args, kwargs, meta) diff --git a/backends/arm/test/ops/test_pow.py b/backends/arm/test/ops/test_pow.py index 2d007fa7e68..6d304ce0627 100644 --- a/backends/arm/test/ops/test_pow.py +++ b/backends/arm/test/ops/test_pow.py @@ -147,7 +147,6 @@ def test_pow_tensor_tensor_vgf_no_quant(test_data: Pow_TensorTensor.input_t): x_fail_FP = { "exp_two": "TOSA constraints: If x <0 .", - "exp_zero": "MLETORCH-2041 : Invalid inputs.", } diff --git a/backends/arm/test/passes/test_decompose_int_pow_pass.py b/backends/arm/test/passes/test_decompose_int_pow_pass.py index 6846392f248..7761c031e2c 100644 --- a/backends/arm/test/passes/test_decompose_int_pow_pass.py +++ b/backends/arm/test/passes/test_decompose_int_pow_pass.py @@ -59,18 +59,18 @@ def get_inputs(self) -> input_t: def test_decompose_int_pow_tosa_FP(data: TestParam) -> None: module_with_inputs, nbr_muls = data module = cast(torch.nn.Module, module_with_inputs) + pow_op = "executorch_exir_dialects_edge__ops_aten_pow_Tensor_Scalar" pipeline = PassPipeline[input_t]( module, module_with_inputs.get_inputs(), quantize=False, ops_before_pass={ - "executorch_exir_dialects_edge__ops_aten_pow_Tensor_Scalar": 1, + pow_op: 1, }, ops_not_before_pass=[], ops_after_pass={ "executorch_exir_dialects_edge__ops_aten_mul_Tensor": nbr_muls, }, - ops_not_after_pass=["executorch_exir_dialects_edge__ops_pow_Tensor_Scalar"], pass_list=[DecomposeIntPowPass], ) pipeline.run() From e0d310d730017b0b30ec52ef8e7515a9ccc03b7c Mon Sep 17 00:00:00 2001 From: Sebastian Larsson <38941629+Sebastian-Larsson@users.noreply.github.com> Date: Tue, 19 May 2026 08:20:37 +0200 Subject: [PATCH 39/91] Arm backend: Enable MYPY in examples/arm (#19633) Signed-off-by: Sebastian Larsson --- .lintrunner.toml | 1 + .../model_export/export_deit.py | 9 ++++++--- .../model_export/train_deit.py | 4 ++-- .../model_export/export_deit.py | 9 ++++++--- .../model_export/train_deit.py | 4 ++-- examples/arm/visualize.py | 11 +++++++---- 6 files changed, 24 insertions(+), 14 deletions(-) diff --git a/.lintrunner.toml b/.lintrunner.toml index 2955e54c70c..43a53342abd 100644 --- a/.lintrunner.toml +++ b/.lintrunner.toml @@ -361,6 +361,7 @@ include_patterns = [ 'devtools/visualization/**/*.py', 'docs/**/*.py', # 'examples/**/*.py', + 'examples/arm/**/*.py', 'examples/openvino/**/*.py', # 'exir/**/*.py', # 'extension/**/*.py', diff --git a/examples/arm/image_classification_example_ethos_u/model_export/export_deit.py b/examples/arm/image_classification_example_ethos_u/model_export/export_deit.py index 0291df7d044..ce015a4d457 100644 --- a/examples/arm/image_classification_example_ethos_u/model_export/export_deit.py +++ b/examples/arm/image_classification_example_ethos_u/model_export/export_deit.py @@ -6,8 +6,8 @@ import argparse import torch -import tqdm -from datasets import DatasetDict, load_dataset +import tqdm # type: ignore[import] +from datasets import DatasetDict, load_dataset # type: ignore[import] from executorch.backends.arm.ethosu import EthosUCompileSpec, EthosUPartitioner from executorch.backends.arm.quantizer import ( @@ -21,7 +21,10 @@ ) from executorch.extension.export_util.utils import save_pte_program -from torchao.quantization.pt2e.quantize_pt2e import convert_pt2e, prepare_pt2e +from torchao.quantization.pt2e.quantize_pt2e import ( # type: ignore[import] + convert_pt2e, + prepare_pt2e, +) from transformers import AutoImageProcessor from transformers.models.vit.modeling_vit import ViTForImageClassification diff --git a/examples/arm/image_classification_example_ethos_u/model_export/train_deit.py b/examples/arm/image_classification_example_ethos_u/model_export/train_deit.py index bc9c322fd51..afc93c76663 100644 --- a/examples/arm/image_classification_example_ethos_u/model_export/train_deit.py +++ b/examples/arm/image_classification_example_ethos_u/model_export/train_deit.py @@ -9,8 +9,8 @@ import numpy as np import torch -from datasets import DatasetDict, load_dataset -from evaluate import load as load_metric +from datasets import DatasetDict, load_dataset # type: ignore[import] +from evaluate import load as load_metric # type: ignore[import] from transformers import AutoImageProcessor, set_seed, Trainer, TrainingArguments from transformers.models.vit.modeling_vit import ViTForImageClassification diff --git a/examples/arm/image_classification_example_vgf/model_export/export_deit.py b/examples/arm/image_classification_example_vgf/model_export/export_deit.py index 859baab9f13..a46d157bfa5 100644 --- a/examples/arm/image_classification_example_vgf/model_export/export_deit.py +++ b/examples/arm/image_classification_example_vgf/model_export/export_deit.py @@ -6,8 +6,8 @@ import argparse import torch -import tqdm -from datasets import DatasetDict, load_dataset +import tqdm # type: ignore[import] +from datasets import DatasetDict, load_dataset # type: ignore[import] from executorch.backends.arm.quantizer import ( get_symmetric_quantization_config, @@ -21,7 +21,10 @@ ) from executorch.extension.export_util.utils import save_pte_program -from torchao.quantization.pt2e.quantize_pt2e import convert_pt2e, prepare_pt2e +from torchao.quantization.pt2e.quantize_pt2e import ( # type: ignore[import] + convert_pt2e, + prepare_pt2e, +) from transformers import AutoImageProcessor from transformers.models.vit.modeling_vit import ViTForImageClassification diff --git a/examples/arm/image_classification_example_vgf/model_export/train_deit.py b/examples/arm/image_classification_example_vgf/model_export/train_deit.py index bc9c322fd51..afc93c76663 100644 --- a/examples/arm/image_classification_example_vgf/model_export/train_deit.py +++ b/examples/arm/image_classification_example_vgf/model_export/train_deit.py @@ -9,8 +9,8 @@ import numpy as np import torch -from datasets import DatasetDict, load_dataset -from evaluate import load as load_metric +from datasets import DatasetDict, load_dataset # type: ignore[import] +from evaluate import load as load_metric # type: ignore[import] from transformers import AutoImageProcessor, set_seed, Trainer, TrainingArguments from transformers.models.vit.modeling_vit import ViTForImageClassification diff --git a/examples/arm/visualize.py b/examples/arm/visualize.py index fc410f60de1..f7a3b28d9e6 100644 --- a/examples/arm/visualize.py +++ b/examples/arm/visualize.py @@ -1,4 +1,4 @@ -# Copyright 2025 Arm Limited and/or its affiliates. +# Copyright 2025-2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -17,8 +17,11 @@ from executorch.devtools.visualization.visualization_utils import ( visualize_model_explorer, ) -from model_explorer import config as model_explorer_config, node_data_builder as ndb -from model_explorer.config import ModelSource +from model_explorer import ( # type: ignore[import] + config as model_explorer_config, + node_data_builder as ndb, +) +from model_explorer.config import ModelSource # type: ignore[import] COMPILER_OP_ID = "scheduled_id" @@ -254,7 +257,7 @@ def validate_perf_mode_args(trace: str, tables: str) -> None: def set_pte_model_explorer_config(model_file, tosa_files, config): - from pte_adapter_model_explorer.main import PTEAdapter + from pte_adapter_model_explorer.main import PTEAdapter # type: ignore[import] pte_adapter = PTEAdapter() From cc3afbeca7d32572be76726697a74b3c61155cff Mon Sep 17 00:00:00 2001 From: Martin Pavella Date: Tue, 19 May 2026 08:53:59 +0200 Subject: [PATCH 40/91] NXP backend: Enable `constant_pad_nd` with new Neutron flow. (#19543) ### Summary Enable `constant_pad_nd` with new Neutron flow in NXP backend. Reflect the new Neutron requirements and verify correct function. ### Test plan Unit tests provided. cc @robert-kalmar @JakeStevens @digantdesai @rascani --- .../constant_pad_nd_converter.py | 46 ++++-- .../test_constant_pad_nd_converter.py | 147 ++++++++++++++++-- backends/nxp/tests/model_output_comparator.py | 8 +- backends/nxp/tests/ops_aliases.py | 1 + 4 files changed, 174 insertions(+), 28 deletions(-) diff --git a/backends/nxp/backend/ir/converter/node_converters/ops_converters/constant_pad_nd_converter.py b/backends/nxp/backend/ir/converter/node_converters/ops_converters/constant_pad_nd_converter.py index efab4fb95c7..ca59eae811c 100644 --- a/backends/nxp/backend/ir/converter/node_converters/ops_converters/constant_pad_nd_converter.py +++ b/backends/nxp/backend/ir/converter/node_converters/ops_converters/constant_pad_nd_converter.py @@ -7,6 +7,7 @@ from typing import Collection import numpy as np +import torch from executorch.backends.nxp.backend.data_format import NXP_NODE_FORMAT @@ -41,19 +42,33 @@ def _is_supported_on_target( parameters_mapping: dict[str, Parameter], custom_delegation_options: CustomDelegationOptions, ) -> bool: - paddings = node.args[1] - if node.meta[NXP_NODE_FORMAT].is_channels_first(): - # Dim `1` will end up being the channels. It is padded by paddings[4:6]. - if len(paddings) > 4 and paddings[4:6] != [0, 0]: - # Attempt to Pad channels dimension -> currently not supported - return False - else: - # Dim `-1` will end up being the channels. It is padded by paddings[:2]. - if len(paddings) > 0 and paddings[:2] != [0, 0]: - # Attempt to Pad channels dimension -> currently not supported + if custom_delegation_options.use_new_flow_neutron_c: + # Requirements specified by the new Neutron flow documentation. + + if not NodeConverter.uses_quantization_type_for_io( + node, + supported_types=[torch.int8, torch.uint8], + input_indices=[0], + output_indices=[0], + ): return False - return True + return True + + else: + paddings = node.args[1] + if node.meta[NXP_NODE_FORMAT].is_channels_first(): + # Dim `1` will end up being the channels. It is padded by paddings[4:6]. + if len(paddings) > 4 and paddings[4:6] != [0, 0]: + # Attempt to Pad channels dimension -> currently not supported + return False + else: + # Dim `-1` will end up being the channels. It is padded by paddings[:2]. + if len(paddings) > 0 and paddings[:2] != [0, 0]: + # Attempt to Pad channels dimension -> currently not supported + return False + + return True @staticmethod def _is_supported_in_IR( @@ -110,7 +125,14 @@ def _convert_paddings_to_tflite( return paddings def convert(self, node: Node): - """Convert the `aten.constant_pad_nd` operator to TFLite `PadV2`.""" + """Convert the `aten.constant_pad_nd` operator to NeutronIR `PadV2`. + The ExecuTorch schema is: + constant_pad_nd( + Tensor self, + SymInt[] pad, + Scalar value=0 + ) -> Tensor + """ self.assert_convertible(node) t_op = self._create_tflite_op_with_io_tensors(node) diff --git a/backends/nxp/tests/ir/converter/node_converter/test_constant_pad_nd_converter.py b/backends/nxp/tests/ir/converter/node_converter/test_constant_pad_nd_converter.py index 097b8720169..13a81c16715 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_constant_pad_nd_converter.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_constant_pad_nd_converter.py @@ -4,9 +4,15 @@ # LICENSE file in the root directory of this source tree. import numpy as np + +# noinspection PyUnusedImports import pytest import torch + from executorch.backends.nxp.backend.ir.conversion_config import ConversionConfig +from executorch.backends.nxp.backend.ir.converter.builder.model_builder import ( + ModelBuilder, +) from executorch.backends.nxp.backend.ir.converter.node_converters.ops_converters.constant_pad_nd_converter import ( ConstantPadNDConverter, ) @@ -17,16 +23,18 @@ from executorch.backends.nxp.tests.executors import ( convert_run_compare, graph_contains_any_of_ops, + OverrideTargetSupportCheck, ToNCHWPreprocess, ToNHWCPreprocess, ) +from executorch.backends.nxp.tests.graph_verifier import DetailedGraphVerifier from executorch.backends.nxp.tests.models import ( ConstantPadNDConvModule, ConstantPadNDModule, ) +from executorch.backends.nxp.tests.nsys_testing import lower_run_compare +from executorch.backends.nxp.tests.ops_aliases import ConstantPadND, Convolution from executorch.backends.nxp.tests.use_qat import * # noqa F403 -from executorch.backends.nxp.tests.executors import OverrideTargetSupportCheck -from executorch.exir.dialects._ops import ops as exir_ops @pytest.fixture(autouse=True) @@ -158,9 +166,8 @@ def test_constant_pad_nd__unsupported_paddings(input_shape, paddings, use_qat): model, input_shape, use_qat=use_qat ).exported_program() - nodes = list(exec_program.graph.nodes) # There is at least one non-delegated Pad node - assert any(node.name == "aten_constant_pad_nd_default" for node in nodes) + assert graph_contains_any_of_ops(exec_program.graph, [ConstantPadND]) def test_constant_pad_nd__delegation__formatless__supported_padding(use_qat): @@ -172,9 +179,7 @@ def test_constant_pad_nd__delegation__formatless__supported_padding(use_qat): ).exported_program() # Make sure the `pad` was delegated. - assert not graph_contains_any_of_ops( - exec_program.graph, [exir_ops.edge.aten.constant_pad_nd.default] - ) + assert not graph_contains_any_of_ops(exec_program.graph, [ConstantPadND]) def test_constant_pad_nd__delegation__formatless__unsupported_padding(use_qat): @@ -186,9 +191,7 @@ def test_constant_pad_nd__delegation__formatless__unsupported_padding(use_qat): ).exported_program() # Make sure the `pad` was NOT delegated. - assert graph_contains_any_of_ops( - exec_program.graph, [exir_ops.edge.aten.constant_pad_nd.default] - ) + assert graph_contains_any_of_ops(exec_program.graph, [ConstantPadND]) def test_constant_pad_nd__delegation__channels_first__supported_padding(use_qat): @@ -200,9 +203,7 @@ def test_constant_pad_nd__delegation__channels_first__supported_padding(use_qat) ).exported_program() # Make sure the `pad` was delegated. - assert not graph_contains_any_of_ops( - exec_program.graph, [exir_ops.edge.aten.constant_pad_nd.default] - ) + assert not graph_contains_any_of_ops(exec_program.graph, [ConstantPadND]) def test_constant_pad_nd__delegation__channels_first__unsupported_padding(use_qat): @@ -214,6 +215,122 @@ def test_constant_pad_nd__delegation__channels_first__unsupported_padding(use_qa ).exported_program() # Make sure the `pad` was NOT delegated. - assert graph_contains_any_of_ops( - exec_program.graph, [exir_ops.edge.aten.constant_pad_nd.default] + assert graph_contains_any_of_ops(exec_program.graph, [ConstantPadND]) + + +class TestConstantPadNDNewNeutronFlow: + """The PyTorch padding is added to the individual dimensions from the back (slightly confusing), see: + https://pytorch.org/docs/stable/generated/torch.nn.functional.pad.html#torch.nn.functional.pad + """ + + # noinspection PyMethodMayBeStatic + def assert_delegated(self, model, input_shape, mocker, use_qat=False): + graph_verifier = DetailedGraphVerifier( + mocker, + expected_delegated_ops={ConstantPadND: 1}, + expected_non_delegated_ops={}, + ) + + lower_run_compare( + model, + input_shape, + graph_verifier, + use_qat=use_qat, + use_new_flow_neutron_c=True, + ) + + def assert_delegated_and_output_shape_equals( + self, model, input_shape, expected_output_shape, mocker + ): + model_builder_spy = mocker.spy(ModelBuilder, "finish") + + self.assert_delegated(model, input_shape, mocker) + + neutron_ir_subgraph = model_builder_spy.call_args[0][0].get_sub_graph() + assert neutron_ir_subgraph.outputs.tmp_outputs[0].shape.vector == list( + expected_output_shape + ) + + @pytest.mark.parametrize( + "input_shape, paddings", + [ + pytest.param((2,), tuple(range(2)), id="1D, padding H"), + pytest.param((2, 4), tuple(range(2)), id="2D, padding H"), + pytest.param((2, 4), tuple(range(4)), id="2D, padding N, H"), + pytest.param((2, 4, 6), tuple(range(2)), id="3D, padding H"), + pytest.param((2, 4, 6), tuple(range(4)), id="3D, padding C, H"), + pytest.param((2, 4, 6, 8), tuple(range(2)), id="4D, padding W"), + pytest.param((2, 4, 6, 8), tuple(range(4)), id="4D, padding H, W"), + pytest.param((1, 2, 3, 4, 5), tuple(range(2)), id="5D, padding D"), + pytest.param((1, 2, 3, 4, 5), tuple(range(4)), id="5D, padding W, D"), + ], + ) + def test__basic_nsys_inference(self, mocker, input_shape, paddings, use_qat): + # These test cases are also supported by the old flow. + model = ConstantPadNDModule(paddings) + self.assert_delegated(model, input_shape, mocker, use_qat) + + def test__channels_padding(self, mocker): + input_shape = (2, 4, 6) + # These paddings will be applied to the last dimension, which is the channels as the input is formatless. + paddings = (1, 1) + expected_output_shape = (2, 4, 8) # Padded channels. + model = ConstantPadNDModule(paddings) + + self.assert_delegated_and_output_shape_equals( + model, input_shape, expected_output_shape, mocker + ) + + def test__batch_padding(self, mocker): + input_shape = (2, 4, 6) + paddings = (0, 0, 0, 0, 1, 1) # Padding applied to the batch dimension. + expected_output_shape = (4, 4, 6) # Padded batch. + model = ConstantPadNDModule(paddings) + + self.assert_delegated_and_output_shape_equals( + model, input_shape, expected_output_shape, mocker + ) + + @pytest.mark.parametrize("constant", [0.0, -13.37]) + def test__specific_constant(self, mocker, constant): + input_shape = (2, 4, 6) + paddings = (1, 1) + model = ConstantPadNDModule(paddings, constant) + self.assert_delegated(model, input_shape, mocker) + + @pytest.mark.parametrize( + "input_shape, paddings", + [ + pytest.param((1, 4, 6, 8), tuple(range(2)), id="4D, padding W"), + pytest.param((1, 4, 6, 8), tuple(range(4)), id="4D, padding H, W"), + ], ) + def test__channels_first(self, mocker, input_shape, paddings): + model = ConstantPadNDConvModule(paddings) + graph_verifier = DetailedGraphVerifier( + mocker, + expected_delegated_ops={ConstantPadND: 1, Convolution: 1}, + expected_non_delegated_ops={}, + ) + + lower_run_compare( + model, input_shape, graph_verifier, use_new_flow_neutron_c=True + ) + + @pytest.mark.xfail( + strict=True, + raises=RuntimeError, + reason="Known issue in Neutron: https://jira.sw.nxp.com/browse/AIR-14624", # @lint-ignore + ) + def test__bugged_channels_first_case(self, mocker): + input_shape, paddings = (1, 2, 6, 8), (0, 1, 2, 3, 1, 1) + model = ConstantPadNDConvModule(paddings) + graph_verifier = DetailedGraphVerifier( + mocker, + expected_delegated_ops={ConstantPadND: 1, Convolution: 1}, + expected_non_delegated_ops={}, + ) + + lower_run_compare( + model, input_shape, graph_verifier, use_new_flow_neutron_c=True + ) diff --git a/backends/nxp/tests/model_output_comparator.py b/backends/nxp/tests/model_output_comparator.py index 4efa01011b8..f0dd7cd2d60 100644 --- a/backends/nxp/tests/model_output_comparator.py +++ b/backends/nxp/tests/model_output_comparator.py @@ -91,7 +91,13 @@ def compare_sample(self, sample_dir, cpu_output_tensors, npu_output_tensors): assert np.any( cpu_tensor ), "Output tensor contains only zeros. This is suspicious." - assert np.allclose(cpu_tensor, npu_tensor, atol=self.atol) + all_close = np.allclose(cpu_tensor, npu_tensor, atol=self.atol) + if not all_close: + max_diff = np.abs(cpu_tensor - npu_tensor).max() + print( + f"NPU output doesn't match reference. Maximum absolute difference: {max_diff}" + ) + assert all_close def _default_postprocess_fn(outputs: np.ndarray, _: str): diff --git a/backends/nxp/tests/ops_aliases.py b/backends/nxp/tests/ops_aliases.py index f190ca91e1f..ce14cc16169 100644 --- a/backends/nxp/tests/ops_aliases.py +++ b/backends/nxp/tests/ops_aliases.py @@ -14,6 +14,7 @@ Abs = exir_ops.edge.aten.abs.default AvgPool2D = exir_ops.edge.aten.avg_pool2d.default Bmm = exir_ops.edge.aten.bmm.default +ConstantPadND = exir_ops.edge.aten.constant_pad_nd.default Convolution = exir_ops.edge.aten.convolution.default DequantizePerChannel = exir_ops.edge.quantized_decomposed.dequantize_per_channel.default DequantizePerTensor = exir_ops.edge.quantized_decomposed.dequantize_per_tensor.default From b213b4279e17c4a6fa03cb48bbf804d152690f96 Mon Sep 17 00:00:00 2001 From: Adrian Lundell <36153706+AdrianLundell@users.noreply.github.com> Date: Tue, 19 May 2026 09:06:32 +0200 Subject: [PATCH 41/91] Arm backend: Allow PatternQuantizer to annotate all nodes with None (#19639) Previously it required nodes to be part of the quantizer support_dict, ignoring nodes quantized by the SharedQspecQuantizer. Signed-off-by: Adrian Lundell --- .../quantizer/test_selective_quantization.py | 97 ++++++++++++++++++- .../cortex_m/quantizer/pattern_matcher.py | 18 +++- 2 files changed, 109 insertions(+), 6 deletions(-) diff --git a/backends/arm/test/quantizer/test_selective_quantization.py b/backends/arm/test/quantizer/test_selective_quantization.py index a59a509ce06..ef0c51c58ca 100644 --- a/backends/arm/test/quantizer/test_selective_quantization.py +++ b/backends/arm/test/quantizer/test_selective_quantization.py @@ -7,6 +7,7 @@ from typing import Dict import torch + from executorch.backends.arm.quantizer import ( get_symmetric_a16w8_quantization_config, get_symmetric_quantization_config, @@ -16,13 +17,17 @@ from executorch.backends.arm.test import common from executorch.backends.arm.test.tester.test_pipeline import QuantizationPipeline from executorch.backends.arm.tosa import TosaSpecification +from executorch.backends.test.harness.stages import StageType +from torchao.quantization.pt2e.quantizer.quantizer import Q_ANNOTATION_KEY from torchvision import models, transforms # type: ignore[import-untyped] from torchvision.ops.misc import Conv2dNormActivation # type: ignore[import-untyped] -def get_quantizer(): +def get_quantizer(use_composable_quantizer: bool = False): tosa_spec = TosaSpecification.create_from_string("TOSA-1.0+INT") - quantizer = TOSAQuantizer(tosa_spec) + quantizer = TOSAQuantizer( + tosa_spec, use_composable_quantizer=use_composable_quantizer + ) quantizer.set_global(get_symmetric_quantization_config()) return quantizer @@ -53,6 +58,25 @@ def forward(self, x: torch.Tensor, y: torch.Tensor) -> torch.Tensor: return x + y +class Cat(torch.nn.Module): + + def forward(self, x: torch.Tensor, y: torch.Tensor) -> torch.Tensor: + return torch.cat((x, y), dim=1) + + +class LinearGraphTail(torch.nn.Module): + + def __init__(self): + super().__init__() + self.linear = torch.nn.Linear(10, 10) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = self.linear(x) + x = torch.relu(x) + x = torch.sigmoid(x) + return torch.neg(x) + + class AddSoftmaxAdd(torch.nn.Module): module_names = {"add_0": None, "add_1": None} module_types = { @@ -131,6 +155,75 @@ def test_selective_quant_module_type_tosa_INT(model): pipeline.run() +def test_selective_quant_cat_node_target_none_tosa_INT(): + model = Cat() + inputs = (torch.randn(1, 2, 4), torch.randn(1, 3, 4)) + + quantizer = get_quantizer(use_composable_quantizer=True) + quantizer.set_node_target(torch.ops.aten.cat.default, None) + + pipeline = QuantizationPipeline[tuple[torch.Tensor, torch.Tensor]]( + model, + inputs, + quantizer=quantizer, + qspecs={ + "aten.cat.default": { + None: 1, + }, + }, + ) + + pipeline.run() + + +def test_composable_io_none_skips_global_tosa_INT(): + model = Add() + inputs = (torch.randn(1, 10), torch.randn(1, 10)) + + quantizer = get_quantizer(use_composable_quantizer=True) + quantizer.set_io(None) + + pipeline = QuantizationPipeline[tuple[torch.Tensor, torch.Tensor]]( + model, + inputs, + quantizer=quantizer, + input_qspecs={None: 2}, + output_qspecs={None: 1}, + ) + + pipeline.run() + + +def test_composable_global_none_linear_graph_tail_tosa_INT(): + model = LinearGraphTail() + inputs = (torch.randn(1, 10),) + + quantizer = get_quantizer(use_composable_quantizer=True) + quantizer.set_global(None) + + pipeline = QuantizationPipeline[tuple[torch.Tensor]]( + model, + inputs, + quantizer=quantizer, + qspecs={ + "aten.linear.default": {None: 1}, + "aten.relu.default": {None: 1}, + "aten.sigmoid.default": {None: 1}, + "aten.neg.default": {None: 1}, + }, + ) + + pipeline.run() + + graph = pipeline.tester.get_graph(StageType.QUANTIZE) + unannotated_nodes = [ + node.name + for node in graph.nodes + if node.op == "call_function" and Q_ANNOTATION_KEY not in node.meta + ] + assert not unannotated_nodes + + mv3 = models.mobilenet_v3_small(weights=models.MobileNet_V3_Small_Weights) mv3.eval() normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) diff --git a/backends/cortex_m/quantizer/pattern_matcher.py b/backends/cortex_m/quantizer/pattern_matcher.py index 3694fd22a6c..6e09fdbe58f 100644 --- a/backends/cortex_m/quantizer/pattern_matcher.py +++ b/backends/cortex_m/quantizer/pattern_matcher.py @@ -113,15 +113,25 @@ def _get_match(self, node_queue: List[Node]) -> List[Node]: return [] def _get_matches( - self, node_queue: List[Node], quantization_config: QuantizationConfig + self, node_queue: List[Node], quantization_config: Optional[QuantizationConfig] ) -> List[PatternMatchResult]: """Returns the longest accepted match starting at the first node of the queue as well as longer rejected matches. """ + # Annotating with None means rejecting quantization - this is always supported. + if quantization_config is None: + node = node_queue[0] + if node.meta.get(self.Q_PATTERN_MATCHED_KEY, False): + return [ + PatternMatchResult([node], False, self.REJECT_PREVIOUSLY_ANNOTATED) + ] + + node.meta[self.Q_PATTERN_MATCHED_KEY] = True + return [PatternMatchResult([node], True)] + matches: list[PatternMatchResult] = [] accepted = False max_match_length = len(node_queue) - while max_match_length > 0 and not accepted: match = self._get_match(node_queue[:max_match_length]) max_match_length = ( @@ -136,7 +146,7 @@ def _get_matches( return matches def _dequeue_and_get_matches( - self, node_queue: List[Node], quantization_config: QuantizationConfig + self, node_queue: List[Node], quantization_config: Optional[QuantizationConfig] ) -> List[PatternMatchResult]: """Dequeues the longest accepted match starting at the first node of the queue, and returns all potential matches that were checked (rejected @@ -160,7 +170,7 @@ def _dequeue_and_get_matches( return potential_matches def find_pattern_matches( - self, nodes: Iterator[Node], quantization_config: QuantizationConfig + self, nodes: Iterator[Node], quantization_config: Optional[QuantizationConfig] ) -> Iterator[PatternMatchResult]: """Match all given patterns in the graph and return match results with acceptance/rejection status. Each node can only be part of one match, From d6a4ba5bf0cb7f47845a190e76f2ce54ea27844d Mon Sep 17 00:00:00 2001 From: Oscar Andersson <87121123+oscarandersson8218@users.noreply.github.com> Date: Tue, 19 May 2026 09:47:58 +0200 Subject: [PATCH 42/91] Arm backend: Move tosa-dialect tests into package (#19640) cc @digantdesai @freddan80 @per @zingo @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Oscar Andersson --- .../test_tosa_avg_pool2d_adaptive.py} | 0 .../test_tosa_conv2d.py} | 0 .../test_tosa_dw_conv2d.py} | 0 .../test_tosa_identity.py} | 0 .../test_tosa_resize.py} | 0 .../test_tosa_shape_ops.py} | 0 backends/arm/test/targets.bzl | 2 +- 7 files changed, 1 insertion(+), 1 deletion(-) rename backends/arm/test/misc/{test_tosa_dialect_avg_pool2d_adaptive.py => tosa_dialect/test_tosa_avg_pool2d_adaptive.py} (100%) rename backends/arm/test/misc/{test_tosa_dialect_conv2d.py => tosa_dialect/test_tosa_conv2d.py} (100%) rename backends/arm/test/misc/{test_tosa_dialect_dw_conv2d.py => tosa_dialect/test_tosa_dw_conv2d.py} (100%) rename backends/arm/test/misc/{test_tosa_dialect_identity.py => tosa_dialect/test_tosa_identity.py} (100%) rename backends/arm/test/misc/{test_tosa_dialect_resize.py => tosa_dialect/test_tosa_resize.py} (100%) rename backends/arm/test/misc/{test_tosa_dialect_shape_ops.py => tosa_dialect/test_tosa_shape_ops.py} (100%) diff --git a/backends/arm/test/misc/test_tosa_dialect_avg_pool2d_adaptive.py b/backends/arm/test/misc/tosa_dialect/test_tosa_avg_pool2d_adaptive.py similarity index 100% rename from backends/arm/test/misc/test_tosa_dialect_avg_pool2d_adaptive.py rename to backends/arm/test/misc/tosa_dialect/test_tosa_avg_pool2d_adaptive.py diff --git a/backends/arm/test/misc/test_tosa_dialect_conv2d.py b/backends/arm/test/misc/tosa_dialect/test_tosa_conv2d.py similarity index 100% rename from backends/arm/test/misc/test_tosa_dialect_conv2d.py rename to backends/arm/test/misc/tosa_dialect/test_tosa_conv2d.py diff --git a/backends/arm/test/misc/test_tosa_dialect_dw_conv2d.py b/backends/arm/test/misc/tosa_dialect/test_tosa_dw_conv2d.py similarity index 100% rename from backends/arm/test/misc/test_tosa_dialect_dw_conv2d.py rename to backends/arm/test/misc/tosa_dialect/test_tosa_dw_conv2d.py diff --git a/backends/arm/test/misc/test_tosa_dialect_identity.py b/backends/arm/test/misc/tosa_dialect/test_tosa_identity.py similarity index 100% rename from backends/arm/test/misc/test_tosa_dialect_identity.py rename to backends/arm/test/misc/tosa_dialect/test_tosa_identity.py diff --git a/backends/arm/test/misc/test_tosa_dialect_resize.py b/backends/arm/test/misc/tosa_dialect/test_tosa_resize.py similarity index 100% rename from backends/arm/test/misc/test_tosa_dialect_resize.py rename to backends/arm/test/misc/tosa_dialect/test_tosa_resize.py diff --git a/backends/arm/test/misc/test_tosa_dialect_shape_ops.py b/backends/arm/test/misc/tosa_dialect/test_tosa_shape_ops.py similarity index 100% rename from backends/arm/test/misc/test_tosa_dialect_shape_ops.py rename to backends/arm/test/misc/tosa_dialect/test_tosa_shape_ops.py diff --git a/backends/arm/test/targets.bzl b/backends/arm/test/targets.bzl index 30fa348414f..97eeda89eb3 100644 --- a/backends/arm/test/targets.bzl +++ b/backends/arm/test/targets.bzl @@ -53,7 +53,7 @@ def define_arm_tests(): "misc/test_compile_spec.py", # "misc/test_evaluate_model.py", "misc/test_pass_pipeline_config.py", - "misc/test_tosa_dialect_resize.py", + "misc/tosa_dialect/test_tosa_resize.py", "misc/test_tosa_spec.py", "misc/test_bn_relu_folding_qat.py", "misc/test_custom_partition.py", From 5eb84927cb9380f2a56d1f39f28d799dd7573254 Mon Sep 17 00:00:00 2001 From: Christoffer Johansson Lundqvist <119742508+Christoffer-JL@users.noreply.github.com> Date: Tue, 19 May 2026 09:55:26 +0200 Subject: [PATCH 43/91] Arm backend: Fix stale docgen generation (#19551) Update the Ethos-U docgen template to point to the correct tutorial path. This keeps pre-push from regenerating docs with the stale tutorial URL. cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Christoffer J.L --- .../docgen/ethos-u/backends-arm-ethos-u-overview.md.in | 4 ++-- .../ethos-u/ethos-u-getting-started-tutorial.md.in | 10 +++++++--- .../backends/arm-ethos-u/arm-ethos-u-overview.md | 4 ++-- .../arm-ethos-u/tutorials/ethos-u-getting-started.md | 1 - 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in b/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in index 1990bc6d946..bb1165f0de6 100644 --- a/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in +++ b/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in @@ -4,7 +4,7 @@ The Arm® Ethos™-U backend targets Edge/IoT-type AI use-cases by enabli [Arm® Ethos™-U55 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55), [Arm® Ethos™-U65 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u65), and [Arm® Ethos™-U85 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u85), leveraging [TOSA](https://www.mlplatform.org/tosa/) and the [ethos-u-vela](https://pypi.org/project/ethos-u-vela/) graph compiler. This document is a technical reference for using the Ethos-U backend, for a top level view with code examples -please refer to the [Arm Ethos-U Backend Tutorial](https://docs.pytorch.org/executorch/stable/tutorial-arm-ethos-u.html). +please refer to the [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). ## Features @@ -55,7 +55,7 @@ For more information on quantization, see [Quantization](arm-ethos-u-quantizatio ## Runtime Integration -An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), and the steps requried for building and deploying it on a FVP it is explained in the previously mentioned [Arm Ethos-U Backend Tutorial](https://docs.pytorch.org/executorch/stable/tutorial-arm-ethos-u.html). +An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), and the steps requried for building and deploying it on a FVP it is explained in the previously mentioned [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). The example application is recommended to use for testing basic functionality of your lowered models, as well as a starting point for developing runtime integrations for your own targets. For an in-depth explanation of the architecture of the executor_runner and the steps required for doing such an integration, please refer to [Ethos-U porting guide](https://github.com/pytorch/executorch/blob/main/examples/arm/ethos-u-porting-guide.md). 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 68b73755317..256cb5756a3 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 @@ -123,10 +123,14 @@ The example application is by default built with an input of ones, so the expect ## Takeaways In this tutorial you have learned how to use ExecuTorch to export a PyTorch model to an executable that can run on an embedded target, and then run that executable on simulated hardware. -To learn more, check out these learning paths: +To learn more, check out the [ExecuTorch on Arm Practical Labs](https://github.com/arm-education/executorch_on_arm_labs) series. This series provides a structured entry-point to developing with ExecuTorch on Arm, across both CPU and Ethos-U NPU. -https://learn.arm.com/learning-paths/embedded-and-microcontrollers/rpi-llama3/ -https://learn.arm.com/learning-paths/embedded-and-microcontrollers/visualizing-ethos-u-performance/ +For quick learning paths showcasing short tutorials: + +- [Run Llama3 on Raspberry Pi 5 with ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/rpi-llama3/) +- [Visualize Ethos-U NPU Performance on FVP](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/visualizing-ethos-u-performance/) +- [Image Classification with ExecuTorch on NXP i.MX 93 (Ethos-U65)](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/observing-ethos-u-on-nxp/) +- [Image Classification with ExecuTorch on Alif E8 DevKit (Ethos-U85)](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/alif-image-classification/) ## FAQs diff --git a/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md b/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md index 0b82cc9e56f..0638d781dc4 100644 --- a/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md +++ b/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md @@ -4,7 +4,7 @@ The Arm® Ethos™-U backend targets Edge/IoT-type AI use-cases by enabli [Arm® Ethos™-U55 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55), [Arm® Ethos™-U65 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u65), and [Arm® Ethos™-U85 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u85), leveraging [TOSA](https://www.mlplatform.org/tosa/) and the [ethos-u-vela](https://pypi.org/project/ethos-u-vela/) graph compiler. This document is a technical reference for using the Ethos-U backend, for a top level view with code examples -please refer to the [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). +please refer to the [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). ## Features @@ -111,7 +111,7 @@ For more information on quantization, see [Quantization](arm-ethos-u-quantizatio ## Runtime Integration -An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), and the steps requried for building and deploying it on a FVP it is explained in the previously mentioned [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). +An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), and the steps requried for building and deploying it on a FVP it is explained in the previously mentioned [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). The example application is recommended to use for testing basic functionality of your lowered models, as well as a starting point for developing runtime integrations for your own targets. For an in-depth explanation of the architecture of the executor_runner and the steps required for doing such an integration, please refer to [Ethos-U porting guide](https://github.com/pytorch/executorch/blob/main/examples/arm/ethos-u-porting-guide.md). 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 841827cff9b..fe189a945ee 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 @@ -196,7 +196,6 @@ The example application is by default built with an input of ones, so the expect ## Takeaways In this tutorial you have learned how to use ExecuTorch to export a PyTorch model to an executable that can run on an embedded target, and then run that executable on simulated hardware. - To learn more, check out the [ExecuTorch on Arm Practical Labs](https://github.com/arm-education/executorch_on_arm_labs) series. This series provides a structured entry-point to developing with ExecuTorch on Arm, across both CPU and Ethos-U NPU. For quick learning paths showcasing short tutorials: From 3a13e4113288051e6c55ef16b4b9f07dd7e61186 Mon Sep 17 00:00:00 2001 From: Christoffer Johansson Lundqvist <119742508+Christoffer-JL@users.noreply.github.com> Date: Tue, 19 May 2026 15:10:41 +0200 Subject: [PATCH 44/91] Arm backend: Reject Squeeze no-op partition (#19662) Reject delegates of squeeze op that are no-op in the partitioner cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Christoffer J.L --- backends/arm/test/ops/test_squeeze.py | 29 ++++++++++++++++++++++++++- backends/arm/tosa/partitioner.py | 10 +++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/backends/arm/test/ops/test_squeeze.py b/backends/arm/test/ops/test_squeeze.py index fcef851024b..5d18e8c695c 100644 --- a/backends/arm/test/ops/test_squeeze.py +++ b/backends/arm/test/ops/test_squeeze.py @@ -1,4 +1,4 @@ -# Copyright 2024-2025 Arm Limited and/or its affiliates. +# Copyright 2024-2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -16,6 +16,7 @@ from executorch.backends.arm.test.tester.test_pipeline import ( EthosU55PipelineINT, EthosU85PipelineINT, + OpNotSupportedPipeline, TosaPipelineFP, TosaPipelineINT, VgfPipeline, @@ -60,6 +61,12 @@ def forward(self, x: torch.Tensor): return x.squeeze() +unsupported_cases = { + "squeeze_dim_no_effect": lambda: (torch.randn(3, 4, 5), 1), + "squeeze_no_effect": lambda: (torch.randn(3, 4, 5),), +} + + ############## ## Squeeze ### ############## @@ -137,6 +144,16 @@ def test_squeeze_dim_vgf_quant(test_data: Tuple): pipeline.run() +def test_squeeze_no_target_not_delegated() -> None: + pipeline = OpNotSupportedPipeline[input_t1]( + Squeeze(), + unsupported_cases["squeeze_no_effect"](), + {"executorch_exir_dialects_edge__ops_aten_squeeze_copy_dims": 1}, + n_expected_delegates=0, + ) + pipeline.run() + + ################# ## SqueezeDim ### ################# @@ -214,6 +231,16 @@ def test_squeeze_dim_vgf_quant_2(test_data: Tuple): pipeline.run() +def test_squeeze_dim_no_target_not_delegated() -> None: + pipeline = OpNotSupportedPipeline[Tuple[torch.Tensor, int]]( + SqueezeDim(), + unsupported_cases["squeeze_dim_no_effect"](), + {"executorch_exir_dialects_edge__ops_aten_squeeze_copy_dims": 1}, + n_expected_delegates=0, + ) + pipeline.run() + + ################## ## SqueezeDims ### ################## diff --git a/backends/arm/tosa/partitioner.py b/backends/arm/tosa/partitioner.py index 97ce7f75248..07548eb5d69 100644 --- a/backends/arm/tosa/partitioner.py +++ b/backends/arm/tosa/partitioner.py @@ -104,6 +104,15 @@ def _is_noop_expand(node: torch.fx.node.Node) -> bool: return all(m == 1 for m in multiples) and not changes_rank +def _is_noop_squeeze(node: torch.fx.Node) -> bool: + if node.target != exir_ops.edge.aten.squeeze_copy.dims: + return False + else: + input_tensor = get_first_fake_tensor(ensure_type(torch.fx.Node, node.args[0])) + output_tensor = get_first_fake_tensor(node) + return input_tensor.shape == output_tensor.shape + + def _is_view_copy(node: torch.fx.node.Node) -> bool: return node.target == exir_ops.edge.aten.view_copy.default @@ -388,6 +397,7 @@ def is_node_supported(self, submodules, node: torch.fx.Node) -> bool: or _is_noop_expand(node) or _is_noop_detach_copy(node) or _is_noop_to_dim_order_copy(node) + or _is_noop_squeeze(node) or _is_view_copy(node) or _is_noop_as_strided_copy(node) or node.target in Q_OPS From a4c38976fb040fd5a2587c8bb0b59741357d13dd Mon Sep 17 00:00:00 2001 From: Zingo Andersen Date: Tue, 19 May 2026 15:57:10 +0200 Subject: [PATCH 45/91] Arm backend: Rename test_arm_baremetal.sh to test_arm_backend.sh (#19665) Rename tests script as it tests both Arm Ethos-U and VGF backend ### Test plan This script is tested by the GitHub jobs Signed-off-by: Zingo Andersen --- .github/workflows/pull.yml | 14 +- .github/workflows/trunk.yml | 28 +- backends/arm/README.md | 42 +-- backends/arm/test/test_arm_backend.sh | 356 ++++++++++++++++++++++++ backends/arm/test/test_arm_baremetal.sh | 348 +---------------------- 5 files changed, 399 insertions(+), 389 deletions(-) create mode 100755 backends/arm/test/test_arm_backend.sh mode change 100755 => 120000 backends/arm/test/test_arm_baremetal.sh diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index 25a5d571f8e..c56f9d16ddc 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -717,10 +717,10 @@ jobs: strategy: matrix: include: - - test_arm_baremetal: test_pytest_ops_no_target - - test_arm_baremetal: test_pytest_ops_tosa - - test_arm_baremetal: test_pytest_models_tosa - - test_arm_baremetal: test_run_tosa + - test_arm_backend: test_pytest_ops_no_target + - test_arm_backend: test_pytest_ops_tosa + - test_arm_backend: test_pytest_models_tosa + - test_arm_backend: test_run_tosa fail-fast: false with: runner: linux.2xlarge @@ -738,10 +738,10 @@ jobs: .ci/scripts/setup-arm-baremetal-tools.sh --disable-ethos-u-deps - ARM_TEST=${{ matrix.test_arm_baremetal }} + ARM_TEST=${{ matrix.test_arm_backend }} - # Test test_arm_baremetal.sh with test - backends/arm/test/test_arm_baremetal.sh "${ARM_TEST}" + # Test test_arm_backend.sh with test + backends/arm/test/test_arm_backend.sh "${ARM_TEST}" test-llama-runner-qnn-linux: name: test-llama-runner-qnn-linux diff --git a/.github/workflows/trunk.yml b/.github/workflows/trunk.yml index 303a942c74a..93a8fce7698 100644 --- a/.github/workflows/trunk.yml +++ b/.github/workflows/trunk.yml @@ -349,14 +349,14 @@ jobs: strategy: matrix: include: - - test_arm_baremetal: test_pytest_ops_ethos_u55 - - test_arm_baremetal: test_pytest_models_ethos_u55 - - test_arm_baremetal: test_run_ethos_u55 - - test_arm_baremetal: test_pytest_ops_ethos_u85 - - test_arm_baremetal: test_pytest_models_ethos_u85 - - test_arm_baremetal: test_run_ethos_u85 - - test_arm_baremetal: test_smaller_stories_llama - - test_arm_baremetal: test_memory_allocation + - test_arm_backend: test_pytest_ops_ethos_u55 + - test_arm_backend: test_pytest_models_ethos_u55 + - test_arm_backend: test_run_ethos_u55 + - test_arm_backend: test_pytest_ops_ethos_u85 + - test_arm_backend: test_pytest_models_ethos_u85 + - test_arm_backend: test_run_ethos_u85 + - test_arm_backend: test_smaller_stories_llama + - test_arm_backend: test_memory_allocation fail-fast: false with: runner: linux.2xlarge.memory @@ -378,15 +378,15 @@ jobs: # Hopefully this is high enough for this setup. sudo sysctl fs.inotify.max_user_watches=1048576 # 1024 * 1024 - ARM_TEST=${{ matrix.test_arm_baremetal }} + ARM_TEST=${{ matrix.test_arm_backend }} # Output test report on pytest runs so that github can surface failing tests. if [[ -n "${RUNNER_TEST_RESULTS_DIR:-}" ]]; then export PYTEST_ADDOPTS="--junit-xml=${RUNNER_TEST_RESULTS_DIR}/${ARM_TEST}.xml ${PYTEST_ADDOPTS:-}" fi - # Test test_arm_baremetal.sh with test - backends/arm/test/test_arm_baremetal.sh "${ARM_TEST}" + # Test test_arm_backend.sh with test + backends/arm/test/test_arm_backend.sh "${ARM_TEST}" test-arm-backend-vkml: name: test-arm-backend-vkml @@ -397,7 +397,7 @@ jobs: strategy: matrix: include: - - test_arm_baremetal: test_pytest_ops_vkml + - test_arm_backend: test_pytest_ops_vkml fail-fast: false with: runner: linux.2xlarge.memory @@ -418,14 +418,14 @@ jobs: # Hopefully this is high enough for this setup. sudo sysctl fs.inotify.max_user_watches=1048576 # 1024 * 1024 - ARM_TEST=${{ matrix.test_arm_baremetal }} + ARM_TEST=${{ matrix.test_arm_backend }} # Output test report on pytest runs so that github can surface failing tests. if [[ -n "${RUNNER_TEST_RESULTS_DIR:-}" ]]; then export PYTEST_ADDOPTS="--junit-xml=${RUNNER_TEST_RESULTS_DIR}/${ARM_TEST}.xml ${PYTEST_ADDOPTS:-}" fi - backends/arm/test/test_arm_baremetal.sh "${ARM_TEST}" + backends/arm/test/test_arm_backend.sh "${ARM_TEST}" test-arm-ootb-linux: name: test-arm-ootb-linux diff --git a/backends/arm/README.md b/backends/arm/README.md index f844b1d6422..25684581777 100644 --- a/backends/arm/README.md +++ b/backends/arm/README.md @@ -186,34 +186,34 @@ ssh -p 2222 root@127.0.0.1 -t "/tmp/executor_runner -model_path /tmp/add_arm_del There are two approaches for running the tests for the Arm backend. This section will explain these two approaches: -### Using test_arm_baremetal.sh +### Using test_arm_backend.sh -The backend provides a script `backends/arm/test/test_arm_baremetal.sh`, which is used in the `trunk` CI workflow. +The backend provides a script `backends/arm/test/test_arm_backend.sh`, which is used in the `trunk` CI workflow. This approach is useful for checking your change against this workflow on your own machine. These scripts also install the necessary dependencies to run the tests. Below is an overview of some of the testing options this script provides: | Command | Description | | ---------------------------------------------------- | ------------------------------------------------------------ | -| `test_arm_baremetal.sh test_pytest_ops_no_target` | Runs operator unit tests for non-target specific use-cases. | -| `test_arm_baremetal.sh test_pytest_models_no_target` | Runs model unit tests for non-target specific use-cases. | -| `test_arm_baremetal.sh test_pytest_ops_tosa` | Runs operator unit tests for TOSA specific use-cases. | -| `test_arm_baremetal.sh test_pytest_models_tosa` | Runs model unit tests for TOSA specific use-cases. | -| `test_arm_baremetal.sh test_run_tosa` | Runs end-to-end unit tests for TOSA specific use-cases. | -| `test_arm_baremetal.sh test_pytest_ops_ethos_u55` | Runs operator unit tests for Ethos-U55 specific use-cases. | -| `test_arm_baremetal.sh test_pytest_models_ethos_u55` | Runs model unit tests for Ethos-U55 specific use-cases. | -| `test_arm_baremetal.sh test_run_ethos_u55` | Runs end-to-end unit tests for Ethos-U55 specific use-cases. | -| `test_arm_baremetal.sh test_pytest_ops_ethos_u85` | Runs operator unit tests for Ethos-U85 specific use-cases. | -| `test_arm_baremetal.sh test_pytest_models_ethos_u85` | Runs model unit tests for Ethos-U85 specific use-cases. | -| `test_arm_baremetal.sh test_run_ethos_u85` | Runs end-to-end unit tests for Ethos-U85 specific use-cases. | -| `test_arm_baremetal.sh test_pytest_ops_vkml` | Runs operator unit tests for VGF specific use-cases. | -| `test_arm_baremetal.sh test_pytest_models_vkml` | Runs model unit tests for VGF specific use-cases. | -| `test_arm_baremetal.sh test_run_vkml` | Runs end-to-end unit tests for VGF specific use-cases. | -| `test_arm_baremetal.sh test_model_smollm2-135M` | Runs some models with Corstone FVP. | -| `test_arm_baremetal.sh test_smaller_stories_llama` | Runs E2E model tests on Corstone FVP. | -| `test_arm_baremetal.sh test_memory_allocation` | Runs memory allocation tests for Ethos-U specific targets | - -For more information, please refer to the `backends/arm/test/test_arm_baremetal.sh` script. +| `test_arm_backend.sh test_pytest_ops_no_target` | Runs operator unit tests for non-target specific use-cases. | +| `test_arm_backend.sh test_pytest_models_no_target` | Runs model unit tests for non-target specific use-cases. | +| `test_arm_backend.sh test_pytest_ops_tosa` | Runs operator unit tests for TOSA specific use-cases. | +| `test_arm_backend.sh test_pytest_models_tosa` | Runs model unit tests for TOSA specific use-cases. | +| `test_arm_backend.sh test_run_tosa` | Runs end-to-end unit tests for TOSA specific use-cases. | +| `test_arm_backend.sh test_pytest_ops_ethos_u55` | Runs operator unit tests for Ethos-U55 specific use-cases. | +| `test_arm_backend.sh test_pytest_models_ethos_u55` | Runs model unit tests for Ethos-U55 specific use-cases. | +| `test_arm_backend.sh test_run_ethos_u55` | Runs end-to-end unit tests for Ethos-U55 specific use-cases. | +| `test_arm_backend.sh test_pytest_ops_ethos_u85` | Runs operator unit tests for Ethos-U85 specific use-cases. | +| `test_arm_backend.sh test_pytest_models_ethos_u85` | Runs model unit tests for Ethos-U85 specific use-cases. | +| `test_arm_backend.sh test_run_ethos_u85` | Runs end-to-end unit tests for Ethos-U85 specific use-cases. | +| `test_arm_backend.sh test_pytest_ops_vkml` | Runs operator unit tests for VGF specific use-cases. | +| `test_arm_backend.sh test_pytest_models_vkml` | Runs model unit tests for VGF specific use-cases. | +| `test_arm_backend.sh test_run_vkml` | Runs end-to-end unit tests for VGF specific use-cases. | +| `test_arm_backend.sh test_model_smollm2_135M` | Runs some models with Corstone FVP. | +| `test_arm_backend.sh test_smaller_stories_llama` | Runs E2E model tests on Corstone FVP. | +| `test_arm_backend.sh test_memory_allocation` | Runs memory allocation tests for Ethos-U specific targets | + +For more information, please refer to the `backends/arm/test/test_arm_backend.sh` script. ### Using pytest diff --git a/backends/arm/test/test_arm_backend.sh b/backends/arm/test/test_arm_backend.sh new file mode 100755 index 00000000000..3c13fb58cb4 --- /dev/null +++ b/backends/arm/test/test_arm_backend.sh @@ -0,0 +1,356 @@ +#!/bin/bash +# Copyright 2024-2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +set -e + +script_dir=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd) + +# Executorch root +et_root_dir=$(cd ${script_dir}/../../.. && pwd) +cd "${et_root_dir}" +pwd +scratch_dir=${et_root_dir}/examples/arm/arm-scratch +setup_path_script=${scratch_dir}/setup_path.sh +_setup_msg="please refer to ${et_root_dir}/examples/arm/setup.sh to properly install necessary tools." + + +TEST_SUITE=$1 + +# Source the tools +# This should be prepared by the setup.sh +[[ -f ${setup_path_script} ]] \ + || { echo "Missing ${setup_path_script}. ${_setup_msg}"; exit 1; } +source ${setup_path_script} + +help() { + echo "Usage:" + echo " $0 " + echo " where can be any of:" + # This will list all lines in this file that is starting with test_ remove () { and print it as a list. + # e,g, "test_pytest() { # Test ops and other things" -> test_pytest # Test ops and other things + echo "all # run all tests" + grep "^test_" $0 | sed 's/([^)]*)[[:space:]]*{*//g' + exit +} + +if [[ -z "${TEST_SUITE:-}" ]]; then + echo "Missing test suite name, exiting..." + help +else + echo "Run Arm backend test suite ${TEST_SUITE}" +fi + +TEST_SUITE_NAME="$(basename "$0") ${TEST_SUITE}" + +EXCLUDE_TARGET_EXPR="(not u55) and (not u85) and (not tosa) and (not _vgf_)" +PYTEST_RETRY_ARGS=(--reruns 2 --reruns-delay 1) + +all() { # Run all tests + # This will list all lines in this file that is starting with test_ remove () { and add this script name in + # front of it and execute it in a sub shell + # e.g. from this file: + # + # test_pytest() { # Test ops and other things + # bla bla bla + # } + # test_pytest_ethosu_fvp() { # Same as test_pytest but ... + # bla bla bla + # } + #... + # become a small script: + # ---- + # backends/arm/test/test_arm_backend.sh test_pytest # Test ops and other things + # backends/arm/test/test_arm_backend.sh test_pytest_ethosu_fvp # Same as test_pytest but ... + # ... + # ---- + # That is executed + echo "${TEST_SUITE_NAME}: Run all tests" + grep "^test_" backends/arm/test/test_arm_backend.sh | sed 's/([^)]*)[[:space:]]*{*//g' | sed "s|^|$0 |" | sh -e + echo "${TEST_SUITE_NAME}: PASS" +} + +# ------------------------------------------- +# -------- Non target-specific tests -------- +# ------------------------------------------- +test_pytest_ops_no_target() { + echo "${TEST_SUITE_NAME}: Run pytest ops for target-less tests" + + # Run arm baremetal pytest tests without target + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k "${EXCLUDE_TARGET_EXPR}" + echo "${TEST_SUITE_NAME}: PASS" +} + +test_pytest_models_no_target() { + echo "${TEST_SUITE_NAME}: Run pytest models for target-less tests" + + # Install model dependencies for pytest + source backends/arm/scripts/install_models_for_test.sh + + # Run arm baremetal pytest tests without FVP + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k "${EXCLUDE_TARGET_EXPR}" + echo "${TEST_SUITE_NAME}: PASS" +} + +# ------------------------------------- +# -------- TOSA specific tests -------- +# ------------------------------------- +test_pytest_ops_tosa() { + echo "${TEST_SUITE_NAME}: Run pytest ops for TOSA" + + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k tosa + echo "${TEST_SUITE_NAME}: PASS" +} + +test_pytest_models_tosa() { + echo "${TEST_SUITE_NAME}: Run pytest models for TOSA" + + # Install model dependencies for pytest + source backends/arm/scripts/install_models_for_test.sh + + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k tosa + echo "${TEST_SUITE_NAME}: PASS" +} + +test_run_tosa() { + echo "${TEST_SUITE_NAME}: Test TOSA delegate examples with run.sh" + + echo "${TEST_SUITE_NAME}: Test target TOSA" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=TOSA-1.0+INT --model_name=add + examples/arm/run.sh --et_build_root=arm_test/test_run --target=TOSA-1.0+INT --model_name=mul + + echo "${TEST_SUITE_NAME}: PASS" +} + +# ---------------------------------------------- +# -------- Arm Ethos-U55 specific tests -------- +# ---------------------------------------------- +test_pytest_ops_ethos_u55() { + echo "${TEST_SUITE_NAME}: Run pytest ops for Arm Ethos-U55" + + backends/arm/scripts/build_executorch.sh + backends/arm/test/setup_testing.sh + + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k u55 + echo "${TEST_SUITE_NAME}: PASS" +} + +test_pytest_models_ethos_u55() { + echo "${TEST_SUITE_NAME}: Run pytest models for Arm Ethos-U55" + + backends/arm/scripts/build_executorch.sh + backends/arm/test/setup_testing.sh + + # Install model dependencies for pytest + source backends/arm/scripts/install_models_for_test.sh + + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k u55 + echo "${TEST_SUITE_NAME}: PASS" +} + +test_run_ethos_u55() { + echo "${TEST_SUITE_NAME}: Test ethos-u55 delegate examples with run.sh" + + echo "${TEST_SUITE_NAME}: Test target Ethos-U55" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-64 --model_name=add + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --bundleio + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-256 --model_name=add --bundleio --etdump + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --etdump + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=mul + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --pte_placement=elf + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-256 --model_name=add --pte_placement=0x38000000 + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=mul --bundleio --pte_placement=elf + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=mul --bundleio --pte_placement=0x38000000 + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --bundleio --pte_placement=0x38000000 + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=examples/arm/example_modules/add.py + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=examples/arm/example_modules/add.py --bundleio + + # Cortex-M op tests + echo "${TEST_SUITE_NAME}: Test target Cortex-M55 (on Ethos-U55)" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --bundleio --no_delegate --select_ops_list="aten::add.out" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=qadd --bundleio + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=qops --bundleio + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=qops --bundleio --no_delegate --select_ops_list="aten::sub.out,aten::add.out,aten::mul.out" + + echo "${TEST_SUITE_NAME}: PASS" +} + +# ---------------------------------------------- +# -------- Arm Ethos-U85 specific tests -------- +# ---------------------------------------------- +test_pytest_ops_ethos_u85() { + echo "${TEST_SUITE_NAME}: Run pytest ops for Arm Ethos-U85" + + backends/arm/scripts/build_executorch.sh + backends/arm/test/setup_testing.sh + + # Run arm baremetal pytest tests with FVP + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k u85 + echo "${TEST_SUITE_NAME}: PASS" +} + +test_pytest_models_ethos_u85() { + echo "${TEST_SUITE_NAME}: Run pytest models for Arm Ethos-U85" + + backends/arm/scripts/build_executorch.sh + backends/arm/test/setup_testing.sh + + # Install model dependencies for pytest + source backends/arm/scripts/install_models_for_test.sh + + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k u85 + echo "${TEST_SUITE_NAME}: PASS" +} + +test_run_ethos_u85() { + echo "${TEST_SUITE_NAME}: Test ethos-u85 delegate examples with run.sh" + + echo "${TEST_SUITE_NAME}: Test target Ethos-U85" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=add + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-256 --model_name=add --bundleio + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-512 --model_name=add --bundleio --etdump + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-1024 --model_name=add --etdump + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-2048 --model_name=mul --pte_placement=elf + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=mul --pte_placement=0x38000000 + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=mul --bundleio --pte_placement=elf + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-256 --model_name=mul --bundleio --pte_placement=0x38000000 + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-1024 --model_name=examples/arm/example_modules/add.py --bundleio + + # Cortex-M op tests + echo "${TEST_SUITE_NAME}: Test target Cortex-M55 (on Ethos-U85)" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=qops --bundleio + + echo "${TEST_SUITE_NAME}: PASS" +} + +# ---------------------------------------------------------- +# -------- Vulkan Graph Format (VGF) specific tests -------- +# ---------------------------------------------------------- +test_pytest_ops_vkml() { + echo "${TEST_SUITE_NAME}: Run pytest operator tests with VKML runtime" + + source backends/arm/test/setup_testing_vkml.sh + + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ \ + --ignore=backends/arm/test/models -k _vgf_ + echo "${TEST_SUITE_NAME}: PASS" +} + +test_pytest_models_vkml() { + echo "${TEST_SUITE_NAME}: Run pytest model tests with VKML runtime" + + source backends/arm/test/setup_testing_vkml.sh + + # Install model dependencies for pytest + source backends/arm/scripts/install_models_for_test.sh + + pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k _vgf_ + echo "${TEST_SUITE_NAME}: PASS" +} + +test_run_vkml() { + echo "${TEST_SUITE_NAME}: Test VKML delegate examples with run.sh" + + echo "${TEST_SUITE_NAME}: Test VKML" + out_folder="arm_test/test_run" + + examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=add --output=${out_folder}/runner + examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=mul --output=${out_folder}/runner + + examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=qadd --output=${out_folder}/runner + examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=qops --output=${out_folder}/runner + + echo "${TEST_SUITE_NAME}: PASS" +} + +# ------------------------------------ +# -------- Miscellaneous tests ------- +# ------------------------------------ +test_model_smollm2_135M() { + echo "${TEST_SUITE_NAME}: Test SmolLM2-135M on Ethos-U85" + + # Build common libs once + python3 backends/arm/test/test_model.py --test_output=arm_test/test_model --build_libs + + python3 backends/arm/test/test_model.py --test_output=arm_test/test_model --target=ethos-u85-128 --model=smollm2 --extra_flags="-DEXECUTORCH_SELECT_OPS_LIST=dim_order_ops::_to_dim_order_copy.out" --specify_ethosu_scratch + + echo "${TEST_SUITE_NAME}: PASS" +} + +test_smaller_stories_llama() { + echo "${TEST_SUITE_NAME}: Test smaller_stories_llama" + + backends/arm/scripts/build_executorch.sh + + mkdir -p stories110M + pushd stories110M + wget -N https://huggingface.co/karpathy/tinyllamas/resolve/main/stories110M.pt + echo '{"dim": 768, "multiple_of": 32, "n_heads": 12, "n_layers": 12, "norm_eps": 1e-05, "vocab_size": 32000}' > params.json + popd + + # Get path to source directory + pytest \ + -c /dev/null \ + "${PYTEST_RETRY_ARGS[@]}" \ + --verbose \ + --color=yes \ + --numprocesses=auto \ + --junit-xml=stories110M/test-reports/unittest.xml \ + backends/arm/test/models/test_llama.py \ + --llama_inputs stories110M/stories110M.pt stories110M/params.json stories110m + + echo "${TEST_SUITE_NAME}: PASS" +} + +test_memory_allocation() { + echo "${TEST_SUITE_NAME}: Test ethos-u memory allocation with run.sh" + + mkdir -p arm_test/test_run + # Ethos-U85 + echo "${TEST_SUITE_NAME}: Test target Ethos-U85" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py &> arm_test/test_run/full.log + python3 backends/arm/test/test_memory_allocator_log.py --log arm_test/test_run/full.log \ + --require "model_pte_program_size" "<= 3200 B" \ + --require "method_allocator_planned" "<= 64 B" \ + --require "method_allocator_loaded" "<= 1024 B" \ + --require "method_allocator_input" "<= 16 B" \ + --require "Total DRAM used" "<= 0.06 KiB" + echo "${TEST_SUITE_NAME}: PASS" +} + +test_undefinedbehavior_sanitizer() { + echo "${TEST_SUITE_NAME}: Test ethos-u executor_runner with UBSAN" + + mkdir -p arm_test/test_run + # Ethos-U85 + echo "${TEST_SUITE_NAME}: Test target Ethos-U85" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py --build_type=UndefinedSanitizer + echo "${TEST_SUITE_NAME}: PASS" +} + +test_address_sanitizer() { + echo "${TEST_SUITE_NAME}: Test ethos-u executor_runner with ASAN" + + mkdir -p arm_test/test_run + # Ethos-U85 + echo "${TEST_SUITE_NAME}: Test target Ethos-U85" + examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py --build_type=AddressSanitizer + echo "${TEST_SUITE_NAME}: PASS" +} + + +if [[ -z "${TEST_SUITE}" ]]; then + echo "Missing test suite name." + exit 1 +elif [[ ! "${TEST_SUITE}" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then + echo "Invalid test suite name: ${TEST_SUITE}" + exit 1 +elif ! declare -F -- "${TEST_SUITE}" > /dev/null; then + echo "Unknown test suite: ${TEST_SUITE}" + exit 1 +fi + +"${TEST_SUITE}" diff --git a/backends/arm/test/test_arm_baremetal.sh b/backends/arm/test/test_arm_baremetal.sh deleted file mode 100755 index ad8cd8b7d3a..00000000000 --- a/backends/arm/test/test_arm_baremetal.sh +++ /dev/null @@ -1,347 +0,0 @@ -#!/bin/bash -# Copyright 2024-2026 Arm Limited and/or its affiliates. -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. - -# TODO: Rename this script - -set -e - -script_dir=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd) - -# Executorch root -et_root_dir=$(cd ${script_dir}/../../.. && pwd) -cd "${et_root_dir}" -pwd -scratch_dir=${et_root_dir}/examples/arm/arm-scratch -setup_path_script=${scratch_dir}/setup_path.sh -_setup_msg="please refer to ${et_root_dir}/examples/arm/setup.sh to properly install necessary tools." - - -TEST_SUITE=$1 - -# Source the tools -# This should be prepared by the setup.sh -[[ -f ${setup_path_script} ]] \ - || { echo "Missing ${setup_path_script}. ${_setup_msg}"; exit 1; } -source ${setup_path_script} - -help() { - echo "Usage:" - echo " $0 " - echo " where can be any of:" - # This will list all lines in this file that is starting with test_ remove () { and print it as a list. - # e,g, "test_pytest() { # Test ops and other things" -> test_pytest # Test ops and other things - echo "all # run all tests" - grep "^test_" $0 | sed 's/([^)]*)[[:space:]]*{*//g' - exit -} - -if [[ -z "${TEST_SUITE:-}" ]]; then - echo "Missing test suite name, exiting..." - help -else - echo "Run Arm baremetal test suite ${TEST_SUITE}" -fi - -TEST_SUITE_NAME="$(basename "$0") ${TEST_SUITE}" - -EXCLUDE_TARGET_EXPR="(not u55) and (not u85) and (not tosa) and (not _vgf_)" -PYTEST_RETRY_ARGS=(--reruns 2 --reruns-delay 1) - -all() { # Run all tests - # This will list all lines in this file that is starting with test_ remove () { and add this script name in - # front of it and execute it in a sub shell - # e.g. from this file: - # - # test_pytest() { # Test ops and other things - # bla bla bla - # } - # test_pytest_ethosu_fvp() { # Same as test_pytest but ... - # bla bla bla - # } - #... - # become a small script: - # ---- - # backends/arm/test/test_arm_baremetal.sh test_pytest # Test ops and other things - # backends/arm/test/test_arm_baremetal.sh test_pytest_ethosu_fvp # Same as test_pytest but ... - # ... - # ---- - # That is executed - echo "${TEST_SUITE_NAME}: Run all tests" - grep "^test_" backends/arm/test/test_arm_baremetal.sh | sed 's/([^)]*)[[:space:]]*{*//g' | sed "s|^|$0 |" | sh - echo "${TEST_SUITE_NAME}: PASS" -} - -# ------------------------------------------- -# -------- Non target-specific tests -------- -# ------------------------------------------- -test_pytest_ops_no_target() { - echo "${TEST_SUITE_NAME}: Run pytest ops for target-less tests" - - # Run arm baremetal pytest tests without target - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k "${EXCLUDE_TARGET_EXPR}" - echo "${TEST_SUITE_NAME}: PASS" -} - -test_pytest_models_no_target() { - echo "${TEST_SUITE_NAME}: Run pytest models for target-less tests" - - # Install model dependencies for pytest - source backends/arm/scripts/install_models_for_test.sh - - # Run arm baremetal pytest tests without FVP - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k "${EXCLUDE_TARGET_EXPR}" - echo "${TEST_SUITE_NAME}: PASS" -} - -# ------------------------------------- -# -------- TOSA specific tests -------- -# ------------------------------------- -test_pytest_ops_tosa() { - echo "${TEST_SUITE_NAME}: Run pytest ops for TOSA" - - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k tosa - echo "${TEST_SUITE_NAME}: PASS" -} - -test_pytest_models_tosa() { - echo "${TEST_SUITE_NAME}: Run pytest models for TOSA" - - # Install model dependencies for pytest - source backends/arm/scripts/install_models_for_test.sh - - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k tosa - echo "${TEST_SUITE_NAME}: PASS" -} - -test_run_tosa() { - echo "${TEST_SUITE_NAME}: Test TOSA delegate examples with run.sh" - - echo "${TEST_SUITE_NAME}: Test target TOSA" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=TOSA-1.0+INT --model_name=add - examples/arm/run.sh --et_build_root=arm_test/test_run --target=TOSA-1.0+INT --model_name=mul - - echo "${TEST_SUITE_NAME}: PASS" -} - -# ---------------------------------------------- -# -------- Arm Ethos-U55 specific tests -------- -# ---------------------------------------------- -test_pytest_ops_ethos_u55() { - echo "${TEST_SUITE_NAME}: Run pytest ops for Arm Ethos-U55" - - backends/arm/scripts/build_executorch.sh - backends/arm/test/setup_testing.sh - - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k u55 - echo "${TEST_SUITE_NAME}: PASS" -} - -test_pytest_models_ethos_u55() { - echo "${TEST_SUITE_NAME}: Run pytest models for Arm Ethos-U55" - - backends/arm/scripts/build_executorch.sh - backends/arm/test/setup_testing.sh - - # Install model dependencies for pytest - source backends/arm/scripts/install_models_for_test.sh - - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k u55 - echo "${TEST_SUITE_NAME}: PASS" -} - -test_run_ethos_u55() { - echo "${TEST_SUITE_NAME}: Test ethos-u55 delegate examples with run.sh" - - echo "${TEST_SUITE_NAME}: Test target Ethos-U55" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-64 --model_name=add - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --bundleio - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-256 --model_name=add --bundleio --etdump - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --etdump - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=mul - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --pte_placement=elf - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-256 --model_name=add --pte_placement=0x38000000 - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=mul --bundleio --pte_placement=elf - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=mul --bundleio --pte_placement=0x38000000 - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --bundleio --pte_placement=0x38000000 - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=examples/arm/example_modules/add.py - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=examples/arm/example_modules/add.py --bundleio - - # Cortex-M op tests - echo "${TEST_SUITE_NAME}: Test target Cortex-M55 (on Ethos-U55)" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=add --bundleio --no_delegate --select_ops_list="aten::add.out" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=qadd --bundleio - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=qops --bundleio - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u55-128 --model_name=qops --bundleio --no_delegate --select_ops_list="aten::sub.out,aten::add.out,aten::mul.out" - - echo "${TEST_SUITE_NAME}: PASS" -} - -# ---------------------------------------------- -# -------- Arm Ethos-U85 specific tests -------- -# ---------------------------------------------- -test_pytest_ops_ethos_u85() { - echo "${TEST_SUITE_NAME}: Run pytest ops for Arm Ethos-U85" - - backends/arm/scripts/build_executorch.sh - backends/arm/test/setup_testing.sh - - # Run arm baremetal pytest tests with FVP - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ --ignore=backends/arm/test/models -k u85 - echo "${TEST_SUITE_NAME}: PASS" -} - -test_pytest_models_ethos_u85() { - echo "${TEST_SUITE_NAME}: Run pytest models for Arm Ethos-U85" - - backends/arm/scripts/build_executorch.sh - backends/arm/test/setup_testing.sh - - # Install model dependencies for pytest - source backends/arm/scripts/install_models_for_test.sh - - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k u85 - echo "${TEST_SUITE_NAME}: PASS" -} - -test_run_ethos_u85() { - echo "${TEST_SUITE_NAME}: Test ethos-u85 delegate examples with run.sh" - - echo "${TEST_SUITE_NAME}: Test target Ethos-U85" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=add - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-256 --model_name=add --bundleio - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-512 --model_name=add --bundleio --etdump - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-1024 --model_name=add --etdump - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-2048 --model_name=mul --pte_placement=elf - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=mul --pte_placement=0x38000000 - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=mul --bundleio --pte_placement=elf - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-256 --model_name=mul --bundleio --pte_placement=0x38000000 - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-1024 --model_name=examples/arm/example_modules/add.py --bundleio - - # Cortex-M op tests - echo "${TEST_SUITE_NAME}: Test target Cortex-M55 (on Ethos-U85)" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=qops --bundleio - - echo "${TEST_SUITE_NAME}: PASS" -} - -# ---------------------------------------------------------- -# -------- Vulkan Graph Format (VGF) specific tests -------- -# ---------------------------------------------------------- -test_pytest_ops_vkml() { - echo "${TEST_SUITE_NAME}: Run pytest operator tests with VKML runtime" - - source backends/arm/test/setup_testing_vkml.sh - - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=10 backends/arm/test/ \ - --ignore=backends/arm/test/models -k _vgf_ - echo "${TEST_SUITE_NAME}: PASS" -} - -test_pytest_models_vkml() { - echo "${TEST_SUITE_NAME}: Run pytest model tests with VKML runtime" - - source backends/arm/test/setup_testing_vkml.sh - - # Install model dependencies for pytest - source backends/arm/scripts/install_models_for_test.sh - - pytest "${PYTEST_RETRY_ARGS[@]}" --verbose --color=yes --numprocesses=auto --durations=0 backends/arm/test/models -k _vgf_ - echo "${TEST_SUITE_NAME}: PASS" -} - -test_run_vkml() { - echo "${TEST_SUITE_NAME}: Test VKML delegate examples with run.sh" - - echo "${TEST_SUITE_NAME}: Test VKML" - out_folder="arm_test/test_run" - - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=add --output=${out_folder}/runner - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=mul --output=${out_folder}/runner - - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=qadd --output=${out_folder}/runner - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=qops --output=${out_folder}/runner - - echo "${TEST_SUITE_NAME}: PASS" -} - -# ------------------------------------ -# -------- Miscelaneous tests -------- -# ------------------------------------ -test_model_smollm2_135M() { - echo "${TEST_SUITE_NAME}: Test SmolLM2-135M on Ethos-U85" - - # Build common libs once - python3 backends/arm/test/test_model.py --test_output=arm_test/test_model --build_libs - - python3 backends/arm/test/test_model.py --test_output=arm_test/test_model --target=ethos-u85-128 --model=smollm2 --extra_flags="-DEXECUTORCH_SELECT_OPS_LIST=dim_order_ops::_to_dim_order_copy.out" --specify_ethosu_scratch - - echo "${TEST_SUITE_NAME}: PASS" -} - -test_smaller_stories_llama() { - echo "${TEST_SUITE_NAME}: Test smaller_stories_llama" - - backends/arm/scripts/build_executorch.sh - - mkdir -p stories110M - pushd stories110M - wget -N https://huggingface.co/karpathy/tinyllamas/resolve/main/stories110M.pt - echo '{"dim": 768, "multiple_of": 32, "n_heads": 12, "n_layers": 12, "norm_eps": 1e-05, "vocab_size": 32000}' > params.json - popd - - # Get path to source directory - pytest \ - -c /dev/null \ - "${PYTEST_RETRY_ARGS[@]}" \ - --verbose \ - --color=yes \ - --numprocesses=auto \ - --junit-xml=stories110M/test-reports/unittest.xml \ - backends/arm/test/models/test_llama.py \ - --llama_inputs stories110M/stories110M.pt stories110M/params.json stories110m - - echo "${TEST_SUITE_NAME}: PASS" -} - -test_memory_allocation() { - echo "${TEST_SUITE_NAME}: Test ethos-u memory allocation with run.sh" - - mkdir -p arm_test/test_run - # Ethos-U85 - echo "${TEST_SUITE_NAME}: Test target Ethos-U85" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py &> arm_test/test_run/full.log - python3 backends/arm/test/test_memory_allocator_log.py --log arm_test/test_run/full.log \ - --require "model_pte_program_size" "<= 3200 B" \ - --require "method_allocator_planned" "<= 64 B" \ - --require "method_allocator_loaded" "<= 1024 B" \ - --require "method_allocator_input" "<= 16 B" \ - --require "Total DRAM used" "<= 0.06 KiB" - echo "${TEST_SUITE_NAME}: PASS" -} - -test_undefinedbehavior_sanitizer() { - echo "${TEST_SUITE_NAME}: Test ethos-u executor_runner with UBSAN" - - mkdir -p arm_test/test_run - # Ethos-U85 - echo "${TEST_SUITE_NAME}: Test target Ethos-U85" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py --build_type=UndefinedSanitizer - echo "${TEST_SUITE_NAME}: PASS" -} - -test_address_sanitizer() { - echo "${TEST_SUITE_NAME}: Test ethos-u executor_runner with ASAN" - - mkdir -p arm_test/test_run - # Ethos-U85 - echo "${TEST_SUITE_NAME}: Test target Ethos-U85" - examples/arm/run.sh --et_build_root=arm_test/test_run --target=ethos-u85-128 --model_name=examples/arm/example_modules/add.py --build_type=AddressSanitizer - echo "${TEST_SUITE_NAME}: PASS" -} - - -${TEST_SUITE} diff --git a/backends/arm/test/test_arm_baremetal.sh b/backends/arm/test/test_arm_baremetal.sh new file mode 120000 index 00000000000..21637b9850b --- /dev/null +++ b/backends/arm/test/test_arm_baremetal.sh @@ -0,0 +1 @@ +test_arm_backend.sh \ No newline at end of file From 1d754c8a692bf4eeff0670e9c245d106e8a367d3 Mon Sep 17 00:00:00 2001 From: christine-long-meta <163800716+christine-long-meta@users.noreply.github.com> Date: Tue, 19 May 2026 11:32:41 -0400 Subject: [PATCH 46/91] Add a16w8 per-op test for conv1d (#19597) Summary: Add int16 activation / int8 weight (a16w8) quantization tests for `aten.conv1d` on Ethos-U55 and Ethos-U85. ## Changes - Add `test_conv1d_a16w8_u55_INT` using `EthosU55PipelineINT` with `a16w8_quantization=True, symmetric_io_quantization=True`, reusing existing `test_data_INT` parameters - Add `test_conv1d_a16w8_u85_INT` using `EthosU85PipelineINT` with same kwargs - Register `ops/test_conv1d.py` in `fbcode/` and `xplat/` `targets.bzl` Reviewed By: Ninja91 Differential Revision: D104532360 --- backends/arm/test/ops/test_conv1d.py | 32 ++++++++++++++++++++++++++++ backends/arm/test/targets.bzl | 1 + 2 files changed, 33 insertions(+) diff --git a/backends/arm/test/ops/test_conv1d.py b/backends/arm/test/ops/test_conv1d.py index 486b6b3ce7c..5fcdcf50465 100644 --- a/backends/arm/test/ops/test_conv1d.py +++ b/backends/arm/test/ops/test_conv1d.py @@ -399,3 +399,35 @@ def test_convolution_1d_vgf_quant_a8w4(test_data): get_symmetric_a8w4_quantization_config(is_per_channel=per_channel_quantization) ) pipeline.run() + + +@common.parametrize("test_data", test_data_INT) +@common.XfailIfNoCorstone300 +def test_conv1d_a16w8_u55_INT(test_data): + model, per_channel_quantization = test_data() + pipeline = EthosU55PipelineINT[input_t]( + model, + model.get_inputs(), + aten_op, + exir_op, + a16w8_quantization=True, + symmetric_io_quantization=True, + per_channel_quantization=per_channel_quantization, + ) + pipeline.run() + + +@common.parametrize("test_data", test_data_INT) +@common.XfailIfNoCorstone320 +def test_conv1d_a16w8_u85_INT(test_data): + model, per_channel_quantization = test_data() + pipeline = EthosU85PipelineINT[input_t]( + model, + model.get_inputs(), + aten_op, + exir_op, + a16w8_quantization=True, + symmetric_io_quantization=True, + per_channel_quantization=per_channel_quantization, + ) + pipeline.run() diff --git a/backends/arm/test/targets.bzl b/backends/arm/test/targets.bzl index 97eeda89eb3..76d8393d83d 100644 --- a/backends/arm/test/targets.bzl +++ b/backends/arm/test/targets.bzl @@ -40,6 +40,7 @@ def define_arm_tests(): "ops/test_reciprocal.py", "ops/test_mean_dim.py", "ops/test_var.py", + "ops/test_conv1d.py", ] # Quantization From 85bd01df2b2e1226a46148ae6e2faf35e950835c Mon Sep 17 00:00:00 2001 From: christine-long-meta <163800716+christine-long-meta@users.noreply.github.com> Date: Tue, 19 May 2026 11:37:04 -0400 Subject: [PATCH 47/91] Add a16w8 per-op test for gelu (#19598) Summary: Add int16 activation / int8 weight (a16w8) quantization tests for `aten.gelu` on Ethos-U55 and Ethos-U85. ## Changes - Add `test_gelu_a16w8_u55_INT` using `EthosU55PipelineINT` with `a16w8_quantization=True, symmetric_io_quantization=True, qtol=128, epsilon=2**-16`, reusing existing `Gelu.test_data` parameters (12 test configurations covering both \`none\` and \`tanh\` approximation modes) - Add `test_gelu_a16w8_u85_INT` using `EthosU85PipelineINT` with same kwargs - Register `ops/test_gelu.py` in `fbcode/` and `xplat/` `targets.bzl` bypass-pytorch-oss-checks Reviewed By: Ninja91 Differential Revision: D104532359 --- backends/arm/test/ops/test_gelu.py | 35 ++++++++++++++++++++++++++++++ backends/arm/test/targets.bzl | 1 + 2 files changed, 36 insertions(+) diff --git a/backends/arm/test/ops/test_gelu.py b/backends/arm/test/ops/test_gelu.py index 82e3cb1e53e..84626c70b4d 100644 --- a/backends/arm/test/ops/test_gelu.py +++ b/backends/arm/test/ops/test_gelu.py @@ -6,6 +6,7 @@ from typing import Tuple import torch + from executorch.backends.arm.test import common from executorch.backends.arm.test.tester.test_pipeline import ( EthosU55PipelineINT, @@ -176,3 +177,37 @@ def test_gelu_vgf_quant(test_data: input_t1): quantize=True, ) pipeline.run() + + +@common.parametrize("test_data", Gelu.test_data) +@common.XfailIfNoCorstone300 +def test_gelu_a16w8_u55_INT(test_data: input_t1): + approximate, data = test_data() + pipeline = EthosU55PipelineINT[input_t1]( + Gelu(approximate), + (data,), + Gelu.aten_op, + Gelu.exir_op, + a16w8_quantization=True, + symmetric_io_quantization=True, + qtol=128, + epsilon=2**-16, + ) + pipeline.run() + + +@common.parametrize("test_data", Gelu.test_data) +@common.XfailIfNoCorstone320 +def test_gelu_a16w8_u85_INT(test_data: input_t1): + approximate, data = test_data() + pipeline = EthosU85PipelineINT[input_t1]( + Gelu(approximate), + (data,), + Gelu.aten_op, + Gelu.exir_op, + a16w8_quantization=True, + symmetric_io_quantization=True, + qtol=128, + epsilon=2**-16, + ) + pipeline.run() diff --git a/backends/arm/test/targets.bzl b/backends/arm/test/targets.bzl index 76d8393d83d..bf0788c129c 100644 --- a/backends/arm/test/targets.bzl +++ b/backends/arm/test/targets.bzl @@ -41,6 +41,7 @@ def define_arm_tests(): "ops/test_mean_dim.py", "ops/test_var.py", "ops/test_conv1d.py", + "ops/test_gelu.py", ] # Quantization From f3387d0dd7e063d91f7f14b55a7816b748726362 Mon Sep 17 00:00:00 2001 From: Tom Allsop <72802373+tom-arm@users.noreply.github.com> Date: Tue, 19 May 2026 17:27:48 +0100 Subject: [PATCH 48/91] Arm backend: Add Qwen3-VL_2B_IT FP32 layer tests (#19628) Change-Id: I62d3848e0a6546e21d508b4ed565c2403b63f72d cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani --------- Signed-off-by: Tom Allsop Co-authored-by: Baris Demir --- backends/arm/MODELS.md | 1 + .../models/Qwen3_VL/qwen3_vl_test_config.py | 64 +++ .../models/Qwen3_VL/test_qwen3_vl_layers.py | 479 ++++++++++++++++++ 3 files changed, 544 insertions(+) create mode 100644 backends/arm/test/models/Qwen3_VL/qwen3_vl_test_config.py create mode 100644 backends/arm/test/models/Qwen3_VL/test_qwen3_vl_layers.py diff --git a/backends/arm/MODELS.md b/backends/arm/MODELS.md index 6f84d694297..bcb410764bf 100644 --- a/backends/arm/MODELS.md +++ b/backends/arm/MODELS.md @@ -10,6 +10,7 @@ - Inception v3 (IC3) - Llama - Gemma3n +- Qwen3-VL - Long Short-Term Memory (LSTM) - MobileNet V1 0.25 - MobileNet v2 (MV2) diff --git a/backends/arm/test/models/Qwen3_VL/qwen3_vl_test_config.py b/backends/arm/test/models/Qwen3_VL/qwen3_vl_test_config.py new file mode 100644 index 00000000000..4bf47826ea6 --- /dev/null +++ b/backends/arm/test/models/Qwen3_VL/qwen3_vl_test_config.py @@ -0,0 +1,64 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from transformers.models.qwen3_vl.configuration_qwen3_vl import ( + Qwen3VLConfig, + Qwen3VLTextConfig, + Qwen3VLVisionConfig, +) + + +def get_qwen3_vl_2b_instruct_checkpoint_config() -> Qwen3VLConfig: + text_config = Qwen3VLTextConfig( + attention_bias=False, + attention_dropout=0.0, + bos_token_id=151643, # type: ignore[call-arg] + dtype="bfloat16", + eos_token_id=151645, # type: ignore[call-arg] + head_dim=128, + hidden_act="silu", + hidden_size=2048, + initializer_range=0.02, + intermediate_size=6144, + max_position_embeddings=262144, + num_attention_heads=16, + num_hidden_layers=28, + num_key_value_heads=8, + rms_norm_eps=1e-6, + rope_parameters={ + "mrope_interleaved": True, # type: ignore[dict-item] + "mrope_section": [24, 20, 20], # type: ignore[dict-item] + "rope_type": "default", # type: ignore[dict-item] + "rope_theta": 5_000_000, # type: ignore[dict-item] + }, + tie_word_embeddings=True, # type: ignore[call-arg] + use_cache=True, + vocab_size=151936, + ) + vision_config = Qwen3VLVisionConfig( + deepstack_visual_indexes=[5, 11, 17], + depth=24, + hidden_act="gelu_pytorch_tanh", + hidden_size=1024, + in_channels=3, + initializer_range=0.02, + intermediate_size=4096, + num_heads=16, + num_position_embeddings=2304, + out_hidden_size=2048, + patch_size=16, + spatial_merge_size=2, + temporal_patch_size=2, + ) + return Qwen3VLConfig( + architectures=["Qwen3VLForConditionalGeneration"], + image_token_id=151655, + text_config=text_config.to_dict(), + tie_word_embeddings=True, + video_token_id=151656, + vision_config=vision_config.to_dict(), + vision_end_token_id=151653, + vision_start_token_id=151652, + ) diff --git a/backends/arm/test/models/Qwen3_VL/test_qwen3_vl_layers.py b/backends/arm/test/models/Qwen3_VL/test_qwen3_vl_layers.py new file mode 100644 index 00000000000..77b2739167a --- /dev/null +++ b/backends/arm/test/models/Qwen3_VL/test_qwen3_vl_layers.py @@ -0,0 +1,479 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Tuple + +import torch +from executorch.backends.arm.test import common +from executorch.backends.arm.test.models.Qwen3_VL.qwen3_vl_test_config import ( + get_qwen3_vl_2b_instruct_checkpoint_config, +) +from executorch.backends.arm.test.tester.test_pipeline import ( + TosaPipelineFP, + VgfPipeline, +) +from transformers.models.qwen3_vl.modeling_qwen3_vl import ( + apply_rotary_pos_emb, + apply_rotary_pos_emb_vision, + Qwen3VLTextAttention, + Qwen3VLTextDecoderLayer, + Qwen3VLTextMLP, + Qwen3VLTextRMSNorm, + Qwen3VLTextRotaryEmbedding, + Qwen3VLVisionAttention, + Qwen3VLVisionBlock, + Qwen3VLVisionMLP, + Qwen3VLVisionPatchEmbed, + Qwen3VLVisionPatchMerger, + Qwen3VLVisionRotaryEmbedding, +) + +input_t = Tuple[torch.Tensor, ...] + + +def _make_qwen3_vl_2b_instruct_layer_config(): + config = get_qwen3_vl_2b_instruct_checkpoint_config() + config.text_config._attn_implementation = "sdpa" + config.vision_config._attn_implementation = "sdpa" + return config + + +def _make_text_position_ids( + batch_size: int, seq_length: int, device: torch.device +) -> torch.Tensor: + return torch.arange(seq_length, device=device).unsqueeze(0).repeat(batch_size, 1) + + +def _make_causal_mask( + batch_size: int, seq_length: int, device: torch.device +) -> torch.Tensor: + mask = torch.full( + (seq_length, seq_length), torch.finfo(torch.float32).min, device=device + ) + mask = torch.triu(mask, diagonal=1) + return mask.unsqueeze(0).unsqueeze(0).repeat(batch_size, 1, 1, 1) + + +def _make_image_grid_thw(device: torch.device) -> torch.Tensor: + return torch.tensor([[1, 4, 4]], dtype=torch.long, device=device) + + +def _make_pixel_values(config, device: torch.device) -> torch.Tensor: + grid_thw = _make_image_grid_thw(device) + patch_volume = ( + config.vision_config.in_channels + * config.vision_config.temporal_patch_size + * config.vision_config.patch_size + * config.vision_config.patch_size + ) + num_patches = int(torch.prod(grid_thw[0]).item()) + return torch.randn(num_patches, patch_volume, device=device) + + +def _make_vision_position_embeddings( + config, device: torch.device +) -> tuple[torch.Tensor, torch.Tensor]: + grid_thw = _make_image_grid_thw(device) + num_patches = int(torch.prod(grid_thw[0]).item()) + head_dim = config.vision_config.hidden_size // config.vision_config.num_heads + return ( + torch.randn(num_patches, head_dim, device=device), + torch.randn(num_patches, head_dim, device=device), + ) + + +def _make_vision_cu_seqlens(device: torch.device) -> torch.Tensor: + grid_thw = _make_image_grid_thw(device) + num_patches = int(torch.prod(grid_thw[0]).item()) + return torch.tensor([0, num_patches], dtype=torch.int32, device=device) + + +class Qwen3VLTestModule(torch.nn.Module): + @classmethod + def prepare_model_and_inputs(cls): + raise NotImplementedError + + +class Qwen3VLVisionMLPModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.mlp = Qwen3VLVisionMLP(config.vision_config) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return self.mlp(hidden_states) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn(16, config.vision_config.hidden_size) + return model, (hidden_states,) + + +class VisionPatchEmbedModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.patch_embed = Qwen3VLVisionPatchEmbed(config.vision_config) + + def forward(self, pixel_values: torch.Tensor) -> torch.Tensor: + return self.patch_embed(pixel_values) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + return model, (_make_pixel_values(config, torch.device("cpu")),) + + +class VisionRotaryEmbeddingModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + head_dim = config.vision_config.hidden_size // config.vision_config.num_heads + self.rotary = Qwen3VLVisionRotaryEmbedding(head_dim // 2) + + def forward(self, max_hw: int) -> torch.Tensor: + return self.rotary(max_hw) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + grid_thw = _make_image_grid_thw(torch.device("cpu")) + max_hw = int(grid_thw[:, 1:].max().item()) + model = cls(config).eval() + return model, (max_hw,) + + +class VisionRotaryApplyModel(Qwen3VLTestModule): + def forward( + self, q: torch.Tensor, k: torch.Tensor, cos: torch.Tensor, sin: torch.Tensor + ) -> torch.Tensor: + q_embed, k_embed = apply_rotary_pos_emb_vision(q, k, cos, sin) + return q_embed + k_embed + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls().eval() + cos, sin = _make_vision_position_embeddings(config, torch.device("cpu")) + head_dim = config.vision_config.hidden_size // config.vision_config.num_heads + q = torch.randn(cos.shape[0], config.vision_config.num_heads, head_dim) + k = torch.randn(cos.shape[0], config.vision_config.num_heads, head_dim) + return model, (q, k, cos, sin) + + +class VisionAttentionModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.attn = Qwen3VLVisionAttention(config.vision_config) + + def forward( + self, + hidden_states: torch.Tensor, + cu_seqlens: torch.Tensor, + cos: torch.Tensor, + sin: torch.Tensor, + ) -> torch.Tensor: + return self.attn( + hidden_states, + cu_seqlens=cu_seqlens, + position_embeddings=(cos, sin), + ) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = model.attn.qkv.weight.new_empty( + 16, config.vision_config.hidden_size + ).normal_() + cos, sin = _make_vision_position_embeddings(config, hidden_states.device) + cu_seqlens = _make_vision_cu_seqlens(hidden_states.device) + return model, (hidden_states, cu_seqlens, cos, sin) + + +class VisionBlockModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.block = Qwen3VLVisionBlock(config.vision_config) + + def forward( + self, + hidden_states: torch.Tensor, + cu_seqlens: torch.Tensor, + cos: torch.Tensor, + sin: torch.Tensor, + ) -> torch.Tensor: + return self.block( + hidden_states, + cu_seqlens=cu_seqlens, + position_embeddings=(cos, sin), + ) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn(16, config.vision_config.hidden_size) + cos, sin = _make_vision_position_embeddings(config, hidden_states.device) + cu_seqlens = _make_vision_cu_seqlens(hidden_states.device) + return model, (hidden_states, cu_seqlens, cos, sin) + + +class VisionPatchMergerModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.merger = Qwen3VLVisionPatchMerger(config.vision_config) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return self.merger(hidden_states) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn( + config.vision_config.spatial_merge_size**2, + config.vision_config.hidden_size, + ) + return model, (hidden_states,) + + +class TextRMSNormModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.norm = Qwen3VLTextRMSNorm( + config.text_config.hidden_size, eps=config.text_config.rms_norm_eps + ) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return self.norm(hidden_states) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn(2, 8, config.text_config.hidden_size) + return model, (hidden_states,) + + +class TextRotaryEmbeddingModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.rotary = Qwen3VLTextRotaryEmbedding(config.text_config) + + def forward( + self, hidden_states: torch.Tensor, position_ids: torch.Tensor + ) -> torch.Tensor: + cos, sin = self.rotary(hidden_states, position_ids) + return cos + sin + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn(2, 8, config.text_config.hidden_size) + position_ids = _make_text_position_ids(2, 8, hidden_states.device) + return model, (hidden_states, position_ids) + + +class TextRotaryApplyModel(Qwen3VLTestModule): + def forward( + self, q: torch.Tensor, k: torch.Tensor, cos: torch.Tensor, sin: torch.Tensor + ) -> torch.Tensor: + q_embed, k_embed = apply_rotary_pos_emb(q, k, cos, sin) + return q_embed.mean(dim=1) + k_embed.mean(dim=1) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls().eval() + hidden_states = torch.randn(2, 8, config.text_config.hidden_size) + position_ids = _make_text_position_ids(2, 8, hidden_states.device) + cos, sin = Qwen3VLTextRotaryEmbedding(config.text_config)( + hidden_states, position_ids + ) + q = torch.randn( + 2, + config.text_config.num_attention_heads, + 8, + config.text_config.head_dim, + ) + k = torch.randn( + 2, + config.text_config.num_key_value_heads, + 8, + config.text_config.head_dim, + ) + return model, (q, k, cos, sin) + + +class TextAttentionModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.attn = Qwen3VLTextAttention(config.text_config, layer_idx=0) + self.rotary = Qwen3VLTextRotaryEmbedding(config.text_config) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: torch.Tensor, + position_ids: torch.Tensor, + ) -> torch.Tensor: + cos, sin = self.rotary(hidden_states, position_ids) + attn_output, _ = self.attn( + hidden_states=hidden_states, + position_embeddings=(cos, sin), + attention_mask=attention_mask, + ) + return attn_output + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn(2, 8, config.text_config.hidden_size) + attention_mask = _make_causal_mask(2, 8, hidden_states.device) + position_ids = _make_text_position_ids(2, 8, hidden_states.device) + return model, (hidden_states, attention_mask, position_ids) + + +class QKNormModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.attn = Qwen3VLTextAttention(config.text_config, layer_idx=0) + + def forward(self, q_states: torch.Tensor, k_states: torch.Tensor) -> torch.Tensor: + q_states = self.attn.q_norm(q_states) + k_states = self.attn.k_norm(k_states) + return q_states.mean(dim=(-1, -2)) + k_states.mean(dim=(-1, -2)) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + q_states = torch.randn( + 2, + 8, + config.text_config.num_attention_heads, + config.text_config.head_dim, + ) + k_states = torch.randn( + 2, + 8, + config.text_config.num_key_value_heads, + config.text_config.head_dim, + ) + return model, (q_states, k_states) + + +class TextMLPModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.mlp = Qwen3VLTextMLP(config.text_config) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return self.mlp(hidden_states) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn(2, 8, config.text_config.hidden_size) + return model, (hidden_states,) + + +class TextDecoderLayerModel(Qwen3VLTestModule): + def __init__(self, config) -> None: + super().__init__() + self.layer = Qwen3VLTextDecoderLayer(config.text_config, layer_idx=0) + self.rotary = Qwen3VLTextRotaryEmbedding(config.text_config) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: torch.Tensor, + position_ids: torch.Tensor, + ) -> torch.Tensor: + cos, sin = self.rotary(hidden_states, position_ids) + return self.layer( + hidden_states=hidden_states, + attention_mask=attention_mask, + position_ids=position_ids, + position_embeddings=(cos, sin), + ) + + @classmethod + def prepare_model_and_inputs(cls): + config = _make_qwen3_vl_2b_instruct_layer_config() + model = cls(config).eval() + hidden_states = torch.randn(2, 8, config.text_config.hidden_size) + attention_mask = _make_causal_mask(2, 8, hidden_states.device) + position_ids = _make_text_position_ids(2, 8, hidden_states.device) + return model, (hidden_states, attention_mask, position_ids) + + +@dataclass(frozen=True) +class Qwen3VLTestCase: + model_cls: type[Qwen3VLTestModule] + transform_passes: tuple = field(default_factory=tuple) + + +TOSA_FP_TEST_CASES: dict[str, Qwen3VLTestCase] = { + "vision_mlp": Qwen3VLTestCase(model_cls=Qwen3VLVisionMLPModel), + "vision_patch_embed": Qwen3VLTestCase(model_cls=VisionPatchEmbedModel), + "vision_rotary_embedding": Qwen3VLTestCase(model_cls=VisionRotaryEmbeddingModel), + "vision_rotary_apply": Qwen3VLTestCase(model_cls=VisionRotaryApplyModel), + "vision_attention": Qwen3VLTestCase(model_cls=VisionAttentionModel), + "vision_block": Qwen3VLTestCase(model_cls=VisionBlockModel), + "vision_patch_merger": Qwen3VLTestCase(model_cls=VisionPatchMergerModel), + "text_rms_norm": Qwen3VLTestCase(model_cls=TextRMSNormModel), + "text_rotary_embedding": Qwen3VLTestCase(model_cls=TextRotaryEmbeddingModel), + "text_rotary_apply": Qwen3VLTestCase(model_cls=TextRotaryApplyModel), + "text_attention": Qwen3VLTestCase(model_cls=TextAttentionModel), + "qk_norm": Qwen3VLTestCase(model_cls=QKNormModel), + "text_mlp": Qwen3VLTestCase(model_cls=TextMLPModel), + "text_decoder_layer": Qwen3VLTestCase(model_cls=TextDecoderLayerModel), +} + +VGF_NO_QUANT_TEST_CASES: dict[str, Qwen3VLTestCase] = TOSA_FP_TEST_CASES + + +@common.parametrize( + "test_case", + TOSA_FP_TEST_CASES, +) +def test_qwen3_vl_tosa_FP(test_case: Qwen3VLTestCase): + model, inputs = test_case.model_cls.prepare_model_and_inputs() + with torch.no_grad(): + pipeline = TosaPipelineFP[input_t]( + model, + inputs, + aten_op=[], + exir_op=[], + transform_passes=list(test_case.transform_passes), + ) + pipeline.run() + + +@common.SkipIfNoModelConverter +@common.parametrize( + "test_case", + VGF_NO_QUANT_TEST_CASES, +) +def test_qwen3_vl_vgf_no_quant(test_case: Qwen3VLTestCase): + model, inputs = test_case.model_cls.prepare_model_and_inputs() + with torch.no_grad(): + pipeline = VgfPipeline[input_t]( + model, + inputs, + aten_op=[], + exir_op=[], + quantize=False, + transform_passes=list(test_case.transform_passes), + ) + pipeline.run() From 1ec6812ce05004325c71c8a187418043153efc52 Mon Sep 17 00:00:00 2001 From: RJ Ascani Date: Tue, 19 May 2026 12:04:32 -0700 Subject: [PATCH 49/91] Wire target_config Buck deps on cmsis_nn_py Differential Revision: D105704649 Pull Request resolved: https://github.com/pytorch/executorch/pull/19677 --- backends/cortex_m/TARGETS | 10 ++++++++++ backends/cortex_m/passes/BUCK | 2 ++ 2 files changed, 12 insertions(+) diff --git a/backends/cortex_m/TARGETS b/backends/cortex_m/TARGETS index 98d006cb48a..b84add05516 100644 --- a/backends/cortex_m/TARGETS +++ b/backends/cortex_m/TARGETS @@ -19,3 +19,13 @@ python_library( "fbsource//third-party/pypi/tabulate:tabulate", ], ) + +python_library( + name = "target_config", + srcs = [ + "target_config.py", + ], + deps = [ + "fbsource//third-party/cmsis-nn:cmsis_nn_py", + ], +) diff --git a/backends/cortex_m/passes/BUCK b/backends/cortex_m/passes/BUCK index 9243cc986e8..4e49c8cd319 100644 --- a/backends/cortex_m/passes/BUCK +++ b/backends/cortex_m/passes/BUCK @@ -31,6 +31,7 @@ fbcode_target(_kind = runtime.python_library, "activation_fusion_pass.py", "clamp_hardswish_pass.py", "convert_to_cortex_m_pass.py", + "cortex_m_pass.py", "cortex_m_pass_manager.py", "decompose_hardswish_pass.py", "decompose_mean_pass.py", @@ -39,6 +40,7 @@ fbcode_target(_kind = runtime.python_library, deps=[ "//caffe2:torch", "//executorch/backends/arm/_passes:passes", + "//executorch/backends/cortex_m:target_config", "//executorch/backends/cortex_m/ops:ops", "//executorch/backends/cortex_m/passes:passes_utils", "//executorch/backends/cortex_m/passes:replace_quant_nodes_pass", From 6bc176236930c4ebbd11b95b372acee1972c4cfc Mon Sep 17 00:00:00 2001 From: Scott Roy <161522778+metascroy@users.noreply.github.com> Date: Tue, 19 May 2026 12:27:57 -0700 Subject: [PATCH 50/91] Migrate broken tests to ET_SKIP_IF macro (#19659) Differential Revision: D105645070 Pull Request resolved: https://github.com/pytorch/executorch/pull/19659 --- .../UnaryUfuncRealHBBF16ToFloatHBF16Test.cpp | 19 +++--- .../UnaryUfuncRealHBBF16ToFloatHBF16Test.h | 1 + kernels/test/op__clone_dim_order_test.cpp | 27 ++++---- kernels/test/op__empty_dim_order_test.cpp | 7 ++- kernels/test/op__to_dim_order_copy_test.cpp | 25 ++++---- kernels/test/op_add_test.cpp | 8 +-- kernels/test/op_addmm_test.cpp | 21 +++---- kernels/test/op_amax_test.cpp | 19 +++--- kernels/test/op_amin_test.cpp | 19 +++--- kernels/test/op_any_test.cpp | 7 ++- kernels/test/op_arange_test.cpp | 25 ++++---- kernels/test/op_as_strided_copy_test.cpp | 13 ++-- kernels/test/op_bitwise_not_test.cpp | 7 ++- kernels/test/op_bmm_test.cpp | 13 ++-- kernels/test/op_cat_test.cpp | 37 +++++------ kernels/test/op_clamp_test.cpp | 7 ++- kernels/test/op_constant_pad_nd_test.cpp | 7 ++- kernels/test/op_convolution_test.cpp | 7 ++- kernels/test/op_copy_test.cpp | 25 ++++---- kernels/test/op_cumsum_test.cpp | 7 ++- kernels/test/op_detach_copy_test.cpp | 7 ++- kernels/test/op_div_test.cpp | 7 ++- kernels/test/op_embedding_test.cpp | 13 ++-- kernels/test/op_empty_test.cpp | 7 ++- kernels/test/op_eq_test.cpp | 19 +++--- kernels/test/op_expand_copy_test.cpp | 25 ++++---- kernels/test/op_fft_c2r_test.cpp | 15 +++-- kernels/test/op_fft_r2c_test.cpp | 22 +++---- kernels/test/op_fill_test.cpp | 7 ++- kernels/test/op_floor_divide_test.cpp | 7 ++- kernels/test/op_full_like_test.cpp | 7 ++- kernels/test/op_gather_test.cpp | 7 ++- kernels/test/op_ge_test.cpp | 19 +++--- kernels/test/op_gelu_test.cpp | 5 +- kernels/test/op_glu_test.cpp | 7 ++- kernels/test/op_gt_test.cpp | 19 +++--- kernels/test/op_index_put_test.cpp | 13 ++-- kernels/test/op_index_select_test.cpp | 37 +++++------ kernels/test/op_index_test.cpp | 17 +++--- kernels/test/op_le_test.cpp | 19 +++--- kernels/test/op_lift_fresh_copy_test.cpp | 7 ++- kernels/test/op_linear_test.cpp | 21 +++---- kernels/test/op_log_softmax_test.cpp | 44 ++++++------- kernels/test/op_logical_not_test.cpp | 7 ++- kernels/test/op_logit_test.cpp | 7 ++- kernels/test/op_lt_test.cpp | 19 +++--- kernels/test/op_masked_fill_test.cpp | 7 ++- kernels/test/op_max_test.cpp | 19 +++--- kernels/test/op_mean_test.cpp | 25 ++++---- kernels/test/op_min_test.cpp | 19 +++--- kernels/test/op_minimum_test.cpp | 19 +++--- kernels/test/op_mm_test.cpp | 21 +++---- kernels/test/op_mul_test.cpp | 13 ++-- kernels/test/op_native_layer_norm_test.cpp | 7 ++- kernels/test/op_ne_test.cpp | 13 ++-- kernels/test/op_permute_copy_test.cpp | 7 ++- kernels/test/op_repeat_test.cpp | 31 +++++----- kernels/test/op_rsub_test.cpp | 19 +++--- kernels/test/op_scalar_tensor_test.cpp | 35 +++++------ kernels/test/op_scatter_add_test.cpp | 19 +++--- kernels/test/op_scatter_test.cpp | 7 ++- kernels/test/op_select_copy_test.cpp | 31 +++++----- kernels/test/op_select_scatter_test.cpp | 13 ++-- kernels/test/op_sigmoid_test.cpp | 13 ++-- kernels/test/op_sign_test.cpp | 13 ++-- kernels/test/op_slice_copy_test.cpp | 27 ++++---- kernels/test/op_slice_scatter_test.cpp | 13 ++-- kernels/test/op_softmax_test.cpp | 13 ++-- kernels/test/op_split_copy_test.cpp | 9 +-- kernels/test/op_squeeze_copy_test.cpp | 13 ++-- kernels/test/op_stack_test.cpp | 31 +++++----- kernels/test/op_sub_test.cpp | 8 +-- kernels/test/op_sum_test.cpp | 19 +++--- kernels/test/op_t_copy_test.cpp | 25 ++++---- kernels/test/op_to_copy_test.cpp | 25 ++++---- kernels/test/op_transpose_copy_test.cpp | 19 +++--- kernels/test/op_tril_test.cpp | 13 ++-- kernels/test/op_unsqueeze_copy_test.cpp | 25 ++++---- kernels/test/op_upsample_bilinear2d_test.cpp | 14 ++--- kernels/test/op_upsample_nearest2d_test.cpp | 8 +-- kernels/test/op_var_mean_test.cpp | 61 ++++++++++--------- kernels/test/op_var_test.cpp | 31 +++++----- kernels/test/op_view_copy_test.cpp | 13 ++-- kernels/test/op_where_test.cpp | 13 ++-- kernels/test/op_zeros_test.cpp | 7 ++- 85 files changed, 733 insertions(+), 670 deletions(-) diff --git a/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.cpp b/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.cpp index 74ad17df789..243e69b8c8d 100644 --- a/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.cpp +++ b/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.cpp @@ -7,6 +7,7 @@ */ #include +#include namespace torch::executor::testing { void UnaryUfuncRealHBBF16ToFloatHBF16Test::test_bool_input() { @@ -25,9 +26,9 @@ void UnaryUfuncRealHBBF16ToFloatHBF16Test::test_bool_input() { } void UnaryUfuncRealHBBF16ToFloatHBF16Test::test_mismatched_input_shapes_dies() { - if (get_supported_features()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched input shapes"; - } + ET_SKIP_IF( + get_supported_features()->is_aten, + "ATen kernel can handle mismatched input shapes"); TensorFactory tf; executorch::aten::Tensor a = tf.ones(/*sizes=*/{4}); @@ -122,9 +123,9 @@ void UnaryUfuncRealHBBF16ToFloatHBF16Test:: void UnaryUfuncRealHBBF16ToFloatHBF16Test:: test_all_real_input_float_output_unbound_dynamism_support() { - if (!get_supported_features()->is_aten) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !get_supported_features()->is_aten, + "Dynamic shape unbound not supported"); #define TEST_ENTRY(ctype, dtype) \ test_floating_point_op_out< \ executorch::aten::ScalarType::dtype, \ @@ -136,9 +137,9 @@ void UnaryUfuncRealHBBF16ToFloatHBF16Test:: void UnaryUfuncRealHBBF16ToFloatHBF16Test:: test_all_real_input_double_output_unbound_dynamism_support() { - if (!get_supported_features()->is_aten) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !get_supported_features()->is_aten, + "Dynamic shape unbound not supported"); #define TEST_ENTRY(ctype, dtype) \ test_floating_point_op_out< \ executorch::aten::ScalarType::dtype, \ diff --git a/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.h b/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.h index d1e812ec2c2..fb2eada0a0f 100644 --- a/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.h +++ b/kernels/test/UnaryUfuncRealHBBF16ToFloatHBF16Test.h @@ -10,6 +10,7 @@ #include #include +#include #include #include #include diff --git a/kernels/test/op__clone_dim_order_test.cpp b/kernels/test/op__clone_dim_order_test.cpp index f009ce1b195..ad4c7479185 100644 --- a/kernels/test/op__clone_dim_order_test.cpp +++ b/kernels/test/op__clone_dim_order_test.cpp @@ -11,6 +11,7 @@ #include // Declares the operator. #include #include +#include #include #include #include @@ -155,9 +156,9 @@ TEST_F(OpDimOrderCloneTest, AllDtypesSupported) { // Cloning with mismatched input and output tensor shapes should fail. TEST_F(OpDimOrderCloneTest, MismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "Skipping: ATen kernel supports mismatched sizes."; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "Skipping: ATen kernel supports mismatched sizes."); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros({3, 2, 1, 1}); @@ -178,10 +179,9 @@ TEST_F(OpDimOrderCloneTest, MismatchedSizesDie) { // Cloning with an unsupported memory format should fail. TEST_F(OpDimOrderCloneTest, MismatchedMemoryFormatDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() - << "Skipping: ATen kernel supports non-contiguous memory formats."; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "Skipping: ATen kernel supports non-contiguous memory formats."); TensorFactory tf_in; TensorFactory tf_out; Tensor input = @@ -210,10 +210,9 @@ TEST_F(OpDimOrderCloneTest, MismatchedMemoryFormatDies) { // Cloning with non‑blocking=true should fail because portable kernels only // support blocking. TEST_F(OpDimOrderCloneTest, MismatchedBlockingDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() - << "Skipping: ATen kernel supports non-blocking data transfer."; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "Skipping: ATen kernel supports non-blocking data transfer."); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros(/*sizes=*/{3, 1, 1, 2}); @@ -244,9 +243,9 @@ TEST_F(OpDimOrderCloneTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpDimOrderCloneTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Skipping: Dynamic shape unbound not supported."; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Skipping: Dynamic shape unbound not supported."); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op__empty_dim_order_test.cpp b/kernels/test/op__empty_dim_order_test.cpp index b3534948c8d..9a1b2ba62e1 100644 --- a/kernels/test/op__empty_dim_order_test.cpp +++ b/kernels/test/op__empty_dim_order_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -147,9 +148,9 @@ TEST_F(OpEmptyDimOrderOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpEmptyDimOrderOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); TensorFactory tf; int64_t sizes[2] = {3, 2}; diff --git a/kernels/test/op__to_dim_order_copy_test.cpp b/kernels/test/op__to_dim_order_copy_test.cpp index c2458ae6540..2d562defce7 100644 --- a/kernels/test/op__to_dim_order_copy_test.cpp +++ b/kernels/test/op__to_dim_order_copy_test.cpp @@ -14,6 +14,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -459,9 +460,9 @@ TEST_F(OpToDimOrderCopyTest, HardcodeFloatConvertInt) { } TEST_F(OpToDimOrderCopyTest, MismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched sizes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched sizes"); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros({3, 2, 1, 1}); @@ -484,9 +485,9 @@ TEST_F(OpToDimOrderCopyTest, MismatchedSizesDie) { // should not be allowed. The function is expected death if using the illegal // memory format. TEST_F(OpToDimOrderCopyTest, MismatchedMemoryFormatDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle non contiguous memory formats"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle non contiguous memory formats"); TensorFactory tf_in; TensorFactory tf_out; Tensor input = @@ -514,9 +515,9 @@ TEST_F(OpToDimOrderCopyTest, MismatchedMemoryFormatDies) { // Only blocking data transfer supported TEST_F(OpToDimOrderCopyTest, MismatchedBlockingDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle non blocking data transfer"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle non blocking data transfer"); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros(/*sizes=*/{3, 1, 1, 2}); @@ -547,9 +548,9 @@ TEST_F(OpToDimOrderCopyTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpToDimOrderCopyTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_add_test.cpp b/kernels/test/op_add_test.cpp index 60faa4efb47..bf795d3c47a 100644 --- a/kernels/test/op_add_test.cpp +++ b/kernels/test/op_add_test.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -686,10 +687,9 @@ TEST_F(OpAddOutKernelTest, MismatchedNonBroadcastableInputShapesDies) { } TEST_F(OpAddOutKernelTest, MismatchedOutputShapesDies) { - if (SupportedFeatures::get()->output_resize) { - GTEST_SKIP() - << "The current kernel supports implicitly resizing output tensor"; - } + ET_SKIP_IF( + SupportedFeatures::get()->output_resize, + "The current kernel supports implicitly resizing output tensor"); TensorFactory tf; diff --git a/kernels/test/op_addmm_test.cpp b/kernels/test/op_addmm_test.cpp index ff02d9c0a79..858c46323c2 100644 --- a/kernels/test/op_addmm_test.cpp +++ b/kernels/test/op_addmm_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -42,11 +43,9 @@ class OpAddmmOutTest : public OperatorTest { TensorFactory tf; if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - if (DTYPE == ScalarType::Half) { - GTEST_SKIP() - << "skip Half because torch::executor::aten::mm_out does not support Half"; - return; - } + ET_SKIP_IF( + DTYPE == ScalarType::Half, + "skip Half because torch::executor::aten::mm_out does not support Half"); } // matmul gives 4 * 2 * 3 = 24, α * 24 = 48, 48 + β * self = 51 @@ -205,9 +204,9 @@ TEST_F(OpAddmmOutTest, MismatchedDimensionSizeDies) { Tensor right_out = tf.ones({2, 2}); Tensor wrong_out = tf.ones({2, 2, 3}); - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimensions"); ET_EXPECT_KERNEL_FAILURE( context_, @@ -228,9 +227,9 @@ TEST_F(OpAddmmOutTest, WrongOutShapeDies) { Tensor right_out = tf.ones({10, 4}); Tensor wrong_out = tf.ones({7, 5}); - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong out shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong out shape"); ET_EXPECT_KERNEL_FAILURE( context_, op_addmm_out(self, x, y, Scalar(1), Scalar(1), wrong_out)); diff --git a/kernels/test/op_amax_test.cpp b/kernels/test/op_amax_test.cpp index 703495584ce..5c6fbc54987 100644 --- a/kernels/test/op_amax_test.cpp +++ b/kernels/test/op_amax_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -260,9 +261,9 @@ void OpAmaxOutTest::test_amax_out_dtype() { } TEST_F(OpAmaxOutTest, InvalidDimensionListDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) \ test_amax_out_invalid_dimensions(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); @@ -270,9 +271,9 @@ TEST_F(OpAmaxOutTest, InvalidDimensionListDies) { } TEST_F(OpAmaxOutTest, InvalidShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) \ test_amax_out_invalid_shape(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); @@ -280,9 +281,9 @@ TEST_F(OpAmaxOutTest, InvalidShapeDies) { } TEST_F(OpAmaxOutTest, MismatchedDTypesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_int; diff --git a/kernels/test/op_amin_test.cpp b/kernels/test/op_amin_test.cpp index dc41676c03a..564f444e268 100644 --- a/kernels/test/op_amin_test.cpp +++ b/kernels/test/op_amin_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -259,9 +260,9 @@ void OpAminOutTest::test_amin_out_dtype() { } TEST_F(OpAminOutTest, InvalidDimensionListDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) \ test_amin_out_invalid_dimensions(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); @@ -269,9 +270,9 @@ TEST_F(OpAminOutTest, InvalidDimensionListDies) { } TEST_F(OpAminOutTest, InvalidShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) \ test_amin_out_invalid_shape(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); @@ -279,9 +280,9 @@ TEST_F(OpAminOutTest, InvalidShapeDies) { } TEST_F(OpAminOutTest, MismatchedDTypesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_int; diff --git a/kernels/test/op_any_test.cpp b/kernels/test/op_any_test.cpp index 1853b96ab7d..cb831bffa8a 100644 --- a/kernels/test/op_any_test.cpp +++ b/kernels/test/op_any_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -99,9 +100,9 @@ class OpAnyOutTest : public OperatorTest { }; TEST_F(OpAnyOutTest, MismatchedDimensionsDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimensions"); TensorFactory tff; const std::vector size{2, 2}; diff --git a/kernels/test/op_arange_test.cpp b/kernels/test/op_arange_test.cpp index e7b9ae7c9ea..82bc46a1858 100644 --- a/kernels/test/op_arange_test.cpp +++ b/kernels/test/op_arange_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -114,9 +115,9 @@ TEST_F(OpArangeOutTest, FloatNumberNotEqualIntSupport) { } TEST_F(OpArangeOutTest, OutDimUnsupportedDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched out dim"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched out dim"); TensorFactory tf; Scalar end = Scalar(5); @@ -150,9 +151,9 @@ TEST_F(OpArangeOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpArangeOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "Dynamic Unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "Dynamic Unbound not supported"); TensorFactory tf; Tensor expected_result = tf.make({5}, {0, 1, 2, 3, 4}); @@ -196,9 +197,9 @@ TEST_F(OpArangeStartOutTest, FloatNumberNotEqualIntSupport) { } TEST_F(OpArangeStartOutTest, OutDimUnsupportedDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched out dim"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched out dim"); TensorFactory tf; Scalar start = Scalar(0); @@ -235,9 +236,9 @@ TEST_F(OpArangeStartOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpArangeStartOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "Dynamic Unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "Dynamic Unbound not supported"); TensorFactory tf; Tensor expected_result = tf.make({5}, {0, 1, 2, 3, 4}); diff --git a/kernels/test/op_as_strided_copy_test.cpp b/kernels/test/op_as_strided_copy_test.cpp index cb0191c69a8..e025c7afaf6 100644 --- a/kernels/test/op_as_strided_copy_test.cpp +++ b/kernels/test/op_as_strided_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -197,9 +198,9 @@ TEST_F(OpAsStridedCopyOutTest, AllScalarInputOutputSupport) { } TEST_F(OpAsStridedCopyOutTest, InvalidParametersDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle invalid parameter"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle invalid parameter"); #define TEST_ENTRY(ctype, dtype) \ test_as_strided_copy_out_invalid_parameters(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); @@ -326,9 +327,9 @@ TEST_F(OpAsStridedCopyOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpAsStridedCopyOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); /* %python out_args = "{1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_bitwise_not_test.cpp b/kernels/test/op_bitwise_not_test.cpp index 702486f0d2a..ddfb5b9c0d1 100644 --- a/kernels/test/op_bitwise_not_test.cpp +++ b/kernels/test/op_bitwise_not_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -96,9 +97,9 @@ TEST_F(OpBitwiseNotOutTest, BoolInputOutputSupport) { // Mismatched shape tests. TEST_F(OpBitwiseNotOutTest, MismatchedShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf; Tensor a = tf.ones(/*sizes=*/{4}); diff --git a/kernels/test/op_bmm_test.cpp b/kernels/test/op_bmm_test.cpp index c870c412035..eeb5d8d8458 100644 --- a/kernels/test/op_bmm_test.cpp +++ b/kernels/test/op_bmm_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -239,9 +240,9 @@ TEST_F(OpBmmOutTest, MismatchedDimensionsDies) { } TEST_F(OpBmmOutTest, MismatchedDimensionSizeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimension size"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimension size"); TensorFactory tf; Tensor x = tf.ones({2, 10, 3}); @@ -261,9 +262,9 @@ TEST_F(OpBmmOutTest, MismatchedDimensionSizeDies) { } TEST_F(OpBmmOutTest, WrongOutShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong out shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong out shape"); TensorFactory tf; Tensor x = tf.ones({2, 10, 3}); diff --git a/kernels/test/op_cat_test.cpp b/kernels/test/op_cat_test.cpp index 4ea131452c7..d3bda1e8abd 100644 --- a/kernels/test/op_cat_test.cpp +++ b/kernels/test/op_cat_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -178,9 +179,9 @@ TEST_F(OpCatOutTest, SmokeDim1) { } TEST_F(OpCatOutTest, SixteenBitFloatSupport) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "Test Half/BF16 support only for ExecuTorch mode"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "Test Half/BF16 support only for ExecuTorch mode"); test_16bit_dtype(); test_16bit_dtype(); } @@ -246,9 +247,9 @@ TEST_F(OpCatOutTest, AllDtypesSupported) { } TEST_F(OpCatOutTest, EmptyInputTensorShapeIgnored) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel doesn't ignore empty input tensor shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel doesn't ignore empty input tensor shape"); TensorFactory tf; // An empty tensor with a shape totally different from the non-empty inputs. @@ -330,9 +331,9 @@ TEST_F(OpCatOutTest, MismatchedDtypesDies) { } TEST_F(OpCatOutTest, MismatchedDimensionsDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimensions"); TensorFactory tf; Tensor out = tf.zeros({2, 2}); @@ -346,9 +347,9 @@ TEST_F(OpCatOutTest, MismatchedDimensionsDies) { } TEST_F(OpCatOutTest, MismatchedDimensionSizeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimension size"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimension size"); TensorFactory tf; Tensor out = tf.zeros({2, 2}); @@ -363,9 +364,9 @@ TEST_F(OpCatOutTest, MismatchedDimensionSizeDies) { } TEST_F(OpCatOutTest, WrongOutShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong out shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong out shape"); TensorFactory tf; // Should be {4, 3} to match the inputs when calling cat() with dim 0. @@ -440,9 +441,9 @@ TEST_F(OpCatOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpCatOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op_tensor_list_in) */ diff --git a/kernels/test/op_clamp_test.cpp b/kernels/test/op_clamp_test.cpp index aeb44f1d7ab..2962cb98963 100644 --- a/kernels/test/op_clamp_test.cpp +++ b/kernels/test/op_clamp_test.cpp @@ -12,6 +12,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -360,9 +361,9 @@ TEST_F(OpClampOutTest, DoubleTensors) { // TEST_F(OpClampOutTest, ByteTensorNegativeClampDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle negative clamp on byte tensor"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle negative clamp on byte tensor"); // Cannot be represented by a uint8_t. expect_bad_clamp_value_dies(-1); } diff --git a/kernels/test/op_constant_pad_nd_test.cpp b/kernels/test/op_constant_pad_nd_test.cpp index 7f44068d9cb..7bd908e0ecb 100644 --- a/kernels/test/op_constant_pad_nd_test.cpp +++ b/kernels/test/op_constant_pad_nd_test.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -463,9 +464,9 @@ TEST_F(OpConstantPadNDOutTest, TooManyPaddingElementsFail) { } TEST_F(OpConstantPadNDOutTest, IncorrectOutputShapeFail) { - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle reshape output"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen kernel can handle reshape output"); TensorFactory tf; diff --git a/kernels/test/op_convolution_test.cpp b/kernels/test/op_convolution_test.cpp index 1e0e406af44..89a46038fae 100644 --- a/kernels/test/op_convolution_test.cpp +++ b/kernels/test/op_convolution_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -466,9 +467,9 @@ TEST_F(OpConvOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpConvOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_copy_test.cpp b/kernels/test/op_copy_test.cpp index 97fd7e7e6c0..b8c15a147f3 100644 --- a/kernels/test/op_copy_test.cpp +++ b/kernels/test/op_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -205,9 +206,9 @@ TEST_F(OpCopyTest, ResizeOutDie) { #endif TEST_F(OpCopyTest, MismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched sizes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched sizes"); TensorFactory tf; Tensor self = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor src = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); @@ -230,9 +231,9 @@ TEST_F(OpCopyTest, MismatchedSrcOutTypesDie) { // MemoryFormat::Contiguous should not be allowed. The function is expected // depth if using the illegal memory format. TEST_F(OpCopyTest, BlockingDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle non-contiguous memory formats"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle non-contiguous memory formats"); TensorFactory tf_in; TensorFactory tf_out; Tensor self = tf_in.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); @@ -248,17 +249,17 @@ TEST_F(OpCopyTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpCopyTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpCopyTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_cumsum_test.cpp b/kernels/test/op_cumsum_test.cpp index 720f7bd98e9..48605024ff1 100644 --- a/kernels/test/op_cumsum_test.cpp +++ b/kernels/test/op_cumsum_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -104,9 +105,9 @@ class OpCumSumOutTest : public OperatorTest { }; TEST_F(OpCumSumOutTest, MismatchedDimensionsDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimensions"); TensorFactory tff; Tensor in = tff.make({1, 3}, {0, 1, 2}); diff --git a/kernels/test/op_detach_copy_test.cpp b/kernels/test/op_detach_copy_test.cpp index fba497c75ab..42d287ec4c1 100644 --- a/kernels/test/op_detach_copy_test.cpp +++ b/kernels/test/op_detach_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -88,9 +89,9 @@ TEST_F(OpDetachCopyOutTest, AllScalarInputOutputSupport) { // Mismatched shape tests. TEST_F(OpDetachCopyOutTest, MismatchedShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); #define TEST_ENTRY(ctype, dtype) \ test_detach_copy_out_invalid_shape(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); diff --git a/kernels/test/op_div_test.cpp b/kernels/test/op_div_test.cpp index 84d33fa2757..d313e85a338 100644 --- a/kernels/test/op_div_test.cpp +++ b/kernels/test/op_div_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -427,9 +428,9 @@ TEST_F(OpDivOutTest, BroadcastDimSizeMissingBA) { // TEST_F(OpDivOutTest, MismatchedShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_float; diff --git a/kernels/test/op_embedding_test.cpp b/kernels/test/op_embedding_test.cpp index abee1be43e0..1f0e172a0e8 100644 --- a/kernels/test/op_embedding_test.cpp +++ b/kernels/test/op_embedding_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -218,9 +219,9 @@ TEST_F(OpEmbeddingOutTest, WeightWrongDimensionsDies) { } TEST_F(OpEmbeddingOutTest, WrongOutShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong out shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong out shape"); TensorFactory tff; // clang-format off Tensor weight = tff.make( @@ -455,9 +456,9 @@ TEST_F(OpEmbeddingOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpEmbeddingOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_empty_test.cpp b/kernels/test/op_empty_test.cpp index 23173b1feae..e7bbf1f9dfb 100644 --- a/kernels/test/op_empty_test.cpp +++ b/kernels/test/op_empty_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -78,9 +79,9 @@ TEST_F(OpEmptyOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpEmptyOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); TensorFactory tf; int64_t sizes[2] = {3, 2}; diff --git a/kernels/test/op_eq_test.cpp b/kernels/test/op_eq_test.cpp index 539fb172f85..24cb00772a8 100644 --- a/kernels/test/op_eq_test.cpp +++ b/kernels/test/op_eq_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -82,9 +83,9 @@ TEST_F(OpEqScalarOutTest, BoolInputDtype) { // Mismatched shape tests. TEST_F(OpEqScalarOutTest, MismatchedShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -96,9 +97,9 @@ TEST_F(OpEqScalarOutTest, MismatchedShapesDies) { } TEST_F(OpEqScalarOutTest, AllRealOutputDTypes) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle non-bool output dtype"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle non-bool output dtype"); #define TEST_ENTRY(ctype, dtype) test_eq_all_output_dtypes(); ET_FORALL_REALHBF16_TYPES(TEST_ENTRY); #undef TEST_ENTRY @@ -159,9 +160,9 @@ TEST_F(OpEqScalarOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpEqScalarOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op_out_dtype) */ diff --git a/kernels/test/op_expand_copy_test.cpp b/kernels/test/op_expand_copy_test.cpp index 86d3858c830..790ed8e82d5 100644 --- a/kernels/test/op_expand_copy_test.cpp +++ b/kernels/test/op_expand_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -216,9 +217,9 @@ TEST_F(OpExpandOutTest, BadOutDataTypeGoodShapeDeath) { } TEST_F(OpExpandOutTest, BadOutShapeGoodDataTypeDeath) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle this"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle this"); TensorFactory tf; Tensor a = tf.make(/*sizes*/ {1, 2}, /*data=*/{42, 96}); Tensor out = tf.ones({2, 6, 4}); @@ -314,9 +315,9 @@ TEST_F(OpExpandOutTest, ResizedOutput) { #endif TEST_F(OpExpandOutTest, ImplicitTrue) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle this"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle this"); TensorFactory tf; Tensor a = tf.ones({2, 2}); Tensor out = tf.zeros({2, 2}); @@ -378,9 +379,9 @@ TEST_F(OpExpandOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpExpandOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{10, 10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -418,9 +419,9 @@ TEST_F(OpExpandOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpExpandOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_fft_c2r_test.cpp b/kernels/test/op_fft_c2r_test.cpp index 58c8a216e42..dd9ae7b3e2c 100644 --- a/kernels/test/op_fft_c2r_test.cpp +++ b/kernels/test/op_fft_c2r_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -160,10 +161,9 @@ TEST_F(OpFftC2rOutTest, MultipleDims) { } TEST_F(OpFftC2rOutTest, InvalidNorm) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen MKL path does not validate norm"; - return; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen MKL path does not validate norm"); auto invalid_norm = [this](int64_t norm) { test_dtype(norm); }; @@ -174,10 +174,9 @@ TEST_F(OpFftC2rOutTest, InvalidNorm) { } TEST_F(OpFftC2rOutTest, InvalidDim) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen fails UBSAN"; - return; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen fails UBSAN"); auto negative_dim = [this]() { test_dtype(0, -1); test_dtype(0, 3); diff --git a/kernels/test/op_fft_r2c_test.cpp b/kernels/test/op_fft_r2c_test.cpp index 8730053bdc0..6db4ea617c4 100644 --- a/kernels/test/op_fft_r2c_test.cpp +++ b/kernels/test/op_fft_r2c_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -131,10 +132,9 @@ TEST_F(OpFftR2cOutTest, MultipleDims) { } TEST_F(OpFftR2cOutTest, InvalidNorm) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen MKL path does not validate norm"; - return; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen MKL path does not validate norm"); auto invalid_norm = [this](int64_t norm) { test_dtype(norm); }; @@ -145,10 +145,9 @@ TEST_F(OpFftR2cOutTest, InvalidNorm) { } TEST_F(OpFftR2cOutTest, InvalidDim) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen fails UBSAN"; - return; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen fails UBSAN"); auto negative_dim = [this]() { test_dtype(0, -1); test_dtype(0, 3); @@ -159,10 +158,9 @@ TEST_F(OpFftR2cOutTest, InvalidDim) { // TODO: support this and patch test accordingly! TEST_F(OpFftR2cOutTest, TwoSidedIsNotSupported) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen supports two-sided"; - return; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen supports two-sided"); auto twosided = [this]() { test_dtype( 0, 1, false); diff --git a/kernels/test/op_fill_test.cpp b/kernels/test/op_fill_test.cpp index c1c50206152..4ad5af749b8 100644 --- a/kernels/test/op_fill_test.cpp +++ b/kernels/test/op_fill_test.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -142,9 +143,9 @@ TEST_F(OpFillTest, MismatchedOtherPropertiesDies) { TEST_F(OpFillTest, MismatchedOutputShapesDies) { // Skip ATen test since it supports `self` and `out` having different shapes. - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched output shape"); TensorFactory tf; diff --git a/kernels/test/op_floor_divide_test.cpp b/kernels/test/op_floor_divide_test.cpp index 166f7fdd4f9..7939ea775af 100644 --- a/kernels/test/op_floor_divide_test.cpp +++ b/kernels/test/op_floor_divide_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -156,9 +157,9 @@ TEST_F(OpFloorDivideTest, MismatchedInputShapesDies) { } TEST_F(OpFloorDivideTest, MismatchedOutputShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched output shape"); TensorFactory tf; const std::vector sizes = {2, 2}; diff --git a/kernels/test/op_full_like_test.cpp b/kernels/test/op_full_like_test.cpp index 23ac4e685f9..4f9ab255708 100644 --- a/kernels/test/op_full_like_test.cpp +++ b/kernels/test/op_full_like_test.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -105,9 +106,9 @@ TEST_F(OpFullLikeTest, AllDtypeOutputPasses) { } TEST_F(OpFullLikeTest, MismatchedShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); #define TEST_ENTRY(ctype, dtype) \ test_full_like_out_mismatched_shape(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); diff --git a/kernels/test/op_gather_test.cpp b/kernels/test/op_gather_test.cpp index ff67d9b8fd9..768bc422ad8 100644 --- a/kernels/test/op_gather_test.cpp +++ b/kernels/test/op_gather_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -268,9 +269,9 @@ TEST_F(OpGatherOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpGatherOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_ge_test.cpp b/kernels/test/op_ge_test.cpp index 4fd0aa515b3..07812e99993 100644 --- a/kernels/test/op_ge_test.cpp +++ b/kernels/test/op_ge_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -92,9 +93,9 @@ TEST_F(OpGeScalarOutTest, BoolInputDtype) { // Mismatched shape tests. TEST_F(OpGeScalarOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -135,9 +136,9 @@ TEST_F(OpGeTensorOutTest, AllDtypesSupported) { } TEST_F(OpGeTensorOutTest, MismatchedInShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -149,9 +150,9 @@ TEST_F(OpGeTensorOutTest, MismatchedInShapesDies) { } TEST_F(OpGeTensorOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; diff --git a/kernels/test/op_gelu_test.cpp b/kernels/test/op_gelu_test.cpp index 9303b034ca2..b2e8902f4e3 100644 --- a/kernels/test/op_gelu_test.cpp +++ b/kernels/test/op_gelu_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -79,9 +80,7 @@ TEST_F(OpGeluTest, BFloat16Tensors) { } TEST_F(OpGeluTest, DoubleTensors) { - if (!SupportedFeatures::get()->op_gelu_dtype_double) { - GTEST_SKIP(); - } + ET_SKIP_IF(!SupportedFeatures::get()->op_gelu_dtype_double, ""); test_gelu_execution(); } diff --git a/kernels/test/op_glu_test.cpp b/kernels/test/op_glu_test.cpp index 9bee3a6a5a2..f5aaa54a49f 100644 --- a/kernels/test/op_glu_test.cpp +++ b/kernels/test/op_glu_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -171,9 +172,9 @@ TEST_F(OpGluOutTest, InfinityAndNANTest) { } TEST_F(OpGluOutTest, MismatchedShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); #define TEST_ENTRY(ctype, dtype) \ test_glu_out_mismatched_shape(); ET_FORALL_FLOAT_TYPES(TEST_ENTRY); diff --git a/kernels/test/op_gt_test.cpp b/kernels/test/op_gt_test.cpp index 028e7d16878..649fc17722e 100644 --- a/kernels/test/op_gt_test.cpp +++ b/kernels/test/op_gt_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -92,9 +93,9 @@ TEST_F(OpGtScalarOutTest, BoolInputDtype) { // Mismatched shape tests. TEST_F(OpGtScalarOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -135,9 +136,9 @@ TEST_F(OpGtTensorOutTest, AllDtypesSupported) { } TEST_F(OpGtTensorOutTest, MismatchedInShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -149,9 +150,9 @@ TEST_F(OpGtTensorOutTest, MismatchedInShapesDies) { } TEST_F(OpGtTensorOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; diff --git a/kernels/test/op_index_put_test.cpp b/kernels/test/op_index_put_test.cpp index f1021d9ad61..1c3ef58eb6b 100644 --- a/kernels/test/op_index_put_test.cpp +++ b/kernels/test/op_index_put_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -997,17 +998,17 @@ TEST_F(OpIndexPutOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpIndexPutOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpIndexPutOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_index_select_test.cpp b/kernels/test/op_index_select_test.cpp index 33adf166682..5b4ccf33da6 100644 --- a/kernels/test/op_index_select_test.cpp +++ b/kernels/test/op_index_select_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -282,9 +283,9 @@ TEST_F(OpIndexSelectOutTest, AllDtypesSupported) { // In this test we are gonnna find if our select function support non-empty // tensor input and empty-size tensor output. TEST_F(OpIndexSelectOutTest, NonEmptyInputEmptyOutputWithMismatchDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; TensorFactory tfl; Tensor x = tf.make({10}, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}); @@ -356,9 +357,9 @@ TEST_F(OpIndexSelectOutTest, MismatchedDtypesDies) { } TEST_F(OpIndexSelectOutTest, OutMatchNumelLackDimAtEndDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; TensorFactory tfl; @@ -374,9 +375,9 @@ TEST_F(OpIndexSelectOutTest, OutMatchNumelLackDimAtEndDies) { } TEST_F(OpIndexSelectOutTest, OutMatchNumelExtraDimAtFrontDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; TensorFactory tfl; @@ -392,9 +393,9 @@ TEST_F(OpIndexSelectOutTest, OutMatchNumelExtraDimAtFrontDies) { } TEST_F(OpIndexSelectOutTest, OutSizeMismatchDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; TensorFactory tfl; @@ -505,17 +506,17 @@ TEST_F(OpIndexSelectOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpIndexSelectOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpIndexSelectOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_index_test.cpp b/kernels/test/op_index_test.cpp index 8816d0a8d3f..48d0b0b80b1 100644 --- a/kernels/test/op_index_test.cpp +++ b/kernels/test/op_index_test.cpp @@ -10,6 +10,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -433,9 +434,9 @@ TEST_F(OpIndexTensorOutTest, IndicesWithNullTensorsSupported) { } TEST_F(OpIndexTensorOutTest, IndicesWithOnlyNullTensorsSupported) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); test_indices_with_only_null_tensors_enumerate_in_types(); } @@ -452,9 +453,9 @@ TEST_F(OpIndexTensorOutTest, TooManyNullIndices) { } TEST_F(OpIndexTensorOutTest, EmptyIndicesSupported) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf; // Using empty tensors as input. @@ -622,9 +623,7 @@ TEST_F(OpIndexTensorOutTest, InvalidIndicesShapesDies) { } TEST_F(OpIndexTensorOutTest, InvalidIndicesShapeDies2) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << ""; - } + ET_SKIP_IF(torch::executor::testing::SupportedFeatures::get()->is_aten, ""); TensorFactory tf; TensorFactory tfl; diff --git a/kernels/test/op_le_test.cpp b/kernels/test/op_le_test.cpp index 1baf098f9dd..3bc14a56548 100644 --- a/kernels/test/op_le_test.cpp +++ b/kernels/test/op_le_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -92,9 +93,9 @@ TEST_F(OpLeScalarOutTest, BoolInputDtype) { // Mismatched shape tests. TEST_F(OpLeScalarOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -135,9 +136,9 @@ TEST_F(OpLeTensorOutTest, AllDtypesSupported) { } TEST_F(OpLeTensorOutTest, MismatchedInShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -149,9 +150,9 @@ TEST_F(OpLeTensorOutTest, MismatchedInShapesDies) { } TEST_F(OpLeTensorOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; diff --git a/kernels/test/op_lift_fresh_copy_test.cpp b/kernels/test/op_lift_fresh_copy_test.cpp index 215ad4e05c6..31fe6d3402c 100644 --- a/kernels/test/op_lift_fresh_copy_test.cpp +++ b/kernels/test/op_lift_fresh_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -68,9 +69,9 @@ TEST_F(OpLiftFreshCopyTest, EmptyInputSupported) { } TEST_F(OpLiftFreshCopyTest, MismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched sizes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched sizes"); TensorFactory tf; Tensor self = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros({3, 2, 1, 1}); diff --git a/kernels/test/op_linear_test.cpp b/kernels/test/op_linear_test.cpp index 9b0ba782271..406b3b32c11 100644 --- a/kernels/test/op_linear_test.cpp +++ b/kernels/test/op_linear_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -45,11 +46,9 @@ class OpLinearOutTest : public OperatorTest { TensorFactory tf; if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - if (DTYPE == ScalarType::Half) { - GTEST_SKIP() - << "skip Half because torch::executor::aten::mm_out does not support Half"; - return; - } + ET_SKIP_IF( + DTYPE == ScalarType::Half, + "skip Half because torch::executor::aten::mm_out does not support Half"); } // matmul gives 19 * 2 * 3 = 114 @@ -218,9 +217,9 @@ TEST_F(OpLinearOutTest, MismatchedDimensionsDies) { } TEST_F(OpLinearOutTest, MismatchedDimensionSizeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimension size"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimension size"); TensorFactory tf; Tensor x = tf.full({2, 2}, 3); @@ -237,9 +236,9 @@ TEST_F(OpLinearOutTest, MismatchedDimensionSizeDies) { } TEST_F(OpLinearOutTest, WrongOutShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong out shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong out shape"); TensorFactory tf; Tensor x = tf.ones({10, 3}); diff --git a/kernels/test/op_log_softmax_test.cpp b/kernels/test/op_log_softmax_test.cpp index 84255b8a29c..88a8660faf6 100644 --- a/kernels/test/op_log_softmax_test.cpp +++ b/kernels/test/op_log_softmax_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -145,9 +146,9 @@ TEST_F(OpLogSoftmaxOutTest, Smoke) { } TEST_F(OpLogSoftmaxOutTest, AllDtypesSupported) { - if (!SupportedFeatures::get()->op_log_softmax_dtype_double) { - GTEST_SKIP() << "This kernel does not support dtype double"; - } + ET_SKIP_IF( + !SupportedFeatures::get()->op_log_softmax_dtype_double, + "This kernel does not support dtype double"); #define TEST_ENTRY(ctype, dtype) test_dtype(); ET_FORALL_FLOATHBF16_TYPES(TEST_ENTRY) @@ -159,9 +160,9 @@ TEST_F(OpLogSoftmaxOutTest, NonContiguous) { } TEST_F(OpLogSoftmaxOutTest, MismatchedDimensionsDies) { - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen currently supports mismatched dimensions"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen currently supports mismatched dimensions"); TensorFactory tff; @@ -177,9 +178,9 @@ TEST_F(OpLogSoftmaxOutTest, MismatchedDimensionsDies) { } TEST_F(OpLogSoftmaxOutTest, MismatchedDimensionSizeDies) { - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen currently supports mismatched dimension size"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen currently supports mismatched dimension size"); TensorFactory tf; @@ -194,13 +195,13 @@ TEST_F(OpLogSoftmaxOutTest, MismatchedDimensionSizeDies) { } TEST_F(OpLogSoftmaxOutTest, TestWithLargeNumber) { - if (!SupportedFeatures::get()->op_log_softmax_dtype_double) { - GTEST_SKIP() << "This kernel does not support dtype double"; - } + ET_SKIP_IF( + !SupportedFeatures::get()->op_log_softmax_dtype_double, + "This kernel does not support dtype double"); - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen does not support mixing float and double"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen does not support mixing float and double"); TensorFactory tf; @@ -229,13 +230,12 @@ TEST_F(OpLogSoftmaxOutTest, TestWithLargeNumber) { } TEST_F(OpLogSoftmaxOutTest, NegativeDim) { - if (!SupportedFeatures::get()->op_log_softmax_dtype_double) { - GTEST_SKIP() << "This kernel does not support dtype double"; - } + ET_SKIP_IF( + !SupportedFeatures::get()->op_log_softmax_dtype_double, + "This kernel does not support dtype double"); - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen does not support negative dim"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, "ATen does not support negative dim"); TensorFactory tf; @@ -472,7 +472,7 @@ TEST_F(OpLogSoftmaxOutTest, DoubleCase) { if (!SupportedFeatures::get()->op_log_softmax_dtype_double) { // For optimized kernels, we expect the call above to fail gracefully expect_failure(); - GTEST_SKIP() << "This kernel does not support dtype double"; + ET_SKIP_IF(true, "This kernel does not support dtype double"); } // Verify output dimensions diff --git a/kernels/test/op_logical_not_test.cpp b/kernels/test/op_logical_not_test.cpp index d06a3dcefea..c9afd6d39ae 100644 --- a/kernels/test/op_logical_not_test.cpp +++ b/kernels/test/op_logical_not_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -104,9 +105,9 @@ class OpLogicalNotOutTest : public OperatorTest { }; TEST_F(OpLogicalNotOutTest, MismatchedDimensionsDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimensions"); TensorFactory tff; const std::vector size{2, 2}; diff --git a/kernels/test/op_logit_test.cpp b/kernels/test/op_logit_test.cpp index 0056e984bb7..effdc0d0377 100644 --- a/kernels/test/op_logit_test.cpp +++ b/kernels/test/op_logit_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -134,9 +135,9 @@ TEST_F(OpLogitOutTest, AllRealInputDoubleOutputSupportEpsSet) { // Mismatched shape tests. TEST_F(OpLogitOutTest, MismatchedShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf; TensorFactory tf_out; diff --git a/kernels/test/op_lt_test.cpp b/kernels/test/op_lt_test.cpp index c17d69c37da..5b92f7556bd 100644 --- a/kernels/test/op_lt_test.cpp +++ b/kernels/test/op_lt_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -92,9 +93,9 @@ TEST_F(OpLtScalarOutTest, BoolInputDtype) { // Mismatched shape tests. TEST_F(OpLtScalarOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -135,9 +136,9 @@ TEST_F(OpLtTensorOutTest, AllDtypesSupported) { } TEST_F(OpLtTensorOutTest, MismatchedInShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -149,9 +150,9 @@ TEST_F(OpLtTensorOutTest, MismatchedInShapesDies) { } TEST_F(OpLtTensorOutTest, MismatchedInOutShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; diff --git a/kernels/test/op_masked_fill_test.cpp b/kernels/test/op_masked_fill_test.cpp index b36b54c2b81..443f8909b8a 100644 --- a/kernels/test/op_masked_fill_test.cpp +++ b/kernels/test/op_masked_fill_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -246,9 +247,9 @@ TEST_F(OpMaskedFillTest, BroadcastTest) { } TEST_F(OpMaskedFillTest, MismatchedOutputShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched output shape"); TensorFactory tf; TensorFactory tf_bool; diff --git a/kernels/test/op_max_test.cpp b/kernels/test/op_max_test.cpp index 53c90ae909c..d49dcbc9ed0 100644 --- a/kernels/test/op_max_test.cpp +++ b/kernels/test/op_max_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -281,9 +282,9 @@ TEST_F(OpMaxUnaryOutTest, EmptyFloatingInput) { } TEST_F(OpMaxOutTest, MismatchedDimensionsDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) \ test_max_out_invalid_dimensions(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); @@ -291,9 +292,9 @@ TEST_F(OpMaxOutTest, MismatchedDimensionsDies) { } TEST_F(OpMaxOutTest, MismatchedDTypesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_long; @@ -392,9 +393,9 @@ TEST_F(OpMaxOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpMaxOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_mean_test.cpp b/kernels/test/op_mean_test.cpp index 23f4b675d68..6633ab9c3c7 100644 --- a/kernels/test/op_mean_test.cpp +++ b/kernels/test/op_mean_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -263,9 +264,9 @@ void OpMeanOutTest:: } TEST_F(OpMeanOutTest, InvalidDimensionListDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_mean_dim_out_invalid_dimensions< \ @@ -281,9 +282,9 @@ TEST_F(OpMeanOutTest, InvalidDimensionListDies) { } TEST_F(OpMeanOutTest, InvalidShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_mean_dim_out_invalid_shape< \ @@ -299,9 +300,9 @@ TEST_F(OpMeanOutTest, InvalidShapeDies) { } TEST_F(OpMeanOutTest, MismatchedDTypesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_int; @@ -351,9 +352,9 @@ TEST_F(OpMeanOutTest, AllRealInputFloatOutputPasses) { } TEST_F(OpMeanOutTest, HalfSupport) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "Test Half support only for ExecuTorch mode"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "Test Half support only for ExecuTorch mode"); #define TEST_ENTRY(ctype, dtype) \ test_mean_dim_out_dtype(); ET_FORALL_REALH_TYPES(TEST_ENTRY); diff --git a/kernels/test/op_min_test.cpp b/kernels/test/op_min_test.cpp index ebbca989051..684782a8d87 100644 --- a/kernels/test/op_min_test.cpp +++ b/kernels/test/op_min_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -277,9 +278,9 @@ TEST_F(OpMinUnaryOutTest, EmptyFloatingInput) { } TEST_F(OpMinOutTest, MismatchedDimensionsDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) \ test_min_out_invalid_dimensions(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); @@ -287,9 +288,9 @@ TEST_F(OpMinOutTest, MismatchedDimensionsDies) { } TEST_F(OpMinOutTest, MismatchedDTypesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_long; @@ -366,9 +367,9 @@ TEST_F(OpMinOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpMinOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_minimum_test.cpp b/kernels/test/op_minimum_test.cpp index 9c256963943..1e8fc65a385 100644 --- a/kernels/test/op_minimum_test.cpp +++ b/kernels/test/op_minimum_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -126,9 +127,9 @@ TEST_F(OpMinimumOutTest, MismatchedOutputShapesDies) { } TEST_F(OpMinimumOutTest, MismatchedOutputShapeWithSingletonDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched output shape"); // First argument is singleton but second and output has different shape. TensorFactory tf; Tensor out = tf.zeros({4, 4}); @@ -186,9 +187,9 @@ TEST_F(OpMinimumOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpMinimumOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(binary_op) */ @@ -227,9 +228,9 @@ TEST_F(OpMinimumOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpMinimumOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(binary_op) */ diff --git a/kernels/test/op_mm_test.cpp b/kernels/test/op_mm_test.cpp index 62d5ed29e26..ff3dfc14071 100644 --- a/kernels/test/op_mm_test.cpp +++ b/kernels/test/op_mm_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -36,11 +37,9 @@ class OpMmOutTest : public OperatorTest { TensorFactory tf; if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - if (DTYPE == ScalarType::Half) { - GTEST_SKIP() - << "skip Half because torch::executor::aten::mm_out does not support Half"; - return; - } + ET_SKIP_IF( + DTYPE == ScalarType::Half, + "skip Half because torch::executor::aten::mm_out does not support Half"); } // matmul gives 4 * 2 * 3 = 24 @@ -135,9 +134,9 @@ TEST_F(OpMmOutTest, MismatchedDimensionsDies) { } TEST_F(OpMmOutTest, MismatchedDimensionSizeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimension size"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimension size"); TensorFactory tf; Tensor x = tf.full({2, 2}, 3); @@ -154,9 +153,9 @@ TEST_F(OpMmOutTest, MismatchedDimensionSizeDies) { } TEST_F(OpMmOutTest, WrongOutShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong out shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong out shape"); TensorFactory tf; Tensor x = tf.ones({10, 3}); diff --git a/kernels/test/op_mul_test.cpp b/kernels/test/op_mul_test.cpp index 4553f8a53b6..e4121651b5a 100644 --- a/kernels/test/op_mul_test.cpp +++ b/kernels/test/op_mul_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -430,9 +431,9 @@ TEST_F(OpMulOutTest, OptimizedPathIgnoresLeading1Dimensions) { // Mismatched shape tests. TEST_F(OpMulOutTest, MismatchedNonBroadcastableInputShapesDies) { - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen currently supports mismatched shapes"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen currently supports mismatched shapes"); TensorFactory tf; @@ -519,9 +520,9 @@ TEST_F(OpMulOutTest, AllComplexDtypesSupported) { } TEST_F(OpMulOutTest, MismatchedOutputShapesDies) { - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen currently supports mismatched shapes"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen currently supports mismatched shapes"); TensorFactory tf; diff --git a/kernels/test/op_native_layer_norm_test.cpp b/kernels/test/op_native_layer_norm_test.cpp index 930214d238c..b190a3e89ad 100644 --- a/kernels/test/op_native_layer_norm_test.cpp +++ b/kernels/test/op_native_layer_norm_test.cpp @@ -12,6 +12,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -447,9 +448,9 @@ TEST_F(OpNativeLayerNormTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpNativeLayerNormTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_ne_test.cpp b/kernels/test/op_ne_test.cpp index 46681b02725..a1107233887 100644 --- a/kernels/test/op_ne_test.cpp +++ b/kernels/test/op_ne_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -102,9 +103,9 @@ TEST_F(OpNeScalarOutTest, BoolInputDtype) { // Mismatched shape tests. TEST_F(OpNeScalarOutTest, MismatchedShapesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf_int; TensorFactory tf_bool; @@ -180,9 +181,9 @@ TEST_F(OpNeScalarOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpNeScalarOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op_out_dtype) */ diff --git a/kernels/test/op_permute_copy_test.cpp b/kernels/test/op_permute_copy_test.cpp index bb7b186a672..3273ea35481 100644 --- a/kernels/test/op_permute_copy_test.cpp +++ b/kernels/test/op_permute_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -452,9 +453,9 @@ TEST_F(OpPermuteCopyTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpPermuteCopyTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); /* %python out_args = "{1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_repeat_test.cpp b/kernels/test/op_repeat_test.cpp index 5a04044d34c..d6e290b1493 100644 --- a/kernels/test/op_repeat_test.cpp +++ b/kernels/test/op_repeat_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -87,9 +88,9 @@ class OpRepeatOutTest : public OperatorTest { }; TEST_F(OpRepeatOutTest, AllDtypesSupported) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) run_dtype_tests(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); #undef TEST_ENTRY @@ -209,9 +210,9 @@ TEST_F(OpRepeatOutTest, NegativeRepeatDie) { } TEST_F(OpRepeatOutTest, WrongOutputShapeDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong output shape"); TensorFactory tf; Tensor x = tf.ones( @@ -246,9 +247,9 @@ TEST_F(OpRepeatOutTest, OutputDtypeMismatchedDie) { // Right now we only support the dimension of input and output no larger // than 16. TEST_F(OpRepeatOutTest, TooManyDimensionsDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle larger number of dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle larger number of dimensions"); TensorFactory tf; Tensor x = tf.ones( @@ -361,9 +362,9 @@ TEST_F(OpRepeatOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpRepeatOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -384,9 +385,9 @@ TEST_F(OpRepeatOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpRepeatOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_rsub_test.cpp b/kernels/test/op_rsub_test.cpp index e2bcbd78dcc..fff4e604e29 100644 --- a/kernels/test/op_rsub_test.cpp +++ b/kernels/test/op_rsub_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -223,9 +224,9 @@ TEST_F(OpRSubScalarOutTest, MismatchedOutputDtypeDies) { // Mismatched shape tests. TEST_F(OpRSubScalarOutTest, MismatchedOutputShapesDies) { - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle output shapes"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen kernel can handle output shapes"); TensorFactory tf; @@ -248,17 +249,17 @@ TEST_F(OpRSubScalarOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpRSubScalarOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpRSubScalarOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_scalar_tensor_test.cpp b/kernels/test/op_scalar_tensor_test.cpp index 0be6f395eb0..b47ecd19e20 100644 --- a/kernels/test/op_scalar_tensor_test.cpp +++ b/kernels/test/op_scalar_tensor_test.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -91,28 +92,28 @@ class OpScalarTensorOutTest : public OperatorTest { ET_FORALL_REAL_TYPES_AND3(Half, Bool, BFloat16, GENERATE_TEST_0D) -#define GENERATE_TEST(ctype, dtype) \ - TEST_F(OpScalarTensorOutTest, dtype##Tensors) { \ - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { \ - GTEST_SKIP() << "ATen kernel resizes output to shape {}"; \ - } \ - test_scalar_tensor_out_1d(2); \ - test_scalar_tensor_out_2d(2); \ - test_scalar_tensor_out_3d(2); \ - test_scalar_tensor_out_1d(4); \ - test_scalar_tensor_out_2d(4); \ - test_scalar_tensor_out_3d(4); \ - test_scalar_tensor_out_1d(7); \ - test_scalar_tensor_out_2d(7); \ - test_scalar_tensor_out_3d(7); \ +#define GENERATE_TEST(ctype, dtype) \ + TEST_F(OpScalarTensorOutTest, dtype##Tensors) { \ + ET_SKIP_IF( \ + torch::executor::testing::SupportedFeatures::get()->is_aten, \ + "ATen kernel resizes output to shape {}"); \ + test_scalar_tensor_out_1d(2); \ + test_scalar_tensor_out_2d(2); \ + test_scalar_tensor_out_3d(2); \ + test_scalar_tensor_out_1d(4); \ + test_scalar_tensor_out_2d(4); \ + test_scalar_tensor_out_3d(4); \ + test_scalar_tensor_out_1d(7); \ + test_scalar_tensor_out_2d(7); \ + test_scalar_tensor_out_3d(7); \ } ET_FORALL_REAL_TYPES_AND3(Half, Bool, BFloat16, GENERATE_TEST) TEST_F(OpScalarTensorOutTest, InvalidOutShapeFails) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel will reshape output"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel will reshape output"); TensorFactory tf; std::vector sizes{1, 2, 1}; diff --git a/kernels/test/op_scatter_add_test.cpp b/kernels/test/op_scatter_add_test.cpp index d5511b72683..89770898f9b 100644 --- a/kernels/test/op_scatter_add_test.cpp +++ b/kernels/test/op_scatter_add_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -324,9 +325,9 @@ TEST_F(OpScatterAddOutTest, InvalidDimensionsDies) { } TEST_F(OpScatterAddOutTest, MismatchedShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shape"); #define TEST_ENTRY(CTYPE, DTYPE) \ test_scatter_add_out_mismatched_shape(); ET_FORALL_REAL_TYPES(TEST_ENTRY); @@ -388,17 +389,17 @@ TEST_F(OpScatterAddOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpScatterAddOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpScatterAddOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_scatter_test.cpp b/kernels/test/op_scatter_test.cpp index dac9017d188..79f106e3578 100644 --- a/kernels/test/op_scatter_test.cpp +++ b/kernels/test/op_scatter_test.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -468,9 +469,9 @@ TEST_F(OpScatterValueOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpScatterValueOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_select_copy_test.cpp b/kernels/test/op_select_copy_test.cpp index c78c09628c8..470e8cae717 100644 --- a/kernels/test/op_select_copy_test.cpp +++ b/kernels/test/op_select_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -395,9 +396,9 @@ TEST_F(OpSelectCopyIntOutTest, MismatchedDtypesDies) { } TEST_F(OpSelectCopyIntOutTest, OutMatchNumelLackDimAtEndDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor x = tf.zeros({1, 2, 2, 1}); @@ -410,9 +411,9 @@ TEST_F(OpSelectCopyIntOutTest, OutMatchNumelLackDimAtEndDies) { } TEST_F(OpSelectCopyIntOutTest, OutMatchNumelExtraDimAtFrontDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor x = tf.zeros({2, 2}); @@ -425,9 +426,9 @@ TEST_F(OpSelectCopyIntOutTest, OutMatchNumelExtraDimAtFrontDies) { } TEST_F(OpSelectCopyIntOutTest, OutSizeMismatchDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor x = tf.zeros({2, 4, 7, 5}); @@ -484,9 +485,9 @@ TEST_F(OpSelectCopyIntOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpSelectCopyIntOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{5, 5}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -521,9 +522,9 @@ TEST_F(OpSelectCopyIntOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpSelectCopyIntOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_select_scatter_test.cpp b/kernels/test/op_select_scatter_test.cpp index 185331d399c..268c186004a 100644 --- a/kernels/test/op_select_scatter_test.cpp +++ b/kernels/test/op_select_scatter_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -651,17 +652,17 @@ TEST_F(OpSelectScatterOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpSelectScatterOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpSelectScatterOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_sigmoid_test.cpp b/kernels/test/op_sigmoid_test.cpp index 57771cc3c40..2d75d5c02e4 100644 --- a/kernels/test/op_sigmoid_test.cpp +++ b/kernels/test/op_sigmoid_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -89,9 +90,9 @@ class OpSigmoidOutTest : public OperatorTest { }; TEST_F(OpSigmoidOutTest, AllRealInputHalfOutputSupport) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "Test Half support only for ExecuTorch mode"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "Test Half support only for ExecuTorch mode"); #define TEST_ENTRY(ctype, dtype) \ test_integer_sigmoid_out(); ET_FORALL_REALH_TYPES(TEST_ENTRY); @@ -124,9 +125,9 @@ TEST_F(OpSigmoidOutTest, BooleanInputDoubleOutputSupport) { // Mismatched shape tests. TEST_F(OpSigmoidOutTest, MismatchedShapesDies) { - if (SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf; TensorFactory tf_out; diff --git a/kernels/test/op_sign_test.cpp b/kernels/test/op_sign_test.cpp index 2754e784928..950419240e8 100644 --- a/kernels/test/op_sign_test.cpp +++ b/kernels/test/op_sign_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -44,18 +45,18 @@ class OpSignTest : public OperatorTest { }; TEST_F(OpSignTest, ETSanityCheckFloat) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen returns 0 on NAN input"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen returns 0 on NAN input"); #define TEST_ENTRY(ctype, dtype) test_et_dtype(); ET_FORALL_FLOATHBF16_TYPES(TEST_ENTRY); #undef TEST_ENTRY } TEST_F(OpSignTest, ATenSanityCheckFloat) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ET returns NAN on NAN input"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "ET returns NAN on NAN input"); TensorFactory tf; Tensor in = tf.make({1, 7}, {-INFINITY, -3., -1.5, 0., 1.5, NAN, INFINITY}); diff --git a/kernels/test/op_slice_copy_test.cpp b/kernels/test/op_slice_copy_test.cpp index c7e8a0acf66..e2a48322463 100644 --- a/kernels/test/op_slice_copy_test.cpp +++ b/kernels/test/op_slice_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -48,7 +49,7 @@ class OpSliceCopyTensorOutTest : public OperatorTest { 5, 6, 7, 8, // [1, :] 9, 10, 11, 12, // [2, :] }); - + // op_slice_copy_tensor_out(input, /*dim=*/0, /*start=*/0, /*end=*/2, /*step=*/1, out), // The result should equal to input[0:2:1, :] Tensor expect_ret = tf.make( @@ -428,9 +429,9 @@ TEST_F(OpSliceCopyTensorOutTest, LegalStepsSupported) { /// A generic smoke test that works for any dtype that supports ones() and /// zeros(). TEST_F(OpSliceCopyTensorOutTest, AllDtypesSupported) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_ENTRY(ctype, dtype) test_dtype(); ET_FORALL_REAL_TYPES_AND(Bool, TEST_ENTRY); #undef TEST_ENTRY @@ -541,9 +542,9 @@ TEST_F(OpSliceCopyTensorOutTest, MismatchedDtypesDies) { } TEST_F(OpSliceCopyTensorOutTest, OutSizeMismatchDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor input = tf.zeros({2, 4, 7, 5}); @@ -649,9 +650,9 @@ TEST_F(OpSliceCopyTensorOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpSliceCopyTensorOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{10, 10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -694,9 +695,9 @@ TEST_F(OpSliceCopyTensorOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpSliceCopyTensorOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_slice_scatter_test.cpp b/kernels/test/op_slice_scatter_test.cpp index 14a5bd2679d..501141c5089 100644 --- a/kernels/test/op_slice_scatter_test.cpp +++ b/kernels/test/op_slice_scatter_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -765,9 +766,9 @@ TEST_F(OpSliceScatterTensorOutTest, MismatchedOutDtypesDies) { } TEST_F(OpSliceScatterTensorOutTest, OutSizeMismatchDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor input = tf.zeros({2, 4, 7, 5}); @@ -783,9 +784,9 @@ TEST_F(OpSliceScatterTensorOutTest, OutSizeMismatchDimDies) { } TEST_F(OpSliceScatterTensorOutTest, SrcSizeMismatchDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor input = tf.zeros({2, 4, 7, 5}); diff --git a/kernels/test/op_softmax_test.cpp b/kernels/test/op_softmax_test.cpp index 3c61acb7d29..3f515bb4dcc 100644 --- a/kernels/test/op_softmax_test.cpp +++ b/kernels/test/op_softmax_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -131,9 +132,9 @@ TEST_F(OpSoftmaxOutTest, MismatchedDimensionsDies) { } TEST_F(OpSoftmaxOutTest, MismatchedDimensionSizeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimension size"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimension size"); TensorFactory tf; Tensor x = tf.ones({3, 4}); @@ -147,9 +148,9 @@ TEST_F(OpSoftmaxOutTest, MismatchedDimensionSizeDies) { } TEST_F(OpSoftmaxOutTest, NegativeDim) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf; // Input tensor with shape (2, 3) and values (0, 1, 2, 3, 4, 5). diff --git a/kernels/test/op_split_copy_test.cpp b/kernels/test/op_split_copy_test.cpp index 2dd112b1ace..0f35e88e9f3 100644 --- a/kernels/test/op_split_copy_test.cpp +++ b/kernels/test/op_split_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -402,7 +403,7 @@ TEST_F(OpSplitCopyTensorOutTest, OutOfRangeDimsDie) { } TEST_F(OpSplitCopyTensorOutTest, DtypeMismatchDies) { - GTEST_SKIP() << "ATen kernel can handle dtype mismatch"; + ET_SKIP_IF(true, "ATen kernel can handle dtype mismatch"); TensorFactory tf_int; TensorListFactory tlf_int; TensorListFactory tlf_float; @@ -474,9 +475,9 @@ TEST_F(OpSplitCopyTensorOutTest, WrongNumOutputEntriesDies) { } TEST_F(OpSplitCopyTensorOutTest, WrongOutputShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle wrong out shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle wrong out shape"); TensorFactory tf; TensorListFactory tlf; diff --git a/kernels/test/op_squeeze_copy_test.cpp b/kernels/test/op_squeeze_copy_test.cpp index 53f3465c508..bdd980f1357 100644 --- a/kernels/test/op_squeeze_copy_test.cpp +++ b/kernels/test/op_squeeze_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -246,9 +247,9 @@ TEST_F(OpSqueezeTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpSqueezeTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{5, 5}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -283,9 +284,9 @@ TEST_F(OpSqueezeTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpSqueezeTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_stack_test.cpp b/kernels/test/op_stack_test.cpp index 9a102878c0f..77fef7eed8e 100644 --- a/kernels/test/op_stack_test.cpp +++ b/kernels/test/op_stack_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -348,9 +349,9 @@ TEST_F(OpStackOutTest, MismatchedDtypesDies) { } TEST_F(OpStackOutTest, OutMatchNumelWithExtraDimAtEndDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor out = tf.zeros({1, 2, 2, 1}); @@ -365,9 +366,9 @@ TEST_F(OpStackOutTest, OutMatchNumelWithExtraDimAtEndDies) { } TEST_F(OpStackOutTest, OutMatchNumelLackDimAtFrontDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; Tensor out = tf.zeros({2, 2}); @@ -382,9 +383,9 @@ TEST_F(OpStackOutTest, OutMatchNumelLackDimAtFrontDies) { } TEST_F(OpStackOutTest, OutRegularMismatchDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle out with mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle out with mismatched dimensions"); TensorFactory tf; // Should be {2, 2, 3} to match the inputs when calling stack() with dim 0. @@ -437,9 +438,9 @@ TEST_F(OpStackOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpStackOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{5, 5, 5}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op_tensor_list_in) */ @@ -462,9 +463,9 @@ TEST_F(OpStackOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpStackOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op_tensor_list_in) */ diff --git a/kernels/test/op_sub_test.cpp b/kernels/test/op_sub_test.cpp index 41ebc2f2733..dedea0741b4 100644 --- a/kernels/test/op_sub_test.cpp +++ b/kernels/test/op_sub_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -444,10 +445,9 @@ TEST_F(OpSubOutTest, MismatchedNonBroadcastableInputShapesDies) { } TEST_F(OpSubOutTest, MismatchedOutputShapesDies) { - if (SupportedFeatures::get()->output_resize) { - GTEST_SKIP() - << "The current kernel supports implicitly resizing output tensor"; - } + ET_SKIP_IF( + SupportedFeatures::get()->output_resize, + "The current kernel supports implicitly resizing output tensor"); TensorFactory tf; diff --git a/kernels/test/op_sum_test.cpp b/kernels/test/op_sum_test.cpp index 58624c2a110..18c71b1080b 100644 --- a/kernels/test/op_sum_test.cpp +++ b/kernels/test/op_sum_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -307,9 +308,9 @@ class OpSumOutTest : public OperatorTest { }; TEST_F(OpSumOutTest, InvalidDimensionListDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_sum_dim_out_invalid_dimensions< \ @@ -325,9 +326,9 @@ TEST_F(OpSumOutTest, InvalidDimensionListDies) { } TEST_F(OpSumOutTest, InvalidShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_sum_dim_out_invalid_shape< \ @@ -343,9 +344,9 @@ TEST_F(OpSumOutTest, InvalidShapeDies) { } TEST_F(OpSumOutTest, MismatchedDTypesDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_int; diff --git a/kernels/test/op_t_copy_test.cpp b/kernels/test/op_t_copy_test.cpp index 142fe3050f4..6f01b4c459a 100644 --- a/kernels/test/op_t_copy_test.cpp +++ b/kernels/test/op_t_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -39,9 +40,9 @@ TEST_F(OpTCopyTest, 1DTranspose) { } TEST_F(OpTCopyTest, 1DTransposeMismatchShapeDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf; Tensor t_in = tf.make({4}, {1, 2, 3, 4}); @@ -62,9 +63,9 @@ TEST_F(OpTCopyTest, 2DTranspose) { } TEST_F(OpTCopyTest, 2DTransposeMismatchShapeDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched shapes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched shapes"); TensorFactory tf; Tensor t_in = tf.make({2, 3}, {1, 2, 3, 4, 5, 6}); @@ -122,9 +123,9 @@ TEST_F(OpTCopyTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpTCopyTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -155,9 +156,9 @@ TEST_F(OpTCopyTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpTCopyTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_to_copy_test.cpp b/kernels/test/op_to_copy_test.cpp index d9798d6d573..45b2b2f6020 100644 --- a/kernels/test/op_to_copy_test.cpp +++ b/kernels/test/op_to_copy_test.cpp @@ -14,6 +14,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -427,9 +428,9 @@ TEST_F(OpToTest, HardcodeFloatConvertInt) { } TEST_F(OpToTest, MismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched sizes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched sizes"); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros({3, 2, 1, 1}); @@ -446,9 +447,9 @@ TEST_F(OpToTest, MismatchedSizesDie) { // should not be allowed. The function is expected death if using the illegal // memory format. TEST_F(OpToTest, MismatchedMemoryFormatDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle non contiguous memory formats"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle non contiguous memory formats"); TensorFactory tf_in; TensorFactory tf_out; Tensor input = @@ -474,9 +475,9 @@ TEST_F(OpToTest, MismatchedMemoryFormatDies) { // Only blocking data transfer supported TEST_F(OpToTest, MismatchedBlockingDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle non blocking data transfer"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle non blocking data transfer"); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.zeros(/*sizes=*/{3, 1, 1, 2}); @@ -500,9 +501,9 @@ TEST_F(OpToTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpToTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_transpose_copy_test.cpp b/kernels/test/op_transpose_copy_test.cpp index e9f9bff4acc..d3797498886 100644 --- a/kernels/test/op_transpose_copy_test.cpp +++ b/kernels/test/op_transpose_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -158,9 +159,9 @@ TEST_F(OpTransposeIntCopyTest, OutOfBoundDimDies) { // transpose a 3d tensor into a 2d one TEST_F(OpTransposeIntCopyTest, MismatchedDimDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched dimensions"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched dimensions"); TensorFactory tf; Tensor a = tf.ones(/*sizes=*/{4, 2, 3}); @@ -196,9 +197,9 @@ TEST_F(OpTransposeIntCopyTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpTransposeIntCopyTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{5, 5, 5}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -215,9 +216,9 @@ TEST_F(OpTransposeIntCopyTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpTransposeIntCopyTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_tril_test.cpp b/kernels/test/op_tril_test.cpp index 9a2347e39c0..9b8540713da 100644 --- a/kernels/test/op_tril_test.cpp +++ b/kernels/test/op_tril_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -760,9 +761,9 @@ TEST_F(OpTrilTest, InvalidInputShapesDies) { TEST_F(OpTrilTest, MismatchedOutputShapesDies) { // Skip ATen test since it supports `self` and `out` having different shapes. - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched output shape"); TensorFactory tf; @@ -788,9 +789,9 @@ TEST_F(OpTrilTest, MismatchedOutputDtypeDies) { TEST_F(OpTrilTest, InvalidTensorDims) { // Skip ATen test since it supports `self` and `out` having different shapes. - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched output shape"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched output shape"); TensorFactory tf; diff --git a/kernels/test/op_unsqueeze_copy_test.cpp b/kernels/test/op_unsqueeze_copy_test.cpp index d90d69a1b24..b6fd092a982 100644 --- a/kernels/test/op_unsqueeze_copy_test.cpp +++ b/kernels/test/op_unsqueeze_copy_test.cpp @@ -8,6 +8,7 @@ #include // Declares the operator #include +#include #include #include #include @@ -123,9 +124,9 @@ TEST_F(OpUnsqueezeTest, EmptyInputSupported) { } TEST_F(OpUnsqueezeTest, InputOutputMismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched sizes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched sizes"); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); @@ -139,9 +140,9 @@ TEST_F(OpUnsqueezeTest, InputOutputMismatchedSizesDie) { } TEST_F(OpUnsqueezeTest, DimOutputMismatchedSizesDie) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can handle mismatched sizes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can handle mismatched sizes"); TensorFactory tf; Tensor input = tf.make(/*sizes=*/{3, 1, 2}, /*data=*/{1, 2, 3, 4, 5, 6}); Tensor out = tf.ones(/*sizes=*/{3, 1, 2, 1}); @@ -264,9 +265,9 @@ TEST_F(OpUnsqueezeTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpUnsqueezeTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{5, 5, 5}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND" %rewrite(unary_op) */ @@ -301,9 +302,9 @@ TEST_F(OpUnsqueezeTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpUnsqueezeTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); /* %python out_args = "{1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND" %rewrite(unary_op) */ diff --git a/kernels/test/op_upsample_bilinear2d_test.cpp b/kernels/test/op_upsample_bilinear2d_test.cpp index 95fea942e39..9cd317db55e 100644 --- a/kernels/test/op_upsample_bilinear2d_test.cpp +++ b/kernels/test/op_upsample_bilinear2d_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -315,10 +316,9 @@ TEST_F(OpUpsampleBilinear2dTest, DType) { } TEST_F(OpUpsampleBilinear2dTest, MismatchedOutputSizeDies) { - if (SupportedFeatures::get()->output_resize) { - GTEST_SKIP() - << "The current kernel supports implicitly resizing output tensor"; - } + ET_SKIP_IF( + SupportedFeatures::get()->output_resize, + "The current kernel supports implicitly resizing output tensor"); TensorFactory tf; const auto input = tf.ones({1, 1, 1, 2}); @@ -471,9 +471,9 @@ TEST_F(OpUpsampleBilinear2dTest, ZeroComputedOutputSizeDies) { TEST_F(OpUpsampleBilinear2dTest, MismatchedDimOrderDies) { TensorFactory tf; - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel can implicitly convert dim order"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel can implicitly convert dim order"); const auto input = tf.ones({1, 1, 1, 2}); auto out = tf.zeros_channels_last({1, 1, 1, 4}); diff --git a/kernels/test/op_upsample_nearest2d_test.cpp b/kernels/test/op_upsample_nearest2d_test.cpp index 76e66e666dd..b65e165e7b0 100644 --- a/kernels/test/op_upsample_nearest2d_test.cpp +++ b/kernels/test/op_upsample_nearest2d_test.cpp @@ -8,6 +8,7 @@ #include // Declares the operator #include +#include #include #include #include @@ -266,10 +267,9 @@ TEST_F(OpUpsampleNearest2dTest, DType) { } TEST_F(OpUpsampleNearest2dTest, MismatchedOutputSizeDies) { - if (SupportedFeatures::get()->output_resize) { - GTEST_SKIP() - << "The current kernel supports implicitly resizing output tensor"; - } + ET_SKIP_IF( + SupportedFeatures::get()->output_resize, + "The current kernel supports implicitly resizing output tensor"); TensorFactory tf; const auto input = tf.ones({1, 1, 1, 2}); diff --git a/kernels/test/op_var_mean_test.cpp b/kernels/test/op_var_mean_test.cpp index 05a0281a090..80571518e73 100644 --- a/kernels/test/op_var_mean_test.cpp +++ b/kernels/test/op_var_mean_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -385,9 +386,9 @@ TEST_F(OpVarMeanCorrectionOutTest, SmokeTest) { } TEST_F(OpVarMeanCorrectionOutTest, KeepDim) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen supports fewer dtypes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen supports fewer dtypes"); #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_keepdim(); @@ -400,9 +401,9 @@ TEST_F(OpVarMeanCorrectionOutTest, KeepDim) { } TEST_F(OpVarMeanCorrectionOutTest, KeepDim_Aten) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen-specific variant of test case"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen-specific variant of test case"); #define TEST_ENTRY(CTYPE, DTYPE) \ test_keepdim(); @@ -411,9 +412,9 @@ TEST_F(OpVarMeanCorrectionOutTest, KeepDim_Aten) { } TEST_F(OpVarMeanCorrectionOutTest, MultipleDims) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen supports fewer dtypes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen supports fewer dtypes"); #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_multiple_dims(); @@ -426,9 +427,9 @@ TEST_F(OpVarMeanCorrectionOutTest, MultipleDims) { } TEST_F(OpVarMeanCorrectionOutTest, MultipleDims_Aten) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen-specific variant of test case"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen-specific variant of test case"); #define TEST_ENTRY(CTYPE, DTYPE) \ test_multiple_dims(); @@ -437,9 +438,9 @@ TEST_F(OpVarMeanCorrectionOutTest, MultipleDims_Aten) { } TEST_F(OpVarMeanCorrectionOutTest, NegativeDim) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen supports fewer dtypes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen supports fewer dtypes"); #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_negative_dim(); @@ -452,9 +453,9 @@ TEST_F(OpVarMeanCorrectionOutTest, NegativeDim) { } TEST_F(OpVarMeanCorrectionOutTest, NegativeDim_Aten) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen-specific variant of test case"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen-specific variant of test case"); #define TEST_ENTRY(CTYPE, DTYPE) \ test_negative_dim(); @@ -463,9 +464,9 @@ TEST_F(OpVarMeanCorrectionOutTest, NegativeDim_Aten) { } TEST_F(OpVarMeanCorrectionOutTest, NullAndEmptyDimList) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen supports fewer dtypes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen supports fewer dtypes"); #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_null_and_empty_dim_list< \ ScalarType::INPUT_DTYPE, \ @@ -480,9 +481,9 @@ TEST_F(OpVarMeanCorrectionOutTest, NullAndEmptyDimList) { } TEST_F(OpVarMeanCorrectionOutTest, NullAndEmptyDimList_Aten) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen-specific variant of test case"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen-specific variant of test case"); #define TEST_ENTRY(CTYPE, DTYPE) \ test_null_and_empty_dim_list(); @@ -491,9 +492,9 @@ TEST_F(OpVarMeanCorrectionOutTest, NullAndEmptyDimList_Aten) { } TEST_F(OpVarMeanCorrectionOutTest, InvalidDimensionListDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_invalid_dimensions(); @@ -506,9 +507,9 @@ TEST_F(OpVarMeanCorrectionOutTest, InvalidDimensionListDies) { } TEST_F(OpVarMeanCorrectionOutTest, InvalidDTypeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_int; diff --git a/kernels/test/op_var_test.cpp b/kernels/test/op_var_test.cpp index 63e7e94f982..ccd0a022af3 100644 --- a/kernels/test/op_var_test.cpp +++ b/kernels/test/op_var_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -284,9 +285,9 @@ class OpVarCorrectionOutTest : public OperatorTest { }; TEST_F(OpVarOutTest, InvalidDimensionListDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_var_out_invalid_dimensions< \ @@ -302,9 +303,9 @@ TEST_F(OpVarOutTest, InvalidDimensionListDies) { } TEST_F(OpVarOutTest, InvalidShapeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_var_out_invalid_shape< \ @@ -320,9 +321,9 @@ TEST_F(OpVarOutTest, InvalidShapeDies) { } TEST_F(OpVarOutTest, InvalidDTypeDies) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen kernel test fails"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen kernel test fails"); TensorFactory tf_float; TensorFactory tf_int; @@ -356,9 +357,9 @@ TEST_F(OpVarOutTest, InvalidDTypeDies) { } TEST_F(OpVarOutTest, AllFloatInputFloatOutputPasses) { - if (torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen supports fewer dtypes"; - } + ET_SKIP_IF( + torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen supports fewer dtypes"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_var_out_dtype(); @@ -372,9 +373,9 @@ TEST_F(OpVarOutTest, AllFloatInputFloatOutputPasses) { } TEST_F(OpVarOutTest, AllFloatInputFloatOutputPasses_Aten) { - if (!torch::executor::testing::SupportedFeatures::get()->is_aten) { - GTEST_SKIP() << "ATen-specific variant of test case"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->is_aten, + "ATen-specific variant of test case"); // Use a two layer switch to hanldle each possible data pair #define TEST_KERNEL(INPUT_CTYPE, INPUT_DTYPE, OUTPUT_CTYPE, OUTPUT_DTYPE) \ test_var_out_dtype(); diff --git a/kernels/test/op_view_copy_test.cpp b/kernels/test/op_view_copy_test.cpp index 73a59fa5bd5..4990f1b1a77 100644 --- a/kernels/test/op_view_copy_test.cpp +++ b/kernels/test/op_view_copy_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -293,17 +294,17 @@ TEST_F(OpViewTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpViewTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpViewTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_where_test.cpp b/kernels/test/op_where_test.cpp index c9e845e38a9..01847bc8464 100644 --- a/kernels/test/op_where_test.cpp +++ b/kernels/test/op_where_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -447,17 +448,17 @@ TEST_F(OpWhereOutTest, DynamicShapeUpperBoundSameAsExpected) { } TEST_F(OpWhereOutTest, DynamicShapeUpperBoundLargerThanExpected) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {10, 10, 10}, torch::executor::TensorShapeDynamism::DYNAMIC_BOUND); } TEST_F(OpWhereOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape not supported"); test_dynamic_shape( {1, 1, 1}, torch::executor::TensorShapeDynamism::DYNAMIC_UNBOUND); } diff --git a/kernels/test/op_zeros_test.cpp b/kernels/test/op_zeros_test.cpp index 96586f91df5..0345906bcf5 100644 --- a/kernels/test/op_zeros_test.cpp +++ b/kernels/test/op_zeros_test.cpp @@ -9,6 +9,7 @@ #include // Declares the operator #include #include +#include #include #include #include @@ -75,9 +76,9 @@ TEST_F(OpZerosOutTest, DynamicShapeUpperBoundLargerThanExpected) { } TEST_F(OpZerosOutTest, DynamicShapeUnbound) { - if (!torch::executor::testing::SupportedFeatures::get()->output_resize) { - GTEST_SKIP() << "Dynamic shape unbound not supported"; - } + ET_SKIP_IF( + !torch::executor::testing::SupportedFeatures::get()->output_resize, + "Dynamic shape unbound not supported"); TensorFactory tf; Tensor expected = tf.zeros({3, 2}); From 41a38d8a8e1a7a97fc813d5559b3c792c3a3a2fd Mon Sep 17 00:00:00 2001 From: Adrian Lundell <36153706+AdrianLundell@users.noreply.github.com> Date: Tue, 19 May 2026 21:29:39 +0200 Subject: [PATCH 51/91] Arm backend: Add multiple get_attr folding crash workaround (#19663) See description in the added test. The workaround implemented is to create multiple attributes pointing to the same data source. Signed-off-by: Adrian Lundell --- backends/arm/_passes/__init__.py | 1 + backends/arm/_passes/arm_pass_manager.py | 2 + .../arm/_passes/deduplicate_get_attr_pass.py | 71 +++++++++++++++++++ .../quantizer/test_selective_quantization.py | 45 ++++++++++++ .../cortex_m/passes/cortex_m_pass_manager.py | 2 + 5 files changed, 121 insertions(+) create mode 100644 backends/arm/_passes/deduplicate_get_attr_pass.py diff --git a/backends/arm/_passes/__init__.py b/backends/arm/_passes/__init__.py index 6b39d9a25c3..4a8857be82a 100644 --- a/backends/arm/_passes/__init__.py +++ b/backends/arm/_passes/__init__.py @@ -97,6 +97,7 @@ from .decompose_var_pass import DecomposeVarPass # noqa from .decompose_where_scalar_other_pass import DecomposeWhereScalarOtherPass # noqa from .decorate_fp32_to_int32_casting_pass import DecorateFp32toInt32CastingPass # noqa +from .deduplicate_get_attr_pass import DeduplicateGetAttrPass # noqa from .ensure_unique_output_nodes_pass import EnsureUniqueOutputNodesPass # noqa from .fold_qdq_with_annotated_qparams_pass import ( # noqa FoldAndAnnotateQParamsPass, diff --git a/backends/arm/_passes/arm_pass_manager.py b/backends/arm/_passes/arm_pass_manager.py index 6bdb43d79f5..bf39cbe44ea 100644 --- a/backends/arm/_passes/arm_pass_manager.py +++ b/backends/arm/_passes/arm_pass_manager.py @@ -97,6 +97,7 @@ DecomposeVarPass, DecomposeWhereScalarOtherPass, DecorateFp32toInt32CastingPass, + DeduplicateGetAttrPass, EnsureUniqueOutputNodesPass, FoldAndAnnotateQParamsPass, FuseBatchNorm2dPass, @@ -651,6 +652,7 @@ def transform_for_annotation_pipeline(self, graph_module: GraphModule): [ ReplaceInfAndLimitValuesPass(tfa_pass=True), DecomposeMaskedFillPass(tfa_pass=True), + DeduplicateGetAttrPass(tfa_pass=True), ] ) diff --git a/backends/arm/_passes/deduplicate_get_attr_pass.py b/backends/arm/_passes/deduplicate_get_attr_pass.py new file mode 100644 index 00000000000..201a9036e34 --- /dev/null +++ b/backends/arm/_passes/deduplicate_get_attr_pass.py @@ -0,0 +1,71 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from typing import Any, Set, Type + +import torch +from executorch.backends.arm._passes import ArmPass +from executorch.exir.pass_base import ExportPass, PassResult +from torch.fx import GraphModule, Node +from torchao.quantization.pt2e.utils import get_new_attr_name_with_prefix + + +class DeduplicateGetAttrPass(ArmPass): + """Give duplicate get_attr nodes distinct backing attributes. + + Torchao's constant folder can delete a shared backing attribute while + another get_attr node still refers to it. Keep separate graph nodes so PT2E + can attach per-use observers and backend lowering can process constants per + use. + + """ + + _passes_required_after: Set[Type[ExportPass]] = set() + + def _get_attr(self, graph_module: GraphModule, target: str) -> Any: + attr: Any = graph_module + for target_atom in target.split("."): + attr = getattr(attr, target_atom) + return attr + + def _copy_attr(self, graph_module: GraphModule, node: Node) -> str: + """Register a new attribute referring to the same data as the original + one. + """ + + assert isinstance(node.target, str) + attr = self._get_attr(graph_module, node.target) + get_new_attr_name = get_new_attr_name_with_prefix( + f"_deduplicated_get_attr_{node.name}_" + ) + attr_name = get_new_attr_name(graph_module) + + if isinstance(attr, torch.nn.Parameter): + graph_module.register_parameter(attr_name, attr) + elif isinstance(attr, torch.Tensor): + graph_module.register_buffer(attr_name, attr) + else: + setattr(graph_module, attr_name, attr) + + return attr_name + + def call(self, graph_module: GraphModule) -> PassResult: + seen_targets: set[str] = set() + modified = False + + for node in graph_module.graph.find_nodes(op="get_attr"): + + if node.target not in seen_targets: + seen_targets.add(node.target) + continue + + node.target = self._copy_attr(graph_module, node) + modified = True + + if modified: + graph_module.graph.lint() + graph_module.recompile() + + return PassResult(graph_module, modified) diff --git a/backends/arm/test/quantizer/test_selective_quantization.py b/backends/arm/test/quantizer/test_selective_quantization.py index ef0c51c58ca..7efa590680a 100644 --- a/backends/arm/test/quantizer/test_selective_quantization.py +++ b/backends/arm/test/quantizer/test_selective_quantization.py @@ -17,6 +17,7 @@ from executorch.backends.arm.test import common from executorch.backends.arm.test.tester.test_pipeline import QuantizationPipeline from executorch.backends.arm.tosa import TosaSpecification +from executorch.backends.cortex_m.test.tester import ramp_tensor from executorch.backends.test.harness.stages import StageType from torchao.quantization.pt2e.quantizer.quantizer import Q_ANNOTATION_KEY from torchvision import models, transforms # type: ignore[import-untyped] @@ -229,6 +230,20 @@ def test_composable_global_none_linear_graph_tail_tosa_INT(): normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) +class SharedBufferEmbeddingLinearConstantFold(torch.nn.Module): + + def __init__(self): + super().__init__() + self.shared = torch.nn.Embedding(4, 4) + self.lm_head = torch.nn.Linear(4, 4, bias=False) + self.lm_head.weight = self.shared.weight + + def forward(self, ids, x): + y0 = self.shared(ids).sum(dim=1) + z = self.lm_head(x) + return y0 + z + + def test_mv3_selective_quant_int16_tosa_INT(): model = mv3 inputs = (normalize(torch.randn(1, 3, 224, 224)),) @@ -302,3 +317,33 @@ def test_mv3_io_quant_tosa_INT(): ) pipeline.run() + + +def test_multiple_folded_get_attr(): + """In torchao/quantization/pt2e/constant_fold.py:constant_fold, get_attr + node targets are deleted as soon as there is one get_attr node w/o users + using the target. + + If there are multiple get_attr nodes refering the same target such as in + this test, the function crashes if no workaround is present. + + """ + + model = SharedBufferEmbeddingLinearConstantFold() + example_inputs = ( + torch.tensor([[0, 1]], dtype=torch.long), + ramp_tensor(-2, 2, (1, 4)), + ) + + quantizer = get_quantizer() + quantizer.set_module_type(torch.nn.Embedding, None) + + pipeline = QuantizationPipeline( + model, + example_inputs, + quantizer=quantizer, + qspecs=None, + input_qspecs=None, + output_qspecs=None, + ) + pipeline.run() diff --git a/backends/cortex_m/passes/cortex_m_pass_manager.py b/backends/cortex_m/passes/cortex_m_pass_manager.py index f95587a00d3..f0326ec76c4 100644 --- a/backends/cortex_m/passes/cortex_m_pass_manager.py +++ b/backends/cortex_m/passes/cortex_m_pass_manager.py @@ -8,6 +8,7 @@ from typing import Any, Optional, Type from executorch.backends.arm._passes import ( + DeduplicateGetAttrPass, FoldAndAnnotateQParamsPass, ScalarsToAttributePass, ) @@ -52,6 +53,7 @@ class CortexMPassManager(PassManager): ReplaceScalarWithTensorArgPass, ClampHardswishPass, DecomposeMeanPass, + DeduplicateGetAttrPass, ] def __init__( From afd32cc6cf244b516f90750c9233446acd87548b Mon Sep 17 00:00:00 2001 From: christine-long-meta <163800716+christine-long-meta@users.noreply.github.com> Date: Tue, 19 May 2026 15:52:55 -0400 Subject: [PATCH 52/91] Add a16w8 per-op test for bmm (#19599) Summary: Add int16 activation / int8 weight (a16w8) quantization tests for `aten.bmm` on Ethos-U55 and Ethos-U85. ## Context Batch matrix multiply (`bmm`) implements the core `Q @ K^T` and `attn_weights @ V` operations in the multi-head attention of the EMG2Pose Conformer. At int16 IO precision the accumulator width and rescale path differ between U55 and U85, so dedicated per-op coverage is needed to catch numerics divergence before it surfaces as an end-to-end SNR regression. The test matrix includes square, rectangular, and large-batch configurations to exercise different tiling strategies in the Vela backend. Also removes unused `aten_op_mm` / `exir_op_mm` variables that were dead code in `test_bmm.py`. ## Changes - Add `a16w8_bmm_test_parameters` dict with 5 test configurations covering same-shape, different-shape, rectangular, batch-10, and negative-value tensors - Add `test_bmm_a16w8_u55_INT` using `EthosU55PipelineINT` with `a16w8_quantization=True, symmetric_io_quantization=True, qtol=128, epsilon=2**-16` - Add `test_bmm_a16w8_u85_INT` using `EthosU85PipelineINT` with same kwargs - Remove unused `aten_op_mm` and `exir_op_mm` variables - Register `ops/test_bmm.py` in `fbcode/` and `xplat/` `targets.bzl` bypass-pytorch-oss-checks Reviewed By: Ninja91 Differential Revision: D104532363 --- backends/arm/test/ops/test_bmm.py | 57 ++++++++++++++++++++++++++++--- backends/arm/test/targets.bzl | 1 + 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/backends/arm/test/ops/test_bmm.py b/backends/arm/test/ops/test_bmm.py index d21b33cfec4..a1aaa736d41 100644 --- a/backends/arm/test/ops/test_bmm.py +++ b/backends/arm/test/ops/test_bmm.py @@ -1,4 +1,4 @@ -# Copyright 2024-2025 Arm Limited and/or its affiliates. +# Copyright 2024-2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -10,11 +10,12 @@ import torch +from executorch.backends.arm.quantizer import get_symmetric_a16w8_quantization_config from executorch.backends.arm.test import common - from executorch.backends.arm.test.tester.test_pipeline import ( EthosU55PipelineINT, EthosU85PipelineINT, + OpNotSupportedPipeline, TosaPipelineFP, TosaPipelineINT, VgfPipeline, @@ -23,9 +24,6 @@ aten_op_bmm = "torch.ops.aten.bmm.default" exir_op_bmm = "executorch_exir_dialects_edge__ops_aten_bmm_default" -aten_op_mm = "torch.ops.aten.matmul.default" -exir_op_mm = "executorch_exir_dialects_edge__ops_aten_matmul_default" - input_t1 = Tuple[torch.Tensor, torch.Tensor] # Input x @@ -191,3 +189,52 @@ def test_bmm_vgf_quant_single_input(test_data: input_t1): quantize=True, ) pipeline.run() + + +a16w8_bmm_test_parameters = { + "rand_same": lambda: (torch.rand(2, 1, 1), torch.rand(2, 1, 1)), + "rand_diff": lambda: (torch.rand(5, 3, 5), torch.rand(5, 5, 2)), + "rand_rect": lambda: (torch.rand(1, 55, 3), torch.rand(1, 3, 44)), + "rand_batch10": lambda: (torch.rand(10, 1, 10), torch.rand(10, 10, 5)), + "rand_neg": lambda: ( + -10 * torch.randn(2, 32, 64), + 5 + 5 * torch.randn(2, 64, 32), + ), +} + + +@common.parametrize("test_data", a16w8_bmm_test_parameters) +@common.XfailIfNoCorstone300 +def test_bmm_a16w8_u55_INT(test_data: input_t1): + """U55 does not support bmm with INT16 inputs. + + Verify bmm is rejected. + + """ + pipeline = OpNotSupportedPipeline[input_t1]( + BMM(), + test_data(), + non_delegated_ops={exir_op_bmm: 1}, + n_expected_delegates=0, + u55_subset=True, + quantize=True, + tosa_extensions=["int16"], + ) + pipeline.quantizer.set_global(get_symmetric_a16w8_quantization_config()) + pipeline.run() + + +@common.parametrize("test_data", a16w8_bmm_test_parameters) +@common.XfailIfNoCorstone320 +def test_bmm_a16w8_u85_INT(test_data: input_t1): + pipeline = EthosU85PipelineINT[input_t1]( + BMM(), + test_data(), + aten_op_bmm, + exir_op_bmm, + a16w8_quantization=True, + symmetric_io_quantization=True, + qtol=1, + epsilon=2**-16, + ) + pipeline.run() diff --git a/backends/arm/test/targets.bzl b/backends/arm/test/targets.bzl index bf0788c129c..bd062188338 100644 --- a/backends/arm/test/targets.bzl +++ b/backends/arm/test/targets.bzl @@ -42,6 +42,7 @@ def define_arm_tests(): "ops/test_var.py", "ops/test_conv1d.py", "ops/test_gelu.py", + "ops/test_bmm.py", ] # Quantization From 92b74119145666c714ef651bb7e4fb3655e613b6 Mon Sep 17 00:00:00 2001 From: christine-long-meta <163800716+christine-long-meta@users.noreply.github.com> Date: Tue, 19 May 2026 16:39:23 -0400 Subject: [PATCH 53/91] Add a16w8 per-op test for split (#19600) Summary: Add int16 activation / int8 weight (a16w8) quantization tests for `aten.split` on Ethos-U55 and Ethos-U85. ## Changes - Add `a16w8_split_test_parameters` dict with 3 test configurations covering 1D, 2D, and 3D splits along different axes - Add `test_split_a16w8_u55_INT` using `EthosU55PipelineINT` with `a16w8_quantization=True, symmetric_io_quantization=True` - Add `test_split_a16w8_u85_INT` using `EthosU85PipelineINT` with same kwargs - Register `ops/test_split.py` in `fbcode/` and `xplat/` `targets.bzl` Differential Revision: D104533281 --- backends/arm/test/ops/test_split.py | 35 +++++++++++++++++++++++++++++ backends/arm/test/ops/test_var.py | 5 +++++ backends/arm/test/targets.bzl | 1 + 3 files changed, 41 insertions(+) diff --git a/backends/arm/test/ops/test_split.py b/backends/arm/test/ops/test_split.py index 6af3362de7a..f655785410c 100644 --- a/backends/arm/test/ops/test_split.py +++ b/backends/arm/test/ops/test_split.py @@ -310,3 +310,38 @@ def test_split_tensor_vgf_quant(test_data: Tuple): quantize=True, ) pipeline.run() + + +a16w8_split_test_parameters = { + "a16w8_1d_split_2": lambda: (torch.rand(10), 2, 0), + "a16w8_2d_split_4": lambda: (torch.rand(8, 4), 4, 0), + "a16w8_3d_split_4": lambda: (torch.rand(4, 4, 8), 4, 2), +} + + +@common.parametrize("test_data", a16w8_split_test_parameters) +@common.XfailIfNoCorstone300 +def test_split_a16w8_u55_INT(test_data: input_t1): + pipeline = EthosU55PipelineINT[input_t1]( + Split(), + test_data(), + aten_ops=[], + exir_ops=exir_op, + a16w8_quantization=True, + symmetric_io_quantization=True, + ) + pipeline.run() + + +@common.parametrize("test_data", a16w8_split_test_parameters) +@common.XfailIfNoCorstone320 +def test_split_a16w8_u85_INT(test_data: input_t1): + pipeline = EthosU85PipelineINT[input_t1]( + Split(), + test_data(), + aten_ops=[], + exir_ops=exir_op, + a16w8_quantization=True, + symmetric_io_quantization=True, + ) + pipeline.run() diff --git a/backends/arm/test/ops/test_var.py b/backends/arm/test/ops/test_var.py index 35aa2857d3b..74ceb4b557d 100644 --- a/backends/arm/test/ops/test_var.py +++ b/backends/arm/test/ops/test_var.py @@ -32,6 +32,11 @@ class Var(torch.nn.Module): ), } + test_parameters_ethosu = { + "var_4d_keep_dim_0_correction": lambda: (torch.randn(1, 50, 10, 20), True, 0), + "var_4d_keep_dim_1_correction": lambda: (torch.randn(1, 30, 15, 20), True, 1), + } + def __init__(self, keepdim: bool = True, correction: int = 0): super().__init__() self.keepdim = keepdim diff --git a/backends/arm/test/targets.bzl b/backends/arm/test/targets.bzl index bd062188338..0a3faa6a074 100644 --- a/backends/arm/test/targets.bzl +++ b/backends/arm/test/targets.bzl @@ -43,6 +43,7 @@ def define_arm_tests(): "ops/test_conv1d.py", "ops/test_gelu.py", "ops/test_bmm.py", + "ops/test_split.py", ] # Quantization From 4c5e722b59ebd0c699f6244e7fbbea1c57766aa7 Mon Sep 17 00:00:00 2001 From: robert-kalmar Date: Tue, 19 May 2026 23:00:55 +0200 Subject: [PATCH 54/91] NXP Backend: Update eiQ Neutron SDK to 3.1.1 (#19668) ### Test plan Existing unit tests --- backends/nxp/requirements-eiq.txt | 2 +- .../node_converter/test_convert_upsample_nearest2d.py | 2 ++ docs/source/backends/nxp/nxp-overview.md | 4 ++-- examples/nxp/setup.sh | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/backends/nxp/requirements-eiq.txt b/backends/nxp/requirements-eiq.txt index 61e5c882c40..5fe425aa4ef 100644 --- a/backends/nxp/requirements-eiq.txt +++ b/backends/nxp/requirements-eiq.txt @@ -1,3 +1,3 @@ --index-url https://eiq.nxp.com/repository -eiq-neutron-sdk==3.1.0 +eiq-neutron-sdk==3.1.1 eiq_nsys diff --git a/backends/nxp/tests/ir/converter/node_converter/test_convert_upsample_nearest2d.py b/backends/nxp/tests/ir/converter/node_converter/test_convert_upsample_nearest2d.py index 7473a5c98b0..3d9ec84dec9 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_convert_upsample_nearest2d.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_convert_upsample_nearest2d.py @@ -50,6 +50,7 @@ def forward(self, x): pytest.param((1, 8, 3, 3), 12, id="4x upscale, 8 channels, scalar size"), ], ) +@pytest.mark.xfail(strict=True, reason="EIEX-881") def test_convert_upsample_nearest2d__size(mocker, input_shape, size): model = UpsampleNearestModule(size=size) @@ -92,6 +93,7 @@ def test_convert_upsample_nearest2d__size(mocker, input_shape, size): pytest.param((1, 8, 2, 3), (4, 4), id="4x upscale, 8 channels, tuple scale"), ], ) +@pytest.mark.xfail(strict=True, reason="EIEX-881") def test_convert_upsample_nearest2d__scale_factor(mocker, input_shape, scale_factor): model = UpsampleNearestModule(scale=scale_factor) diff --git a/docs/source/backends/nxp/nxp-overview.md b/docs/source/backends/nxp/nxp-overview.md index 6070f86e458..00b173eed04 100644 --- a/docs/source/backends/nxp/nxp-overview.md +++ b/docs/source/backends/nxp/nxp-overview.md @@ -24,10 +24,10 @@ Among currently supported machine learning models are: - [MCUXpresso IDE](https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE) or [MCUXpresso Visual Studio Code extension](https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-for-visual-studio-code:MCUXPRESSO-VSC) - [MCUXpresso SDK 25.12](https://mcuxpresso.nxp.com/mcuxsdk/25.12.00/html/index.html) -- eIQ Neutron SDK version 3.1.0, what you can download from eIQ PyPI: +- eIQ Neutron SDK version 3.1.1, what you can download from eIQ PyPI: ```commandline -$ pip install --index-url https://eiq.nxp.com/repository eiq-neutron-sdk==3.1.0 +$ pip install --index-url https://eiq.nxp.com/repository eiq-neutron-sdk==3.1.1 ``` Instead of manually installing requirements, except MCUXpresso IDE and SDK, you can use the setup script: diff --git a/examples/nxp/setup.sh b/examples/nxp/setup.sh index e6de05b9f47..113b08d24ec 100755 --- a/examples/nxp/setup.sh +++ b/examples/nxp/setup.sh @@ -8,7 +8,7 @@ set -u EIQ_PYPI_URL="${EIQ_PYPI_URL:-https://eiq.nxp.com/repository}" # Install eIQ Neutron dependencies - SDK and simulator -pip install --index-url ${EIQ_PYPI_URL} eiq-neutron-sdk==3.1.0 eiq_nsys +pip install --index-url ${EIQ_PYPI_URL} eiq-neutron-sdk==3.1.1 eiq_nsys # Get the directory of the current script SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" From 3d86cc74221d1ce878826faaf0fa1a46da1fa6be Mon Sep 17 00:00:00 2001 From: Scott Roy <161522778+metascroy@users.noreply.github.com> Date: Tue, 19 May 2026 14:25:54 -0700 Subject: [PATCH 55/91] Module deep-copies LoadBackendOptionsMap on load (#19673) Differential Revision: D105100372 Pull Request resolved: https://github.com/pytorch/executorch/pull/19673 --- extension/module/module.cpp | 54 +++++++++++-- extension/module/module.h | 41 +++++++++- extension/module/targets.bzl | 2 + extension/module/test/module_test.cpp | 111 ++++++++++++++++++++++++++ 4 files changed, 199 insertions(+), 9 deletions(-) diff --git a/extension/module/module.cpp b/extension/module/module.cpp index 0b95a86ac1e..459b062fd67 100644 --- a/extension/module/module.cpp +++ b/extension/module/module.cpp @@ -203,8 +203,49 @@ runtime::Error Module::load(const Program::Verification verification) { runtime::Error Module::load( const LoadBackendOptionsMap& backend_options, const Program::Verification verification) { - backend_options_ = &backend_options; - return load_internal(verification); + // load_internal does not read backend options, so run it first; on + // failure we skip the deep-copy work entirely and leave the prior + // installed options (if any) in place. + ET_CHECK_OK_OR_RETURN_ERROR(load_internal(verification)); + + // Deep-copy the input into local storage so the Module owns the + // BackendOption arrays for the lifetime of any methods loaded with + // these options. Build BOTH the storage and the map in locals so any + // mid-loop failure (or exception from emplace) leaves the prior + // installed state untouched -- the two members are only committed + // together at the end on full success. + // + // local_storage is reserve()'d up front, so emplace_back() never + // reallocates the outer buffer and the inner vectors keep stable + // addresses while we build local_map. The final move of + // local_storage into backend_options_storage_ uses std::vector's + // O(1) buffer transfer, so the heap buffers that local_map's spans + // point into remain valid after the move; the static_assert documents + // the inner-vector property we rely on for that span stability. + static_assert( + std::is_nothrow_move_constructible_v>, + "Moving local_storage must not move-construct the inner vectors; " + "local_map's spans reference their heap buffers."); + + std::vector> local_storage; + local_storage.reserve(backend_options.size()); + LoadBackendOptionsMap local_map; + for (size_t i = 0; i < backend_options.size(); ++i) { + const auto entry = backend_options.entry_at(i); + local_storage.emplace_back(entry.options.begin(), entry.options.end()); + auto& owned = local_storage.back(); + // The input map was already valid, so set_options should not fail + // here; assert it loudly rather than leaving partial state behind. + ET_CHECK_OK_OR_RETURN_ERROR(local_map.set_options( + entry.backend_id, + runtime::Span(owned.data(), owned.size()))); + } + + // Single commit point: both members updated together. + backend_options_storage_ = std::move(local_storage); + backend_options_map_ = std::move(local_map); + + return runtime::Error::Ok; } runtime::Error Module::load_internal(const Program::Verification verification) { @@ -369,9 +410,12 @@ runtime::Error Module::load_method( if (!is_method_loaded(method_name)) { ET_CHECK_OK_OR_RETURN_ERROR(load()); - // Use passed backend_options, or fall back to stored one from load() - const LoadBackendOptionsMap* effective_backend_options = - backend_options ? backend_options : backend_options_; + // Use passed backend_options, or fall back to stored ones from load(). + // An empty stored map behaves identically to nullptr downstream, so we + // only forward the stored map when it actually has entries. + const LoadBackendOptionsMap* effective_backend_options = backend_options + ? backend_options + : (backend_options_map_.size() > 0 ? &backend_options_map_ : nullptr); MethodHolder method_holder; diff --git a/extension/module/module.h b/extension/module/module.h index 5f2c30bbfbe..2536fbc01ec 100644 --- a/extension/module/module.h +++ b/extension/module/module.h @@ -14,6 +14,8 @@ #include #include +#include +#include #include #ifdef USE_ATEN_LIB @@ -187,9 +189,18 @@ class Module { /** * Loads the program with per-delegate runtime options. * - * @param[in] backend_options A LoadBackendOptionsMap containing per-delegate - * load-time configuration options. The caller must ensure this object - * outlives any methods loaded with these options. + * The Module deep-copies `backend_options` into internal storage, so the + * caller may release the input (and any backing BackendOption arrays its + * Spans referenced) immediately after this call returns. Future lazy + * `load_method` calls (e.g. triggered by `forward`) consume the + * Module-owned copy. + * + * Transactional: on failure, the previously-installed backend options + * (if any) are left in place; the input is not committed. + * + * @param[in] backend_options A LoadBackendOptionsMap containing + * per-delegate load-time configuration options. Deep-copied into the + * Module on success; not retained on failure. * @param[in] verification The type of verification to do before returning * success. * @@ -200,6 +211,21 @@ class Module { const Program::Verification verification = Program::Verification::Minimal); + /** + * Returns the deep-copied LoadBackendOptionsMap most recently installed + * via `load(LoadBackendOptionsMap, ...)`. The returned reference is owned + * by the Module and remains valid until the next call to + * `load(LoadBackendOptionsMap, ...)` or until the Module is destroyed. + * + * If `load(LoadBackendOptionsMap, ...)` has never been called, returns a + * default-constructed (empty, `size() == 0`) map. + * + * @returns Const reference to the Module-owned LoadBackendOptionsMap. + */ + inline const LoadBackendOptionsMap& backend_options() const { + return backend_options_map_; + } + /** * Checks if the program is loaded. * @@ -713,7 +739,14 @@ class Module { std::unique_ptr merged_data_map_; std::vector> shared_arenas_; ET_DEPRECATED std::vector debug_buffer_; - const LoadBackendOptionsMap* backend_options_ = nullptr; + // Module-owned deep-copy of the backend options most recently installed + // via load(LoadBackendOptionsMap, ...). `backend_options_storage_` owns + // the per-backend BackendOption arrays; `backend_options_map_` is a + // LoadBackendOptionsMap whose Spans reference those owned arrays. An + // empty map (`size() == 0`) is observationally indistinguishable from + // "never set" by downstream consumers, so we don't track that bit. + std::vector> backend_options_storage_; + LoadBackendOptionsMap backend_options_map_; bool share_memory_arenas_; ET_NODISCARD runtime::Error load_internal( diff --git a/extension/module/targets.bzl b/extension/module/targets.bzl index 6d60429bc51..fa80203831a 100644 --- a/extension/module/targets.bzl +++ b/extension/module/targets.bzl @@ -27,6 +27,8 @@ def define_common_targets(): "//executorch/extension/named_data_map:merged_data_map" + aten_suffix, ], exported_deps = [ + "//executorch/runtime/backend:backend_options", + "//executorch/runtime/backend:backend_options_map", "//executorch/runtime/executor:program_no_prim_ops" + aten_suffix, ], ) diff --git a/extension/module/test/module_test.cpp b/extension/module/test/module_test.cpp index 1e010504789..71c55ae8751 100644 --- a/extension/module/test/module_test.cpp +++ b/extension/module/test/module_test.cpp @@ -9,7 +9,9 @@ #include #include +#include #include +#include #include @@ -663,6 +665,115 @@ TEST_F(ModuleTest, TestLoadWithEmptyLoadBackendOptionsMap) { EXPECT_TRUE(module.is_loaded()); } +TEST_F(ModuleTest, TestLoadWithBackendOptionsRollbackOnFailure) { + // Module pointed at a non-existent file so `load_internal` will fail. + Module module("/this/path/should/not/exist.pte"); + + { + // `bo1` lives only in this scope. The Module deep-copies the input, + // so dropping `bo1` is always safe regardless of whether the load + // succeeded, but on the failure path we additionally verify the + // Module did NOT install the input options (transactional contract). + LoadBackendOptionsMap bo1; + BackendOptions<2> opts; + opts.set_option("rollback_test", true); + ASSERT_EQ(bo1.set_options("RollbackBackend", opts.view()), Error::Ok); + + const auto load_error = module.load(bo1); + EXPECT_NE(load_error, Error::Ok); + EXPECT_FALSE(module.is_loaded()); + } + // `bo1` is destroyed. Module must remain in a usable state and a + // subsequent `load_method` should fail with the same load-time error + // (file not found) rather than crashing. + EXPECT_FALSE(module.is_loaded()); + const auto method_error = module.load_method("forward"); + EXPECT_NE(method_error, Error::Ok); + EXPECT_FALSE(module.is_method_loaded("forward")); +} + +TEST_F(ModuleTest, TestLoadDeepCopiesBackendOptionsInputCanBeReleased) { + // Pin the deep-copy contract: the caller may release the input + // LoadBackendOptionsMap (and the BackendOption arrays its Spans + // referenced) immediately after `load()` returns. A subsequent + // `load_method` must use the Module-owned copy via the fallback path, + // not dereference the released input. + Module module(model_path_); + + { + LoadBackendOptionsMap bo; + BackendOptions<2> opts; + opts.set_option("persist_test", true); + ASSERT_EQ(bo.set_options("PersistBackend", opts.view()), Error::Ok); + + ASSERT_EQ(module.load(bo), Error::Ok); + // `bo` and `opts` go out of scope here; their storage is freed. + } + + // load_method without explicit backend_options falls back to the + // Module's stored copy. With the old borrowed-pointer design this + // would have been a use-after-free; with deep-copy it is safe. + EXPECT_EQ(module.load_method("forward"), Error::Ok); + EXPECT_TRUE(module.is_method_loaded("forward")); + + // Forward should still execute correctly using the Module-owned + // backend options. + auto tensor = make_tensor_ptr({2, 2}, {1.f, 2.f, 3.f, 4.f}); + const auto result = module.execute("forward", {tensor, tensor, 1.0}); + EXPECT_EQ(result.error(), Error::Ok); +} + +TEST_F(ModuleTest, TestLoadStoresBackendOptionsForReadback) { + // Verify that Module deep-copies the input LoadBackendOptionsMap into + // its own storage so callers can both (a) release the input + // immediately and (b) read back exactly what was stored via the + // public `backend_options()` accessor. + Module module(model_path_); + + // Default-constructed: no options stored yet. + EXPECT_EQ(module.backend_options().size(), 0u); + + { + LoadBackendOptionsMap bo; + BackendOptions<2> opts; + opts.set_option("num_threads", 8); + opts.set_option("enable_profiling", true); + ASSERT_EQ(bo.set_options("MyBackend", opts.view()), Error::Ok); + + ASSERT_EQ(module.load(bo), Error::Ok); + // `bo` and `opts` go out of scope here; their backing storage is + // freed. Anything we read back from `module.backend_options()` must + // therefore live in Module-owned storage. + } + + const auto& stored = module.backend_options(); + ASSERT_EQ(stored.size(), 1u); + + const auto entry = stored.entry_at(0); + EXPECT_STREQ(entry.backend_id, "MyBackend"); + ASSERT_EQ(entry.options.size(), 2u); + + // Look up each option by key so the value assertions are direct and + // independent of insertion order. + const BackendOption* num_threads_opt = nullptr; + const BackendOption* enable_profiling_opt = nullptr; + for (const auto& opt : entry.options) { + if (std::strcmp(opt.key, "num_threads") == 0) { + num_threads_opt = &opt; + } else if (std::strcmp(opt.key, "enable_profiling") == 0) { + enable_profiling_opt = &opt; + } + } + + ASSERT_NE(num_threads_opt, nullptr); + ASSERT_TRUE(std::holds_alternative(num_threads_opt->value)); + EXPECT_EQ(std::get(num_threads_opt->value), 8); + + ASSERT_NE(enable_profiling_opt, nullptr); + ASSERT_TRUE(std::holds_alternative(enable_profiling_opt->value)); + EXPECT_TRUE(std::get(enable_profiling_opt->value)); +} + TEST_F(ModuleTest, TestLoadBackendOptionsMapPersistedAcrossLoadMethod) { Module module(model_path_); From f8cfc7342c09bf2e4639f7aad4e846610f65f9ef Mon Sep 17 00:00:00 2001 From: Mergen Nachin Date: Tue, 19 May 2026 18:18:57 -0400 Subject: [PATCH 56/91] Add MLX backend support for Gemma 4 31B (#19524) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds Apple Silicon (MLX) backend for the Gemma 4 31B-IT model. The same quantized checkpoint works for both CUDA and MLX — backend-specific packing happens at load time. Key changes: - MLX packer converts Int4Tensor → IntxUnpackedToInt8Tensor for MLX's quantized linear fusion - Source transforms replace PyTorch ops with mlx.rope, mlx.kv_cache_update, mlx.custom_sdpa for optimized Metal kernels - Proportional partial RoPE (full-attention layers) passes 1D frequencies to mlx.rope with dims=rotary_dim, fixing the C++ runtime to pass base=nullopt when freqs is provided - Single-method export with dynamic seq_len and host-side sampling - C++ runner supports both backends via #ifdef, using shared logits_to_token for MLX sampling - Last-logits-only optimization: lm_head always runs on last position only, removing the full-logits codepath entirely Nothing in the CUDA backend code itself. The CUDA-side changes are in the shared model/runner code: - model.py: forward() now always does last-logits-only and temperature is required (no None path). Affects both CUDA and MLX. - sampler.py: Removed temperature=None passthrough. - main.cpp: Unified temp_val clamping before the #ifdef. CUDA path behavior unchanged. - inference.py: Default temperature changed from 0.0 to 0.8 to match C++ runner default. On my 32GB RAM M1 macbook pro ``` (executorch_dev) mnachin@mnachin-mbp executorch % cmake-out/examples/models/gemma4_31b/gemma4_31b_runner --model_path ~/repos/models/gemma-4-31B-it-HQQ-INT4/model.pte --tokenizer_path ~/repos/models/gemma-4-31B-it-HQQ-INT4/tokenizer.json --prompt "Write a short joke about saving RAM." --max_new_tokens 128 I tokenizers:regex.cpp:27] Registering override fallback regex WARNING: All log messages before absl::InitializeLog() is called are written to STDERR E0000 00:00:1779218557.174278 43844526 re2.cc:237] Error parsing '((\|ool\|\>1\x00\x00\ �\|\|\<\|tool_response\>|\<\|think\|\>|\x0...': invalid UTF-8 I tokenizers:re2_regex.cpp:27] Re2 failed to compile regex: ((\|ool\|\>1\x00\x00\ �\|\|\<\|tool_response\>|\<\|think\|\>|\x00\x00\\\<|\|\|\<\|\"\|\>|all\|\>j\x00\x00\\|\|\<\|turn\>|\|\<\|image\>|\<\|$ I tokenizers:regex_lookahead.cpp:27] Creating PCRE2 regex I tokenizers:pcre2_regex.cpp:48] PCRE2 UTF-8 validation failed at offset 27: UTF-8 error: byte 2 top bits not 0x80. Retrying without UTF flags. Loading model... Prompt tokens: 24 Why did the programmer get kicked out of the library? He kept trying to free the memory. PyTorchObserver {"prefill_token_per_sec":7.56859,"decode_token_per_sec":2.09161,"prompt_tokens":24,"generated_tokens":20,"model_load_start_ms":1779218556804,"model_load_end_ms":1779218560048,"inference_start_ms":1779218560052,"inference_end_ms":1779218572785,"prompt_eval_end_ms":1779218563223,"first_token_ms":1779218563223,"aggregate_sampling_time_ms":0,"SCALING_FACTOR_UNITS_PER_SECOND":1000} ``` --------- Co-authored-by: Claude --- .github/workflows/cuda.yml | 2 +- .github/workflows/mlx.yml | 1 + Makefile | 12 +- backends/mlx/custom_ops.py | 12 +- backends/mlx/runtime/MLXInterpreter.h | 9 +- backends/mlx/test/test_ops.py | 76 ++++++ examples/models/gemma4_31b/CMakeLists.txt | 15 +- examples/models/gemma4_31b/CMakePresets.json | 31 +++ examples/models/gemma4_31b/README.md | 22 +- examples/models/gemma4_31b/export.py | 121 ++++++++- examples/models/gemma4_31b/inference.py | 2 +- examples/models/gemma4_31b/main.cpp | 188 ++++++------- .../gemma4_31b/mlx_source_transformations.py | 192 ++++++++++++++ examples/models/gemma4_31b/model.md | 47 +++- examples/models/gemma4_31b/model.py | 16 +- examples/models/gemma4_31b/quant/README.md | 4 +- examples/models/gemma4_31b/quant/__init__.py | 1 + examples/models/gemma4_31b/quant/pack_mlx.py | 198 ++++++++++++++ .../gemma4_31b/quant/tests/test_pack_mlx.py | 219 ++++++++++++++++ examples/models/gemma4_31b/sampler.py | 15 +- .../gemma4_31b/tests/test_cuda_pipeline.py | 23 +- .../gemma4_31b/tests/test_mlx_pipeline.py | 248 ++++++++++++++++++ 22 files changed, 1295 insertions(+), 159 deletions(-) create mode 100644 examples/models/gemma4_31b/mlx_source_transformations.py create mode 100644 examples/models/gemma4_31b/quant/pack_mlx.py create mode 100644 examples/models/gemma4_31b/quant/tests/test_pack_mlx.py create mode 100644 examples/models/gemma4_31b/tests/test_mlx_pipeline.py diff --git a/.github/workflows/cuda.yml b/.github/workflows/cuda.yml index eb7fc5a8939..e1eaba6b7c1 100644 --- a/.github/workflows/cuda.yml +++ b/.github/workflows/cuda.yml @@ -150,7 +150,7 @@ jobs: # Run Gemma 4 31B tests (quant unit tests + pipeline integration tests) pip install gguf - python -m pytest examples/models/gemma4_31b/quant/tests/ examples/models/gemma4_31b/tests/ -v -o "addopts=" + python -m pytest examples/models/gemma4_31b/quant/tests/ examples/models/gemma4_31b/tests/ --ignore=examples/models/gemma4_31b/tests/test_mlx_pipeline.py -v -o "addopts=" export-model-cuda-artifact: name: export-model-cuda-artifact diff --git a/.github/workflows/mlx.yml b/.github/workflows/mlx.yml index 4778d08fcdc..d429db16053 100644 --- a/.github/workflows/mlx.yml +++ b/.github/workflows/mlx.yml @@ -60,6 +60,7 @@ jobs: backends/mlx/test/test_passes.py \ backends/mlx/test/test_pattern_utils.py \ backends/mlx/test/test_partitioner.py \ + examples/models/gemma4_31b/tests/test_mlx_pipeline.py \ -v echo "::endgroup::" diff --git a/Makefile b/Makefile index ba61dddce44..9b7f24b2f83 100644 --- a/Makefile +++ b/Makefile @@ -91,7 +91,7 @@ # # ============================================================================== -.PHONY: voxtral-cuda voxtral-cpu voxtral-metal voxtral-mlx voxtral_realtime-cuda voxtral_realtime-cpu voxtral_realtime-metal voxtral_realtime-mlx voxtral_tts-cpu voxtral_tts-cuda whisper-cuda whisper-cuda-debug whisper-cpu whisper-metal parakeet-cuda parakeet-cuda-debug parakeet-cpu parakeet-metal parakeet-mlx parakeet-vulkan dinov2-cuda dinov2-cuda-debug sortformer-cuda sortformer-cpu silero-vad-cpu llama-cuda llama-cuda-debug llama-cpu llava-cpu gemma3-cuda gemma3-cpu gemma4_31b-cuda qwen3_5_moe-cuda qwen3_5_moe-metal clean help +.PHONY: voxtral-cuda voxtral-cpu voxtral-metal voxtral-mlx voxtral_realtime-cuda voxtral_realtime-cpu voxtral_realtime-metal voxtral_realtime-mlx voxtral_tts-cpu voxtral_tts-cuda whisper-cuda whisper-cuda-debug whisper-cpu whisper-metal parakeet-cuda parakeet-cuda-debug parakeet-cpu parakeet-metal parakeet-mlx parakeet-vulkan dinov2-cuda dinov2-cuda-debug sortformer-cuda sortformer-cpu silero-vad-cpu llama-cuda llama-cuda-debug llama-cpu llava-cpu gemma3-cuda gemma3-cpu gemma4_31b-cuda gemma4_31b-mlx qwen3_5_moe-cuda qwen3_5_moe-metal clean help help: @echo "This Makefile adds targets to build runners for various models on various backends. Run using \`make \`. Available targets:" @@ -127,6 +127,7 @@ help: @echo " gemma3-cuda - Build Gemma3 runner with CUDA backend" @echo " gemma3-cpu - Build Gemma3 runner with CPU backend" @echo " gemma4_31b-cuda - Build Gemma 4 31B runner with CUDA backend" + @echo " gemma4_31b-mlx - Build Gemma 4 31B runner with MLX backend" @echo " qwen3_5_moe-cuda - Build Qwen3.5 MoE runner with CUDA backend" @echo " qwen3_5_moe-metal - Build Qwen3.5 MoE runner with Metal backend" @echo " clean - Clean build artifacts" @@ -435,6 +436,15 @@ gemma4_31b-cuda: @echo "✓ Build complete!" @echo " Binary: cmake-out/examples/models/gemma4_31b/gemma4_31b_runner" +gemma4_31b-mlx: + @echo "==> Building and installing ExecuTorch with MLX..." + cmake --workflow --preset mlx-release + @echo "==> Building Gemma 4 31B runner with MLX..." + cd examples/models/gemma4_31b && cmake --workflow --preset gemma4-31b-mlx + @echo "" + @echo "✓ Build complete!" + @echo " Binary: cmake-out/examples/models/gemma4_31b/gemma4_31b_runner" + qwen3_5_moe-metal: @echo "==> Building and installing ExecuTorch with Metal..." cmake --workflow --preset llm-release-metal diff --git a/backends/mlx/custom_ops.py b/backends/mlx/custom_ops.py index d7d6288ba8f..c03db05d918 100644 --- a/backends/mlx/custom_ops.py +++ b/backends/mlx/custom_ops.py @@ -228,8 +228,16 @@ def rope( # final angles: [1, 1, T, half] angles = (pos_range * inv_freq) * float(scale) else: - # assume freqs is already per-position, just reshape to [1,1,T,half] - angles = freqs.to(torch.float32).view(1, 1, T, half) + if freqs.ndim == 1: + # 1D raw frequencies: compute angles = positions * (1/freqs) + inv_freq = (1.0 / freqs.to(torch.float32)).view(1, 1, 1, half) + pos_range = torch.arange( + pos, pos + T, device=x.device, dtype=torch.float32 + ).view(1, 1, T, 1) + angles = (pos_range * inv_freq) * float(scale) + else: + # 2D per-position angles: reshape to [1,1,T,half] + angles = freqs.to(torch.float32).view(1, 1, T, half) cos = angles.cos().to(x.dtype) # [1,1,T,half] sin = angles.sin().to(x.dtype) # [1,1,T,half] diff --git a/backends/mlx/runtime/MLXInterpreter.h b/backends/mlx/runtime/MLXInterpreter.h index 1f961459d22..fb6597d171e 100644 --- a/backends/mlx/runtime/MLXInterpreter.h +++ b/backends/mlx/runtime/MLXInterpreter.h @@ -242,6 +242,11 @@ inline void exec_rope(const RopeNode& n, ExecutionState& st, StreamOrDevice s) { freqs_arr = st.const_tensor_ref(*n.freqs); } + // MLX requires exactly one of base or freqs — when freqs is provided, + // base must be nullopt. + std::optional base = + freqs_arr ? std::nullopt : std::optional(n.base); + // MLX has two overloads: rope(..., int offset, ...) and rope(..., const // array& offset, ...) Call the appropriate one based on is_vid if (n.offset.is_vid) { @@ -250,14 +255,14 @@ inline void exec_rope(const RopeNode& n, ExecutionState& st, StreamOrDevice s) { st.set_tensor( n.out, fast::rope( - x, n.dims, n.traditional, n.base, n.scale, offset, freqs_arr, s)); + x, n.dims, n.traditional, base, n.scale, offset, freqs_arr, s)); } else { // Tensor offset from Tid const array& offset = st.const_tensor_ref(n.offset.tid); st.set_tensor( n.out, fast::rope( - x, n.dims, n.traditional, n.base, n.scale, offset, freqs_arr, s)); + x, n.dims, n.traditional, base, n.scale, offset, freqs_arr, s)); } } diff --git a/backends/mlx/test/test_ops.py b/backends/mlx/test/test_ops.py index afc45adcc93..4471610519e 100644 --- a/backends/mlx/test/test_ops.py +++ b/backends/mlx/test/test_ops.py @@ -1803,6 +1803,82 @@ def create_inputs(self) -> Tuple[torch.Tensor, ...]: return (q, k, pos_tensor) +class RopeCustomFreqsModel(nn.Module): + """Model that applies RoPE with custom 1D frequencies (partial rotary).""" + + def __init__(self, dims: int = 32, head_dim: int = 64): + super().__init__() + self.dims = dims + self.head_dim = head_dim + # Simulate proportional RoPE: compute freqs for rotary dims only + inv_freq = 1.0 / ( + 500000.0 ** (torch.arange(0, dims, 2, dtype=torch.float32) / head_dim) + ) + self.register_buffer("freqs", 1.0 / inv_freq, persistent=False) + + def forward( + self, + q: torch.Tensor, + k: torch.Tensor, + pos_tensor: torch.Tensor, + ) -> Tuple[torch.Tensor, torch.Tensor]: + pos = pos_tensor.item() + q_rot = torch.ops.mlx.rope(q, self.dims, pos, False, 0.0, 1.0, self.freqs) + k_rot = torch.ops.mlx.rope(k, self.dims, pos, False, 0.0, 1.0, self.freqs) + return q_rot, k_rot + + +@register_test +class RopeCustomFreqsTest(OpTestCase): + """Test RoPE with custom 1D frequencies (partial rotary, like Gemma 4).""" + + name = "rope_custom_freqs" + rtol = 1e-4 + atol = 1e-4 + + def __init__( + self, + batch_size: int = 1, + num_heads: int = 8, + seq_len: int = 4, + head_dim: int = 64, + dims: int = 32, + pos: int = 0, + ): + self.batch_size = batch_size + self.num_heads = num_heads + self.seq_len = seq_len + self.head_dim = head_dim + self.dims = dims + self.pos = pos + self.name = "rope_custom_freqs" + + @classmethod + def get_test_configs(cls) -> List["RopeCustomFreqsTest"]: + configs = [ + cls(), + cls(pos=10), + cls(head_dim=128, dims=64), + ] + for cfg in configs: + parts = ["rope_custom_freqs"] + if cfg.pos > 0: + parts.append(f"pos{cfg.pos}") + if cfg.head_dim != 64: + parts.append(f"hd{cfg.head_dim}") + cfg.name = "_".join(parts) + return configs + + def create_model(self) -> nn.Module: + return RopeCustomFreqsModel(dims=self.dims, head_dim=self.head_dim) + + def create_inputs(self) -> Tuple[torch.Tensor, ...]: + q = torch.randn(self.batch_size, self.num_heads, self.seq_len, self.head_dim) + k = torch.randn(self.batch_size, self.num_heads, self.seq_len, self.head_dim) + pos_tensor = torch.tensor(self.pos, dtype=torch.int64) + return (q, k, pos_tensor) + + from executorch.backends.mlx.llm.cache import KVCache diff --git a/examples/models/gemma4_31b/CMakeLists.txt b/examples/models/gemma4_31b/CMakeLists.txt index 8d536a47fc5..52419eb95bc 100644 --- a/examples/models/gemma4_31b/CMakeLists.txt +++ b/examples/models/gemma4_31b/CMakeLists.txt @@ -42,14 +42,17 @@ list( extension_flat_tensor ) -# CUDA backend (the only supported backend for this example for now) +# Backend: CUDA or MLX (exactly one required) if(EXECUTORCH_BUILD_CUDA) find_package(CUDAToolkit REQUIRED) list(APPEND link_libraries aoti_cuda_backend) executorch_target_link_options_shared_lib(aoti_cuda_backend) add_compile_definitions(EXECUTORCH_BUILD_CUDA) +elseif(TARGET mlxdelegate) + list(APPEND link_libraries mlxdelegate mlx) + executorch_target_link_options_shared_lib(mlxdelegate) else() - message(FATAL_ERROR "Set EXECUTORCH_BUILD_CUDA=ON") + message(FATAL_ERROR "Set EXECUTORCH_BUILD_CUDA=ON or EXECUTORCH_BUILD_MLX=ON") endif() # Tokenizer (HuggingFace tokenizer.json) @@ -63,5 +66,11 @@ target_link_libraries(gemma4_31b_runner PUBLIC ${link_libraries}) if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") target_link_options_gc_sections(gemma4_31b_runner) - target_link_options(gemma4_31b_runner PRIVATE "LINKER:-s") + if(NOT APPLE AND NOT MSVC) + target_link_options(gemma4_31b_runner PRIVATE "LINKER:-s") + endif() +endif() + +if(TARGET mlxdelegate) + executorch_target_copy_mlx_metallib(gemma4_31b_runner) endif() diff --git a/examples/models/gemma4_31b/CMakePresets.json b/examples/models/gemma4_31b/CMakePresets.json index 97ba7f4c57a..23a7d42e035 100644 --- a/examples/models/gemma4_31b/CMakePresets.json +++ b/examples/models/gemma4_31b/CMakePresets.json @@ -23,6 +23,17 @@ "string": "${hostSystemName}", "list": ["Linux", "Windows"] } + }, + { + "name": "gemma4-31b-mlx", + "displayName": "Gemma 4 31B runner (MLX)", + "inherits": ["gemma4-31b-base"], + "cacheVariables": {}, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Darwin" + } } ], "buildPresets": [ @@ -31,6 +42,12 @@ "displayName": "Build Gemma 4 31B runner (CUDA)", "configurePreset": "gemma4-31b-cuda", "targets": ["gemma4_31b_runner"] + }, + { + "name": "gemma4-31b-mlx", + "displayName": "Build Gemma 4 31B runner (MLX)", + "configurePreset": "gemma4-31b-mlx", + "targets": ["gemma4_31b_runner"] } ], "workflowPresets": [ @@ -47,6 +64,20 @@ "name": "gemma4-31b-cuda" } ] + }, + { + "name": "gemma4-31b-mlx", + "displayName": "Configure and build Gemma 4 31B runner (MLX)", + "steps": [ + { + "type": "configure", + "name": "gemma4-31b-mlx" + }, + { + "type": "build", + "name": "gemma4-31b-mlx" + } + ] } ] } diff --git a/examples/models/gemma4_31b/README.md b/examples/models/gemma4_31b/README.md index 94783c8f823..da4aa893079 100644 --- a/examples/models/gemma4_31b/README.md +++ b/examples/models/gemma4_31b/README.md @@ -1,7 +1,7 @@ # Gemma 4 31B-IT Text-only export of Google's Gemma 4 31B-IT to ExecuTorch with INT4/INT8 -weight quantization. Currently supports the CUDA backend. +weight quantization. Supports CUDA and MLX (Apple Silicon) backends. For architecture and design notes see [model.md](model.md). @@ -67,6 +67,8 @@ recipe. Writes `model.safetensors`, `config.json`, and `tokenizer.json` into ## Export to ExecuTorch +### CUDA + ```bash python examples/models/gemma4_31b/export.py \ --prequantized ./gemma4_31b_int4 \ @@ -75,7 +77,20 @@ python examples/models/gemma4_31b/export.py \ --backend cuda ``` -Writes `model.pte` and `model.ptd` into `--output-dir`. +### MLX (Apple Silicon) + +```bash +python examples/models/gemma4_31b/export.py \ + --prequantized ./gemma4_31b_int4 \ + --output-dir ./gemma4_31b_exports_mlx \ + --max-seq-len 4096 \ + --backend mlx +``` + +The same quantized checkpoint works for both backends. MLX exports a single +method with dynamic sequence length and host-side sampling. + +Writes `model.pte` (and optionally `model.ptd`) into `--output-dir`. ## Eager inference @@ -105,7 +120,8 @@ model produces sensible text. ## Build the runner ```bash -make gemma4_31b-cuda +make gemma4_31b-cuda # Linux — CUDA backend +make gemma4_31b-mlx # macOS — MLX backend (Apple Silicon) ``` The binary lands at `cmake-out/examples/models/gemma4_31b/gemma4_31b_runner`. diff --git a/examples/models/gemma4_31b/export.py b/examples/models/gemma4_31b/export.py index a96dba0d512..046e365947b 100644 --- a/examples/models/gemma4_31b/export.py +++ b/examples/models/gemma4_31b/export.py @@ -19,6 +19,8 @@ Backends: --backend cuda (default) CUDA via tinygemm INT4 + CudaPartitioner. + --backend mlx Apple Silicon via MLXPartitioner (single method, + dynamic seq_len, host-side sampling). """ import argparse @@ -98,12 +100,21 @@ def load_and_quantize( # Backend dispatch helpers +_SUPPORTED_BACKENDS = ("cuda", "mlx") + + def _get_packers(backend: str) -> dict: if backend == "cuda": from executorch.examples.models.gemma4_31b.quant import DEFAULT_CUDA_PACKERS return DEFAULT_CUDA_PACKERS - raise ValueError(f"Unsupported backend: {backend!r}. Supported: 'cuda'.") + if backend == "mlx": + from executorch.examples.models.gemma4_31b.quant import DEFAULT_MLX_PACKERS + + return DEFAULT_MLX_PACKERS + raise ValueError( + f"Unsupported backend: {backend!r}. Supported: {_SUPPORTED_BACKENDS}." + ) def _pack_for_backend(model: nn.Module, path: str, backend: str) -> None: @@ -111,8 +122,14 @@ def _pack_for_backend(model: nn.Module, path: str, backend: str) -> None: from executorch.examples.models.gemma4_31b.quant import load_and_pack_for_cuda load_and_pack_for_cuda(path, model) + elif backend == "mlx": + from executorch.examples.models.gemma4_31b.quant import load_and_pack_for_mlx + + load_and_pack_for_mlx(path, model) else: - raise ValueError(f"Unsupported backend: {backend!r}. Supported: 'cuda'.") + raise ValueError( + f"Unsupported backend: {backend!r}. Supported: {_SUPPORTED_BACKENDS}." + ) # --------------------------------------------------------------------------- @@ -128,8 +145,12 @@ def export_and_lower( """Export and lower the model to ExecuTorch for the given backend.""" if backend == "cuda": _export_cuda(model, config, output_dir) + elif backend == "mlx": + _export_mlx(model, config, output_dir) else: - raise ValueError(f"Unsupported backend: {backend!r}. Supported: 'cuda'.") + raise ValueError( + f"Unsupported backend: {backend!r}. Supported: {_SUPPORTED_BACKENDS}." + ) def _export_cuda(model: Gemma4_31B, config: Gemma4_31BConfig, output_dir: str) -> None: @@ -258,6 +279,98 @@ def _export_cuda(model: Gemma4_31B, config: Gemma4_31BConfig, output_dir: str) - print("Done.") +def _export_mlx(model: Gemma4_31B, config: Gemma4_31BConfig, output_dir: str) -> None: + """Export to .pte via torch.export + MLX backend. + + Unlike CUDA (which exports separate decode/prefill methods with an + Int4Tensor dispatch override), MLX uses a single method with dynamic + sequence length. No int4_dispatch import — IntxUnpackedToInt8Tensor's + default dispatch produces the ``dequantize_affine → linear`` pattern + that MLX's QuantizedLinearHandler matches. + """ + import gc + + from executorch.backends.mlx import MLXPartitioner + from executorch.backends.mlx.passes import get_default_passes + + from executorch.examples.models.gemma4_31b.mlx_source_transformations import ( + mlx_source_transformations, + ) + from executorch.exir import ( + EdgeCompileConfig, + ExecutorchBackendConfig, + to_edge_transform_and_lower, + ) + from executorch.exir.passes import MemoryPlanningPass + from torch.export import Dim, export + + mlx_source_transformations(model, dtype=torch.bfloat16) + materialize_runtime_buffers(model, dtype=torch.bfloat16) + + max_prefill = min(config.max_seq_len - 1, config.sliding_window * 2) + seq_dim = Dim("seq_len", min=1, max=max_prefill) + + print(f"Exporting (T in [1, {max_prefill}])...") + with torch.no_grad(): + exported = export( + model, + ( + torch.tensor([[0, 1]], dtype=torch.long), + torch.tensor([0, 1], dtype=torch.long), + ), + dynamic_shapes=({1: seq_dim}, {0: seq_dim}), + strict=True, + ) + + del model + gc.collect() + + print("Lowering to ExecuTorch with MLX backend...") + et_prog = to_edge_transform_and_lower( + exported, + transform_passes=get_default_passes(), + partitioner=[MLXPartitioner()], + compile_config=EdgeCompileConfig( + _check_ir_validity=False, + _skip_dim_order=True, + ), + constant_methods={ + "get_max_seq_len": config.max_seq_len, + "get_vocab_size": config.vocab_size, + "get_n_layers": config.num_hidden_layers, + "get_max_prefill_chunk": max_prefill, + "use_kv_cache": True, + "use_sdpa_with_kv_cache": False, + "enable_dynamic_shape": True, + }, + ) + + del exported + gc.collect() + + et_program = et_prog.to_executorch( + config=ExecutorchBackendConfig( + extract_delegate_segments=True, + memory_planning_pass=MemoryPlanningPass(alloc_graph_input=False), + ), + ) + + del et_prog + gc.collect() + + os.makedirs(output_dir, exist_ok=True) + pte_path = os.path.join(output_dir, "model.pte") + print(f"Saving to {pte_path}...") + with open(pte_path, "wb") as f: + et_program.write_to_file(f) + print(f" {os.path.getsize(pte_path) / 1024**2:.1f} MB") + + if et_program._tensor_data: + et_program.write_tensor_data_to_file(output_dir) + print(f" Saved tensor data (.ptd) to {output_dir}/") + print("Done.") + + # --------------------------------------------------------------------------- # CLI @@ -302,7 +415,7 @@ def main() -> None: parser.add_argument( "--backend", default="cuda", - choices=["cuda"], + choices=list(_SUPPORTED_BACKENDS), help="Target backend for export.", ) args = parser.parse_args() diff --git a/examples/models/gemma4_31b/inference.py b/examples/models/gemma4_31b/inference.py index e1563c04ff6..92654fca5f2 100644 --- a/examples/models/gemma4_31b/inference.py +++ b/examples/models/gemma4_31b/inference.py @@ -86,7 +86,7 @@ def generate( tokenizer, prompt: str, max_new_tokens: int = 128, - temperature: float = 0.0, + temperature: float = 0.8, eos_token_ids=None, bos_token_id: int = 2, ) -> str: diff --git a/examples/models/gemma4_31b/main.cpp b/examples/models/gemma4_31b/main.cpp index 3ddf64e410f..6cf65cc8246 100644 --- a/examples/models/gemma4_31b/main.cpp +++ b/examples/models/gemma4_31b/main.cpp @@ -6,18 +6,21 @@ * LICENSE file in the root directory of this source tree. */ -// Gemma 4 31B-IT runner for the CUDA ExecuTorch backend. -// -// Drives the prefill + decode methods produced by export.py. -// The exported model performs Gumbel-max sampling on-device and returns a -// single float token ID per call, so this runner only has to feed tokens -// in and decode them via the HuggingFace tokenizer. +// Gemma 4 31B-IT runner for ExecuTorch. Supports two backends: +// CUDA — exports ``prefill`` (T>=2, dynamic) + ``decode`` (T=1, static) +// methods sharing KV-cache buffers; on-device Gumbel-max sampling +// with temperature passed as a third input; returns a scalar +// float token id. +// MLX — exports a single ``forward`` method with dynamic seq_len; +// returns last-token logits; the runner samples on the host via +// ``llm::logits_to_token`` with the same temperature semantics. #include #include #include #include +#include #include #include #include @@ -82,6 +85,7 @@ using ::executorch::runtime::EValue; using SizesType = executorch::aten::SizesType; +// Read a sampled token ID from a scalar float output (CUDA path). static uint64_t read_token(const executorch::aten::Tensor& output) { const void* ptr = output.const_data_ptr(); float val = 0.0f; @@ -143,8 +147,7 @@ int main(int argc, char** argv) { return 1; } - // Module: share_memory_arenas=true so prefill and decode see the same - // KV-cache memory (we exported with share_mutable_buffers=True). + // Module std::vector data_files; if (!FLAGS_data_path.empty()) { data_files.push_back(FLAGS_data_path); @@ -152,7 +155,7 @@ int main(int argc, char** argv) { auto module = std::make_unique( FLAGS_model_path, data_files, - Module::LoadMode::File, + Module::LoadMode::MmapUseMlockIgnoreErrors, /*event_tracer=*/nullptr, /*memory_allocator=*/nullptr, /*temp_allocator=*/nullptr, @@ -165,6 +168,19 @@ int main(int argc, char** argv) { return 1; } + int64_t max_prefill_chunk = (*metadata_result)[llm::kMaxSeqLen] - 1; + { + auto get_result = module->get("get_max_prefill_chunk"); + if (get_result.ok()) { + max_prefill_chunk = get_result->toScalar().to(); + } + } + + auto S = [](int64_t v) -> SizesType { return static_cast(v); }; + + float temp_val = + FLAGS_temperature <= 0.0 ? 1e-6f : static_cast(FLAGS_temperature); + #ifdef EXECUTORCH_BUILD_CUDA if (FLAGS_cuda_graph) { executorch::runtime::BackendOptions<2> cuda_opts; @@ -172,11 +188,6 @@ int main(int argc, char** argv) { executorch::runtime::set_option("CudaBackend", cuda_opts.view()); printf("CUDA graph enabled for decode method\n"); } - - // Cross-method per-FQN weight sharing: prefill + decode share the same - // weight tensors and (more importantly) the same KV-cache buffers, so - // without this flag we would allocate them twice. MUST be set before - // load_method. { executorch::runtime::BackendOptions<1> backend_options; auto set_err = @@ -184,7 +195,7 @@ int main(int argc, char** argv) { if (set_err != Error::Ok) { ET_LOG( Error, - "Failed to construct weight_sharing_across_methods option: %d", + "Failed to set weight_sharing_across_methods: %d", static_cast(set_err)); return 1; } @@ -198,12 +209,6 @@ int main(int argc, char** argv) { return 1; } } -#else - if (FLAGS_cuda_graph) { - ET_LOG(Info, "--cuda_graph ignored on non-CUDA build"); - } -#endif - printf("Loading methods...\n"); if (module->load_method("prefill") != Error::Ok) { ET_LOG(Error, "Failed to load prefill method"); @@ -213,6 +218,19 @@ int main(int argc, char** argv) { ET_LOG(Error, "Failed to load decode method"); return 1; } + auto temp_tensor = + from_blob(&temp_val, {1}, executorch::aten::ScalarType::Float); +#else + if (FLAGS_cuda_graph) { + ET_LOG(Info, "--cuda_graph ignored on non-CUDA build"); + } + printf("Loading model...\n"); + if (module->load_method("forward") != Error::Ok) { + ET_LOG(Error, "Failed to load forward method"); + return 1; + } +#endif + stats.model_load_end_ms = llm::time_in_ms(); #ifdef EXECUTORCH_BUILD_CUDA @@ -222,8 +240,12 @@ int main(int argc, char** argv) { auto eos_ids = llm::get_eos_ids(tokenizer.get(), module.get()); eos_ids.insert(static_cast(FLAGS_eos_id)); + auto turn_ids = tokenizer->encode("", /*bos=*/0, /*eos=*/0); + if (turn_ids.ok() && turn_ids->size() == 1) { + eos_ids.insert(turn_ids.get()[0]); + } - // Read prompt from file or flag + // Read prompt std::string prompt_text = FLAGS_prompt; if (!FLAGS_prompt_file.empty()) { std::ifstream f(FLAGS_prompt_file); @@ -260,38 +282,15 @@ int main(int argc, char** argv) { stats.inference_start_ms = llm::time_in_ms(); - auto S = [](int64_t v) -> SizesType { return static_cast(v); }; - -#ifdef EXECUTORCH_BUILD_CUDA - // CUDA build: model fuses the sampler. Pass temperature as a third input. - float temp_val = - FLAGS_temperature <= 0.0 ? 1e-6f : static_cast(FLAGS_temperature); - auto temp_tensor = - from_blob(&temp_val, {1}, executorch::aten::ScalarType::Float); -#endif - // --------------------------------------------------------------- // Prefill (chunked to respect ring-buffer KV cache limit) // --------------------------------------------------------------- - // Sliding layers use a ring buffer sized to 2×sliding_window. A single - // prefill call must not exceed this size, otherwise index_copy_ with - // wrapped indices produces non-deterministic results on CUDA. - int64_t max_prefill_chunk = (*metadata_result)[llm::kMaxSeqLen] - 1; - { - auto get_result = module->get("get_max_prefill_chunk"); - if (get_result.ok()) { - max_prefill_chunk = get_result->toScalar().to(); - } - } - uint64_t cur_token = 0; int64_t prefill_pos = 0; while (prefill_pos < num_prompt_tokens) { int64_t chunk_len = std::min(num_prompt_tokens - prefill_pos, max_prefill_chunk); - std::string run_method = (chunk_len == 1) ? "decode" : "prefill"; - std::vector token_data( prompt_tokens.begin() + prefill_pos, prompt_tokens.begin() + prefill_pos + chunk_len); @@ -306,39 +305,52 @@ int main(int argc, char** argv) { auto pos_tensor = from_blob( pos_data.data(), {S(chunk_len)}, executorch::aten::ScalarType::Long); - std::vector prefill_inputs; - prefill_inputs.push_back(EValue(tokens_tensor)); - prefill_inputs.push_back(EValue(pos_tensor)); + std::vector inputs; + inputs.push_back(EValue(tokens_tensor)); + inputs.push_back(EValue(pos_tensor)); + #ifdef EXECUTORCH_BUILD_CUDA - prefill_inputs.push_back(EValue(temp_tensor)); + inputs.push_back(EValue(temp_tensor)); + std::string method = (chunk_len == 1) ? "decode" : "prefill"; +#else + std::string method = "forward"; #endif - auto prefill_result = module->execute(run_method, prefill_inputs); - if (prefill_result.error() != Error::Ok) { - ET_LOG( - Error, "%s failed at pos %" PRId64, run_method.c_str(), prefill_pos); + auto result = module->execute(method, inputs); + if (result.error() != Error::Ok) { + ET_LOG(Error, "%s failed at pos %" PRId64, method.c_str(), prefill_pos); return 1; } - cur_token = read_token(prefill_result.get()[0].toTensor()); + +#ifdef EXECUTORCH_BUILD_CUDA + cur_token = read_token(result.get()[0].toTensor()); +#else + cur_token = static_cast( + llm::logits_to_token(result.get()[0].toTensor(), temp_val)); +#endif + prefill_pos += chunk_len; } stats.prompt_eval_end_ms = llm::time_in_ms(); - double prefill_ms = - static_cast(stats.prompt_eval_end_ms - stats.inference_start_ms); - printf( - "Prefill: %" PRId64 " tokens in %.1f ms (%.1f tok/s)\n", - num_prompt_tokens, - prefill_ms, - num_prompt_tokens * 1000.0 / prefill_ms); + // First generated token came from the last prefill chunk; TTFT is prefill. + stats.first_token_ms = stats.prompt_eval_end_ms; #ifdef EXECUTORCH_BUILD_CUDA - // Synchronize CUDA device to ensure prefill's writes to shared mutable - // buffers (KV cache) are visible to the decode method, which may run on - // a different CUDA stream. cudaDeviceSynchronize(); #endif + // Print the first generated token (from the last prefill chunk). + // Use the last prompt token as the streaming-decode prefix so any BPE + // partial-character handling stays correct. + { + auto first_str = tokenizer->decode(prompt_tokens.back(), cur_token); + if (first_str.ok()) { + printf("%s", first_str->c_str()); + fflush(stdout); + } + } + // --------------------------------------------------------------- // Decode loop // --------------------------------------------------------------- @@ -351,29 +363,34 @@ int main(int argc, char** argv) { decode_pos_data.data(), {1}, executorch::aten::ScalarType::Long); uint64_t prev_token = cur_token; - for (int32_t step = 0; step < FLAGS_max_new_tokens; step++) { + bool hit_eos = eos_ids.find(cur_token) != eos_ids.end(); + for (int32_t step = 0; step < FLAGS_max_new_tokens && !hit_eos; step++) { decode_token_data[0] = static_cast(cur_token); decode_pos_data[0] = pos; - std::vector decode_inputs; - decode_inputs.push_back(EValue(decode_tokens)); - decode_inputs.push_back(EValue(decode_pos)); + std::vector inputs; + inputs.push_back(EValue(decode_tokens)); + inputs.push_back(EValue(decode_pos)); + #ifdef EXECUTORCH_BUILD_CUDA - decode_inputs.push_back(EValue(temp_tensor)); + inputs.push_back(EValue(temp_tensor)); + auto result = module->execute("decode", inputs); +#else + auto result = module->execute("forward", inputs); #endif - auto decode_result = module->execute("decode", decode_inputs); - if (decode_result.error() != Error::Ok) { + if (result.error() != Error::Ok) { ET_LOG(Error, "Decode step %d failed", step); return 1; } prev_token = cur_token; - cur_token = read_token(decode_result.get()[0].toTensor()); - - if (step == 0) { - stats.first_token_ms = llm::time_in_ms(); - } +#ifdef EXECUTORCH_BUILD_CUDA + cur_token = read_token(result.get()[0].toTensor()); +#else + cur_token = static_cast( + llm::logits_to_token(result.get()[0].toTensor(), temp_val)); +#endif pos++; auto decode_str = tokenizer->decode(prev_token, cur_token); @@ -382,25 +399,12 @@ int main(int argc, char** argv) { fflush(stdout); } - if (eos_ids.find(cur_token) != eos_ids.end()) { - printf("\n"); - break; - } + hit_eos = eos_ids.find(cur_token) != eos_ids.end(); } - - stats.inference_end_ms = llm::time_in_ms(); printf("\n"); - int64_t num_generated = pos - num_prompt_tokens; - stats.num_generated_tokens = num_generated; - double decode_ms = - static_cast(stats.inference_end_ms - stats.prompt_eval_end_ms); - printf( - "Decode: %" PRId64 " tokens in %.1f ms (%.1f tok/s)\n", - num_generated, - decode_ms, - num_generated * 1000.0 / decode_ms); - printf("Prompt tokens: %" PRId64 "\n", num_prompt_tokens); + stats.inference_end_ms = llm::time_in_ms(); + stats.num_generated_tokens = pos - num_prompt_tokens; #ifdef EXECUTORCH_BUILD_CUDA cudaMemGetInfo(&gpu_free_bytes, &gpu_total_bytes); diff --git a/examples/models/gemma4_31b/mlx_source_transformations.py b/examples/models/gemma4_31b/mlx_source_transformations.py new file mode 100644 index 00000000000..3a8ae4420e3 --- /dev/null +++ b/examples/models/gemma4_31b/mlx_source_transformations.py @@ -0,0 +1,192 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +"""MLX source transformations for Gemma 4 31B-IT. + +Replaces the generic PyTorch ops in the model with MLX custom ops that lower +to optimized Metal kernels: + +- ``torch.ops.mlx.rope`` for rotary position embeddings +- ``torch.ops.mlx.kv_cache_update`` for KV cache scatter (via MLX cache modules) +- ``torch.ops.mlx.custom_sdpa`` for scaled dot-product attention with GQA + +Applied at export time before ``torch.export`` — the model code in ``model.py`` +stays backend-agnostic. +""" + +import executorch.backends.mlx.custom_ops # noqa: F401 — registers mlx:: ops +import torch +import torch.nn as nn +from executorch.backends.mlx.llm.cache import ( + KVCache as MLXKVCache, + RingBufferKVCache as MLXRingKVCache, +) + + +def _replace_attention_forward(attn: nn.Module) -> None: + """Replace a Gemma4Attention's forward with one that uses MLX custom ops.""" + import types + + def _mlx_forward(self, x: torch.Tensor, input_pos: torch.Tensor) -> torch.Tensor: + B, T, _ = x.shape + start_pos = input_pos[0].item() + + q = self.q_proj(x).view(B, T, self.n_heads, self.head_dim) + raw_k = self.k_proj(x).view(B, T, self.n_kv_heads, self.head_dim) + if self.k_eq_v: + raw_v = raw_k + else: + raw_v = self.v_proj(x).view(B, T, self.n_kv_heads, self.head_dim) + + q = self.q_norm(q) + k = self.k_norm(raw_k) + v = self.v_norm(raw_v) + + q = q.transpose(1, 2) + k = k.transpose(1, 2) + v = v.transpose(1, 2) + + # RoPE via mlx::rope. + if self.is_sliding: + q = torch.ops.mlx.rope( + q, self.head_dim, start_pos, False, self.rope_theta, 1.0, None + ) + k = torch.ops.mlx.rope( + k, self.head_dim, start_pos, False, self.rope_theta, 1.0, None + ) + else: + # Full-attention layers use proportional partial RoPE: only + # rotary_dim out of head_dim dimensions are rotated. Pass + # dims=rotary_dim and the non-zero frequencies as 1D freqs. + # MLX computes inv_freq = 1/freqs internally. + rotary_dim = int(self.head_dim * self.partial_rotary) + rotary_inv_freq = self.inv_freq[: rotary_dim // 2] + mlx_freqs = 1.0 / rotary_inv_freq + q = torch.ops.mlx.rope(q, rotary_dim, start_pos, False, 0.0, 1.0, mlx_freqs) + k = torch.ops.mlx.rope(k, rotary_dim, start_pos, False, 0.0, 1.0, mlx_freqs) + + k_cache, v_cache = self.kv_cache.update(start_pos, k, v) + + if self.is_sliding: + sdpa_mask = self.kv_cache.create_sliding_window_mask(start_pos, T) + y = torch.ops.mlx.custom_sdpa( + q, + k_cache, + v_cache, + start_pos=self.kv_cache.buffer_size - T, + attn_mask=sdpa_mask, + dropout_p=0.0, + is_causal=False, + scale=self.scaling, + ) + else: + y = torch.ops.mlx.custom_sdpa( + q, + k_cache, + v_cache, + start_pos=start_pos, + dropout_p=0.0, + is_causal=True, + scale=self.scaling, + ) + + y = y.transpose(1, 2).contiguous().view(B, T, self.n_heads * self.head_dim) + return self.o_proj(y) + + attn.forward = types.MethodType(_mlx_forward, attn) + + +def _replace_layer_forward(layer: nn.Module) -> None: + """Replace Gemma4DecoderLayer's forward to remove mask parameters.""" + import types + + def _mlx_layer_forward( + self, x: torch.Tensor, input_pos: torch.Tensor + ) -> torch.Tensor: + residual = x + h = self.input_layernorm(x) + h = self.self_attn(h, input_pos) + h = self.post_attention_layernorm(h) + x = residual + h + + residual = x + h = self.pre_feedforward_layernorm(x) + h = self.mlp(h) + h = self.post_feedforward_layernorm(h) + x = residual + h + + return x * self.layer_scalar + + layer.forward = types.MethodType(_mlx_layer_forward, layer) + + +def _replace_model_forward(model: nn.Module) -> None: + """Replace the top-level Gemma4_31B forward with a sampler-free, mask-free + ``(tokens, input_pos) → (B, 1, V)`` variant. + + MLX samples on the host, so the on-device sampler and temperature input + are dropped. Each MLX attention builds its own mask via ``custom_sdpa``, + so ``_build_masks`` and the per-layer mask arguments are removed. + """ + import types + + def _mlx_model_forward( + self, tokens: torch.Tensor, input_pos: torch.Tensor + ) -> torch.Tensor: + x = self.embed_tokens(tokens) * self.embed_normalizer + for layer in self.layers: + x = layer(x, input_pos) + x = self.norm(x) + last = self.lm_head(x[:, -1, :]).float() + cap = self.logit_softcap.float() + return torch.tanh(last / cap) * cap + + model.forward = types.MethodType(_mlx_model_forward, model) + + +def mlx_source_transformations( + model: nn.Module, + dtype: torch.dtype = torch.bfloat16, +) -> None: + """Apply MLX source transformations to a Gemma 4 31B model in-place. + + Self-contained MLX adaptation. After calling this, the model has + signature ``(tokens, input_pos) → (B, 1, V)`` logits — no temperature, + no sampler, no attention masks. + + - Replaces KV caches with MLX-optimized versions using ``mlx.kv_cache_update`` + - Rewrites attention forward to use ``mlx.rope`` and ``mlx.custom_sdpa`` + - Rewrites layer forward to drop mask parameters (each attention builds + its own mask via ``custom_sdpa``) + - Rewrites model forward to drop the sampler and ``_build_masks`` + """ + config = model.config + + for layer in model.layers: + attn = layer.self_attn + + if attn.is_sliding: + attn.kv_cache = MLXRingKVCache( + max_batch_size=1, + max_context_length=config.sliding_window, + n_heads=attn.n_kv_heads, + head_dim=attn.head_dim, + dtype=dtype, + ) + else: + attn.kv_cache = MLXKVCache( + max_batch_size=1, + max_context_length=config.max_seq_len, + n_heads=attn.n_kv_heads, + head_dim=attn.head_dim, + enable_dynamic_shape=True, + dtype=dtype, + ) + + _replace_attention_forward(attn) + _replace_layer_forward(layer) + + _replace_model_forward(model) diff --git a/examples/models/gemma4_31b/model.md b/examples/models/gemma4_31b/model.md index 51e420528f1..13207bdbb06 100644 --- a/examples/models/gemma4_31b/model.md +++ b/examples/models/gemma4_31b/model.md @@ -102,6 +102,8 @@ Decoder norms per layer: `input_layernorm`, `post_attention_layernorm`, ## Methods exported (`export.py`) +### CUDA (`--backend cuda`) + | Method | Input | Output (sampled) | |-----------|------------------------------------------------------------|------------------| | `decode` | tokens `(1, 1)` + input_pos `(1,)` + temperature `(1,)` | `(1, 1)` float | @@ -113,6 +115,23 @@ Both methods share the same KV-cache buffers via sampling on-device and returns a single token ID per call so the C++ runner only has to feed tokens. +### MLX (`--backend mlx`) + +| Method | Input | Output | +|-----------|------------------------------------------|------------------| +| `forward` | tokens `(1, T)` + input_pos `(T,)`, T∈[1, min(max_seq_len-1, 2×sliding_window)] | `(1, V)` logits | + +Single method with dynamic sequence length. Only the last token's logits +are returned. The C++ runner samples on the host via `logits_to_token` +with temperature support. Int4Tensor weights are converted to +IntxUnpackedToInt8Tensor at pack time so the default `dequantize_affine → +linear` dispatch produces the pattern MLX's `QuantizedLinearHandler` fuses +into `QuantizedMatmulNode`. Source transforms (`mlx_source_transformations.py`) +replace generic PyTorch ops with `mlx.rope`, `mlx.kv_cache_update`, and +`mlx.custom_sdpa` for optimized Metal kernels. + +### Shared + Prefill length is capped to the ring-buffer KV cache size (`2 × sliding_window`) to avoid duplicate wrapped indices in `index_copy_`. The C++ runner chunks longer prompts automatically using @@ -130,9 +149,11 @@ Modules in `quant/`: `IntxUnpackedToInt8Tensor`) from fp weights. - **Serialization**: callers use torchao's safetensors integration (`torchao.prototype.safetensors`) directly — no wrapper module needed. -- **Pack** (`pack.py` + `pack_cuda.py`): `pack_model` groups weights by - parent module, `pack_one` handles single weights. Per-module packers - dispatch by module type (`nn.Linear`, `nn.Embedding`, extensible for MoE). +- **Pack** (`pack.py` + `pack_cuda.py` + `pack_mlx.py`): `pack_model` groups + weights by parent module, `pack_one` handles single weights. Per-module + packers dispatch by module type (`nn.Linear`, `nn.Embedding`). CUDA passes + Int4Tensor through (dispatch handled by `int4_dispatch.py`); MLX converts + Int4Tensor → IntxUnpackedToInt8Tensor and regroups per-axis embeddings. - **GGUF** (`gguf.py`): `unpack_gguf_tensor` / `iter_gguf_tensors` for loading community-quantized GGUF files (Q4_K, Q6_K). @@ -145,11 +166,12 @@ quantize_and_save.py export.py / inference.py | | quantize_weight() load (torchao safetensors) | | - Int4Tensor / IntxUnpacked Int4Tensor / IntxUnpacked (used directly) - | | - save (torchao safetensors) int4_dispatch routes to int4_plain_mm + Int4Tensor / IntxUnpacked pack for backend: | | - model.safetensors dp4a decode / dequant+cuBLAS prefill + save (torchao safetensors) CUDA: Int4Tensor passed through + | → int4_dispatch → dp4a / dequant+cuBLAS + model.safetensors MLX: Int4Tensor → IntxUnpacked(int4) + → dequantize_affine → QuantizedMatmulNode ``` `embed_tokens` and `lm_head` start tied; they are untied before @@ -181,14 +203,17 @@ These exist solely to make the model exportable / efficient under ExecuTorch: `2 × sliding_window`) saves memory for long sequences — positions wrap via modulo and the attention mask reconstructs which slots are valid. Full-attention layers use a flat `Gemma4KVCache` sized to `max_seq_len`. - Both use `index_copy_(dim=2, ...)` for trace-friendly updates. + CUDA uses `index_copy_` for trace-friendly updates; MLX source transforms + replace both caches with `mlx.kv_cache_update`-backed equivalents. - **On-the-fly RoPE**: stores only `inv_freq` per layer, computes cos/sin via `torch.outer(positions, inv_freq)` each forward. Saves memory vs precomputed `[max_seq_len, head_dim]` tables (sliding uses full RoPE, full uses proportional partial RoPE — head_dim and θ differ). -- **On-device Gumbel-max sampling** so the exported program emits a token - rather than a full logits tensor — keeps the runner GPU↔CPU traffic to a - single float per step. +- **Last-logits-only**: `lm_head` always runs on `x[:, -1, :]`, avoiding a + `(1, T, 262144)` matmul during prefill. +- **On-device Gumbel-max sampling** (CUDA) so the exported program emits a + token rather than logits — keeps GPU↔CPU traffic to a single float per + step. MLX samples on the host via `logits_to_token`. - **Final-logit softcap baked into the graph**, applied before sampling. - **Meta-device construction + assign-load** keeps peak memory small enough to load the 31B-parameter checkpoint on one machine. diff --git a/examples/models/gemma4_31b/model.py b/examples/models/gemma4_31b/model.py index f0aa2fac982..a690bd79230 100644 --- a/examples/models/gemma4_31b/model.py +++ b/examples/models/gemma4_31b/model.py @@ -470,20 +470,17 @@ def forward( self, tokens: torch.LongTensor, input_pos: torch.LongTensor, - temperature: Optional[torch.Tensor] = None, + temperature: torch.Tensor, ) -> torch.Tensor: """Run the model. Args: tokens: (B, T) token IDs. input_pos: (T,) absolute positions for RoPE / KV cache. - temperature: optional 1-D float tensor controlling on-device sampling. - When provided, returns sampled tokens (B, 1) via Gumbel-max; - when None (e.g. eager eval), returns full logits (B, T, V) with - soft-capping applied so callers see post-cap values. + temperature: 1-D float tensor for Gumbel-max sampling. Returns: - (B, 1) token IDs when sampling, else (B, T, V) float32 logits. + (B, 1) sampled token IDs as float. """ x = self.embed_tokens(tokens) * self.embed_normalizer @@ -492,13 +489,6 @@ def forward( x = layer(x, input_pos, sliding_mask, full_mask) x = self.norm(x) - - if temperature is None: - logits = self.lm_head(x).float() - cap = self.logit_softcap.float() - return torch.tanh(logits / cap) * cap - - # Decode-time fast path: only materialize logits for the last token. last = self.lm_head(x[:, -1, :]).float() cap = self.logit_softcap.float() last = torch.tanh(last / cap) * cap diff --git a/examples/models/gemma4_31b/quant/README.md b/examples/models/gemma4_31b/quant/README.md index 31b1c43d574..2eacced4387 100644 --- a/examples/models/gemma4_31b/quant/README.md +++ b/examples/models/gemma4_31b/quant/README.md @@ -9,7 +9,8 @@ Quantization framework: **recipe → quantize → pack**. | `recipe.py` | **Policy** — what to quantize, what precision, which layers | nothing | | `quantize.py` | **Computation** — produces torchao subclass tensors | recipe, torchao | | `pack.py` | **Packing dispatch** — `pack_model` (bulk) and `pack_one` (streaming) | — | -| `pack_cuda.py` | **CUDA packing** — converts Int4Tensor to tinygemm format | pack | +| `pack_cuda.py` | **CUDA packing** — passes Int4Tensor/IntxUnpacked through for CUDA dispatch | pack | +| `pack_mlx.py` | **MLX packing** — converts Int4Tensor → IntxUnpacked, regroups per-axis embeddings | pack | | `gguf.py` | **GGUF import** — unpacks Q4_K/Q6_K blocks to torchao subclasses | torchao | ## Data flow @@ -48,7 +49,6 @@ The format is compatible with torchao's `save_pretrained` / `load_pretrained`. ## TODO - `pack_metal.py` — Metal backend packer. -- `pack_mlx.py` — MLX backend packer. - `gguf.py` — extend with Q5_K, Q8_0 GGUF quant types. - Upstream `Int4TilePackedTo4dTensor.from_int4_tensor()` to torchao to replace the manual conversion in `pack_int4_for_cuda`. diff --git a/examples/models/gemma4_31b/quant/__init__.py b/examples/models/gemma4_31b/quant/__init__.py index 93efb69865f..7e9ab97a1bb 100644 --- a/examples/models/gemma4_31b/quant/__init__.py +++ b/examples/models/gemma4_31b/quant/__init__.py @@ -6,5 +6,6 @@ from .pack import ModulePackerFn, pack_model, pack_one # noqa: F401 from .pack_cuda import DEFAULT_CUDA_PACKERS, load_and_pack_for_cuda # noqa: F401 +from .pack_mlx import DEFAULT_MLX_PACKERS, load_and_pack_for_mlx # noqa: F401 from .quantize import dequantize_weight, quantize_model, quantize_weight # noqa: F401 from .recipe import QuantConfig, QuantRecipe, QuantRule # noqa: F401 diff --git a/examples/models/gemma4_31b/quant/pack_mlx.py b/examples/models/gemma4_31b/quant/pack_mlx.py new file mode 100644 index 00000000000..63aeca426a8 --- /dev/null +++ b/examples/models/gemma4_31b/quant/pack_mlx.py @@ -0,0 +1,198 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +"""MLX packer: convert quantized weights to MLX-compatible format. + +MLX's ``QuantizedLinearHandler`` matches ``dequantize_affine → linear`` +in the exported graph. ``IntxUnpackedToInt8Tensor`` produces this +pattern naturally, but ``Int4Tensor`` does not (its dispatch calls +CUDA-specific mslk kernels). So INT4 weights are converted to +``IntxUnpackedToInt8Tensor(target_dtype=torch.int4)`` at pack time. + +The backend-agnostic ``pack_model`` dispatcher lives in ``pack.py``. +""" + +import json + +import torch +import torch.nn as nn + +from .pack import ModulePackerFn, pack_model # noqa: F401 + +_MLX_SUPPORTED_GROUP_SIZES = (128, 64, 32) + + +# --------------------------------------------------------------------------- +# Int4Tensor → IntxUnpackedToInt8Tensor conversion + + +def _int4_to_intx_unpacked(w: torch.Tensor) -> torch.Tensor: + """Convert an ``Int4Tensor`` to ``IntxUnpackedToInt8Tensor``. + + Int4Tensor stores qdata as nibble-packed uint8 ``(N, K/2)`` with + scale/zero transposed to ``(K//gs, N)``. IntxUnpackedToInt8Tensor + stores qdata as int8 ``(N, K)`` with scale/zero as ``(N, K//gs)``. + """ + from torchao.quantization import IntxUnpackedToInt8Tensor + + # Unpack nibbles: packed = even | (odd << 4), unsigned [0, 15] + p = w.qdata.to(torch.uint8) + low = (p & 0x0F).to(torch.int8) + high = ((p >> 4) & 0x0F).to(torch.int8) + qdata = torch.stack([low, high], dim=-1).reshape(w.shape) + + # Shift unsigned [0, 15] → signed [-8, 7] + qdata = qdata - 8 + + gs = w.block_size[-1] + + # Transpose scale/zero from (K//gs, N) → (N, K//gs) + scale = w.scale.t().contiguous() + zero_point = (w.zero_point - 8).t().contiguous() + + return IntxUnpackedToInt8Tensor( + qdata=qdata, + scale=scale, + zero_point=zero_point, + target_dtype=torch.int4, + block_size=(1, gs), + dtype=scale.dtype, + activation_quantization=None, + ) + + +# --------------------------------------------------------------------------- +# Embedding group_size regrouping + + +def _mlx_group_size(gs: int, K: int) -> int: + """Find an MLX-compatible group_size for the given weight group_size. + + If ``gs`` is already in {32, 64, 128}, return it. Otherwise find the + largest supported group_size that divides ``gs`` so per-axis scales can + be repeated to fill finer groups. + """ + if gs in _MLX_SUPPORTED_GROUP_SIZES: + return gs + for candidate in _MLX_SUPPORTED_GROUP_SIZES: + if gs % candidate == 0 and K % candidate == 0: + return candidate + raise ValueError( + f"MLX requires group_size in {set(_MLX_SUPPORTED_GROUP_SIZES)} " + f"(or a multiple thereof), got {gs}" + ) + + +def _regroup_intx(w: torch.Tensor, new_gs: int) -> torch.Tensor: + """Regroup an ``IntxUnpackedToInt8Tensor`` to a finer group_size.""" + from torchao.quantization import IntxUnpackedToInt8Tensor + + old_gs = w.block_size[-1] + if old_gs % new_gs != 0: + raise ValueError( + f"new group_size {new_gs} must evenly divide old group_size {old_gs}" + ) + repeat_factor = old_gs // new_gs + N = w.qdata.shape[0] + n_groups = w.qdata.shape[-1] // new_gs + + scale = w.scale.repeat_interleave(repeat_factor, dim=-1).reshape(N, n_groups) + zero_point = w.zero_point.repeat_interleave(repeat_factor, dim=-1).reshape( + N, n_groups + ) + + return IntxUnpackedToInt8Tensor( + qdata=w.qdata, + scale=scale, + zero_point=zero_point, + target_dtype=w.target_dtype, + block_size=(1, new_gs), + dtype=w.dtype, + activation_quantization=w.activation_quantization, + ) + + +# --------------------------------------------------------------------------- +# Per-module packer + + +def pack_for_mlx(module: nn.Module, weights: dict[str, torch.Tensor]) -> None: + """Pack a quantized weight for MLX. + + ``Int4Tensor`` is converted to ``IntxUnpackedToInt8Tensor`` so the + default dispatch produces the ``dequantize_affine → linear`` pattern + MLX expects. Regroups to a compatible group_size when needed (e.g. + per-axis group_size=5376 → group_size=128) since MLX's + ``parse_dequant_node`` only accepts group_size in {32, 64, 128}. + """ + from torchao.quantization import IntxUnpackedToInt8Tensor + from torchao.quantization.quantize_.workflows.int4.int4_tensor import Int4Tensor + + w = weights["weight"] + if isinstance(w, Int4Tensor): + w = _int4_to_intx_unpacked(w) + if isinstance(w, IntxUnpackedToInt8Tensor): + gs = w.block_size[-1] + K = w.qdata.shape[-1] + target_gs = _mlx_group_size(gs, K) + if target_gs != gs: + w = _regroup_intx(w, target_gs) + module.weight = nn.Parameter(w, requires_grad=False) + + +DEFAULT_MLX_PACKERS: dict[type, ModulePackerFn] = { + nn.Linear: pack_for_mlx, + nn.Embedding: pack_for_mlx, +} + + +# --------------------------------------------------------------------------- +# Load + pack (I/O wrapper) + + +def load_and_pack_for_mlx( + path: str, + model: nn.Module, + packers: dict[type, ModulePackerFn] | None = None, +) -> None: + """Load a quantized safetensors file and pack for MLX. + + Streams one weight at a time via torchao's safetensors support. + """ + from safetensors import safe_open + from torchao.prototype.safetensors.safetensors_support import ( + unflatten_tensor_state_dict, + ) + + from .pack import pack_one + + _packers = packers or DEFAULT_MLX_PACKERS + with safe_open(path, framework="pt", device="cpu") as f: + metadata = f.metadata() + all_keys = list(f.keys()) + tensor_names = json.loads(metadata.get("tensor_names", "[]")) + + for name in tensor_names: + parts = name.rsplit(".", 1) + module_fqn = parts[0] if len(parts) > 1 else "" + weight_name = parts[-1] + prefix = ( + f"{module_fqn}._{weight_name}_" if module_fqn else f"_{weight_name}_" + ) + partial = {} + for key in all_keys: + if key.startswith(prefix) or key == name: + partial[key] = f.get_tensor(key) + result, _ = unflatten_tensor_state_dict(partial, metadata) + for fqn, value in result.items(): + pack_one(model, fqn, value, _packers) + + for fqn, p in model.named_parameters(): + if p.device.type == "meta": + raise RuntimeError( + f"Weight '{fqn}' not found in checkpoint " + f"(model/checkpoint version mismatch?)" + ) diff --git a/examples/models/gemma4_31b/quant/tests/test_pack_mlx.py b/examples/models/gemma4_31b/quant/tests/test_pack_mlx.py new file mode 100644 index 00000000000..ffb2e0e2dd3 --- /dev/null +++ b/examples/models/gemma4_31b/quant/tests/test_pack_mlx.py @@ -0,0 +1,219 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +"""Unit tests for quant/pack_mlx.py. No CUDA or MLX hardware required.""" + +import unittest + +import torch +import torch.nn as nn + +from executorch.examples.models.gemma4_31b.quant.pack import pack_model +from executorch.examples.models.gemma4_31b.quant.pack_mlx import ( + _int4_to_intx_unpacked, + _mlx_group_size, + DEFAULT_MLX_PACKERS, + pack_for_mlx, +) +from executorch.examples.models.gemma4_31b.quant.quantize import ( + dequantize_weight, + quantize_weight, +) +from executorch.examples.models.gemma4_31b.quant.recipe import QuantConfig + + +class TestInt4ToIntxConversion(unittest.TestCase): + """Int4Tensor → IntxUnpackedToInt8Tensor conversion.""" + + def test_symmetric_dequant_matches(self): + """Converted weight dequantizes to same values as original.""" + torch.manual_seed(0) + weight = torch.randn(64, 128, dtype=torch.bfloat16) + config = QuantConfig(bits=4, group_size=32, symmetric=True, method="min_max") + int4_w = quantize_weight(weight, config) + intx_w = _int4_to_intx_unpacked(int4_w) + + int4_dense = dequantize_weight(int4_w, torch.float32) + intx_dense = dequantize_weight(intx_w, torch.float32) + self.assertTrue( + torch.allclose(int4_dense, intx_dense, atol=1e-5), + f"max diff: {(int4_dense - intx_dense).abs().max():.6g}", + ) + + def test_asymmetric_dequant_matches(self): + torch.manual_seed(0) + weight = torch.randn(64, 128, dtype=torch.bfloat16) + config = QuantConfig(bits=4, group_size=32, symmetric=False, method="min_max") + int4_w = quantize_weight(weight, config) + intx_w = _int4_to_intx_unpacked(int4_w) + + int4_dense = dequantize_weight(int4_w, torch.float32) + intx_dense = dequantize_weight(intx_w, torch.float32) + self.assertTrue( + torch.allclose(int4_dense, intx_dense, atol=1e-5), + f"max diff: {(int4_dense - intx_dense).abs().max():.6g}", + ) + + def test_output_type_and_shape(self): + from torchao.quantization import IntxUnpackedToInt8Tensor + + torch.manual_seed(0) + config = QuantConfig(bits=4, group_size=32, symmetric=True, method="min_max") + int4_w = quantize_weight(torch.randn(128, 256, dtype=torch.bfloat16), config) + intx_w = _int4_to_intx_unpacked(int4_w) + + self.assertIsInstance(intx_w, IntxUnpackedToInt8Tensor) + self.assertEqual(intx_w.shape, torch.Size([128, 256])) + self.assertEqual(intx_w.qdata.shape, torch.Size([128, 256])) + self.assertEqual(intx_w.target_dtype, torch.int4) + + def test_different_group_sizes(self): + torch.manual_seed(0) + for gs in (32, 64, 128): + with self.subTest(group_size=gs): + config = QuantConfig( + bits=4, group_size=gs, symmetric=True, method="min_max" + ) + int4_w = quantize_weight( + torch.randn(64, 256, dtype=torch.bfloat16), config + ) + intx_w = _int4_to_intx_unpacked(int4_w) + self.assertEqual(intx_w.shape, torch.Size([64, 256])) + + def test_matmul_approximates_original(self): + torch.manual_seed(0) + weight = torch.randn(256, 128, dtype=torch.bfloat16) + x = torch.randn(1, 128, dtype=torch.bfloat16) + original_out = torch.nn.functional.linear(x, weight) + + config = QuantConfig(bits=4, group_size=32, symmetric=False, method="min_max") + int4_w = quantize_weight(weight, config) + intx_w = _int4_to_intx_unpacked(int4_w) + packed_out = torch.nn.functional.linear(x, intx_w.dequantize()) + + rel_error = ( + packed_out.float() - original_out.float() + ).abs().mean() / original_out.float().abs().mean() + self.assertLess(rel_error.item(), 0.15) + + +class TestPackLinearForMlx(unittest.TestCase): + def test_int4_converts_to_intx(self): + from torchao.quantization import IntxUnpackedToInt8Tensor + + module = nn.Linear(128, 64, bias=False) + config = QuantConfig(bits=4, group_size=32, symmetric=True, method="min_max") + w = quantize_weight(torch.randn(64, 128, dtype=torch.bfloat16), config) + pack_for_mlx(module, {"weight": w}) + + self.assertIsInstance(module.weight.data, IntxUnpackedToInt8Tensor) + self.assertEqual(module.weight.shape, torch.Size([64, 128])) + self.assertFalse(module.weight.requires_grad) + + def test_int8_passes_through(self): + from torchao.quantization import IntxUnpackedToInt8Tensor + + module = nn.Linear(128, 64, bias=False) + config = QuantConfig(bits=8, group_size=32, symmetric=True, method="min_max") + w = quantize_weight(torch.randn(64, 128, dtype=torch.bfloat16), config) + self.assertIsInstance(w, IntxUnpackedToInt8Tensor) + pack_for_mlx(module, {"weight": w}) + + self.assertIsInstance(module.weight.data, IntxUnpackedToInt8Tensor) + self.assertEqual(module.weight.shape, torch.Size([64, 128])) + + def test_regroup_preserves_dequant(self): + """Linear with non-standard group_size regroups and dequantizes correctly.""" + torch.manual_seed(0) + weight = torch.randn(64, 256, dtype=torch.bfloat16) + config = QuantConfig(bits=8, group_size=256, symmetric=True, method="min_max") + w = quantize_weight(weight, config) + before = dequantize_weight(w, torch.float32) + + module = nn.Linear(256, 64, bias=False) + pack_for_mlx(module, {"weight": w}) + + self.assertEqual(module.weight.data.block_size, (1, 128)) + after = dequantize_weight(module.weight.data, torch.float32) + self.assertTrue( + torch.allclose(before, after, atol=1e-5), + f"max diff: {(before - after).abs().max():.6g}", + ) + + +class TestMlxGroupSize(unittest.TestCase): + def test_passthrough(self): + for gs in (32, 64, 128): + self.assertEqual(_mlx_group_size(gs, 256), gs) + + def test_regroup_5376(self): + self.assertEqual(_mlx_group_size(5376, 5376), 128) + + def test_regroup_256(self): + self.assertEqual(_mlx_group_size(256, 256), 128) + + def test_rejects_indivisible(self): + with self.assertRaises(ValueError): + _mlx_group_size(48, 48) + + +class TestPackEmbeddingForMlx(unittest.TestCase): + def test_compatible_passes_through(self): + module = nn.Embedding(100, 64) + config = QuantConfig(bits=8, group_size=32, symmetric=True, method="min_max") + w = quantize_weight(torch.randn(100, 64, dtype=torch.bfloat16), config) + pack_for_mlx(module, {"weight": w}) + self.assertEqual(module.weight.shape, torch.Size([100, 64])) + + def test_per_axis_regroups(self): + module = nn.Embedding(50, 256) + config = QuantConfig(bits=8, group_size=256, symmetric=True, method="min_max") + w = quantize_weight(torch.randn(50, 256, dtype=torch.bfloat16), config) + pack_for_mlx(module, {"weight": w}) + self.assertEqual(module.weight.shape, torch.Size([50, 256])) + self.assertEqual(module.weight.data.block_size, (1, 128)) + + def test_int4_converts_to_intx(self): + from torchao.quantization import IntxUnpackedToInt8Tensor + + module = nn.Embedding(100, 64) + config = QuantConfig(bits=4, group_size=32, symmetric=True, method="min_max") + w = quantize_weight(torch.randn(100, 64, dtype=torch.bfloat16), config) + pack_for_mlx(module, {"weight": w}) + self.assertIsInstance(module.weight.data, IntxUnpackedToInt8Tensor) + self.assertEqual(module.weight.shape, torch.Size([100, 64])) + + +class TestPackModelMlx(unittest.TestCase): + def test_mixed_precision(self): + q4 = QuantConfig(bits=4, group_size=32, symmetric=True, method="min_max") + q8 = QuantConfig(bits=8, group_size=32, symmetric=True, method="min_max") + w4 = quantize_weight(torch.randn(64, 128, dtype=torch.bfloat16), q4) + w8 = quantize_weight(torch.randn(64, 128, dtype=torch.bfloat16), q8) + + state_dict = { + "q_proj.weight": w4, + "v_proj.weight": w8, + "norm.weight": torch.randn(64, dtype=torch.bfloat16), + } + + with torch.device("meta"): + model = nn.ModuleDict( + { + "q_proj": nn.Linear(128, 64, bias=False), + "v_proj": nn.Linear(128, 64, bias=False), + "norm": nn.LayerNorm(64, bias=False), + } + ) + pack_model(model, state_dict, DEFAULT_MLX_PACKERS) + + self.assertEqual(model.q_proj.weight.shape, torch.Size([64, 128])) + self.assertEqual(model.v_proj.weight.shape, torch.Size([64, 128])) + self.assertEqual(model.norm.weight.shape, torch.Size([64])) + + +if __name__ == "__main__": + unittest.main() diff --git a/examples/models/gemma4_31b/sampler.py b/examples/models/gemma4_31b/sampler.py index 45e4e17887a..690344fd2e4 100644 --- a/examples/models/gemma4_31b/sampler.py +++ b/examples/models/gemma4_31b/sampler.py @@ -8,33 +8,26 @@ Mirrors ``examples/models/qwen3_5_moe/sampler.py``: a single-output sampler that lets one exported program be re-driven with different temperatures -without re-export. ``temperature=None`` is a no-op (returns logits). +without re-export. """ -from typing import Optional - import torch def sample( logits: torch.Tensor, - temperature: Optional[torch.Tensor] = None, + temperature: torch.Tensor, ) -> torch.Tensor: """Draw a single token per batch row using the Gumbel-max trick. Args: logits: ``[B, V]`` float32 logits (already soft-capped if applicable). temperature: 0-D or 1-D float tensor; clamped to >= 1e-6 so a 0 - temperature still works ("near-greedy"). When ``None`` the call - short-circuits and returns ``logits`` unchanged. + temperature still works ("near-greedy"). Returns: - ``[B, 1]`` float32 token IDs (``argmax(logits/T + gumbel_noise)``), - or the unmodified logits when ``temperature`` is ``None``. + ``[B, 1]`` float32 token IDs (``argmax(logits/T + gumbel_noise)``). """ - if temperature is None: - return logits - logits = logits / temperature.clamp(min=1e-6) noise = torch.rand_like(logits) gumbel = -torch.log(-torch.log(noise + 1e-20) + 1e-20) diff --git a/examples/models/gemma4_31b/tests/test_cuda_pipeline.py b/examples/models/gemma4_31b/tests/test_cuda_pipeline.py index 0ff28aac415..505d6f7bdc1 100644 --- a/examples/models/gemma4_31b/tests/test_cuda_pipeline.py +++ b/examples/models/gemma4_31b/tests/test_cuda_pipeline.py @@ -108,30 +108,27 @@ def test_chunked_prefill_matches_sequential(self): torch.manual_seed(0) prompt = torch.randint(0, config.vocab_size, (1, prompt_len), device="cuda") + temp = torch.tensor([1e-6], dtype=torch.float32, device="cuda") + with torch.no_grad(): for i in range(prompt_len): tok = prompt[:, i : i + 1] pos = torch.tensor([i], dtype=torch.long, device="cuda") - logits_seq = model_seq(tok, pos, None) + token_seq = model_seq(tok, pos, temp) with torch.no_grad(): chunk1 = prompt[:, :buf_size] pos1 = torch.arange(buf_size, dtype=torch.long, device="cuda") - model_chunk(chunk1, pos1, None) + model_chunk(chunk1, pos1, temp) chunk2 = prompt[:, buf_size:] pos2 = torch.arange(buf_size, prompt_len, dtype=torch.long, device="cuda") - logits_chunk = model_chunk(chunk2, pos2, None) - - max_diff = (logits_seq[0, -1].float() - logits_chunk[0, -1].float()).abs().max() - self.assertTrue( - torch.allclose( - logits_seq[0, -1].float(), - logits_chunk[0, -1].float(), - atol=1e-2, - rtol=1e-3, - ), - f"Chunked prefill diverged: max_diff={max_diff:.4g}", + token_chunk = model_chunk(chunk2, pos2, temp) + + self.assertEqual( + int(token_seq.item()), + int(token_chunk.item()), + "Chunked prefill produced different token than sequential", ) diff --git a/examples/models/gemma4_31b/tests/test_mlx_pipeline.py b/examples/models/gemma4_31b/tests/test_mlx_pipeline.py new file mode 100644 index 00000000000..0e62ab88e4b --- /dev/null +++ b/examples/models/gemma4_31b/tests/test_mlx_pipeline.py @@ -0,0 +1,248 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +"""End-to-end MLX backend tests for the Gemma 4 31B-IT pipeline. + +Tests quantize → save → load → pack-for-MLX on a tiny model. +No CUDA or MLX hardware required. + +Usage: + python -m pytest examples/models/gemma4_31b/tests/test_mlx_pipeline.py -v +""" + +import json +import os +import tempfile +import unittest + +import torch +import torch.nn as nn + +from executorch.examples.models.gemma4_31b.model import Gemma4_31B +from executorch.examples.models.gemma4_31b.quant import ( + DEFAULT_MLX_PACKERS, + pack_model, + QuantConfig, + quantize_model, + QuantRecipe, + QuantRule, +) +from executorch.examples.models.gemma4_31b.tests.test_pipeline import ( + build_random_tiny_model, + config_dict, + save_checkpoint, + TINY_CONFIG, +) + +_INT4 = QuantConfig(bits=4, group_size=32, symmetric=True, method="min_max") +_INT8 = QuantConfig(bits=8, group_size=32, symmetric=True, method="min_max") +_INT8_PER_AXIS = QuantConfig( + bits=8, group_size=TINY_CONFIG.hidden_size, symmetric=True, method="min_max" +) +_EDGE_LAYERS = set(range(3)) + +TINY_SENSITIVE_RECIPE = QuantRecipe( + rules=[ + QuantRule(r"embed_tokens\.weight", _INT8_PER_AXIS), + QuantRule(r".*norm\.weight", None), + QuantRule(r".*\.(v_proj|down_proj)\.weight", _INT8, layers=_EDGE_LAYERS), + QuantRule(r".*\.weight", _INT4), + ] +) + + +class TestMlxPipeline(unittest.TestCase): + """End-to-end: quantize → pack for MLX → forward.""" + + def test_pack_for_mlx(self): + """Quantize with sensitive recipe, pack for MLX, no meta weights.""" + model = build_random_tiny_model() + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + state_dict = quantize_model(model, TINY_SENSITIVE_RECIPE) + + with torch.device("meta"): + model = Gemma4_31B(TINY_CONFIG) + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + pack_model(model, state_dict, DEFAULT_MLX_PACKERS) + + for fqn, p in model.named_parameters(): + self.assertNotEqual(p.device.type, "meta", f"Weight '{fqn}' still on meta") + + def test_forward_after_pack(self): + """Model produces valid output after MLX packing.""" + model = build_random_tiny_model() + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + state_dict = quantize_model(model, TINY_SENSITIVE_RECIPE) + + with torch.device("meta"): + model = Gemma4_31B(TINY_CONFIG) + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + pack_model(model, state_dict, DEFAULT_MLX_PACKERS) + model.eval() + + from executorch.examples.models.gemma4_31b.model import ( + materialize_runtime_buffers, + ) + + materialize_runtime_buffers(model, dtype=torch.bfloat16) + + tokens = torch.randint(0, TINY_CONFIG.vocab_size, (1, 1)) + input_pos = torch.tensor([0], dtype=torch.long) + temp = torch.tensor([1e-6], dtype=torch.float32) + + with torch.no_grad(): + out = model(tokens, input_pos, temp) + + self.assertEqual(out.shape, torch.Size([1, 1])) + self.assertFalse(torch.isnan(out).any()) + + def test_multi_token_forward(self): + model = build_random_tiny_model() + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + state_dict = quantize_model(model, TINY_SENSITIVE_RECIPE) + + with torch.device("meta"): + model = Gemma4_31B(TINY_CONFIG) + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + pack_model(model, state_dict, DEFAULT_MLX_PACKERS) + model.eval() + + from executorch.examples.models.gemma4_31b.model import ( + materialize_runtime_buffers, + ) + + materialize_runtime_buffers(model, dtype=torch.bfloat16) + + seq_len = 4 + tokens = torch.randint(0, TINY_CONFIG.vocab_size, (1, seq_len)) + input_pos = torch.arange(seq_len, dtype=torch.long) + temp = torch.tensor([1e-6], dtype=torch.float32) + + with torch.no_grad(): + out = model(tokens, input_pos, temp) + + self.assertEqual(out.shape, torch.Size([1, 1])) + self.assertFalse(torch.isnan(out).any()) + + def test_source_transforms_forward(self): + """Model produces valid output after MLX source transforms.""" + model = build_random_tiny_model() + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + state_dict = quantize_model(model, TINY_SENSITIVE_RECIPE) + + with torch.device("meta"): + model = Gemma4_31B(TINY_CONFIG) + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + pack_model(model, state_dict, DEFAULT_MLX_PACKERS) + model.eval() + + from executorch.examples.models.gemma4_31b.mlx_source_transformations import ( + mlx_source_transformations, + ) + from executorch.examples.models.gemma4_31b.model import ( + materialize_runtime_buffers, + ) + + mlx_source_transformations(model, dtype=torch.bfloat16) + materialize_runtime_buffers(model, dtype=torch.bfloat16) + + # After source transforms: signature is (tokens, input_pos) → (B, 1, V) + # Single-token decode + tokens = torch.randint(0, TINY_CONFIG.vocab_size, (1, 1)) + input_pos = torch.tensor([0], dtype=torch.long) + with torch.no_grad(): + out = model(tokens, input_pos) + self.assertEqual(out.shape, torch.Size([1, TINY_CONFIG.vocab_size])) + self.assertFalse(torch.isnan(out).any()) + self.assertFalse(torch.isinf(out).any()) + + # Multi-token prefill + seq_len = 4 + tokens = torch.randint(0, TINY_CONFIG.vocab_size, (1, seq_len)) + input_pos = torch.arange(seq_len, dtype=torch.long) + with torch.no_grad(): + out = model(tokens, input_pos) + self.assertEqual(out.shape, torch.Size([1, TINY_CONFIG.vocab_size])) + self.assertFalse(torch.isnan(out).any()) + + def test_source_transforms_use_mlx_ops(self): + """Verify the traced graph contains the expected MLX custom ops. + + Each attention layer should produce: + - 2× ``mlx.rope`` (q and k) + - 2× ``mlx.kv_cache_update`` (k and v) + - 1× ``mlx.custom_sdpa`` + """ + from executorch.examples.models.gemma4_31b.mlx_source_transformations import ( + mlx_source_transformations, + ) + from executorch.examples.models.gemma4_31b.model import ( + materialize_runtime_buffers, + ) + from torch.export import Dim, export + + model = build_random_tiny_model() + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + state_dict = quantize_model(model, TINY_SENSITIVE_RECIPE) + + with torch.device("meta"): + model = Gemma4_31B(TINY_CONFIG) + model.lm_head.weight = nn.Parameter(model.embed_tokens.weight.clone()) + pack_model(model, state_dict, DEFAULT_MLX_PACKERS) + model.eval() + + mlx_source_transformations(model, dtype=torch.bfloat16) + materialize_runtime_buffers(model, dtype=torch.bfloat16) + + # Trace with dynamic seq_len matching the MLX export shape. + seq_dim = Dim("seq", min=1, max=8) + ep = export( + model, + (torch.tensor([[1, 2]]), torch.tensor([0, 1])), + dynamic_shapes=({1: seq_dim}, {0: seq_dim}), + strict=True, + ) + + op_counts = {"rope": 0, "kv_cache_update": 0, "custom_sdpa": 0} + for node in ep.graph.nodes: + if node.op != "call_function": + continue + name = str(node.target) + for op in op_counts: + if f"mlx.{op}" in name: + op_counts[op] += 1 + + n_layers = TINY_CONFIG.num_hidden_layers + self.assertEqual(op_counts["rope"], 2 * n_layers, f"got {op_counts}") + self.assertEqual(op_counts["kv_cache_update"], 2 * n_layers, f"got {op_counts}") + self.assertEqual(op_counts["custom_sdpa"], n_layers, f"got {op_counts}") + + def test_export_to_pte(self): + """Full export: quantize → pack → export with MLXPartitioner.""" + try: + from executorch.backends.mlx import MLXPartitioner # noqa: F401 + except ImportError: + self.skipTest("MLX backend not available") + + from executorch.examples.models.gemma4_31b.export import ( + export_and_lower, + load_prequantized_model, + ) + + with tempfile.TemporaryDirectory() as ckpt_dir, tempfile.TemporaryDirectory() as out_dir: + save_checkpoint(ckpt_dir) + with open(os.path.join(ckpt_dir, "config.json"), "w") as f: + json.dump(config_dict(), f) + + model, config = load_prequantized_model( + ckpt_dir, max_seq_len=TINY_CONFIG.max_seq_len, backend="mlx" + ) + export_and_lower(model, config, out_dir, backend="mlx") + self.assertTrue(os.path.exists(os.path.join(out_dir, "model.pte"))) + + +if __name__ == "__main__": + unittest.main() From f220e713594a42cbc7da273b56f824383216e8a6 Mon Sep 17 00:00:00 2001 From: Daisuke Majima Date: Wed, 20 May 2026 09:09:50 +0900 Subject: [PATCH 57/91] Skip argmin/argmax with dim=None in CoreML partitioner (#19247) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Summary `argmax(x, dim=None)` / `argmin(x, dim=None)` reduces over the flattened tensor. CoreML does not support this reduction, and the resulting model intermittently crashes the process at runtime (the issue reproducer crashes 100% of the time on M1 Pro when the cell is run twice). Detect the `dim is None` case in `should_override_support` so the op falls back to the portable backend. The ordinary `dim=int` form is unaffected and still gets delegated. Fixes #11715. ### Test plan Added `test_argmax_argmin_dim_none_is_skipped` covering both branches: - `argmax(x, dim=None) + argmin(x, dim=None)` — neither op is delegated. - `argmax(x, dim=1)` — gets delegated as before. ``` $ python -m unittest -v executorch.backends.apple.coreml.test.test_coreml_partitioner.TestCoreMLPartitioner.test_argmax_argmin_dim_none_is_skipped Ran 1 test in 1.042s OK ``` Authored with Claude. cc @metascroy --------- Co-authored-by: John Rocky --- .../coreml/partition/coreml_partitioner.py | 27 +++++++++++ .../coreml/test/test_coreml_partitioner.py | 47 +++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/backends/apple/coreml/partition/coreml_partitioner.py b/backends/apple/coreml/partition/coreml_partitioner.py index 57bd793a10a..b4e550d8479 100644 --- a/backends/apple/coreml/partition/coreml_partitioner.py +++ b/backends/apple/coreml/partition/coreml_partitioner.py @@ -63,6 +63,26 @@ ) +_ARG_MIN_MAX_TARGETS = ( + torch.ops.aten.argmax.default, + torch.ops.aten.argmin.default, + exir_ops.edge.aten.argmax.default, + exir_ops.edge.aten.argmin.default, +) + + +def _is_arg_min_max_over_flattened_input(node: torch.fx.Node) -> bool: + """``argmin``/``argmax`` with ``dim=None`` reduces over the flattened input. + + CoreML doesn't support that reduction shape and intermittently crashes + the process at runtime — see pytorch/executorch#11715. + """ + if node.target not in _ARG_MIN_MAX_TARGETS: + return False + dim = node.args[1] if len(node.args) >= 2 else node.kwargs.get("dim", None) + return dim is None + + def _is_view_op(op: torch._ops.OpOverload) -> bool: schema = op._schema if len(schema.arguments) == 0: @@ -132,6 +152,13 @@ def should_override_support(self, node) -> bool: ) return True + if _is_arg_min_max_over_flattened_input(node): + self.log_once( + "torch.ops.aten.{argmax, argmin}.default with dim=None is " + "not supported by CoreML. Overriding op support." + ) + return True + # TODO: enable this after bugs in ExecuTorch's partitioner are fixed # # If lower_full_graph=False, do not partition nodes with symbolic args because it can result in symbolic args # # in the placeholders due to partitioning, which CoreML does not support diff --git a/backends/apple/coreml/test/test_coreml_partitioner.py b/backends/apple/coreml/test/test_coreml_partitioner.py index a2321ee199f..0e75d6024e4 100644 --- a/backends/apple/coreml/test/test_coreml_partitioner.py +++ b/backends/apple/coreml/test/test_coreml_partitioner.py @@ -386,6 +386,53 @@ def forward(self, x): self.assertIn("executorch_call_delegate", op_names) self.assertNotIn("aten.randn.default", op_names) + def test_argmax_argmin_dim_none_is_skipped(self): + """ + Regression test for https://github.com/pytorch/executorch/issues/11715. + + argmax/argmin with dim=None reduces over the flattened tensor, which + CoreML does not support; the resulting model intermittently crashes + the process at runtime. The partitioner must reject these so they + fall back to the portable backend, while still delegating the + ordinary dim=int form. + """ + + class FlatModel(torch.nn.Module): + def forward(self, x): + return torch.argmax(x, dim=None, keepdim=False) + torch.argmin( + x, dim=None + ) + + ep = torch.export.export( + FlatModel().eval(), (torch.randn(10, 10),), strict=True + ) + edge = executorch.exir.to_edge_transform_and_lower( + ep, partitioner=[CoreMLPartitioner()] + ) + op_names = [ + n.target.__name__ + for n in edge.exported_program().graph.nodes + if n.op == "call_function" + ] + self.assertIn("aten.argmax.default", op_names) + self.assertIn("aten.argmin.default", op_names) + + class DimModel(torch.nn.Module): + def forward(self, x): + return torch.argmax(x, dim=1) + + ep = torch.export.export(DimModel().eval(), (torch.randn(10, 10),), strict=True) + edge = executorch.exir.to_edge_transform_and_lower( + ep, partitioner=[CoreMLPartitioner()] + ) + op_names = [ + n.target.__name__ + for n in edge.exported_program().graph.nodes + if n.op == "call_function" + ] + self.assertIn("executorch_call_delegate", op_names) + self.assertNotIn("aten.argmax.default", op_names) + def test_deprecation_warning_for_to_backend_workflow(self): """ Test that the deprecated to_edge + to_backend workflow shows a deprecation warning. From 2d7ffade88ac03157663be827a1c751788e3a4fb Mon Sep 17 00:00:00 2001 From: winskuo-quic <143469905+winskuo-quic@users.noreply.github.com> Date: Wed, 20 May 2026 08:41:29 +0800 Subject: [PATCH 58/91] Qualcomm AI Engine Direct - Debugger Convergence Phase 2: Migrating to official numeric discrepancy evaluator (#18834) ### Summary Debugger Convergence Stage 2. Stage 1 (Merged): https://github.com/pytorch/executorch/pull/17804 Stage 2: This PR Stage 3: Adding SKILL.md for debugger Changes made on QNN backend - Removed comparator logic and reuse dev tools `NumericalComparatorBase` - Using ETRecrod to retrieve `edge_after_transform/forward` reference graph - Reuse the online `edge_after_transform/forward` graph instead of the one that goes through serialize and deserialize since serialize will not save `quant attributes`. Reference: https://github.com/pytorch/executorch/blob/d31d4be15c176045ce3bae2c76a50c891fa5973a/exir/serde/serialize.py#L141 - Changing UT expected number of events as multi-output node is not supported in dev tools. - Verified that the IO's order of the graph is working properly. Changes made on dev tools - https://github.com/pytorch/executorch/blob/411ede26bd8abfe723ec34e5a6e729f8c60cfee2/devtools/inspector/_inspector.py#L1150 is changed because it is hardcoded to use `edge before passes` graph for now. Added a param and make sure it is still backward compatible. - Added debug_handle to the `pandas dataframe` since it is helpful for users to map `dataframe` back to the original graph. ### Test plan Passing E2E test: - `python backends/qualcomm/tests/test_qnn_delegate.py TestUtilsScript.test_intermediate_debugger --device ${DEVICE} --model SM8750 --build_folder build-android --executorch_root . --artifact_dir ./test_debugger --image_dataset ../datasets/imagenet-mini/val/` Passing the following UT: - `python backends/qualcomm/tests/test_qnn_delegate.py -k TestQNNQuantizedUtils.test_qnn_backend_dump_intermediate_outputs_simple_model --model SM8750 --device ${DEVICE} --build_folder build-android` - `python backends/qualcomm/tests/test_qnn_delegate.py -k TestQNNQuantizedUtils.test_qnn_backend_dump_intermediate_outputs_topk --model SM8750 --device ${DEVICE} --build_folder build-android` - `python backends/qualcomm/tests/test_qnn_delegate.py -k TestQNNFloatingPointUtils.test_qnn_backend_dump_intermediate_outputs_topk --model SM8750 --device ${DEVICE}--build_folder build-android` - `python backends/qualcomm/tests/test_qnn_delegate.py -k TestQNNFloatingPointUtils.test_qnn_backend_dump_intermediate_outputs_simple_model --model SM8750 --device ${DEVICE} --build_folder build-android` - Under `devtools/inspector/_inspector_utils.py`, skip delegate call event since it holds all `debug_handles` and will mess up the op event `debug handle`. --- backends/qualcomm/builders/node_visitor.py | 12 +- backends/qualcomm/debugger/README.md | 162 +++++---- backends/qualcomm/debugger/TARGETS | 3 +- backends/qualcomm/debugger/format_outputs.py | 200 ++++++----- .../qualcomm/debugger/metrics_evaluator.py | 90 ----- .../qcom_numerical_comparator_base.py | 194 +++++++++++ .../qcom_numerical_comparator_sample.py | 57 +++ .../debugger/qnn_intermediate_debugger.py | 327 +++--------------- backends/qualcomm/export_utils.py | 28 +- backends/qualcomm/qnn_preprocess.py | 16 +- backends/qualcomm/tests/test_qnn_delegate.py | 49 ++- backends/qualcomm/tests/utils.py | 91 +++-- backends/qualcomm/utils/utils.py | 15 + devtools/inspector/_inspector.py | 43 ++- .../numerical_comparator_base.py | 2 + devtools/inspector/tests/inspector_test.py | 8 + .../devtools-debugging-tutorial.py | 70 ++-- .../qnn_intermediate_debugger_demo.py | 84 ++--- 18 files changed, 733 insertions(+), 718 deletions(-) delete mode 100644 backends/qualcomm/debugger/metrics_evaluator.py create mode 100644 backends/qualcomm/debugger/qcom_numerical_comparator_base.py create mode 100644 backends/qualcomm/debugger/qcom_numerical_comparator_sample.py diff --git a/backends/qualcomm/builders/node_visitor.py b/backends/qualcomm/builders/node_visitor.py index 7380f7a8191..c206950c140 100644 --- a/backends/qualcomm/builders/node_visitor.py +++ b/backends/qualcomm/builders/node_visitor.py @@ -418,12 +418,12 @@ def get_tensor_name( elif is_graph_output(node): tensor_name = f"output_{tensor_name}" - # Save this for intermediate debugger - # Needs idx since node like topk has 2 outputs - if QCOM_TENSOR_NAME in node.meta: - node.meta[QCOM_TENSOR_NAME][wrapper_idx] = tensor_name - else: - node.meta[QCOM_TENSOR_NAME] = {wrapper_idx: tensor_name} + # Only add qcom_tensor_name when enable tensor dump. + # Only runs in qnn_preprocess (not op validation) since that's when + # tensor names are finalized and enable_tensor_dump is True. + if self.enable_tensor_dump: + node.meta.setdefault(QCOM_TENSOR_NAME, {})[wrapper_idx] = tensor_name + return tensor_name def define_custom_tensor_wrapper( diff --git a/backends/qualcomm/debugger/README.md b/backends/qualcomm/debugger/README.md index fb8f9a1c662..bda3937bc53 100644 --- a/backends/qualcomm/debugger/README.md +++ b/backends/qualcomm/debugger/README.md @@ -50,7 +50,7 @@ Generate optrace and QHAS files using QNN tools under $QNN_SDK_ROOT. After finis adb = SimpleADB( qnn_config=qnn_config, pte_path=f"{args.artifact}/{pte_filename}.pte", - workspace=f"/data/local/tmp/executorch/{pte_filename}, + workspace=f"/data/local/tmp/executorch/{pte_filename}", ) binaries_trace = generate_optrace( args, adb, f"{args.artifact}/{pte_filename}.pte", example_input @@ -121,24 +121,24 @@ flowchart TB; debug --> output["Output Results"] ``` -## Instructions - -### 1. Setup +## Prerequisites 1. Follow the [tutorial](https://pytorch.org/executorch/main/getting-started-setup) to set up ExecuTorch. 2. Follow the [tutorial](https://pytorch.org/executorch/stable/build-run-qualcomm-ai-engine-direct-backend.html) to build Qualcomm AI Engine Direct Backend. -### 2. Enable Flag +## Instructions -When executing the script, please add the flag `--dump_intermediate_outputs`. This tells QNN to dump all intermediate tensors during execution. +### 1. Initialize debugger and build binary + +Create a `QNNIntermediateDebugger` with a sample input and pass it to `build_executorch_binary`. The `--dump_intermediate_outputs` flag tells QNN to dump all intermediate tensors during execution. -### 3. Add debugger to the example script -Initialize a `QNNIntermediateDebugger`. Please pass initialized `QNNIntermediateDebugger` and the `args.dump_intermediate_outputs` to `build_executorch_binary` method as well. -#### Example: ```python from executorch.backends.qualcomm.export_utils import build_executorch_binary -from executorch.backends.qualcomm.debugger.qnn_intermediate_debugger import QNNIntermediateDebugger +from executorch.backends.qualcomm.debugger.qnn_intermediate_debugger import ( + OutputFormat, + QNNIntermediateDebugger, +) -qnn_intermediate_debugger = QNNIntermediateDebugger() +qnn_intermediate_debugger = QNNIntermediateDebugger(sample_input=inputs[0]) build_executorch_binary( model=MyModel(), qnn_config=qnn_config, @@ -148,27 +148,61 @@ build_executorch_binary( ) ``` -### 4. Set data num to 1 -It is perfectly fine for users to pass the desired amount of datasets to `build_executorch_binary`, which helps achieve better quantization results. However, after `build_executorch_binary` is called, we need to ensure that we only perform one inference during execution. Please ensure that CPU and QNN is using the same input during execution; otherwise, the debugging results might not be accurate. +After `build_executorch_binary()`, the debugger holds: +- `edge_ep` — edge `ExportedProgram` for CPU golden inference. +- `etrecord_file_path` — path to the generated ET record. + +### 2. Execute on device + +Ensure `dump_intermediate_outputs` is enabled in your `QnnConfig` (or pass `--dump_intermediate_outputs` via CLI). Only run **one inference** for debugging — multiple executions are not supported. -### 5: Pull and process the results. -After QNN execution with the runner, if the previous steps are done correctly, we should be able to get two files: `etdump.etdp` and `debug_output.bin`. -The following example pulls the files back and calls a callback function to process the results. In this callback function, we create the `Inspector`. Then we perform CPU inference to get CPU intermediate results. Now, we have both QNN and CPU intermediate results, we can start generating results to compare the accuracy. Taking the following example, we should be able to get `debug_graph.svg` as an output in the current directory. -#### Example: ```python -from executorch.backends.qualcomm.debugger.qnn_intermediate_debugger import OutputFormat +from executorch.examples.qualcomm.utils import SimpleADB + +adb = SimpleADB( + qnn_config=qnn_config, + pte_path=f"{args.artifact}/{pte_filename}.pte", + workspace=f"/data/local/tmp/executorch/{pte_filename}", +) +adb.push(inputs=inputs) +adb.execute() +``` + +### 3. Pull results and compare + +After execution, pull `etdump.etdp` and `debug_output.bin` from the device. Use `setup_inspector()` to create the `Inspector`, then create comparators and generate results. + +Before comparing per-layer outputs, it is highly recommended to verify that the edge program's final output aligns with the original `nn.Module`. The debugger uses the edge program as the CPU golden reference, so if the edge graph itself has diverged (e.g., due to weights quantization or pass transformations), per-layer comparisons against it may be misleading. + +```python +from executorch.backends.qualcomm.debugger.qcom_numerical_comparator_sample import ( + QcomCosineSimilarityComparator, QcomMSEComparator, +) + def validate_intermediate_tensor(): - inspector = Inspector( + qnn_intermediate_debugger.setup_inspector( etdump_path=f"{args.artifact}/etdump.etdp", debug_buffer_path=f"{args.artifact}/debug_output.bin", ) - qnn_intermediate_debugger.intermediate_output_module(*(inputs[0])) + + # Verify edge program output aligns with the original nn.Module. + # This ensures the edge graph is a reliable golden reference. + edge_result = qnn_intermediate_debugger.edge_ep.module()(*(inputs[0])) + with torch.no_grad(): + source_result = source_model(*(inputs[0])) + score = torch.nn.functional.cosine_similarity( + edge_result.flatten(), source_result.flatten(), dim=0 + ).item() + print("Cosine similarity between nn.Module and edge CPU:", score) + + cos_comparator = qnn_intermediate_debugger.create_comparator( + QcomCosineSimilarityComparator, threshold=0.9 + ) qnn_intermediate_debugger.generate_results( - title="debug_graph", - path=".", - output_format=OutputFormat.SVG_GRAPHS, - inspector=inspector, - evaluator=CosineSimilarityEvaluator(0.9), + title="debug_cos_similarity", + path=args.artifact, + output_format=OutputFormat.SVG_GRAPH, + comparator=cos_comparator, ) adb.pull_debug_output( @@ -176,53 +210,59 @@ adb.pull_debug_output( ) ``` -#### Additional Options -The above example sets output formats as SVG and evaluation metrics using Cosine Similarity. Based on different needs, users can choose other output formats as shown in the `OutputFormat` class under [qnn_intermediate_debugger](./qnn_intermediate_debugger.py) +## Comparators + +Create comparators via the `create_comparator()` factory, which automatically injects the `edge_ep`. A couple sample comparators are provided under [qcom_numerical_comparator_sample.py](./qcom_numerical_comparator_sample.py): + ```python -class OutputFormat(IntEnum): - SVG_GRAPHS = 0 - CSV_FILES = 1 - DUMP_RAW = 2 +cos = qnn_intermediate_debugger.create_comparator(QcomCosineSimilarityComparator, threshold=0.9) +mse = qnn_intermediate_debugger.create_comparator(QcomMSEComparator, threshold=0.1) ``` -For evaluation metrics, if users would like to implement their own metrics, we have provided the option to implement [MetricEvaluatorBase](./metrics_evaluator.py). The following shows how to define custom metrics. +### Custom comparators + +Users can also define their own comparator by implementing a derived class from [QcomNumericalComparatorBase](./qcom_numerical_comparator_base.py). Inside the derived class, users will need to implement `metric_name()`, `is_valid_score()`, and `element_compare()`. The base class handles QNN-specific preprocessing (dequantization, layout conversion) internally — `preprocessing` cannot be overridden. ```python -class RootMeanSquaredErrorEvaluator(MetricEvaluatorBase): - def __init__(self, threshold=0.02): +from executorch.backends.qualcomm.debugger.qcom_numerical_comparator_base import ( + QcomNumericalComparatorBase, +) + +class MyComparator(QcomNumericalComparatorBase): + def __init__(self, edge_ep, threshold=0.5): + super().__init__(edge_ep) self.threshold = threshold def metric_name(self) -> str: - return "Root Mean Squared Error" - - def evaluate( - self, qnn_output: torch.Tensor, cpu_output: torch.Tensor - ) -> Tuple[Any, bool]: - mse = F.mse_loss(qnn_output, cpu_output) - rmse = torch.sqrt(mse) - valid = rmse < self.threshold - return rmse, valid - -qnn_intermediate_debugger.generate_results( - title="my_metric", - path=".", - output_format=OutputFormat.SVG_GRAPHS, - inspector=inspector, - evaluator=RootMeanSquaredErrorEvaluator(), -) + return "my_metric" + + def is_valid_score(self, score: float) -> bool: + return score >= self.threshold + + def element_compare(self, a, b) -> float: + # your comparison logic here + ... ``` -### Example Script -We have provided an inception_v3 demo script to help users better understand how to apply the debugger to their scripts. Please refer to [qnn_intermediate_debugger_demo.py](../../../examples/qualcomm/util_scripts/qnn_intermediate_debugger_demo.py) for the example script. +## Output formats + +| Format | Enum | Output | +|--------|------|--------| +| SVG graph | `OutputFormat.SVG_GRAPH` | Color-coded computation graph (green=pass, red=fail) | +| CSV file | `OutputFormat.CSV_FILE` | Per-node tabular results | + +## Example Script + +An Inception_V3 demo script is provided at [qnn_intermediate_debugger_demo.py](../../../examples/qualcomm/util_scripts/qnn_intermediate_debugger_demo.py). -Before running the example script, please ensure that dataset is downloaded. Example dataset can be retrieved [here](https://www.kaggle.com/datasets/ifigotin/imagenetmini-1000). +Before running, ensure the dataset is downloaded. An example dataset can be retrieved [here](https://www.kaggle.com/datasets/ifigotin/imagenetmini-1000). -To execute the model: ```bash -python examples/qualcomm/util_scripts/qnn_intermediate_debugger_demo.py -b build-android -m ${SOC_MODEL} --device ${SERIAL_NUM} --dataset ${PATH_TO_DATASET} --dump_intermediate_outputs +python -m examples.qualcomm.util_scripts.qnn_intermediate_debugger_demo -b build-android -s $DEVICE_SERIAL -m $SOC_MODEL -d path/to/imagenet/val --dump_intermediate_outputs ``` -### Limitation -1. The current debugger only supports performing one execution. Multiple executions may cause unknown behavior and are not recommended. -2. Please ignore this if you are using `qnn_executor_runner`. If you have decided to write your own runner, please follow the [tutorial](https://pytorch.org/executorch/stable/etdump.html) on how to implement etdump into your own runner. -3. The current debugger does not support graph with partitions. (WIP) -4. The current debugger does not support LLM models. (WIP) +## Limitations +1. Only one execution per debug session — multiple executions may cause unknown behavior. +2. If you have decided to write your own runner (instead of `qnn_executor_runner`), follow the [tutorial](https://pytorch.org/executorch/stable/etdump.html) on how to implement etdump. +3. Does not support graphs with partitions (partial delegation). +4. Does not support LLM models. +5. Does not support graphs with multiple methods. diff --git a/backends/qualcomm/debugger/TARGETS b/backends/qualcomm/debugger/TARGETS index 6a7732231fc..3389dfdfcd9 100644 --- a/backends/qualcomm/debugger/TARGETS +++ b/backends/qualcomm/debugger/TARGETS @@ -15,7 +15,8 @@ runtime.python_library( name = "qnn_intermediate_debugger", srcs = [ "format_outputs.py", - "metrics_evaluator.py", + "qcom_numerical_comparator_base.py", + "qcom_numerical_comparator_sample.py", "qnn_intermediate_debugger.py", ], deps = [ diff --git a/backends/qualcomm/debugger/format_outputs.py b/backends/qualcomm/debugger/format_outputs.py index 7388eef8223..d0dd165b186 100644 --- a/backends/qualcomm/debugger/format_outputs.py +++ b/backends/qualcomm/debugger/format_outputs.py @@ -5,21 +5,30 @@ # LICENSE file in the root directory of this source tree. import csv +import logging import os +import subprocess from typing import Any +import executorch.exir as exir +import pandas import pydot import torch +from executorch.backends.qualcomm.debugger.qcom_numerical_comparator_base import ( + QcomNumericalComparatorBase, +) from executorch.backends.qualcomm.utils.constants import ( QCOM_QUANT_ATTRS, QCOM_SCALE, QCOM_SCALES, - QCOM_TENSOR_NAME, QCOM_ZERO_POINT, QCOM_ZERO_POINTS, ) +from executorch.exir.debug_handle_utils import DEBUG_HANDLE_KEY -from .metrics_evaluator import MetricEvaluatorBase +FORMAT = "[%(levelname)s %(asctime)s %(filename)s:%(lineno)s] %(message)s" +logging.basicConfig(level=logging.INFO, format=FORMAT) +logging.getLogger().setLevel(logging.INFO) # Copied from site-packages/torch/fx/passes/graph_drawer.py @@ -39,63 +48,37 @@ def typename(target: Any) -> str: return ret.replace("{", r"\{").replace("}", r"\}") -def retrieve_node_info(evaluator, node, node_tensor_map): - - node_info = {} - node_info["name"] = node.name - node_info["op_code"] = node.op - node_info["target"] = typename(node.target) - node_info["num_users"] = len(node.users) - - if "val" in node.meta: - if isinstance(node.meta["val"], torch.Tensor): - node_info["pytorch_layout"] = node.meta["val"].shape - elif isinstance(node.meta["val"], (list, tuple)): - shape_list = [] - for i in range(len(node.meta["val"])): - shape_list.append(node.meta["val"][i].shape) - node_info["pytorch_layout"] = shape_list - +def get_scale_zero_point(node: torch.fx.node.Node): + scale_zero_point = {"scale(s)": None, "zero_point(s)": None} if quant_attrs := node.meta.get(QCOM_QUANT_ATTRS): - node_info["scale(s)"] = ( + scale_zero_point["scale(s)"] = ( quant_attrs.get(QCOM_SCALES) if QCOM_SCALES in quant_attrs else quant_attrs.get(QCOM_SCALE) ) - node_info["zero_point(s)"] = ( + scale_zero_point["zero_point(s)"] = ( quant_attrs.get(QCOM_ZERO_POINTS) if QCOM_ZERO_POINTS in quant_attrs else quant_attrs.get(QCOM_ZERO_POINT) ) + return scale_zero_point - if node.name in node_tensor_map: - qnn_output, cpu_output, meta = node_tensor_map[node.name] - node_info[QCOM_TENSOR_NAME] = meta.get(QCOM_TENSOR_NAME) - node_info[evaluator.metric_name()], node_info["is_valid_score"] = ( - evaluator.evaluate(qnn_output, cpu_output) - ) - # The values in meta are directly retrieved from the node during the forward hook, which means the values should be the same for meta and node.meta. - # Storing these data during the forward hook helps us compare QNN tensors with CPU tensors without traversing the graph. - # We only check "scale" and not "scales" since the forward hook only stores the node's output, which should always be per tensor. - if QCOM_QUANT_ATTRS in node.meta: - assert ( - node_info["scale(s)"] == node.meta[QCOM_QUANT_ATTRS][QCOM_SCALE] - ), "node meta scale should be same as scale retrieve during forward hook" - assert ( - node_info["zero_point(s)"] - == node.meta[QCOM_QUANT_ATTRS][QCOM_ZERO_POINT] - ), "node meta zero_point should be same as zero_point retrieve during forward hook" +def get_pytorch_layout_info(node: torch.fx.node.Node): + val = node.meta.get("val") + if val is None: + return None + if isinstance(val, torch.Tensor): + return val.shape + return [v.shape for v in val if isinstance(v, torch.Tensor)] - return node_info - -def export_svg( +def export_svg( # noqa: C901 title: str, path: str, - evaluator: MetricEvaluatorBase, - edge_module: torch.fx.GraphModule, - node_tensor_map: dict, + edge_ep: exir.ExirExportedProgram, + numeric_results: pandas.core.frame.DataFrame, + comparator: QcomNumericalComparatorBase, ): def get_node_style(is_valid_score: bool): template = { @@ -117,37 +100,46 @@ def get_node_style(is_valid_score: bool): node_map = {} # Create node - for node in edge_module.graph.nodes: + for node in edge_ep.graph_module.graph.nodes: # These are just nodes before fold_quant and still there if len(node.users) == 0 and node.op == "placeholder": continue - node_info = retrieve_node_info( - evaluator=evaluator, node=node, node_tensor_map=node_tensor_map - ) + + pytorch_layout = get_pytorch_layout_info(node) + scale_zero_point = get_scale_zero_point(node) + scale = scale_zero_point["scale(s)"] + zero_point = scale_zero_point["zero_point(s)"] node_label = "{" - node_label += f"name=%{node_info.get('name')}" + r"\n" - node_label += f"|op_code={node_info.get('op_code')}" + r"\n" - node_label += f"|qnn_tensor_name={node_info.get('qnn_tensor_name')}" + r"\n" - node_label += f"|target={node_info.get('target')}" + r"\n" - node_label += f"|num_users={node_info.get('num_users')}" + r"\n" - node_label += f"|pytorch_layout={node_info.get('pytorch_layout')}" + r"\n" - node_label += f"|scale(s)={node_info.get('scale(s)')}" + r"\n" - node_label += f"|zero_point(s)={node_info.get('zero_point(s)')}" + r"\n" - node_label += ( - f"|{evaluator.metric_name()}={node_info.get(evaluator.metric_name())}" - + r"\n" - ) - node_label += f"|is_valid_score={node_info.get('is_valid_score')}" + r"\n" + node_label += f"name=%{node.name}" + r"\n" + node_label += f"|op_code={node.op}" + r"\n" + node_label += f"|target={typename(node.target)}" + r"\n" + node_label += f"|num_users={len(node.users)}" + r"\n" + node_label += f"|pytorch_layout={pytorch_layout}" + r"\n" + node_label += f"|scale(s)={scale}" + r"\n" + node_label += f"|zero_point(s)={zero_point}" + r"\n" + + is_valid_score = None + if debug_handle := node.meta.get(DEBUG_HANDLE_KEY, None): + node_label += f"|debug_handle={debug_handle}" + r"\n" + debug_handle = (debug_handle,) + if debug_handle in numeric_results.index: + score = numeric_results.loc[[debug_handle], "gap"].iat[0][0] + assert isinstance( + score, float + ), f"Expecting QcomNumericalComparatorBase element_compare to return float, but get {type(score)}." + node_label += f"|{comparator.metric_name()}={score:.3f}" + r"\n" + is_valid_score = comparator.is_valid_score(score) + node_label += f"|is_valid_score={is_valid_score}" + r"\n" node_label += "}" - template = get_node_style(node_info.get("is_valid_score")) + template = get_node_style(is_valid_score) pydot_node = pydot.Node(node.name, label=node_label, **template) node_map[node.name] = pydot_node pydot_graph.add_node(pydot_node) # Create edge - for node in edge_module.graph.nodes: + for node in edge_ep.graph_module.graph.nodes: if len(node.users) == 0 and node.op == "placeholder": continue cur_pydot_node = node_map[node.name] @@ -157,28 +149,68 @@ def get_node_style(is_valid_score: bool): pydot_graph.add_edge( pydot.Edge(cur_pydot_node, user_pydot_node, dir="forward") ) + dot_file_path = os.path.join(path, f"{title}.dot") + pydot_graph.write_raw(dot_file_path) + logging.info(f"Intermediate debugger dot graph saved at: {dot_file_path}") svg_file_path = os.path.join(path, f"{title}.svg") - pydot_graph.write_svg(svg_file_path) - print(f"Intermediate debugger graph saved at: {svg_file_path}") + try: + subprocess.run( + ["dot", "-Tsvg", dot_file_path, "-o", svg_file_path], + timeout=5, + check=True, + ) + logging.info(f"Intermediate debugger SVG graph saved at: {svg_file_path}.") + except subprocess.TimeoutExpired: + logging.warning( + f"SVG generation timed out after 5s, skipping. " + f"Only saving the dot file: {dot_file_path}." + ) + except (subprocess.CalledProcessError, FileNotFoundError) as e: + logging.warning(f"SVG generation failed ({e}), skipping.") def export_csv( title: str, path: str, - evaluator: MetricEvaluatorBase, - edge_module: torch.fx.GraphModule, - node_tensor_map: dict, + edge_ep: exir.ExirExportedProgram, + numeric_results: pandas.core.frame.DataFrame, + comparator: QcomNumericalComparatorBase, ): node_info_list = [] - for node in edge_module.graph.nodes: + for node in edge_ep.graph_module.graph.nodes: # These are just nodes before fold_quant and still there if len(node.users) == 0 and node.op == "placeholder": continue - node_info = retrieve_node_info( - evaluator=evaluator, node=node, node_tensor_map=node_tensor_map + + pytorch_layout = get_pytorch_layout_info(node) + scale_zero_point = get_scale_zero_point(node) + scale = scale_zero_point["scale(s)"] + zero_point = scale_zero_point["zero_point(s)"] + score = None + is_valid_score = None + if debug_handle := node.meta.get(DEBUG_HANDLE_KEY, None): + if (debug_handle,) in numeric_results.index: + score = numeric_results.loc[[(debug_handle,)], "gap"].iat[0][0] + assert isinstance( + score, float + ), f"Expecting QcomNumericalComparatorBase element_compare to return float, but get {type(score)}." + is_valid_score = comparator.is_valid_score(score) + + node_info_list.append( + { + "name": node.name, + "op_code": node.op, + "target": typename(node.target), + "num_users": len(node.users), + "pytorch_layout": pytorch_layout, + "scale(s)": scale, + "zero_point(s)": zero_point, + "debug_handle": debug_handle, + comparator.metric_name(): score, + "is_valid_score": is_valid_score, + } ) - node_info_list.append(node_info) # Writing to a CSV file csv_file_path = os.path.join(path, f"{title}.csv") @@ -186,13 +218,13 @@ def export_csv( fieldnames = [ "name", "op_code", - "qnn_tensor_name", "target", "num_users", "pytorch_layout", "scale(s)", "zero_point(s)", - f"{evaluator.metric_name()}", + "debug_handle", + comparator.metric_name(), "is_valid_score", ] writer = csv.DictWriter(csv_file, fieldnames=fieldnames) @@ -201,23 +233,3 @@ def export_csv( writer.writerows(node_info_list) print(f"Intermediate debugger csv saved at: {csv_file_path}") - - -def export_raw( - path: str, - edge_module: torch.fx.GraphModule, - node_tensor_map: dict, -): - for node in edge_module.graph.nodes: - # These are just unused nodes before fold_quant and still there - if len(node.users) == 0 and node.op == "placeholder": - continue - if paired_event := node_tensor_map.get(node.name): - qnn_output, cpu_output, meta = paired_event - qnn_tensor_name = meta[QCOM_TENSOR_NAME] - qnn_output_path = os.path.join(path, qnn_tensor_name + "_qnn.raw") - cpu_output_path = os.path.join(path, qnn_tensor_name + "_cpu.raw") - qnn_output.numpy().tofile(qnn_output_path) - cpu_output.numpy().tofile(cpu_output_path) - - print(f"Intermediate debugger raw files saved at: {path}") diff --git a/backends/qualcomm/debugger/metrics_evaluator.py b/backends/qualcomm/debugger/metrics_evaluator.py deleted file mode 100644 index 55c8b92b034..00000000000 --- a/backends/qualcomm/debugger/metrics_evaluator.py +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright (c) Qualcomm Innovation Center, Inc. -# All rights reserved -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. - -from abc import ABC, abstractmethod -from typing import Any, Tuple - -import torch - - -class MetricEvaluatorBase(ABC): - @abstractmethod - def metric_name(self) -> str: - """ - A name for this metric evaluation - - Returns: - str: name of the metric evaluation - """ - ... - - @abstractmethod - def evaluate( - self, qnn_output: torch.Tensor, cpu_output: torch.Tensor, **kwargs - ) -> Tuple[Any, bool]: - """ - This abstract method should accept both QNN and CPU outputs for a single layer. - Define your own logic to compare the results. - - Args: - qnn_output (torch.Tensor): QNN intermediate output - cpu_output (torch.Tensor): CPU intermediate output - - Returns: - Tuple[Any, bool]: Return 2 elements: - 1) Score or anything that you would like to be printed under metrics category for svg graph or csv file. - 2) A boolean that indicates whether the evaluation result is acceptable or not. - """ - ... - - -class AtolEvaluator(MetricEvaluatorBase): - def __init__(self, threshold=1e-1): - self.threshold = threshold - - def metric_name(self) -> str: - return "Atol Similarity" - - def evaluate( - self, qnn_output: torch.Tensor, cpu_output: torch.Tensor - ) -> Tuple[Any, bool]: - avg_atol = torch.mean(torch.abs(qnn_output - cpu_output)) - valid = avg_atol < self.threshold - formatted_score = f"{avg_atol:.3f}" - return formatted_score, valid - - -class CosineSimilarityEvaluator(MetricEvaluatorBase): - def __init__(self, threshold=0.9): - self.threshold = threshold - - def metric_name(self) -> str: - return "Cosine Similarity" - - def evaluate( - self, qnn_output: torch.Tensor, cpu_output: torch.Tensor - ) -> Tuple[Any, bool]: - score = torch.nn.functional.cosine_similarity( - qnn_output.flatten(), cpu_output.flatten(), dim=0 - ).item() - valid = score > self.threshold - formatted_score = f"{score:.3f}" - return formatted_score, valid - - -class MeanSquaredErrorEvaluator(MetricEvaluatorBase): - def __init__(self, threshold=0.01): - self.threshold = threshold - - def metric_name(self) -> str: - return "Mean Squared Error" - - def evaluate( - self, qnn_output: torch.Tensor, cpu_output: torch.Tensor - ) -> Tuple[Any, bool]: - mse = torch.mean((qnn_output - cpu_output) ** 2) - valid = mse < self.threshold - return mse, valid diff --git a/backends/qualcomm/debugger/qcom_numerical_comparator_base.py b/backends/qualcomm/debugger/qcom_numerical_comparator_base.py new file mode 100644 index 00000000000..0068d28bfac --- /dev/null +++ b/backends/qualcomm/debugger/qcom_numerical_comparator_base.py @@ -0,0 +1,194 @@ +# Copyright (c) Qualcomm Innovation Center, Inc. +# All rights reserved +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +import logging +import operator +from abc import abstractmethod +from dataclasses import dataclass +from typing import Dict, final, Optional, Tuple + +import executorch.exir as exir +import torch +from executorch.backends.qualcomm._passes.layout_transform import LayoutTransform +from executorch.backends.qualcomm.utils.constants import ( + QCOM_AXIS_ORDER, + QCOM_QUANT_ATTRS, + QCOM_SCALE, + QCOM_ZERO_POINT, +) +from executorch.devtools.inspector.numerical_comparator import ( + IntermediateOutputMapping, + NumericalComparatorBase, +) +from executorch.exir.sym_util import eval_shape + +logger = logging.getLogger(__name__) + + +@dataclass +class NodeMetaInfo: + node_name: str + scale: Optional[float] = None + zero_point: Optional[int] = None + axis_order: Optional[Tuple[int, ...]] = None + + +class QcomNumericalComparatorBase(NumericalComparatorBase): + """Base class for Qualcomm numerical comparators. + + This class locks down the `preprocessing` method to handle QNN-specific + tensor transformations (dequantization, layout conversion) internally. + Community users subclassing this base only need to implement `element_compare`. + + Attempting to override `preprocessing` in a subclass will raise TypeError + at class definition time. + """ + + def __init_subclass__(cls, **kwargs): + super().__init_subclass__(**kwargs) + if "preprocessing" in cls.__dict__: + raise TypeError( + f"{cls.__name__} cannot override 'preprocessing'. " + "Qualcomm handles preprocessing (dequantization, layout conversion) internally." + ) + + def __init__(self, edge_ep: exir.ExportedProgram) -> None: + super().__init__() + self.edge_ep = edge_ep + + @abstractmethod + def metric_name(self) -> str: + """ + A name for this metric evaluation. + + Returns: + str: name of the metric evaluation. + """ + ... + + @abstractmethod + def is_valid_score(self, score: float) -> bool: + """ + Determine whether a comparison score is within an acceptable range. + + Args: + score: the comparison score to validate. + + Returns: + bool: True if the score is acceptable, False otherwise. + """ + ... + + @final + def preprocessing( # noqa: C901 + self, mapping: IntermediateOutputMapping + ) -> IntermediateOutputMapping: + + def _preprocess_tensor( + qnn_tensor: torch.Tensor, meta: NodeMetaInfo, golden_tensor: torch.Tensor + ) -> torch.Tensor: + if meta.scale is not None: + # Dequantize + qnn_tensor = ( + qnn_tensor.to(torch.float32) + .sub(meta.zero_point) + .mul(meta.scale) + .contiguous() + ) + if meta.axis_order: + # QNN to Pytorch layout + axis_order = LayoutTransform.get_axis_order( + eval_shape(qnn_tensor.shape), reverse=True + ) + qnn_tensor = qnn_tensor.permute(axis_order) + + assert ( + golden_tensor.shape == qnn_tensor.shape + ), f"{meta.node_name}'s golden and QNN tensor has different shape. Golden Tensor Shape: {golden_tensor.shape}. QNN Tensor Shape: {qnn_tensor.shape}." + + return qnn_tensor + + def _build_debug_handle_to_meta() -> ( + Dict[Tuple[int, ...], Dict[int, NodeMetaInfo]] + ): + debug_handle_to_meta: Dict[Tuple[int, ...], Dict[int, NodeMetaInfo]] = {} + for node in self.edge_ep.graph_module.graph.nodes: + if node.op != "call_function": + continue + + if (debug_handle := node.meta.get("debug_handle")) is None: + continue + else: + debug_handle = (debug_handle,) + + quant_attrs = node.meta.get(QCOM_QUANT_ATTRS, {}) + node_meta_info = NodeMetaInfo( + node_name=node.name, + scale=quant_attrs.get(QCOM_SCALE, None), + zero_point=quant_attrs.get(QCOM_ZERO_POINT, None), + axis_order=node.meta.get(QCOM_AXIS_ORDER, None), + ) + + if any(user.target == operator.getitem for user in node.users): + # Assume if a node user is getitem, all users are getitem + assert all( + user.target == operator.getitem for user in node.users + ), "[QNN Delegate Debugger]: Expect all users to be getitem node" + continue + + # Multi-output op's getitem node shares the same debug handle. + if node.target == operator.getitem: + output_idx = node.args[1] + debug_handle_to_meta.setdefault(debug_handle, {})[ + output_idx + ] = node_meta_info + else: + assert ( + debug_handle not in debug_handle_to_meta + ), f"[QNN Delegate Debugger]: Duplicate handle_id {debug_handle} found when visiting {node.name}." + debug_handle_to_meta[debug_handle] = {0: node_meta_info} + + return debug_handle_to_meta + + debug_handle_to_meta = _build_debug_handle_to_meta() + processed_mapping: IntermediateOutputMapping = {} + for (golden_handle, golden_output), (qnn_handle, qnn_output) in mapping.items(): + assert ( + golden_handle == qnn_handle + ), f"Expecting the handle to match, aot handle: {golden_handle}, qnn_handle: {qnn_handle}." + if node_meta_dict := debug_handle_to_meta.get(qnn_handle, None): + if isinstance(qnn_output, tuple): + assert len(qnn_output) <= len( + node_meta_dict + ), f"node_meta has {len(node_meta_dict)} entries but qnn_output has {len(qnn_output)} elements." + if len(node_meta_dict) != len(qnn_output): + logging.warning( + f"Number of QNN output {len(qnn_output)} mismatched with number of output for edge module {len(node_meta_dict)}. This is possibly due to multi-outputs and QNN does not use all outputs. Please verify the following meta from edge module and ensure this is desired: {node_meta_dict}." + ) + + processed = [] + for idx, q_tensor in enumerate(qnn_output): + processed.append( + _preprocess_tensor( + qnn_tensor=q_tensor, + meta=node_meta_dict[idx], + golden_tensor=golden_output[idx], + ) + ) + + qnn_output = tuple(processed) + else: + assert ( + len(node_meta_dict) == 1 and 0 in node_meta_dict + ), f"Single output expected node_meta_dict with key 0, got keys {list(node_meta_dict.keys())}" + qnn_output = _preprocess_tensor( + qnn_tensor=qnn_output, + meta=node_meta_dict[0], + golden_tensor=golden_output, + ) + + processed_mapping[(golden_handle, golden_output)] = (qnn_handle, qnn_output) + return processed_mapping diff --git a/backends/qualcomm/debugger/qcom_numerical_comparator_sample.py b/backends/qualcomm/debugger/qcom_numerical_comparator_sample.py new file mode 100644 index 00000000000..43783a64420 --- /dev/null +++ b/backends/qualcomm/debugger/qcom_numerical_comparator_sample.py @@ -0,0 +1,57 @@ +# Copyright (c) Qualcomm Innovation Center, Inc. +# All rights reserved +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from typing import Any + +import executorch.exir as exir +import torch +from executorch.backends.qualcomm.debugger.qcom_numerical_comparator_base import ( + QcomNumericalComparatorBase, +) + + +""" +This file provides some examples on how to implement a QcomNumericalComparator +""" + + +class QcomMSEComparator(QcomNumericalComparatorBase): + """Mean Squared Error comparator for Qualcomm intermediate outputs.""" + + def __init__(self, edge_ep: exir.ExportedProgram, threshold: float = 1e-3) -> None: + super().__init__(edge_ep) + self.threshold = threshold + + def metric_name(self) -> str: + return "mse" + + def is_valid_score(self, score: float) -> bool: + return score <= self.threshold + + def element_compare(self, a: Any, b: Any) -> float: + if isinstance(a, torch.Tensor) and isinstance(b, torch.Tensor): + return torch.mean(torch.square(a.float() - b.float())).item() + return float((a - b) ** 2) + + +class QcomCosineSimilarityComparator(QcomNumericalComparatorBase): + """Cosine Similarity comparator for Qualcomm intermediate outputs.""" + + def __init__(self, edge_ep: exir.ExportedProgram, threshold: float = 0.95) -> None: + super().__init__(edge_ep) + self.threshold = threshold + + def metric_name(self) -> str: + return "cosine_similarity" + + def is_valid_score(self, score: float) -> bool: + return score >= self.threshold + + def element_compare(self, a: Any, b: Any) -> float: + score = torch.nn.functional.cosine_similarity( + a.to(torch.float32).flatten(), b.to(torch.float32).flatten(), dim=0 + ).item() + return score diff --git a/backends/qualcomm/debugger/qnn_intermediate_debugger.py b/backends/qualcomm/debugger/qnn_intermediate_debugger.py index 904dd4f6ccb..7c7609cd7f5 100644 --- a/backends/qualcomm/debugger/qnn_intermediate_debugger.py +++ b/backends/qualcomm/debugger/qnn_intermediate_debugger.py @@ -4,136 +4,94 @@ # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. -import copy -import operator import os import warnings from enum import IntEnum -import torch - -from executorch.backends.qualcomm._passes.layout_transform import LayoutTransform -from executorch.backends.qualcomm.utils.constants import ( - QCOM_AXIS_ORDER, - QCOM_QUANT_ATTRS, - QCOM_SCALE, - QCOM_TENSOR_NAME, - QCOM_ZERO_POINT, +import executorch.exir as exir +from executorch.backends.qualcomm.debugger.qcom_numerical_comparator_base import ( + QcomNumericalComparatorBase, ) from executorch.devtools import Inspector -from executorch.exir.sym_util import eval_shape -from .format_outputs import export_csv, export_raw, export_svg -from .metrics_evaluator import MetricEvaluatorBase +from .format_outputs import export_csv, export_svg class OutputFormat(IntEnum): - SVG_GRAPHS = 0 - CSV_FILES = 1 - DUMP_RAW = 2 - - -class IntermediateModule(torch.nn.Module): - """ - This class serves as an intermediate point and is inserted right after the call_function node. - It also saves some metadata such as scale, offset, etc. - Since we just want to check the intermediate output, we will directly return the value during the forward call. - """ - - def __init__( - self, - module_name: str, - qnn_tensor_name: str, - node_name: str, - scale: float, - zero_point: int, - revert_order: bool = None, - ): - super().__init__() - self.module_name = module_name - self.qnn_tensor_name = qnn_tensor_name - self.node_name = node_name - self.scale = scale - self.zero_point = zero_point - self.revert_order = revert_order - - def forward(self, x): - return x + SVG_GRAPH = 0 + CSV_FILE = 1 class QNNIntermediateDebugger: """This is a debugger tool capable of retrieving intermediate results for CPU edge EP. - We can further compare these with QNN's intermediate output to identify any QNN accuracy issues. + We can further compare these with QNN's intermediate output to identify any accuracy issues. """ - def __init__(self): - self.intermediate_outputs = {} - - def set_edge_module(self, edge_module: torch.fx.graph_module.GraphModule): - self.orig_edge = copy.deepcopy(edge_module) - self.intermediate_output_module = self._insert_intermediate_module( - copy.deepcopy(edge_module) + def __init__(self, sample_input): + self.sample_input = sample_input + self.edge_ep = None + self.etrecord_file_path = None + self.inspector = None + # Support single to edge after transform forward graph for now. + self.reference_graph_name = "edge_after_transform/forward" + + def set_edge_ep(self, edge_ep: exir.ExirExportedProgram): + self.edge_ep = edge_ep + + def set_etrecord_file_path(self, etrecord_file_path: str): + self.etrecord_file_path = etrecord_file_path + + def setup_inspector(self, etdump_path: str, debug_buffer_path: str): + self.inspector = Inspector( + etdump_path=etdump_path, + debug_buffer_path=debug_buffer_path, + etrecord=self.etrecord_file_path, + reference_graph_name=self.reference_graph_name, ) + def create_comparator( + self, comparator_cls: type[QcomNumericalComparatorBase], **kwargs + ) -> QcomNumericalComparatorBase: + # No need to pass edge_ep — the factory injects it automatically. + # Just pass the comparator class and any comparator-specific args: + # comparator = debugger.create_comparator(QcomMSEComparator, threshold=1e-4) + assert ( + self.edge_ep is not None + ), "edge_ep must be set before creating a comparator." + return comparator_cls(edge_ep=self.edge_ep, **kwargs) + def generate_results( self, title: str, path: str, output_format: OutputFormat, - inspector: Inspector, - evaluator: MetricEvaluatorBase = None, - keep_qnn_layout: bool = False, + comparator: QcomNumericalComparatorBase, ): assert isinstance( output_format, OutputFormat ), "output_format passed in is not an instance of OutputFormat" os.makedirs(path, exist_ok=True) - if keep_qnn_layout: - warnings.warn( - "[QNN Delegate Debugger]: keep_qnn_layout is not recommended for general use case. " - "QNN and CPU has different dtype(FP V.S. Quantized) and data formats(NCHW V.S. NHWC) in a lot of cases.", - stacklevel=1, - ) - # Due to users can switch between keep_qnn_layout between generate_results, rematch this every time. - # Make this a class variable if repeat matching is taking too long and handle keep_qnn_layout. - node_tensor_map = self._match_tensors( - inspector=inspector, - keep_qnn_layout=keep_qnn_layout, + numeric_results = self.inspector.calculate_numeric_gap( + distance=comparator, reference_graph=self.reference_graph_name ) + numeric_results = numeric_results.set_index("runtime_debug_handle") - if output_format == OutputFormat.SVG_GRAPHS: - assert evaluator is not None, "Please provide an evaluator." + if output_format == OutputFormat.SVG_GRAPH: export_svg( title=title, path=path, - evaluator=evaluator, - edge_module=self.orig_edge, - node_tensor_map=node_tensor_map, + edge_ep=self.edge_ep, + numeric_results=numeric_results, + comparator=comparator, ) - elif output_format == OutputFormat.CSV_FILES: - assert evaluator is not None, "Please provide an evaluator." + elif output_format == OutputFormat.CSV_FILE: export_csv( title=title, path=path, - evaluator=evaluator, - edge_module=self.orig_edge, - node_tensor_map=node_tensor_map, - ) - elif output_format == OutputFormat.DUMP_RAW: - warnings.warn( - f"[QNN Delegate Debugger]: Param 'title' will be ignored, all raw files will be stored under: {path}", - stacklevel=1, - ) - if evaluator: - warnings.warn( - "[QNN Delegate Debugger]: Param 'evaluator' will be ignored as DUMP_RAW will only dump tensors to raw files but won't perform comparison.", - stacklevel=1, - ) - export_raw( - path=path, - edge_module=self.intermediate_output_module, - node_tensor_map=node_tensor_map, + edge_ep=self.edge_ep, + numeric_results=numeric_results, + comparator=comparator, ) else: warnings.warn( @@ -141,188 +99,3 @@ def generate_results( stacklevel=1, ) return - - def _insert_intermediate_module( # noqa: C901 - self, edge_module: torch.fx.graph_module.GraphModule - ): - """ - This feature is for intermediate tensor dump on the host CPU. - After we get an edge GraphModule, we insert submodule between each call_function node, - and we register forward hooks to store the intermediate results. - We have to use the edge GraphModule because this is the graph closest to what QNN is executing - while still being a valid graph to ExecuTorch. - - Args: - edge_module (exir.ExirExportedProgram): A deep copy of edge ir graph module. - We need to deep copy so we don't mess up the original edge_ep. - Returns: - exir.ExirExportedProgram: A deep copy of edge graph_module with intermediate modules inserted. - """ - - def hook_fn(module, input, output): - meta = {} - meta[QCOM_TENSOR_NAME] = module.qnn_tensor_name - meta["node_name"] = module.node_name - meta[QCOM_SCALE] = module.scale - meta[QCOM_ZERO_POINT] = module.zero_point - meta["revert_order"] = module.revert_order - meta["output"] = output # CPU output - - assert ( - module.qnn_tensor_name not in self.intermediate_outputs - ), f"{module.qnn_tensor_name} checked already, check if this is a potential error" - self.intermediate_outputs[module.qnn_tensor_name] = meta - - graph = edge_module.graph - module_count = 0 - for node in graph.nodes: - if node.op == "call_function": - module_name = f"intermediate_module_{module_count}" - module_count += 1 - with graph.inserting_after(node): - scale = None - zero_point = None - if QCOM_QUANT_ATTRS in node.meta: - scale = node.meta[QCOM_QUANT_ATTRS][QCOM_SCALE] - zero_point = node.meta[QCOM_QUANT_ATTRS][QCOM_ZERO_POINT] - - revert_order = QCOM_AXIS_ORDER in node.meta - - if node.target == operator.getitem: - index = node.args[1] - # Ex: topk -> intermediate_module -> get_item - src_node = node.args[0].args[0] - qnn_tensor_name = src_node.meta[QCOM_TENSOR_NAME][index] - elif any(user.target == operator.getitem for user in node.users): - # For cases like topK, qnn_tensor_name is stored in get_item instead of source_node itself. - assert all( - user.target == operator.getitem for user in node.users - ), "Expect all users to be get_item node" - qnn_tensor_name = node.name - elif QCOM_TENSOR_NAME in node.meta: - assert ( - len(node.meta[QCOM_TENSOR_NAME]) == 1 - ), "Expecting a single qnn_tensor name but get more than 1." - qnn_tensor_name = node.meta[QCOM_TENSOR_NAME][0] - else: - # Unused - qnn_tensor_name = node.name - - obs = IntermediateModule( - module_name=module_name, - qnn_tensor_name=qnn_tensor_name, - node_name=node.name, - scale=scale, - zero_point=zero_point, - revert_order=revert_order, - ) - setattr( - edge_module, - module_name, - obs, - ) - new_obs = graph.create_node("call_module", module_name, (node,), {}) - orig_users = list(node.users.keys()) - for user_node in orig_users: - if user_node is new_obs: - continue - user_node.replace_input_with(node, new_obs) - - # Register hooks for all intermediate layers - for ( - _, - layer, - ) in edge_module.named_modules(): - if isinstance(layer, IntermediateModule): - layer.register_forward_hook(hook_fn) - - graph.eliminate_dead_code() - edge_module.recompile() - - return edge_module - - def _process_qnn_output(self, qnn_output: torch.tensor, meta: dict) -> torch.tensor: - """ - QNN intermediate results are all quantized. - We need to dequantize them to match CPU float values. - Additionally, we need to revert the layout format for layout-sensitive nodes. - - Args: - qnn_output (torch.tensor): QNN intermediate output from inspector event - meta (dict): The meta for this tensor/node that is stored during insert_intermediate_module(). - - Returns: - torch.tensor: Processed tensor that should have same dtype and shape as CPU tensors. - """ - qnn_output = qnn_output.to(torch.float32) - if meta[QCOM_SCALE] is not None: - scale = meta[QCOM_SCALE] - zero_point = meta[QCOM_ZERO_POINT] - qnn_output = ( - qnn_output.sub(zero_point).mul(scale).to(torch.float32).contiguous() - ) - if meta["revert_order"]: - axis_order = LayoutTransform.get_axis_order( - eval_shape(qnn_output.shape), reverse=True - ) - qnn_output = qnn_output.permute(axis_order) - return qnn_output - - def _match_tensors(self, inspector: Inspector, keep_qnn_layout: bool = False): - """ - Map QNN tensors back to CPU tensors. - Create a map using the node name as the key and (preprocessed/postprocessed QNN tensor, CPU tensor, meta) as the value. - We need meta because it holds values such as scale, offset, layout sensitivity, etc. - - Args: - inspector (Inspector): Inspector that parse QNN runtime intermediate outputs - keep_qnn_layout (bool): If true, store QNN outputs in NHWC format. Not recommended for general users. - - Returns: - A dict storing {node_name : tuple(qnn_output, cpu_output, meta_info)} - Meta_info is the info stored during forward hook_fn. - """ - - # node_tensor_map {key: tuple(qnn_output, cpu_output, meta_info)} - node_tensor_map = {} - # OPs that only exists in QNN but not CPU Golden - unmatched_qnn_tensors = [] - # E.g.: DELEGATE_CALL (This is the model input data), 'Method::execute' - ignored_events = [] - # Collected with forward hook - intermediate_outputs = self.intermediate_outputs - for event_block in inspector.event_blocks: - if event_block.name == "Execute": - for event in event_block.events: - # If user enables profiling and dump intermediate outputs the same time, we need to skip the profiling event - if event.perf_data is not None and event.is_delegated_op: - continue - if meta := intermediate_outputs.get(event.name): - node_name = meta["node_name"] - cpu_output = meta["output"] - qnn_output = ( - event.debug_data[0] - if keep_qnn_layout - else self._process_qnn_output(event.debug_data[0], meta) - ) - node_tensor_map[node_name] = ( - qnn_output, - cpu_output, - meta, - ) - - else: - ( - unmatched_qnn_tensors.append(event.name) - if event.is_delegated_op - else ignored_events.append(event.name) - ) - - warnings.warn( - f"The following events are ignored: {ignored_events}", stacklevel=1 - ) - warnings.warn( - f"The following QNN OPs are missing CPU reference. OPs added during qnn_preprocess will not have CPU reference. Please ensure the operations below are created during qnn_preprocess. {unmatched_qnn_tensors}", - stacklevel=1, - ) - return node_tensor_map diff --git a/backends/qualcomm/export_utils.py b/backends/qualcomm/export_utils.py index 313573e523a..9c86d2d6640 100644 --- a/backends/qualcomm/export_utils.py +++ b/backends/qualcomm/export_utils.py @@ -53,7 +53,6 @@ is_qnn_sdk_version_less_than, to_edge_transform_and_lower_to_qnn, ) -from executorch.exir.backend.utils import get_delegates from executorch.exir.capture._config import ExecutorchBackendConfig from executorch.exir.passes.memory_planning_pass import MemoryPlanningPass from torchao.quantization.pt2e import MovingAverageMinMaxObserver @@ -119,7 +118,7 @@ class QnnConfig: ci: Optional[bool] = False seed: Optional[int] = None htp_performance_mode: QnnExecuTorchHtpPerformanceMode = ( - QnnExecuTorchHtpPerformanceMode.kHtpBurst, + QnnExecuTorchHtpPerformanceMode.kHtpBurst ) def __post_init__(self): @@ -600,6 +599,7 @@ def build_executorch_binary( dep_table=passes_dependency, skip_node_id_set=qnn_config.skip_delegate_node_ids, skip_node_op_set=qnn_config.skip_delegate_node_ops, + generate_etrecord=qnn_intermediate_debugger is not None, ) else: edge_prog_mgr = to_edge_transform_and_lower_to_qnn( @@ -610,21 +610,9 @@ def build_executorch_binary( passes_job=passes_job, skip_node_id_set=qnn_config.skip_delegate_node_ids, skip_node_op_set=qnn_config.skip_delegate_node_ops, + generate_etrecord=qnn_intermediate_debugger is not None, ) - if qnn_intermediate_debugger: - lowered_module_nodes = get_delegates(edge_prog_mgr.exported_program().graph) - assert ( - len(lowered_module_nodes) == 1 - ), "Graph with partitions are currently unsupported." - - lowered_module_node = lowered_module_nodes[0] - lower_module = getattr( - edge_prog_mgr.exported_program().graph_module, lowered_module_node.name - ) - edge_module = lower_module.original_module.module() - qnn_intermediate_debugger.set_edge_module(edge_module=edge_module) - allocate_io = not (qnn_config.shared_buffer or qnn_config.direct_build_folder) executorch_config = ExecutorchBackendConfig( # For shared buffer, user must pass the memory address @@ -642,6 +630,16 @@ def build_executorch_binary( with open(pte_name, "wb") as file: exec_prog_mgr.write_to_file(file) + if qnn_intermediate_debugger: + etrecord = exec_prog_mgr.get_etrecord() + etrecord.update_representative_inputs(qnn_intermediate_debugger.sample_input) + edge_ep = etrecord.graph_map[qnn_intermediate_debugger.reference_graph_name] + # Use this edge_ep since edge_ep after etrecord serialize/deserialize will lose quant_attrs info. + qnn_intermediate_debugger.set_edge_ep(edge_ep=edge_ep) + etrecord_file_path = f"{os.path.dirname(pte_name)}/debug.etrecord" + qnn_intermediate_debugger.set_etrecord_file_path(etrecord_file_path) + etrecord.save(etrecord_file_path) + if qnn_config.compile_only: sys.exit(0) diff --git a/backends/qualcomm/qnn_preprocess.py b/backends/qualcomm/qnn_preprocess.py index f423288640c..7ff9a336467 100644 --- a/backends/qualcomm/qnn_preprocess.py +++ b/backends/qualcomm/qnn_preprocess.py @@ -19,7 +19,10 @@ from executorch.backends.qualcomm.serialization.qc_schema_serialize import ( flatbuffer_to_option, ) -from executorch.backends.qualcomm.utils.constants import QCOM_AXIS_ORDER +from executorch.backends.qualcomm.utils.constants import ( + QCOM_AXIS_ORDER, + QCOM_TENSOR_NAME, +) from executorch.backends.qualcomm.utils.qnn_manager_lifecycle import ( get_current_qnn_manager, ) @@ -181,10 +184,16 @@ def preprocess_multimethod( # noqa: C901 ) if qnn_manager.IsTensorDump(): for node in programs[i].graph.nodes: - if handle_id := node.meta.get(DEBUG_HANDLE_KEY): + # Skip multi-output nodes: devtools only supports + # single-output intermediate capture (len == 1). + if ( + (handle_id := node.meta.get(DEBUG_HANDLE_KEY)) + and QCOM_TENSOR_NAME in node.meta + and len(node.meta[QCOM_TENSOR_NAME]) == 1 + ): debug_handle_builder.insert_delegate_mapping_entry( handles=handle_id, - identifier=node.name, + identifier=node.meta[QCOM_TENSOR_NAME][0], ) if isinstance(py_op_wrappers, bytes): ctx_binary_list.append(py_op_wrappers) @@ -195,7 +204,6 @@ def preprocess_multimethod( # noqa: C901 for py_op_wrapper in py_op_wrappers ] ) - if len(py_op_wrapper_list) == len(edge_programs.values()): qnn_context_binary = qnn_manager.Compile( graph_names, py_op_wrapper_list diff --git a/backends/qualcomm/tests/test_qnn_delegate.py b/backends/qualcomm/tests/test_qnn_delegate.py index 688dddf5c2a..012ed2f872a 100644 --- a/backends/qualcomm/tests/test_qnn_delegate.py +++ b/backends/qualcomm/tests/test_qnn_delegate.py @@ -120,7 +120,7 @@ def setUp(self): debug=False, saver=False, online_prepare=TestQNN.online_prepare, - dump_intermediate_outputs=TestQNN.dump_intermediate_outputs, + dump_intermediate_outputs=False, profile_level=TestQNN.profile_level, shared_buffer=TestQNN.shared_buffer, ) @@ -2219,7 +2219,7 @@ def setUp(self): debug=False, saver=False, online_prepare=TestQNN.online_prepare, - dump_intermediate_outputs=TestQNN.dump_intermediate_outputs, + dump_intermediate_outputs=False, profile_level=TestQNN.profile_level, shared_buffer=TestQNN.shared_buffer, ) @@ -2463,7 +2463,7 @@ def setUp(self): debug=False, saver=False, online_prepare=TestQNN.online_prepare, - dump_intermediate_outputs=TestQNN.dump_intermediate_outputs, + dump_intermediate_outputs=False, profile_level=TestQNN.profile_level, shared_buffer=TestQNN.shared_buffer, ) @@ -5010,7 +5010,7 @@ def setUp(self): debug=False, saver=False, online_prepare=TestQNN.online_prepare, - dump_intermediate_outputs=TestQNN.dump_intermediate_outputs, + dump_intermediate_outputs=False, profile_level=TestQNN.profile_level, shared_buffer=TestQNN.shared_buffer, ) @@ -5483,7 +5483,6 @@ class TestQNNFloatingPointUtils(TestQNN): def setUp(self): TestQNN.atol = 1e-1 TestQNN.rtol = 1e-1 - TestQNN.dump_intermediate_outputs = False TestQNN.enable_profile = False TestQNN.shared_buffer = False backend_options = generate_htp_compiler_spec(use_fp16=True) @@ -5522,7 +5521,6 @@ def output_callback(log_msg): ) def test_qnn_backend_dump_intermediate_outputs_topk(self): - TestQNN.dump_intermediate_outputs = True backend_options = generate_htp_compiler_spec(use_fp16=True) TestQNN.compiler_specs = generate_qnn_executorch_compiler_spec( soc_model=self.chipset_table[TestQNN.soc_model], @@ -5535,12 +5533,10 @@ def test_qnn_backend_dump_intermediate_outputs_topk(self): module, sample_input, expected_partitions=1, - expected_intermediate_events=7, - expected_compared_events=5, + expected_compared_events=3, ) def test_qnn_backend_dump_intermediate_outputs_simple_model(self): - TestQNN.dump_intermediate_outputs = True backend_options = generate_htp_compiler_spec(use_fp16=True) TestQNN.compiler_specs = generate_qnn_executorch_compiler_spec( soc_model=self.chipset_table[TestQNN.soc_model], @@ -5553,8 +5549,7 @@ def test_qnn_backend_dump_intermediate_outputs_simple_model(self): module, sample_input, expected_partitions=1, - expected_intermediate_events=20, - expected_compared_events=16, + expected_compared_events=14, ) def test_qnn_backend_skip_node_id(self): @@ -6112,7 +6107,6 @@ def setUp(self): raise ValueError("Backend is not implemented yet") TestQNN.atol = 1e-1 TestQNN.rtol = 1 - TestQNN.dump_intermediate_outputs = False TestQNN.enable_profile = False TestQNN.shared_buffer = False backend_options = generate_htp_compiler_spec(use_fp16=False) @@ -6152,7 +6146,6 @@ def output_callback(log_msg): ) def test_qnn_backend_dump_intermediate_outputs_simple_model(self): - TestQNN.dump_intermediate_outputs = True backend_options = generate_htp_compiler_spec(use_fp16=False) TestQNN.compiler_specs = generate_qnn_executorch_compiler_spec( soc_model=self.chipset_table[TestQNN.soc_model], @@ -6166,13 +6159,11 @@ def test_qnn_backend_dump_intermediate_outputs_simple_model(self): module, sample_input, expected_partitions=1, - expected_intermediate_events=21, expected_compared_events=14, ) def test_qnn_backend_dump_intermediate_outputs_topk(self): torch.manual_seed(8) - TestQNN.dump_intermediate_outputs = True backend_options = generate_htp_compiler_spec(use_fp16=False) TestQNN.compiler_specs = generate_qnn_executorch_compiler_spec( soc_model=self.chipset_table[TestQNN.soc_model], @@ -6186,8 +6177,7 @@ def test_qnn_backend_dump_intermediate_outputs_topk(self): module, sample_input, expected_partitions=1, - expected_intermediate_events=9, - expected_compared_events=5, + expected_compared_events=3, ) def test_qnn_backend_dynamic_shape(self): @@ -9665,9 +9655,7 @@ def test_intermediate_debugger(self): else: svg_path = msg["svg_path"] csv_path = msg["csv_path"] - min_accepted = 235 - max_accepted = 241 - # Having a +- 3 tolerance, expecting 238 events + expected_accepted_events = 234 assert os.path.exists(svg_path), f"Unable to find SVG file: {svg_path}" assert os.path.exists(csv_path), f"Unable to find CSV file: {csv_path}" @@ -9679,19 +9667,23 @@ def test_intermediate_debugger(self): for row in reader: if len(row) > index and row[index].strip().upper() == "TRUE": csv_valid_count += 1 - # We assume csv_valid_count == compared_events, since all compared events meet metric's threshold - assert ( - min_accepted <= csv_valid_count <= max_accepted - ), f"Expected CSV events with valid score is outside of expected range, number of valid score events found: {csv_valid_count}" + # We assume csv_valid_count == expected_accepted_events, since all compared events meet metric's threshold + self.assertEqual( + expected_accepted_events, + csv_valid_count, + msg=f"Expected CSV events: {expected_accepted_events}, found: {csv_valid_count}.", + ) svg_valid_count = 0 with open(svg_path, "r", encoding="utf-8") as svg_file: for line in svg_file: svg_valid_count += line.count("is_valid_score=True") - # We assume svg_valid_count == compared_events, since all compared events meet metric's threshold - assert ( - min_accepted <= svg_valid_count <= max_accepted - ), f"Expected SVG events with valid score is outside of expected range, number of valid score events found: {svg_valid_count}" + # We assume svg_valid_count == expected_accepted_events, since all compared events meet metric's threshold + self.assertEqual( + expected_accepted_events, + svg_valid_count, + msg=f"Expected SVG events: {expected_accepted_events}, found: {svg_valid_count}.", + ) print( f"CSV valid count: {csv_valid_count}. SVG valid count: {svg_valid_count}" ) @@ -9849,7 +9841,6 @@ def setup_environment(): TestQNN.oss_repo = args.oss_repo TestQNN.shared_buffer = args.shared_buffer TestQNN.enable_x86_64 = args.enable_x86_64 - TestQNN.dump_intermediate_outputs = args.dump_intermediate_outputs TestQNN.compile_only = args.compile_only TestQNN.pre_gen_pte = args.pre_gen_pte TestQNN.llama_artifacts = args.llama_artifacts diff --git a/backends/qualcomm/tests/utils.py b/backends/qualcomm/tests/utils.py index c25e1bf789d..5827ff050aa 100644 --- a/backends/qualcomm/tests/utils.py +++ b/backends/qualcomm/tests/utils.py @@ -15,6 +15,10 @@ import torchao from executorch import exir from executorch.backends.qualcomm.builders.node_visitor import dq_ops + +from executorch.backends.qualcomm.debugger.qcom_numerical_comparator_sample import ( + QcomCosineSimilarityComparator, +) from executorch.backends.qualcomm.debugger.qnn_intermediate_debugger import ( QNNIntermediateDebugger, ) @@ -48,7 +52,6 @@ from executorch.examples.qualcomm.utils import make_output_dir from executorch.exir.backend.compile_spec_schema import CompileSpec -from executorch.exir.backend.utils import get_delegates from executorch.exir.dialects._ops import ops as exir_ops from executorch.exir.pass_base import ExportPass from executorch.exir.passes.memory_planning_pass import MemoryPlanningPass @@ -212,7 +215,6 @@ class TestQNN(unittest.TestCase): compile_only: bool = False pre_gen_pte: str = "" llama_artifacts: str = "" - dump_intermediate_outputs: bool = False inference_speed: float = 0.0 inference_speed_output_path = "outputs/inference_speed.txt" static_llm_eval_method = "" @@ -347,7 +349,6 @@ def verify_output( # noqa: C901 executorch_prog: ExecutorchProgram | ExecutorchProgramManager, etrecord_path: str = "etrecord.bin", expected_profile_events: int = -1, - expected_intermediate_events: int = -1, method_index: int = 0, input_encodings: Tuple = (), output_encodings: Tuple = (), @@ -412,29 +413,27 @@ def validate_profile(): ) def validate_intermediate_tensor(): - inspector = Inspector( - etdump_path=etdump_path, debug_buffer_path=debug_output_path + qnn_intermediate_debugger.setup_inspector( + etdump_path=etdump_path, + debug_buffer_path=debug_output_path, ) - node_tensor_map = qnn_intermediate_debugger._match_tensors( - inspector=inspector, keep_qnn_layout=False + cos_comparator = qnn_intermediate_debugger.create_comparator( + QcomCosineSimilarityComparator ) - self.assertEqual( - len(node_tensor_map), - expected_compared_events, - msg=f"Unexpected number of compared events, expecting {expected_compared_events}, but has {len(node_tensor_map)} events.", - ) - # Compare accuracy for each layer - for _, value in node_tensor_map.items(): - self._assert_outputs_equal( - value[0].to(torch.float32), value[1].to(torch.float32) + numeric_results = ( + qnn_intermediate_debugger.inspector.calculate_numeric_gap( + distance=cos_comparator, + reference_graph=qnn_intermediate_debugger.reference_graph_name, ) - for event_block in inspector.event_blocks: - if event_block.name == "Execute": - self.assertEqual( - len(event_block.events), - expected_intermediate_events, - msg=f"Unexpected number of intermediate events, expecting {expected_intermediate_events}, but has {len(event_block.events)} events.", - ) + ) + numeric_results = numeric_results.set_index("runtime_debug_handle") + assert ( + len(numeric_results) == expected_compared_events + ), f"Unexpected number of compared events, expecting {expected_compared_events}, but has {len(numeric_results)} events." + for _, row in numeric_results.iterrows(): + assert cos_comparator.is_valid_score( + row.gap[0] + ), f"Node {row.aot_ops} is failing {cos_comparator.metric_name()} test, {row.gap[0]} is lower than {cos_comparator.threshold}." processed_inputs = list(sample_inputs) for i, enc in enumerate(input_encodings): @@ -503,7 +502,7 @@ def validate_intermediate_tensor(): "--method_index", str(method_index), ] - if self.dump_intermediate_outputs: + if expected_compared_events != -1: cmd.append("--dump_intermediate_outputs") cmd += extra_cmds.split() @@ -554,7 +553,7 @@ def validate_intermediate_tensor(): if expected_profile_events != -1: validate_profile() - if expected_intermediate_events != -1: + if expected_compared_events != -1: validate_intermediate_tensor() if save_inference_speed: @@ -571,7 +570,7 @@ def validate_intermediate_tensor(): device=self.device, host=self.host, soc_model=self.soc_model, - dump_intermediate_outputs=expected_intermediate_events != -1, + dump_intermediate_outputs=expected_compared_events != -1, direct_build_folder=self.direct_build_folder, ) @@ -610,7 +609,7 @@ def validate_intermediate_tensor(): if expected_profile_events != -1: adb.pull_etdump(etdump_path, callback=validate_profile) - if expected_intermediate_events != -1: + if expected_compared_events != -1: adb.pull_debug_output( etdump_path, debug_output_path, @@ -628,7 +627,6 @@ def lower_module_and_test_output( sample_inputs: Tuple[torch.Tensor], expected_partitions: int = 1, expected_profile_events: int = -1, - expected_intermediate_events: int = -1, expected_compared_events: int = -1, assert_output_equal: bool = True, passes_job: Optional[OrderedDict] = None, @@ -649,28 +647,9 @@ def lower_module_and_test_output( skip_node_id_set=skip_node_id_set, skip_node_op_set=skip_node_op_set, skip_mutable_buffer=skip_mutable_buffer, - generate_etrecord=self.profile_level != 0 - or expected_intermediate_events != -1, + generate_etrecord=self.profile_level != 0 or expected_compared_events != -1, ) - qnn_intermediate_debugger = None - if expected_intermediate_events != -1: - lowered_module_nodes = get_delegates( - delegated_program.exported_program().graph - ) - assert len(lowered_module_nodes) == 1, "Length not correct" - - lowered_module_node = lowered_module_nodes[0] - lower_module = getattr( - delegated_program.exported_program().graph_module, - lowered_module_node.name, - ) - edge_module = lower_module.original_module.module() - - qnn_intermediate_debugger = QNNIntermediateDebugger() - qnn_intermediate_debugger.set_edge_module(edge_module=edge_module) - qnn_intermediate_debugger.intermediate_output_module(*sample_inputs) - # Don't allocate if shared_buffer enabled or using direct_mode allocate_io = not (self.shared_buffer or self.direct_build_folder) exec_prog = delegated_program.to_executorch( @@ -701,11 +680,24 @@ def lower_module_and_test_output( etrecord_path = "etrecord.bin" if self.profile_level: exec_prog.get_etrecord().save(etrecord_path) + + qnn_intermediate_debugger = None + if expected_compared_events != -1: + etrecord = exec_prog.get_etrecord() + qnn_intermediate_debugger = QNNIntermediateDebugger(sample_inputs) + qnn_intermediate_debugger.set_etrecord_file_path(etrecord_path) + edge_ep = etrecord.graph_map[qnn_intermediate_debugger.reference_graph_name] + qnn_intermediate_debugger.set_edge_ep(edge_ep=edge_ep) + etrecord.update_representative_inputs( + qnn_intermediate_debugger.sample_input + ) + etrecord.save(etrecord_path) + # Check numerics if ( assert_output_equal or expected_profile_events != -1 - or expected_intermediate_events != -1 + or expected_compared_events != -1 ): self.verify_output( module=module, @@ -713,7 +705,6 @@ def lower_module_and_test_output( executorch_prog=exec_prog, etrecord_path=etrecord_path, expected_profile_events=expected_profile_events, - expected_intermediate_events=expected_intermediate_events, extra_cmds=extra_cmds, output_callback=output_callback, save_inference_speed=save_inference_speed, diff --git a/backends/qualcomm/utils/utils.py b/backends/qualcomm/utils/utils.py index bf11230065c..84c6ded0741 100644 --- a/backends/qualcomm/utils/utils.py +++ b/backends/qualcomm/utils/utils.py @@ -400,6 +400,21 @@ def ensure_graph_specific_dict(value, graph_names): return value return {graph_name: value for graph_name in graph_names} + # Ensure if user is using intermediate debugger, user only lower 1 method. + # This restriction is caused by conflict handle_id among graphs. + # This could be resolved with generating random debug_id(e.g., uuid). + for compiler_spec in ( + compiler_specs.values() + if isinstance(compiler_specs, Dict) + else [compiler_specs] + ): + option = generate_qnn_executorch_option(compiler_spec) + obj_options = flatbuffer_to_option(option) + if obj_options.dump_intermediate_outputs and isinstance(module, Dict): + assert ( + len(module) == 1 + ), "Intermediate Tensor Dump does not support multi-methods." + if not isinstance(module, dict): module = {"forward": module} diff --git a/devtools/inspector/_inspector.py b/devtools/inspector/_inspector.py index e9fbc4778f5..ad914878347 100644 --- a/devtools/inspector/_inspector.py +++ b/devtools/inspector/_inspector.py @@ -22,6 +22,7 @@ Mapping, Optional, Sequence, + Set, Tuple, TypeAlias, TypedDict, @@ -1025,6 +1026,7 @@ def __init__( Callable[[Union[int, str], Union[int, float]], Union[int, float]] ] = None, enable_module_hierarchy: bool = False, + reference_graph_name: str = EDGE_DIALECT_GRAPH_KEY, ) -> None: r""" Initialize an `Inspector` instance with the underlying `EventBlock`\ s populated with data from the provided ETDump path or binary, @@ -1040,6 +1042,7 @@ def __init__( delegate_metadata_parser: Optional function to parse delegate metadata from an Profiling Event. Expected signature of the function is (delegate_metadata_list: List[bytes]) -> Union[List[str], Dict[str, Any]]. delegate_time_scale_converter: Optional function to convert the time scale of delegate profiling data. If not given, use the conversion ratio of target_time_scale/source_time_scale. enable_module_hierarchy: Enable submodules in the operator graph. Defaults to False. + reference_graph_name: The reference graph used to consume ETRecord Returns: None @@ -1104,9 +1107,9 @@ def __init__( # Key str is method name; value is list of ProgramOutputs because of list of test cases self._reference_outputs: Dict[str, List[ProgramOutput]] = {} self._enable_module_hierarchy = enable_module_hierarchy - self._consume_etrecord() + self._consume_etrecord(reference_graph_name) - def _consume_etrecord(self) -> None: + def _consume_etrecord(self, reference_graph_name) -> None: """ If an ETRecord is provided, connect it to the EventBlocks and populate the Event metadata. @@ -1147,7 +1150,7 @@ def _consume_etrecord(self) -> None: enable_module_hierarchy=self._enable_module_hierarchy, ) debug_handle_to_op_node_map = create_debug_handle_to_op_node_mapping( - self.op_graph_dict[EDGE_DIALECT_GRAPH_KEY], + self.op_graph_dict[reference_graph_name], ) for event_block in self.event_blocks: for event in event_block.events: @@ -1337,6 +1340,29 @@ def _get_runtime_intermediate_outputs_and_op_names( Retrieve the runtime intermediate outputs(debug handles and intermediate values mappings) from the event blocks, along with the corresponding debug handles and op names mapping. """ + # Collect debug handles already covered by fine-grained inner delegated + # events (i.e. delegated events with op_types and debug_data populated), + # grouped per backend. When such per-op intermediate outputs exist for a + # delegated subgraph, the wrapping DELEGATE_CALL event is redundant: its + # debug_handles span every internal handle. + inner_delegated_handles_by_backend: Dict[Optional[str], Set[int]] = defaultdict( + set + ) + for event_block in self.event_blocks: + for event in event_block.events: + if ( + event.is_delegated_op + and event.op_types + and event.debug_data + and event.debug_handles is not None + ): + handles = event.debug_handles + if isinstance(handles, int): + handles = (handles,) + inner_delegated_handles_by_backend[ + event.delegate_backend_name + ].update(handles) + debug_handle_to_output = {} debug_handle_to_op_names = {} for event_block in self.event_blocks: @@ -1353,6 +1379,17 @@ def _get_runtime_intermediate_outputs_and_op_names( debug_handle = (debug_handle,) else: debug_handle = tuple(debug_handle) + # Skip a DELEGATE_CALL whose handles are already covered by + # fine-grained inner delegated events from the same backend + # (see comment above). + if event.name == "DELEGATE_CALL": + backend_inner = inner_delegated_handles_by_backend.get( + event.delegate_backend_name + ) + if backend_inner and not set(debug_handle).isdisjoint( + backend_inner + ): + continue current_entry = debug_handle_to_output.get( debug_handle, (-1, None, event.num_outputs) ) diff --git a/devtools/inspector/numerical_comparator/numerical_comparator_base.py b/devtools/inspector/numerical_comparator/numerical_comparator_base.py index c4f8a90f78f..c9d3629f3fd 100644 --- a/devtools/inspector/numerical_comparator/numerical_comparator_base.py +++ b/devtools/inspector/numerical_comparator/numerical_comparator_base.py @@ -246,6 +246,7 @@ def compare( continue rows.append( { + "aot_debug_handle": aot_debug_handle, "aot_ops": find_op_names( aot_debug_handle, aot_debug_handle_to_op_names ), @@ -253,6 +254,7 @@ def compare( "runtime_ops": find_op_names( runtime_debug_handle, runtime_debug_handle_to_op_names ), + "runtime_debug_handle": runtime_debug_handle, "runtime_intermediate_output": runtime_intermediate_output, "gap": self._compare_intermediate_outputs( aot_intermediate_output, runtime_intermediate_output diff --git a/devtools/inspector/tests/inspector_test.py b/devtools/inspector/tests/inspector_test.py index 4ee8b71760e..b33c5b37164 100644 --- a/devtools/inspector/tests/inspector_test.py +++ b/devtools/inspector/tests/inspector_test.py @@ -740,9 +740,11 @@ def test_calculate_numeric_gap(self): self.assertEqual(len(df), 2) cols = set(df.columns) expected_cols = { + "aot_debug_handle", "aot_ops", "aot_intermediate_output", "runtime_ops", + "runtime_debug_handle", "runtime_intermediate_output", "gap", "stacktraces", @@ -831,9 +833,11 @@ def test_calculate_numeric_gap_with_stacktraces(self): self.assertEqual(len(df), 2) cols = set(df.columns) expected_cols = { + "aot_debug_handle", "aot_ops", "aot_intermediate_output", "runtime_ops", + "runtime_debug_handle", "runtime_intermediate_output", "gap", "stacktraces", @@ -918,9 +922,11 @@ def element_compare(self, a, b): self.assertEqual(len(df), 2) cols = set(df.columns) expected_cols = { + "aot_debug_handle", "aot_ops", "aot_intermediate_output", "runtime_ops", + "runtime_debug_handle", "runtime_intermediate_output", "gap", "stacktraces", @@ -1066,9 +1072,11 @@ def preprocessing( self.assertEqual(len(df_mse), 2) cols = set(df_mse.columns) expected_cols = { + "aot_debug_handle", "aot_ops", "aot_intermediate_output", "runtime_ops", + "runtime_debug_handle", "runtime_intermediate_output", "gap", "stacktraces", diff --git a/docs/source/tutorials_source/devtools-debugging-tutorial.py b/docs/source/tutorials_source/devtools-debugging-tutorial.py index 54bcbb50542..6534f7edf1a 100644 --- a/docs/source/tutorials_source/devtools-debugging-tutorial.py +++ b/docs/source/tutorials_source/devtools-debugging-tutorial.py @@ -208,9 +208,14 @@ # # The returned DataFrame contains columns for each operator including: # +# - ``aot_debug_handle``: The debug handle tuple identifying the AOT operator(s). +# For ops grouped into a single delegated subgraph chunk, this is the tuple of +# every internal handle the chunk implements. # - ``aot_ops``: The operators in the eager model graph # - ``aot_intermediate_output``: Intermediate outputs from eager model -# - ``runtime_ops``: The operators executed at runtime (may show DELEGATE_CALL for delegated ops) +# - ``runtime_ops``: The kernel-level operators executed at runtime. ``DELEGATE_CALL`` +# appears as a single entry for each delegated subgraph chunk. +# - ``runtime_debug_handle``: The debug handle tuple from the runtime # - ``runtime_intermediate_output``: Intermediate outputs from runtime # - ``gap``: The numerical gap (MSE) between eager and runtime outputs # - ``stacktraces``: A dictionary mapping each operator name to its source code stack trace @@ -219,14 +224,19 @@ # # .. code-block:: text # -# | | aot_ops | aot_intermediate_output | runtime_ops | runtime_intermediate_output | gap | stacktraces | -# |----|----------------------------------------------------------------|----------------------------------------------------|----------------------------------------------------|----------------------------------------------------| ---------------------------|----------------------------------------------------| -# | 0 | [conv2d] | [[[tensor([-0.0130, 0.0075, -0.0334, -0.0122,... | [DELEGATE_CALL] | [[[tensor([-0.0130, 0.0075, -0.0334, -0.0122,... | [3.2530690555343034e-15] | {'conv2d': 'File "model.py", line 10...'} | -# | 1 | [permute, cat, add, dropout] | [[[tensor(-0.0024), tensor(0.0054), tensor(0.0... | [DELEGATE_CALL] | [[[tensor(-0.0024), tensor(0.0054), tensor(0.0... | [3.2488685838924244e-15] | {'permute': 'File "model.py", line 15...', ...} | -# ... -# | 4 | [transpose, linear, unflatten, unsqueeze, tran...] | [[[tensor(0.0045), tensor(-0.0084), tensor(0.0... | [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ...] | [[tensor(0.0045), tensor(-0.0084), tensor(0.00... | [0.00010033142876115867] | {'transpose': 'File "model.py", line 20...', ...} | -# ... -# | 59 | [transpose_66, linear_44, unflatten_11, unsque...] | [[[tensor(-0.3346), tensor(0.1540), tensor(-0.... | [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ...] | [[tensor(-0.3346), tensor(0.1540), tensor(-0.0... | [0.02629170972698486] | {'transpose_66': 'File "model.py", line 50...'... | +# | | aot_debug_handle | aot_ops | aot_intermediate_output | runtime_ops | runtime_debug_handle | runtime_intermediate_output | gap | stacktraces | +# |----|--------------------------------|-----------------------------------------------|------------------------------------------|---------------------------------------------------|--------------------------------|------------------------------------------|--------------------------|----------------------------------------------| +# | 0 | (1, 2, 3, 5, 6, 7) | [conv2d, reshape, permute, cat, add, dropout] | [[[tensor(-0.0024), tensor(0.0054),... | [DELEGATE_CALL] | (1, 2, 3, 5, 6, 7) | [[[tensor(-0.0024), tensor(0.0054),... | [0.0] | {'conv2d': 'File "vit.py", line 10...'} | +# | 1 | (4,) | [expand] | [[[tensor(-0.0012), tensor(0.0027),... | [native_call_expand_copy.out] | (4,) | [[[tensor(-0.0012), tensor(0.0027),... | [0.0] | {'expand': 'File "vit.py", line 50...'} | +# | 2 | (8,) | [layer_norm] | [[[tensor(-0.0001), tensor(0.0009),... | [native_call_native_layer_norm.out] | (8,) | [[[tensor(-0.0001), tensor(0.0009),... | [1.5257813119012582e-16] | {'layer_norm': 'File "vit.py", line 80...'} | +# | 3 | (9, 10, 11, 12, 13) | [transpose, linear, unflatten, unsqueeze,...] | [[[tensor(0.0132), tensor(-0.0005),... | [DELEGATE_CALL, native_call_expand_copy.out, ...] | (9, 10, 11, 12, 13) | [[[tensor(0.0132), tensor(-0.0005),... | [6.72759426534678e-16] | {'transpose': 'File "vit.py", line 90...'} | +# | ...| | | | | | | | | +# | 52 | (166,) | [linear_48] | [[tensor(-0.8981), tensor(0.6046),... | [DELEGATE_CALL] | (166,) | [[tensor(-0.8981), tensor(0.6046),... | [8.760367306096254e-12] | {'linear_48': 'File "vit.py", line 120...'} | +# +# Each row is one runtime intermediate-output cluster: either a single +# non-delegated op or one delegated subgraph chunk grouped under a +# ``DELEGATE_CALL``. Multi-handle chunks list every internal AOT op together +# so you can map the delegate boundary back to the eager graph. # # The ``stacktraces`` column is particularly useful for tracing operators back to the # original PyTorch source code. Each entry is a dictionary where keys are operator names @@ -274,34 +284,24 @@ # .. code-block:: text # # Top 5 operators with largest numerical discrepancies: -# aot_ops aot_intermediate_output runtime_ops runtime_intermediate_output gap stacktraces -# 59 [transpose_66, linear_44, unflatten_11, unsque... [[[tensor(-0.3346), tensor(0.1540), tensor(-0.... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(-0.3346), tensor(0.1540), tensor(-0.0... [0.02629170972698486] {'transpose_66': 'File "vit.py", line 125...'} -# 24 [transpose_24, linear_16, unflatten_4, unsquee... [[[tensor(0.0344), tensor(-0.0583), tensor(-0.... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(0.0344), tensor(-0.0583), tensor(-0.0... [0.010045093258604096] {'transpose_24': 'File "vit.py", line 125...'} -# 29 [transpose_30, linear_20, unflatten_5, unsquee... [[[tensor(0.0457), tensor(0.0266), tensor(-0.0... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(0.0457), tensor(0.0266), tensor(-0.05... [0.008497326594593926] {'transpose_30': 'File "vit.py", line 125...'} -# 34 [transpose_36, linear_24, unflatten_6, unsquee... [[[tensor(-0.1336), tensor(-0.0154), tensor(-0... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(-0.1336), tensor(-0.0154), tensor(-0.... [0.007672668965640913] {'transpose_36': 'File "vit.py", line 125...'} -# 19 [transpose_18, linear_12, unflatten_3, unsquee... [[[tensor(-0.0801), tensor(0.0458), tensor(-0.... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(-0.0801), tensor(0.0458), tensor(-0.0... [0.007446783635888463] {'transpose_18': 'File "vit.py", line 125...'} -# -# --- Operator 59 --- -# Operators: ['transpose_66', 'linear_44', 'unflatten_11', 'unsqueeze_11', 'transpose_67'] -# Gap: [0.02629170972698486] -# Stack traces: -# transpose_66: -# File "torchvision/models/vision_transformer.py", line 125, in forward -# x = self.self_attention(x) -# File "torch/nn/modules/module.py", line 1532, in _wrapped_call_impl +# aot_debug_handle aot_ops aot_intermediate_output runtime_ops runtime_debug_handle runtime_intermediate_output gap stacktraces +# 49 (158, 159, 160, 161, 162, 163) [linear_46, gelu_11, dropout_35, linear_47, dr... [[[tensor(-0.6154), tensor(-0.0025), tensor(-0... [DELEGATE_CALL] (158, 159, 160, 161, 162, 163) [[[tensor(-0.6154), tensor(-0.0025), tensor(-0... [3.7287804660557997e-11] {'linear_46': 'File "vit.py", line 100...'} +# 45 (145, 146, 147, 148, 149, 150) [linear_42, gelu_10, dropout_32, linear_43, dr... [[[tensor(-0.2785), tensor(-0.2209), tensor(-0... [DELEGATE_CALL] (145, 146, 147, 148, 149, 150) [[[tensor(-0.2785), tensor(-0.2208), tensor(-0... [3.267051816109279e-11] {'linear_42': 'File "vit.py", line 100...'} +# 47 (152, 153, 154, 155, 156) [transpose_66, linear_44, unflatten_11, unsque... [[[tensor(-0.5681), tensor(-0.0251), tensor(-0... [DELEGATE_CALL, native_call_expand_copy.out, D... (152, 153, 154, 155, 156) [[[tensor(-0.5681), tensor(-0.0251), tensor(-0... [3.043042878567803e-11] {'transpose_66': 'File "vit.py", line 90...'} +# 50 (164,) [layer_norm_24] [[[tensor(-0.8486), tensor(-0.0315), tensor(-0... [native_call_native_layer_norm.out] (164,) [[[tensor(-0.8486), tensor(-0.0315), tensor(-0... [2.3309619445739474e-11] {'layer_norm_24': 'File "vit.py", line 78...'} +# 41 (132, 133, 134, 135, 136, 137) [linear_38, gelu_9, dropout_29, linear_39, dro... [[[tensor(-0.3233), tensor(-0.1968), tensor(-0... [DELEGATE_CALL] (132, 133, 134, 135, 136, 137) [[[tensor(-0.3233), tensor(-0.1968), tensor(-0... [1.8573805941767968e-11] {'linear_38': 'File "vit.py", line 100...'} # # Operators with MSE > 0.0001: -# aot_ops aot_intermediate_output runtime_ops runtime_intermediate_output gap stacktraces -# 4 [transpose, linear, unflatten, unsqueeze, tran... [[[tensor(0.0045), tensor(-0.0084), tensor(0.0... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(0.0045), tensor(-0.0084), tensor(0.00... [0.00010033142876115867] {'transpose': 'File "vit.py", line 125...'} -# 9 [transpose_6, linear_4, unflatten_1, unsqueeze... [[[tensor(0.0113), tensor(-0.0737), tensor(-0.... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(0.0113), tensor(-0.0737), tensor(-0.0... [0.0005611182577030275] {'transpose_6': 'File "vit.py", line 125...'} -# 14 [transpose_12, linear_8, unflatten_2, unsqueez... [[[tensor(-0.0476), tensor(-0.0941), tensor(-0... [DELEGATE_CALL, DELEGATE_CALL, DELEGATE_CALL, ... [[tensor(-0.0476), tensor(-0.0941), tensor(-0.... [0.004658652508649068] {'transpose_12': 'File "vit.py", line 125...'} -# ... -# -# In this example, we can see that the attention layers (transpose + linear + unflatten patterns) -# show the largest numerical discrepancies, which is expected behavior for delegated operators -# using different precision. The ``stacktraces`` column shows that these operators originate from -# ``self.self_attention(x)`` in the ViT model's forward method, helping you identify exactly -# where in your model code the discrepancies arise. +# Empty DataFrame +# Columns: [aot_debug_handle, aot_ops, aot_intermediate_output, runtime_ops, runtime_debug_handle, runtime_intermediate_output, gap, stacktraces] +# Index: [] +# +# The largest numerical gaps come from MLP blocks (``linear, gelu, dropout`` groups +# inside a ``DELEGATE_CALL``) and attention QKV blocks, both at the order of +# ``~3e-11`` — floating-point rounding accumulated across the chunk at float32 +# precision. ``layer_norm`` rows are non-delegated CPU kernels and show similar +# magnitudes. No operators exceed the ``1e-4`` threshold, confirming that +# XNNPACK float32 delegation is numerically accurate. ###################################################################### # Pipeline 2: CMake Runtime diff --git a/examples/qualcomm/util_scripts/qnn_intermediate_debugger_demo.py b/examples/qualcomm/util_scripts/qnn_intermediate_debugger_demo.py index 07dfc9c9558..e7c7c3985a8 100644 --- a/examples/qualcomm/util_scripts/qnn_intermediate_debugger_demo.py +++ b/examples/qualcomm/util_scripts/qnn_intermediate_debugger_demo.py @@ -7,15 +7,14 @@ import json import os from multiprocessing.connection import Client -from typing import Any, Tuple import numpy as np import torch -import torch.nn.functional as F -from executorch.backends.qualcomm.debugger.metrics_evaluator import ( - CosineSimilarityEvaluator, - MetricEvaluatorBase, + +from executorch.backends.qualcomm.debugger.qcom_numerical_comparator_sample import ( + QcomCosineSimilarityComparator, + QcomMSEComparator, ) from executorch.backends.qualcomm.debugger.qnn_intermediate_debugger import ( OutputFormat, @@ -29,7 +28,6 @@ SimpleADB, ) from executorch.backends.qualcomm.quantizer.quantizer import QuantDtype -from executorch.devtools import Inspector from executorch.examples.models.inception_v3.model import InceptionV3Model from executorch.examples.qualcomm.utils import ( get_imagenet_dataset, @@ -49,12 +47,6 @@ def main(args): # ensure the working directory exist. os.makedirs(args.artifact, exist_ok=True) - if not args.compile_only and args.device is None: - raise RuntimeError( - "device serial is required if not compile only. " - "Please specify a device serial by -s/--device argument." - ) - data_num = 100 inputs, targets = get_imagenet_dataset( @@ -62,12 +54,13 @@ def main(args): data_size=data_num, image_shape=(256, 256), crop_size=224, + shuffle=False, ) pte_filename = "ic3_qnn_debug" instance = InceptionV3Model() source_model = instance.get_eager_model().eval() # Init our QNNIntermediateDebugger and pass it in to build_executorch_binary(). - qnn_intermediate_debugger = QNNIntermediateDebugger() + qnn_intermediate_debugger = QNNIntermediateDebugger(sample_input=inputs[0]) build_executorch_binary( model=source_model, qnn_config=qnn_config, @@ -82,9 +75,6 @@ def main(args): inputs = [inputs[0]] targets = [targets[0]] - if args.compile_only: - return - # Please ensure that dump_intermediate_outputs are set to true when creating SimpleADB adb = SimpleADB( qnn_config=qnn_config, @@ -98,64 +88,52 @@ def main(args): output_data_folder = f"{args.artifact}/outputs" make_output_dir(output_data_folder) - class RootMeanSquaredErrorEvaluator(MetricEvaluatorBase): - def __init__(self, threshold=0.02): - self.threshold = threshold - - def metric_name(self) -> str: - return "Root Mean Squared Error" - - def evaluate( - self, qnn_output: torch.Tensor, cpu_output: torch.Tensor - ) -> Tuple[Any, bool]: - mse = F.mse_loss(qnn_output, cpu_output) - rmse = torch.sqrt(mse) - valid = rmse < self.threshold - return rmse, valid - # We will pull the debug output and provide them to the Inspector class. # We can then provide our own metrics and output type to generate the intermediate debugging results. def validate_intermediate_tensor(): - inspector = Inspector( + qnn_intermediate_debugger.setup_inspector( etdump_path=f"{args.artifact}/etdump.etdp", debug_buffer_path=f"{args.artifact}/debug_output.bin", ) - edge_result = qnn_intermediate_debugger.intermediate_output_module( - *(inputs[0]) - )[0] + edge_result = qnn_intermediate_debugger.edge_ep.module()( + *(qnn_intermediate_debugger.sample_input) + ) - # Optional: Ensures that edge module accuracy aligns with nn.Module + # Highly Recommended: Ensures that edge module accuracy aligns with nn.Module with torch.no_grad(): - source_result = source_model(*(inputs[0])) + source_result = source_model(*(qnn_intermediate_debugger.sample_input)) score = torch.nn.functional.cosine_similarity( edge_result.flatten(), source_result.flatten(), dim=0 ).item() print("Cosine Similarity Score between nn.Module and Edge CPU is: ", score) - # Users can generate multiple comparison metrics in a single execution. - # Below, we generate 3 metrics. + + cos_comparator = qnn_intermediate_debugger.create_comparator( + QcomCosineSimilarityComparator, threshold=0.9 + ) qnn_intermediate_debugger.generate_results( title="ic3_cos_similarity_debugging_graph", path=args.artifact, - output_format=OutputFormat.SVG_GRAPHS, - inspector=inspector, - evaluator=CosineSimilarityEvaluator(0.9), + output_format=OutputFormat.SVG_GRAPH, + comparator=cos_comparator, ) + qnn_intermediate_debugger.generate_results( - title="ic3_cos_similarity_csv", + title="ic3_cos_similarity_debugging_graph", path=args.artifact, - output_format=OutputFormat.CSV_FILES, - inspector=inspector, - evaluator=CosineSimilarityEvaluator(0.9), + output_format=OutputFormat.CSV_FILE, + comparator=cos_comparator, + ) + + mse_comparator = qnn_intermediate_debugger.create_comparator( + QcomMSEComparator, threshold=0.1 ) - # Using self defined metrics to print svg graphs qnn_intermediate_debugger.generate_results( - title="ic3_rmse_debugging_graph", + title="ic3_mse_debugging_graph", path=args.artifact, - output_format=OutputFormat.SVG_GRAPHS, - inspector=inspector, - evaluator=RootMeanSquaredErrorEvaluator(0.9), + output_format=OutputFormat.SVG_GRAPH, + comparator=mse_comparator, ) adb.pull_debug_output( @@ -180,8 +158,8 @@ def validate_intermediate_tensor(): conn.send( json.dumps( { - "svg_path": f"{args.artifact}/ic3_rmse_debugging_graph.svg", - "csv_path": f"{args.artifact}/ic3_cos_similarity_csv.csv", + "svg_path": f"{args.artifact}/ic3_mse_debugging_graph.svg", + "csv_path": f"{args.artifact}/ic3_cos_similarity_debugging_graph.csv", } ) ) From 0ed5508a7718e2164857cda4b3fda2d41ca5ff09 Mon Sep 17 00:00:00 2001 From: winskuo-quic <143469905+winskuo-quic@users.noreply.github.com> Date: Wed, 20 May 2026 08:45:33 +0800 Subject: [PATCH 59/91] Qualcomm AI Engine Direct - Fix Full (#19359) ### Summary Based on reported issue: https://github.com/pytorch/executorch/pull/19179 2 mathematically equivalent model in nn.Module lowered both lowered to QNN, however, 1 accuracy is good while another is bad. Debugged with qnn_intermediate_debugger and targeted that accuracy drop is possibly caused by `full` operation. Took a look and noticed the op builder did not take layout transform into consideration. image ### Test plan Passing tests under test_qnn_delegate.py and fix issue in: https://github.com/pytorch/executorch/pull/19179 --- backends/qualcomm/builders/op_full.py | 3 ++- backends/qualcomm/builders/op_full_like.py | 4 ++-- backends/qualcomm/tests/models.py | 25 ++++++++++++++++++++ backends/qualcomm/tests/test_qnn_delegate.py | 24 +++++++++++++++++++ 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/backends/qualcomm/builders/op_full.py b/backends/qualcomm/builders/op_full.py index 5ac2e95c57b..7a109ff0637 100644 --- a/backends/qualcomm/builders/op_full.py +++ b/backends/qualcomm/builders/op_full.py @@ -25,8 +25,9 @@ def define_node( node: torch.fx.Node, nodes_to_wrappers: Dict[torch.fx.Node, PyQnnManager.TensorWrapper], ) -> PyQnnManager.PyQnnOpWrapper: + tensor_shape = list(self.get_tensor(node, node).shape) out_tensor = torch.full( - node.args[0], node.args[1], dtype=node.meta["val"].dtype + tensor_shape, node.args[1], dtype=node.meta["val"].dtype ) # since we can derive the constant value of current op in AoT stage diff --git a/backends/qualcomm/builders/op_full_like.py b/backends/qualcomm/builders/op_full_like.py index 66f80ecc80a..69a03d66b13 100644 --- a/backends/qualcomm/builders/op_full_like.py +++ b/backends/qualcomm/builders/op_full_like.py @@ -25,8 +25,8 @@ def define_node( node: torch.fx.Node, nodes_to_wrappers: Dict[torch.fx.Node, PyQnnManager.TensorWrapper], ) -> PyQnnManager.PyQnnOpWrapper: - in_tensor = node.args[0].meta["val"] - ref_tensor = torch.zeros(in_tensor.shape, dtype=in_tensor.dtype) + in_tensor = self.get_tensor(node, node) + ref_tensor = torch.zeros(list(in_tensor.shape), dtype=in_tensor.dtype) out_tensor = torch.full_like(ref_tensor, node.args[1]) # since we can derive the constant value of current op in AoT stage diff --git a/backends/qualcomm/tests/models.py b/backends/qualcomm/tests/models.py index 12d5e0902db..7a918308d4e 100644 --- a/backends/qualcomm/tests/models.py +++ b/backends/qualcomm/tests/models.py @@ -875,6 +875,31 @@ def forward(self, x): return self.second(self.first(x)) +class ConvFull(torch.nn.Module): + def __init__(self, fill, full_shape): + super().__init__() + self.conv = torch.nn.Conv2d(8, 16, 3, padding=1) + self.fill = fill + self.full_shape = full_shape + + def forward(self, x): + y = self.conv(x) + c = torch.full(self.full_shape, self.fill, dtype=y.dtype) + return torch.cat([y, c], dim=1) + + +class ConvFullLike(torch.nn.Module): + def __init__(self, fill): + super().__init__() + self.conv = torch.nn.Conv2d(8, 16, 3, padding=1) + self.fill = fill + + def forward(self, x): + y = self.conv(x) + c = torch.full_like(y, self.fill) + return torch.cat([y, c], dim=1) + + class ConvTranspose1dSingle(torch.nn.Module): def __init__(self, bias=True, dilation=1): super().__init__() diff --git a/backends/qualcomm/tests/test_qnn_delegate.py b/backends/qualcomm/tests/test_qnn_delegate.py index 012ed2f872a..e2e0c05d8a9 100644 --- a/backends/qualcomm/tests/test_qnn_delegate.py +++ b/backends/qualcomm/tests/test_qnn_delegate.py @@ -2351,6 +2351,17 @@ def test_qnn_backend_einsum_outer_product_relu(self): ) self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_full_layout_transformed(self): + full_shape = (1, 16, 4, 6) + module = ConvFull(0.5, full_shape) # noqa: F405 + sample_input = (torch.randn(1, 8, 4, 6),) + self.lower_module_and_test_output(module, sample_input) + + def test_qnn_backend_full_like_layout_transformed(self): + module = ConvFullLike(0.5) # noqa: F405 + sample_input = (torch.randn(1, 8, 4, 6),) + self.lower_module_and_test_output(module, sample_input) + # TODO: Create a new UT class for passes specific checks def test_qnn_backend_lift_add_tensor(self): module = LiftAddTensor() # noqa: F405 @@ -5270,6 +5281,19 @@ def test_qnn_backend_einsum_outer_product_relu(self): module = self.get_qdq_module(module, sample_input) self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_full_layout_transformed(self): + full_shape = (1, 16, 4, 6) + module = ConvFull(0.5, full_shape) # noqa: F405 + sample_input = (torch.randn(1, 8, 4, 6),) + module = self.get_qdq_module(module, sample_input) + self.lower_module_and_test_output(module, sample_input) + + def test_qnn_backend_full_like_layout_transformed(self): + module = ConvFullLike(0.5) # noqa: F405 + sample_input = (torch.randn(1, 8, 4, 6),) + module = self.get_qdq_module(module, sample_input) + self.lower_module_and_test_output(module, sample_input) + @unittest.skipIf(is_qnn_sdk_version_less_than("2.35"), "UT pass after QNN 2.35") def test_qnn_backend_masked_softmax(self): if self.enable_x86_64: From 0c9b0dfda67199b2dadbd67832678f39e68c9246 Mon Sep 17 00:00:00 2001 From: qti-horodnic Date: Tue, 19 May 2026 17:46:05 -0700 Subject: [PATCH 60/91] Qualcomm AI Engine Direct - Updating Claude skill for new op development (#19302) ### Summary Updated the Claude skill for adding new op support based on my findings from manually implementing ~15 previous ops, including corner cases, bugs I've run into before and comments I've gotten on previous prs. ### Test plan Implemented the `tan` op using this skill only: https://github.com/pytorch/executorch/pull/19301 --- .claude/skills/qualcomm/new_op_development.md | 453 +++++++----------- 1 file changed, 175 insertions(+), 278 deletions(-) diff --git a/.claude/skills/qualcomm/new_op_development.md b/.claude/skills/qualcomm/new_op_development.md index dc639655257..6e1abcf77f6 100644 --- a/.claude/skills/qualcomm/new_op_development.md +++ b/.claude/skills/qualcomm/new_op_development.md @@ -1,361 +1,258 @@ -# New Op Development +# New Op Development — QNN/HTP Backend -Full reference: `backends/qualcomm/builders/README.md` (op builder) and `backends/qualcomm/quantizer/README.md` (quantizer annotation). +## Decision Tree -## Overview - -Adding a new op requires three steps: -1. Implement the op builder (`builders/op_*.py`) -2. Register quantizer annotation (`quantizer/annotators/`) -3. Add unit tests (`tests/`) - -**Important**: If the torch op requires **multiple QNN ops** to implement (e.g., no direct QNN equivalent), use a **decompose pass** instead of creating multiple ops in a single builder. Skip Steps 3–6 and follow the **Decompose Pass Approach** section at the bottom of this file. +1. **QNN has a native op?** → Native builder approach (Steps 1–8) +2. **No native op, needs multiple QNN ops?** → Decompose pass approach --- ## Step 1: Identify the Unsupported Op -Run the model through the QNN backend. A missing op surfaces as: - -``` -KeyError: 'aten.native_layer_norm.default' -``` - -To trace back to the source PyTorch layer: - -```python -from executorch.backends.qualcomm.utils.utils import capture_program - -prog = capture_program(MyModel(), example_inputs) -for node in prog.exported_program.graph.nodes: - if node.op == "call_function" and node.target.__name__ == 'aten.native_layer_norm.default': - print(node.meta["source_fn_stack"]) -``` - ---- +Missing ops surface as `KeyError: 'aten.my_op.default'` when running through QNN backend. ## Step 2: Check Operator Spec -- **QNN side**: [Operator Definitions](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-10/MasterOpDef.html) — check IO order, required vs optional tensors, parameter names and shapes -- **PyTorch side**: [ATen Operator Definitions](https://github.com/pytorch/pytorch/tree/main/aten/src/ATen/native) — map PyTorch args to QNN IO/params -- **Fallback search**: [Supported Ops table](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-10/SupportedOps.html) -- **Header reference**: `$QNN_SDK_ROOT/include/QNN/QnnOpDef.h` — authoritative string literals +- [Master Op Definitions](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-10/MasterOpDef.html) — IO order, params, shapes +- [HTP Op Def Supplement](https://docs.qualcomm.com/doc/80-63442-10/topic/HtpOpDefSupplement.html) — HTP-specific constraints & supported dtypes +- [Supported Ops table](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-10/SupportedOps.html) +- `$QNN_SDK_ROOT/include/QNN/QnnOpDef.h` — authoritative string literals +- [ATen native ops](https://github.com/pytorch/pytorch/tree/main/aten/src/ATen/native) — PyTorch arg mapping ---- +**⚠️ Caveats:** +- An op in the Master def may **not exist** in the HTP supplement → not available on HTP +- HTP docs may claim a dtype is supported but **fail at runtime** → always test on-device -## Step 3: Add Op Constant - -In `builders/qnn_constants.py`, add a dataclass (alphabetical order): +## Step 3: Add Op Constant (`builders/qnn_constants.py`) ```python @dataclass(init=False, frozen=True) -class OpLayerNorm: - op_name: str = "LayerNorm" - param_epsilon = "epsilon" - param_axes = "axes" +class OpMyOp: + op_name: str = "MyOp" # Must match QnnOpDef.h exactly + param_axis: str = "axis" + param_epsilon: str = "epsilon" ``` -String values must exactly match `QnnOpDef.h`. - ---- - -## Step 4: Implement the Builder - -Create `builders/op_layer_norm.py`: +## Step 4: Implement Builder (`builders/op_my_op.py`) ```python -import executorch.backends.qualcomm.python.PyQnnManagerAdaptor as PyQnnManager -import numpy as np -import torch -from executorch.backends.qualcomm.utils.constants import QCOM_DATA -from .node_visitor import NodeVisitor -from .node_visitor_manager import register_node_visitor -from .qnn_constants import OpLayerNorm, QNN_OP_PACKAGE_NAME_QTI_AISW -from .utils import get_parameter - @register_node_visitor -class LayerNormVisitor(NodeVisitor): - target = ["aten.native_layer_norm.default"] - - def __init__(self, *args) -> None: - super().__init__(*args) +class MyOpVisitor(NodeVisitor): + target = ["aten.my_op.default"] # Must be a list def define_node(self, node, nodes_to_wrappers): - # 1. Input activation - input_node = node.args[0] + input_node = self.get_node(node.args[0]) input_tensor = self.get_tensor(input_node, node) - input_tensor_wrapper = self.define_tensor( - input_node, node, input_tensor, - PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, - nodes_to_wrappers, - ) - - # 2. Weight (gamma) and bias (beta) — STATIC tensors - weight_node = self.get_node(node.args[2]) - weight_tensor = get_parameter(weight_node, self.edge_program) - weight_tensor_wrapper = self.define_tensor( - weight_node, node, weight_tensor, - PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_STATIC, - nodes_to_wrappers, - ) - - bias_node = self.get_node(node.args[3]) - bias_tensor = get_parameter(bias_node, self.edge_program) - bias_tensor_wrapper = self.define_tensor( - bias_node, node, bias_tensor, - PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_STATIC, - nodes_to_wrappers, - ) - - # 3. Parameters - normalized_shapes = node.args[1] - if len(normalized_shapes) != 1: - print("QNN only supports normalized output with rank 1") - return - axes = [len(input_tensor.shape) - 1] - axes_shape = [len(axes)] - epsilon = node.args[4] - - # 4. Output - output_tensor = self.get_tensor(node, node, 0) - output_tensor_wrapper = self.define_tensor( - node, node, output_tensor, - PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, - nodes_to_wrappers, - ) - - # 5. Build op - layer_norm_op = PyQnnManager.PyQnnOpWrapper( - node.name, QNN_OP_PACKAGE_NAME_QTI_AISW, OpLayerNorm.op_name, - ) - layer_norm_op.AddInputTensors( - [input_tensor_wrapper, weight_tensor_wrapper, bias_tensor_wrapper] - ) - layer_norm_op.AddOutputTensors([output_tensor_wrapper]) - layer_norm_op.AddScalarParam( - OpLayerNorm.param_epsilon, - PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_FLOAT_32, - {QCOM_DATA: np.float32(epsilon)}, - ) - layer_norm_op.AddTensorParam( - OpLayerNorm.param_axes, - PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_UINT_32, - len(axes_shape), axes_shape, - np.array(axes, dtype=np.uint32), - True, - ) - return layer_norm_op + input_wrapper = self.define_tensor(input_node, node, input_tensor, + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, nodes_to_wrappers) + + output_tensor = self.get_tensor(node, node) + output_wrapper = self.define_tensor(node, node, output_tensor, + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, nodes_to_wrappers) + + op = PyQnnManager.PyQnnOpWrapper(node.name, QNN_OP_PACKAGE_NAME_QTI_AISW, OpMyOp.op_name) + op.AddInputTensors([input_wrapper]) + op.AddOutputTensors([output_wrapper]) + op.AddScalarParam(OpMyOp.param_axis, PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_UINT_32, + {QCOM_DATA: np.uint32(axis)}) + return op # Return None → op falls back to CPU ``` -Key notes: -- `target` must be a list (multiple targets can share one visitor) -- Use `QNN_TENSOR_TYPE_NATIVE` for activations, `QNN_TENSOR_TYPE_STATIC` for weights/biases -- `define_tensor` handles `APP_READ`/`APP_WRITE` detection internally — always pass `NATIVE` -- `wrapper_idx` needed when node output is a tuple (e.g. split ops) -- Return `None` to signal validation failure → op falls back to CPU +**Key patterns:** +- `QNN_TENSOR_TYPE_NATIVE` for activations, `QNN_TENSOR_TYPE_STATIC` for weights/params +- `wrapper_idx=i` for multi-output ops (tuples); companion `getitem` skip op handles indexing +- Negative dims: `dim = dim % len(shape)` (QNN requires positive axes) +- Axis remapping: `if QCOM_AXIS_ORDER in node.meta: dim = node.meta[QCOM_AXIS_ORDER].index(dim)` +- Static params: `weight = get_parameter(self.get_node(node.args[1]), self.edge_program)` +- Scalar params → `AddScalarParam`; Array params → `AddTensorParam` +- Data types: axis/dims=`UINT_32`, epsilon=`FLOAT_32`, booleans=`BOOL_8` +- Int64 index tensors: use `.to(torch.int32)` in builder + add op to `I64_IN_OPS` in `_passes/i64_to_i32.py` for CPU fallback safety (see `op_gather.py` pattern) ---- +## Step 5: Register Builder (`builders/__init__.py`) + +Add `op_my_op` to both `from . import (...)` and `__all__ = [...]` (alphabetical). -## Step 5: Register the Builder +## Step 6: Add Quantizer Annotation -In `builders/__init__.py` (alphabetical order): +Add to BOTH `quantizer/annotators/htp_rules.py` AND `quantizer/annotators/lpai_rules.py`: ```python -from . import ( - ... - op_layer_norm, - ... -) -__all__ = [..., op_layer_norm, ...] +@register_annotator([torch.ops.aten.my_op.default], QnnConstants.OpMyOp.op_name) +class MyOp(GeneralOpDef): + pass # Default: annotate_single_in_single_out ``` ---- - -## Step 6: Add Quantizer Annotation +**Annotation function selection:** -In `quantizer/annotators/{backend}_rules.py`: +| Op type | Function | When | +|---------|----------|------| +| Compute (new scale) | `annotate_single_in_single_out` | Default — most ops | +| Pass-through (`is_math_invariant`) | `annotate_in_out_obs_sharing_op` + fallback `annotate_single_in_share_out` | Reshape, Permute, Squeeze, Gather | +| Two data inputs (same quant) | Custom `annotate` with `SharedQuantizationSpec` | Scatter, where both data+src need same spec | +| Two inputs | `annotate_binary` | Add, Mul, Sub | +| Conv/Linear (weight+bias) | `annotate_conv` | Convolution, Linear | +| Skip (no QNN mapping) | `qnn_op=None` | getitem, index_copy | +**Custom multi-input annotator** (e.g., scatter where args[0] and args[3] are both data tensors): ```python -@register_annotator( - [torch.ops.aten.native_layer_norm.default], - QnnConstants.OpLayerNorm.op_name, -) -class LayerNormAnnotator(GeneralOpDef): +@register_annotator([torch.ops.aten.scatter.src], qnn_op=None) +class ScatterElements(GeneralOpDef): @staticmethod def annotate(node, quantization_config): - annotate_single_in_single_out(node, quantization_config) + if _is_annotated([node]): return + input_qspec_map = {} + input_act = node.args[0] + input_qspec_map[input_act] = quantization_config.input_activation + if isinstance(node.args[3], Node) and _is_float_tensor(node.args[3]): + input_qspec_map[node.args[3]] = SharedQuantizationSpec((input_act, node)) + output_qspec = SharedQuantizationSpec((input_act, node)) if _is_float_tensor(node) else None + node.meta[Q_ANNOTATION_KEY] = QuantizationAnnotation( + input_qspec_map=input_qspec_map, output_qspec=output_qspec, _annotated=True) ``` -- Use `qnn_op=None` for skip ops (e.g. `operator.getitem`) -- `annotate_single_in_single_out` covers most cases; implement custom logic for multi-input ops - -Full annotation tutorial: `backends/qualcomm/quantizer/README.md` - -### Choosing the right annotate function - -The QNN backend validates quantization constraints via `backend_opinfo` (QNN SDK ≥ 2.41). If validation fails with: - -``` -ValueError: Validation failed for node with target aten..default -``` - -Check the warning log above it — it will say which constraint failed. The most common case is `is_math_invariant=True`, which means the op does not change values (only rearranges data), so input and output **must share the same quantization parameters**. - -| Op type | annotate function | Example ops | -|---------|-------------------|-------------| -| General (input → output with new scale) | `annotate_single_in_single_out` | LayerNorm, Conv2d | -| Pass-through (rearranges data only) | `annotate_in_out_obs_sharing_op` + fallback | Reshape, ChannelShuffle, PixelShuffle | -| Multi-input | `annotate_binary` | Add, Mul | - -For **pass-through ops** (reshape, shuffle, permute — ops where `is_math_invariant=True`), override `annotate` like this: +## Step 7: Add Layout Transform Registration (`_passes/layout_transform.py`) +Add op to `layout_agnostic_ops` (most ops) or `layout_sensitive_ops` (conv, pool, etc.): ```python -@register_annotator( - [torch.ops.aten.channel_shuffle.default], QnnConstants.OpChannelShuffle.op_name -) -class ChannelShuffle(GeneralOpDef): - @staticmethod - def annotate(node: Node, quantization_config: QuantizationConfig) -> None: - annotate_in_out_obs_sharing_op(node, quantization_config) - if not _is_annotated([node]): - annotate_single_in_share_out(node, quantization_config) +exir_ops.edge.aten.my_op.default, ``` -`annotate_in_out_obs_sharing_op` shares the input's observer with the output (satisfies `is_math_invariant`). The fallback `annotate_single_in_share_out` handles the case where the input node is not yet annotated. - ---- - -## Step 7: Add Unit Tests - -In `tests/models.py` (alphabetical order): +## Step 8: Add Unit Tests +**Model** in `tests/models.py` (alphabetical, parameterize variants): ```python -class LayerNorm(torch.nn.Module): - def __init__(self): +class MyOp(torch.nn.Module): + def __init__(self, param=0): super().__init__() - self.layer_norm = torch.nn.LayerNorm([768], eps=1e-6) - + self.param = param def forward(self, x): - return self.layer_norm(x) + return torch.my_op(x, self.param) ``` -In `tests/test_qnn_delegate.py`, add to both `TestQNNFloatingPointOperator` and `TestQNNQuantizedOperator` (alphabetical order): - +**Tests** in `tests/test_qnn_delegate.py` — add to BOTH `TestQNNFloatingPointOperator` and `TestQNNQuantizedOperator`: ```python -def test_qnn_backend_layer_norm(self): - module = LayerNorm() - sample_input = (torch.randn(196, 768),) - module = self.get_qdq_module(module, sample_input) # quantized only - self.lower_module_and_test_output(module, sample_input) +def test_qnn_backend_my_op(self): + test_comb = [{ + QCOM_MODULE: [MyOp(), MyOp(param=1)], + QCOM_SAMPLE_INPUTS: [(torch.randn(3, 4),), (torch.randn(3, 4, dtype=torch.float16),)], + }] + index = 0 + for comb in test_comb: + for module in comb[QCOM_MODULE]: + for sample_input in comb[QCOM_SAMPLE_INPUTS]: + with self.subTest(i=index): + index += 1 + self.lower_module_and_test_output(module, sample_input) ``` -Expected result: 1 delegated node, only placeholders/output nodes remain outside the delegate. - ---- - -## Step 8: Prevent Decomposition (if needed) - -Some torch ops are in ExecuTorch's default decomposition table and will be broken into primitives **before** the QNN partitioner sees them. If QNN has a native op for it, you must explicitly skip decomposition. - -**Check first** with a quick Python snippet (run from the executorch root with the `executorch` conda env active): - +**Quantized test** — use separate variable to avoid overwriting module: ```python -import torch -from executorch.exir.tracer import _default_decomposition_table - -decomp_table = _default_decomposition_table() -op = torch.ops.aten.channel_shuffle.default -print(op in decomp_table) # True → will be decomposed +qdq_module = self.get_qdq_module(module, sample_input) +self.lower_module_and_test_output(qdq_module, sample_input) ``` -Output: -``` -True # in ExecuTorch decomp table +**Test data rules:** +- No duplicate indices for scatter/gather with `reduction=NONE` +- Deterministic inputs for precision-sensitive decompositions (avoid boundary values) +- Bounded inputs for ops with singularities (tan, reciprocal): `torch.rand() * 2 - 1` + +**Run on-device:** +```bash +python backends/qualcomm/tests/test_qnn_delegate.py \ + -k TestQNNFloatingPointOperator.test_qnn_backend_my_op \ + --model SM8750 --host --device --build_folder build-android ``` -If `True`, add the op to `get_skip_decomp_table()` in `partition/utils.py` (alphabetical order): +Always ask user for `--model`, `--host`, `--device`, `--build_folder` values. -```python -def get_skip_decomp_table() -> List[torch._ops.OperatorBase]: - do_not_decompose = [ - torch.ops.aten.adaptive_avg_pool2d.default, - torch.ops.aten.channel_shuffle.default, # ← add here - torch.ops.aten.col2im.default, - ... - ] -``` +## Step 9: Prevent Decomposition (if needed) -**Verification**: After adding, re-run the tests. The partitioner log should show: +If the ATen op exists in ExecuTorch's decomp table and you have a builder for it: +- Add to `partition/utils.py` → `get_skip_decomp_table()` +- Remove from `partition/common_defs.py` → `to_be_implemented_operator` if listed there -``` -[QNN Partitioner Op Support]: aten.channel_shuffle.default | True -``` +## Step 10: Update Documentation -If the op was decomposed (not in skip table), the partitioner would never see `aten.channel_shuffle.default` and the test would still pass but via decomposed primitives — not the native QNN op. +- `builders/README.md` — Update QNN ops table (✗ → ✓) and add to "Additional Operators Supported via Passes" table if using decomposition --- -## Decompose Pass Approach (for ops without direct QNN equivalent) +## Decompose Pass Approach -When a torch op has **no direct QNN equivalent** and requires multiple QNN ops to implement, use a **decompose pass** to rewrite the graph into primitive ops that QNN already supports. This is preferred over creating multiple ops in a single builder. +Use when QNN has **no native op** — decompose into supported primitives. -**Reference**: `backends/qualcomm/_passes/decompose_linalg_vector_norm.py` +### Approach A: Module Export +**Ref:** `_passes/decompose_linalg_vector_norm.py`. Write a `torch.nn.Module`, export, merge graph via `merge_decomposed_graph`. Simple but may produce unexpected ops. -### Pattern +### Approach B: Direct Graph Manipulation (RECOMMENDED) +**Ref:** `_passes/decompose_remainder.py`, `_passes/decompose_log_variants.py`. ```python -# 1. Define a torch.nn.Module that implements the op using supported primitives -class MyOpDecomposed(torch.nn.Module): - def __init__(self, param): +class DecomposeMyOp(ExportPass): + def __init__(self): super().__init__() - self.param = param - - def forward(self, x): - # Use only ops that QNN supports - return torch.some_supported_op(x, self.param) + self.targets = {torch.ops.aten.my_op.default, exir_ops.edge.aten.my_op.default} - -# 2. Create the ExportPass -class DecomposeMyOp(ExportPass): - def call(self, graph_module: torch.fx.GraphModule) -> PassResult: + def call(self, graph_module): graph = graph_module.graph + const_cache = {} for node in list(graph.nodes): - if node.target == torch.ops.aten.my_op.default: - param = node.args[1] # extract params from node - model = MyOpDecomposed(param) - ep = torch.export.export(model, (node.args[0].meta["val"],), strict=True) - decomposed_module = ep.run_decompositions().graph_module - + if node.op == "call_function" and node.target in self.targets: + is_edge = isinstance(node.target, EdgeOpOverload) + op = exir_ops.edge.aten.div.Tensor if is_edge else torch.ops.aten.div.Tensor with graph.inserting_before(node): - remap = {"x": node.args[0]} - merge_decomposed_graph( - remap=remap, - target_node=node, - target_graph=graph, - decomposed_graph_module=decomposed_module, - ) - graph.erase_node(node) - + new_node = graph.create_node("call_function", op, (node.args[0],)) + new_node.meta = copy_meta(node.meta) + for user in node.users.copy(): + user.replace_input_with(node, new_node) graph.eliminate_dead_code() graph_module.recompile() return PassResult(graph_module, True) ``` -### Registration +**Critical rules:** (1) handle both dialects via `EdgeOpOverload` check, (2) `copy_meta` on every new node, (3) lift scalars to tensors in edge dialect with `get_const_node`, (4) cache constants with `const_cache`, (5) for bool-output nodes use `callback=lambda m: {**m, "val": m["val"].to(torch.bool)}` in `create_node`. + +### Approach C: Built-in Decomposition Table +**Ref:** `_passes/decompose_triu.py`. Uses `make_fx` + `get_decompositions`. Only works if PyTorch has a registered decomp. -1. Add to `_passes/__init__.py` (alphabetical order): - ```python - from .decompose_my_op import DecomposeMyOp - ``` +### Registration (all decompose passes) +1. `_passes/__init__.py` — import + `__all__` +2. `_passes/qnn_pass_manager.py` — import + `transform_for_annotation_pipeline` + `transform_for_export_pipeline` + `get_capture_program_passes` +3. `_passes/utils.py` — add to `get_passes_dependency_for_capture_program()` with `[RemoveRedundancy]` dependency + +--- + +## Common Gotchas + +- **Op name mismatch**: `aten.clamp`→`ReluMinMax`, `aten.expand`→`Tile`, `aten.select_copy`→`StridedSlice`. Search by functionality. +- **Multi-output ops**: Use `wrapper_idx=i` + `getitem` skip op +- **Negative dims**: QNN needs positive → `dim = dim % len(shape)` +- **QCOM_AXIS_ORDER**: `LayoutTransform` permutes NCHW→NHWC; remap axis with `.index(dim)`. `get_tensor()` auto-permutes data. +- **Int64 indices**: Add to `I64_IN_OPS` in `i64_to_i32.py` + `.to(torch.int32)` in builder (see `op_gather.py`) +- **Recompose passes**: Detect primitive sequences and replace with single native op. Ref: `recompose_pixel_unshuffle.py` +- **`partition/common_defs.py`**: Remove op from `to_be_implemented_operator` when adding support +- **HTP doc bugs**: If runtime fails but docs say supported → test on-device always. + +--- + +## Error Debugging + +| Error | Cause | Fix | +|-------|-------|-----| +| `KeyError: 'aten.my_op.default'` | Builder not registered | Check `builders/__init__.py` + `@register_node_visitor` | +| `was not decomposed or delegated` | Op in skip decomp but partitioner rejected | Check builder `define_node` errors; check `I64_IN_OPS` | +| `QNN_GRAPH_ERROR` / `validateOpConfig failed` | HTP doesn't support config | Check params vs HTP Op Def Supplement | +| `Tensor mismatching datatypes` | Quantized: not all inputs annotated | Use custom annotator with `SharedQuantizationSpec` | +| `ValueError: Validation failed` | Wrong annotation | Check `is_math_invariant`; use `annotate_in_out_obs_sharing_op` | +| `Expected dtype int64 for index` | Op fell back to CPU with int32 index | Add to `I64_IN_OPS` + `.to(int32)` in builder | +| `Numerical mismatch` | Precision issue | Quantized: check quant params. Float: HTP FP16 precision limit | + +**Debug order:** Float test first → then quantized. If float fails → builder/config issue. If only quantized fails → annotation issue. + +--- -2. Add to `_passes/qnn_pass_manager.py` imports and both pipeline methods: - - `transform_for_annotation_pipeline` (before quantizer) - - `transform_for_export_pipeline` (before `to_edge`) +## Quick Reference Checklists -3. Remove the op from `to_be_implemented_operator` in `partition/common_defs.py` +**Native QNN Op:** `qnn_constants.py` → `op_my_op.py` → `builders/__init__.py` → `htp_rules.py` → `lpai_rules.py` → `layout_transform.py` → `tests/models.py` → `test_qnn_delegate.py` → `partition/utils.py` (skip decomp) → `common_defs.py` (remove to_be_implemented) → `builders/README.md` -### Notes -- The decomposed module must only use ops that QNN already supports -- `ep.run_decompositions()` ensures the graph is in edge IR form -- `remap` maps placeholder names in the decomposed graph to actual nodes in the target graph -- No separate quantizer annotation needed — the decomposed ops already have their own annotations +**Decompose Pass:** `_passes/decompose_my_op.py` → `_passes/__init__.py` → `qnn_pass_manager.py` (annotation + export + capture) → `_passes/utils.py` (dependency) → `tests/models.py` → `test_qnn_delegate.py` → `common_defs.py` → `builders/README.md` From 2874dcba6dd5bd6692b24b006e41e3ffe9f297d1 Mon Sep 17 00:00:00 2001 From: qti-horodnic Date: Tue, 19 May 2026 17:46:51 -0700 Subject: [PATCH 61/91] Qualcomm AI Engine Direct - Adding QNN backend support for randn core ATen op (#19377) ### Summary Added support for the `randn` core ATen op using the existing [QNN backend implementation](https://docs.qualcomm.com/doc/80-63442-10/topic/MasterOpDef.html#randomnormallike) of `RandomNormalLike`. Note only `INT8` outputs are supported. Also fixed a minor bug in the `rand` op's implementation and test and removed the `FP` test as it doesn't serve a purpose since `rand` doesn't support `FP` outputs either. ### Test plan ``` python backends/qualcomm/tests/test_qnn_delegate.py -k TestQNNQuantizedOperator.test_qnn_backend_randn --model SM8750 --host aisw-vm15-labsd --device 545ee4aa --build_folder build-android ``` --- backends/qualcomm/_passes/layout_transform.py | 2 + backends/qualcomm/builders/README.md | 5 +- backends/qualcomm/builders/__init__.py | 2 + backends/qualcomm/builders/op_randn.py | 79 +++++++++++++++++++ backends/qualcomm/builders/qnn_constants.py | 7 ++ .../quantizer/annotators/htp_rules.py | 2 + .../quantizer/annotators/lpai_rules.py | 2 + backends/qualcomm/tests/models.py | 8 ++ backends/qualcomm/tests/test_qnn_delegate.py | 43 +++++----- 9 files changed, 127 insertions(+), 23 deletions(-) create mode 100644 backends/qualcomm/builders/op_randn.py diff --git a/backends/qualcomm/_passes/layout_transform.py b/backends/qualcomm/_passes/layout_transform.py index 9422051addd..5953360a13b 100644 --- a/backends/qualcomm/_passes/layout_transform.py +++ b/backends/qualcomm/_passes/layout_transform.py @@ -113,6 +113,8 @@ class LayoutTransform(ExportPass): exir_ops.edge.aten.neg.default, exir_ops.edge.aten.pow.Tensor_Scalar, exir_ops.edge.aten.prelu.default, + exir_ops.edge.aten.rand.default, + exir_ops.edge.aten.randn.default, exir_ops.edge.aten.reflection_pad1d.default, exir_ops.edge.aten.reflection_pad2d.default, exir_ops.edge.aten.repeat.default, diff --git a/backends/qualcomm/builders/README.md b/backends/qualcomm/builders/README.md index d71aeb27be6..a0282377eaf 100644 --- a/backends/qualcomm/builders/README.md +++ b/backends/qualcomm/builders/README.md @@ -368,7 +368,7 @@ Please help update following table if you are contributing new operators: + 🚫 = Deprecated, supported with other QNN Ops -| Operators | HTP - 98/119 Enabled | +| Operators | HTP - 99/120 Enabled | |-----------|---------| | Argmax | ✓ | | Argmin | ✓ | @@ -457,7 +457,8 @@ Please help update following table if you are contributing new operators: | PoolMax2d | ✓ | | Prelu | ✓ | | Quantize | ✓ | -| Rand | ✓ | +| RandomUniformLike | ✓ | +| RandomNormalLike | ✓ | | ReduceMax | ✓ | | ReduceMean | ✓ | | ReduceMin | ✓ | diff --git a/backends/qualcomm/builders/__init__.py b/backends/qualcomm/builders/__init__.py index a897dfa53bd..8549e4f255f 100644 --- a/backends/qualcomm/builders/__init__.py +++ b/backends/qualcomm/builders/__init__.py @@ -81,6 +81,7 @@ op_prelu, op_quantize, op_rand, + op_randn, op_relu, op_repeat, op_reshape, @@ -194,6 +195,7 @@ op_prelu, op_quantize, op_rand, + op_randn, op_relu, op_repeat, op_reshape, diff --git a/backends/qualcomm/builders/op_randn.py b/backends/qualcomm/builders/op_randn.py new file mode 100644 index 00000000000..6160fc79609 --- /dev/null +++ b/backends/qualcomm/builders/op_randn.py @@ -0,0 +1,79 @@ +# Copyright (c) Qualcomm Innovation Center, Inc. +# All rights reserved +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. +from typing import Dict + +import executorch.backends.qualcomm.python.PyQnnManagerAdaptor as PyQnnManager + +import numpy as np +import torch +from executorch.backends.qualcomm.utils.constants import QCOM_DATA + +from .node_visitor import NodeVisitor +from .node_visitor_manager import register_node_visitor +from .qnn_constants import OpRandomNormalLike, QNN_OP_PACKAGE_NAME_QTI_AISW + + +@register_node_visitor +class Randn(NodeVisitor): + target = ["aten.randn.default", "aten.randn_like.default"] + + def __init__(self, *args) -> None: + super().__init__(*args) + + def define_node( + self, + node: torch.fx.Node, + nodes_to_wrappers: Dict[torch.fx.Node, PyQnnManager.TensorWrapper], + ) -> PyQnnManager.PyQnnOpWrapper: + output_tensor = node.meta["val"] + output_shape = list(output_tensor.shape) + + shape_data = np.array(output_shape, dtype=np.uint32) + shape_dims = [len(output_shape)] + + shape_tensor_wrapper = PyQnnManager.TensorWrapper( + f"{node.name}_shape", + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_STATIC, + PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_UINT_32, + PyQnnManager.Qnn_QuantizationEncoding_t.QNN_QUANTIZATION_ENCODING_UNDEFINED, + {}, + len(shape_dims), + shape_dims, + [], + shape_data, + True, + ) + + output_tensor_wrapper = self.define_tensor( + node, + node, + output_tensor, + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, + nodes_to_wrappers, + ) + + randn_op = PyQnnManager.PyQnnOpWrapper( + node.name, + QNN_OP_PACKAGE_NAME_QTI_AISW, + OpRandomNormalLike.op_name, + ) + + randn_op.AddInputTensors([shape_tensor_wrapper]) + randn_op.AddOutputTensors([output_tensor_wrapper]) + + randn_op.AddScalarParam( + OpRandomNormalLike.param_mean, + PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_FLOAT_32, + {QCOM_DATA: np.float32(0.0)}, + ) + + randn_op.AddScalarParam( + OpRandomNormalLike.param_scale, + PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_FLOAT_32, + {QCOM_DATA: np.float32(1.0)}, + ) + + return randn_op diff --git a/backends/qualcomm/builders/qnn_constants.py b/backends/qualcomm/builders/qnn_constants.py index d7ec30fddc0..168601530c6 100644 --- a/backends/qualcomm/builders/qnn_constants.py +++ b/backends/qualcomm/builders/qnn_constants.py @@ -504,6 +504,13 @@ class OpQuantize: op_name: str = "Quantize" +@dataclass(init=False, frozen=True) +class OpRandomNormalLike: + op_name: str = "RandomNormalLike" + param_mean: str = "mean" + param_scale: str = "scale" + + @dataclass(init=False, frozen=True) class OpRandomUniformLike: op_name: str = "RandomUniformLike" diff --git a/backends/qualcomm/quantizer/annotators/htp_rules.py b/backends/qualcomm/quantizer/annotators/htp_rules.py index 342db1cb633..1dd0ab7f488 100644 --- a/backends/qualcomm/quantizer/annotators/htp_rules.py +++ b/backends/qualcomm/quantizer/annotators/htp_rules.py @@ -345,6 +345,8 @@ class ColIm(GeneralOpDef): torch.ops.aten.zeros_like.default, torch.ops.aten.ones.default, torch.ops.aten.ones_like.default, + torch.ops.aten.rand.default, + torch.ops.aten.randn.default, ], qnn_op=None, ) diff --git a/backends/qualcomm/quantizer/annotators/lpai_rules.py b/backends/qualcomm/quantizer/annotators/lpai_rules.py index 30a3cb1dc9d..3a3bffa174d 100644 --- a/backends/qualcomm/quantizer/annotators/lpai_rules.py +++ b/backends/qualcomm/quantizer/annotators/lpai_rules.py @@ -272,6 +272,8 @@ class ColIm(GeneralOpDef): torch.ops.aten.zeros_like.default, torch.ops.aten.ones.default, torch.ops.aten.ones_like.default, + torch.ops.aten.rand.default, + torch.ops.aten.randn.default, ], qnn_op=None, ) diff --git a/backends/qualcomm/tests/models.py b/backends/qualcomm/tests/models.py index 7a918308d4e..a240dd275e2 100644 --- a/backends/qualcomm/tests/models.py +++ b/backends/qualcomm/tests/models.py @@ -1954,6 +1954,14 @@ def forward(self, x): return torch.rand_like(x) + x +class Randn(torch.nn.Module): + def __init__(self): + super().__init__() + + def forward(self, x): + return torch.randn_like(x) + x + + class Reciprocal(torch.nn.Module): def __init__(self): super().__init__() diff --git a/backends/qualcomm/tests/test_qnn_delegate.py b/backends/qualcomm/tests/test_qnn_delegate.py index e2e0c05d8a9..707ed9928e4 100644 --- a/backends/qualcomm/tests/test_qnn_delegate.py +++ b/backends/qualcomm/tests/test_qnn_delegate.py @@ -1809,24 +1809,6 @@ def test_qnn_backend_prelu(self): index += 1 self.lower_module_and_test_output(module, sample_input) - def test_qnn_backend_rand(self): - sample_inputs = [ - (torch.randn(3, 4, 5),), - (torch.randn(2, 8),), - ( - torch.randn( - 10, - ), - ), - (torch.randn(1, 3, 32, 32),), - ] - for i, sample_input in enumerate(sample_inputs): - with self.subTest(i=i): - module = Rand() # noqa: F405 - self.lower_module_and_test_output( - module, sample_input, assert_output_equal=False - ) - def test_qnn_backend_reciprocal(self): module = Reciprocal() # noqa: F405 sample_input = (torch.randn([2, 2, 2, 2]),) @@ -4566,6 +4548,7 @@ def test_qnn_backend_prelu(self): self.lower_module_and_test_output(module, sample_input) def test_qnn_backend_rand(self): + module = Rand() # noqa: F405 sample_inputs = [ (torch.randn(3, 4, 5),), (torch.randn(2, 8),), @@ -4578,10 +4561,28 @@ def test_qnn_backend_rand(self): ] for i, sample_input in enumerate(sample_inputs): with self.subTest(i=i): - module = Rand() # noqa: F405 - module = self.get_qdq_module(module, sample_input) + qdq_module = self.get_qdq_module(module, sample_input) + self.lower_module_and_test_output( + qdq_module, sample_input, assert_output_equal=False + ) + + def test_qnn_backend_randn(self): + module = Randn() # noqa: F405 + sample_inputs = [ + (torch.randn(3, 4, 5),), + (torch.randn(2, 8),), + ( + torch.randn( + 10, + ), + ), + (torch.randn(1, 3, 32, 32),), + ] + for i, sample_input in enumerate(sample_inputs): + with self.subTest(i=i): + qdq_module = self.get_qdq_module(module, sample_input) self.lower_module_and_test_output( - module, sample_input, assert_output_equal=False + qdq_module, sample_input, assert_output_equal=False ) def test_qnn_backend_reciprocal(self): From bf438ce5950a689e6177cf79eebae74dbae47260 Mon Sep 17 00:00:00 2001 From: qti-horodnic Date: Tue, 19 May 2026 17:48:07 -0700 Subject: [PATCH 62/91] Qualcomm AI Engine Direct - Adding QNN backend support for tan core ATen op (#19301) ### Summary Added support for the core aten op `tan` using a decomposition pass and the identity: ``` tan(x) = sin(x) / cos(x) ``` ### Test plan ``` python backends/qualcomm/tests/test_qnn_delegate.py TestQNNQuantizedOperator.test_qnn_backend_tan --model SM8750 --host aisw-vm15-labsd --device 545ee4aa --build_folder build-android python backends/qualcomm/tests/test_qnn_delegate.py TestQNNFloatingPointOperator.test_qnn_backend_tan --model SM8750 --host aisw-vm15-labsd --device 545ee4aa --build_folder build-android ``` --- backends/qualcomm/_passes/__init__.py | 2 + backends/qualcomm/_passes/decompose_tan.py | 71 +++++++++++++++++++ backends/qualcomm/_passes/qnn_pass_manager.py | 3 + backends/qualcomm/_passes/utils.py | 2 + backends/qualcomm/builders/README.md | 1 + backends/qualcomm/tests/models.py | 8 +++ backends/qualcomm/tests/test_qnn_delegate.py | 11 +++ 7 files changed, 98 insertions(+) create mode 100644 backends/qualcomm/_passes/decompose_tan.py diff --git a/backends/qualcomm/_passes/__init__.py b/backends/qualcomm/_passes/__init__.py index fc59ce3d262..f82157d3cf0 100644 --- a/backends/qualcomm/_passes/__init__.py +++ b/backends/qualcomm/_passes/__init__.py @@ -32,6 +32,7 @@ from .decompose_remainder import DecomposeRemainder from .decompose_roll import DecomposeRoll from .decompose_silu import DecomposeSilu +from .decompose_tan import DecomposeTan from .decompose_threshold import DecomposeThreshold from .decompose_triu import DecomposeTriu from .decompose_trunc import DecomposeTrunc @@ -88,6 +89,7 @@ DecomposeRemainder, DecomposeRoll, DecomposeSilu, + DecomposeTan, DecomposeThreshold, DecomposeTriu, DecomposeTrunc, diff --git a/backends/qualcomm/_passes/decompose_tan.py b/backends/qualcomm/_passes/decompose_tan.py new file mode 100644 index 00000000000..b75cf9ff2df --- /dev/null +++ b/backends/qualcomm/_passes/decompose_tan.py @@ -0,0 +1,71 @@ +# Copyright (c) Qualcomm Innovation Center, Inc. +# All rights reserved +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +import torch +from executorch.exir.dialects._ops import ops as exir_ops +from executorch.exir.dialects.edge._ops import EdgeOpOverload +from executorch.exir.pass_base import ExportPass, PassResult + +from .utils import copy_meta + + +class DecomposeTan(ExportPass): + """ + Decompose tan(x) = sin(x) / cos(x) + """ + + def __init__(self): + super(DecomposeTan, self).__init__() + self.targets = { + torch.ops.aten.tan.default, + exir_ops.edge.aten.tan.default, + } + + def call(self, graph_module: torch.fx.GraphModule) -> PassResult: + graph = graph_module.graph + + for node in list(graph.nodes): + if node.op == "call_function" and node.target in self.targets: + is_edge = isinstance(node.target, EdgeOpOverload) + + sin_op = ( + exir_ops.edge.aten.sin.default + if is_edge + else torch.ops.aten.sin.default + ) + cos_op = ( + exir_ops.edge.aten.cos.default + if is_edge + else torch.ops.aten.cos.default + ) + div_op = ( + exir_ops.edge.aten.div.Tensor + if is_edge + else torch.ops.aten.div.Tensor + ) + + with graph.inserting_before(node): + sin_node = graph.create_node( + "call_function", sin_op, (node.args[0],) + ) + sin_node.meta = copy_meta(node.meta) + + cos_node = graph.create_node( + "call_function", cos_op, (node.args[0],) + ) + cos_node.meta = copy_meta(node.meta) + + div_node = graph.create_node( + "call_function", div_op, (sin_node, cos_node) + ) + div_node.meta = copy_meta(node.meta) + + for user in node.users.copy(): + user.replace_input_with(node, div_node) + + graph.eliminate_dead_code() + graph_module.recompile() + return PassResult(graph_module, True) diff --git a/backends/qualcomm/_passes/qnn_pass_manager.py b/backends/qualcomm/_passes/qnn_pass_manager.py index 57354af11de..b0913bbefd9 100644 --- a/backends/qualcomm/_passes/qnn_pass_manager.py +++ b/backends/qualcomm/_passes/qnn_pass_manager.py @@ -37,6 +37,7 @@ DecomposeRemainder, DecomposeRoll, DecomposeSilu, + DecomposeTan, DecomposeThreshold, DecomposeTriu, DecomposeTrunc, @@ -112,6 +113,7 @@ def get_capture_program_passes(): (DecomposeMinMaxDim, True), (DecomposePad, True), (DecomposeRemainder, True), + (DecomposeTan, True), (DecomposeTrunc, True), (ExpandBroadcastTensorShape, True), (FixedLinearKeepDim, True), @@ -236,6 +238,7 @@ def transform_for_annotation_pipeline(self, graph_module: GraphModule): self.add_pass(DecomposeScaledDotProductAttention()) self.add_pass(DecomposeRoll()) self.add_pass(DecomposeSilu()) + self.add_pass(DecomposeTan()) self.add_pass(DecomposeThreshold()) self.add_pass(DecomposeTriu()) self.add_pass(DecomposeTrunc()) diff --git a/backends/qualcomm/_passes/utils.py b/backends/qualcomm/_passes/utils.py index 04371d61e1c..542fa1115a6 100755 --- a/backends/qualcomm/_passes/utils.py +++ b/backends/qualcomm/_passes/utils.py @@ -74,6 +74,7 @@ def get_passes_dependency_for_capture_program(): DecomposeMaxPool3d, DecomposePad, DecomposeRemainder, + DecomposeTan, DecomposeTrunc, ExpandBroadcastTensorShape, FixedLinearKeepDim, @@ -107,6 +108,7 @@ def get_passes_dependency_for_capture_program(): DecomposeMaxPool3d: [RemoveRedundancy], DecomposePad: [RemoveRedundancy], DecomposeRemainder: [RemoveRedundancy], + DecomposeTan: [RemoveRedundancy], DecomposeTrunc: [RemoveRedundancy], ExpandBroadcastTensorShape: [FoldQDQ], FixedLinearKeepDim: [FoldQDQ], diff --git a/backends/qualcomm/builders/README.md b/backends/qualcomm/builders/README.md index a0282377eaf..203c73f804a 100644 --- a/backends/qualcomm/builders/README.md +++ b/backends/qualcomm/builders/README.md @@ -518,6 +518,7 @@ The following PyTorch operators are supported through decomposition or annotatio | `aten.remainder.Scalar`, `aten.remainder.Tensor` | `DecomposeRemainder` | | `aten.roll` | `DecomposeRoll` | | `aten.silu` | `DecomposeSilu` | +| `aten.tan` | `DecomposeTan` | | `aten.threshold` | `DecomposeThreshold` | | `aten.triu` | `DecomposeTriu` | | `aten.trunc` | `DecomposeTrunc` | diff --git a/backends/qualcomm/tests/models.py b/backends/qualcomm/tests/models.py index a240dd275e2..bbda847282f 100644 --- a/backends/qualcomm/tests/models.py +++ b/backends/qualcomm/tests/models.py @@ -2458,6 +2458,14 @@ def forward(self, x): return torch.swapaxes(x, axis0=self.axis0, axis1=self.axis1) +class Tan(torch.nn.Module): + def __init__(self): + super().__init__() + + def forward(self, x): + return torch.tan(x) + + class Tanh(torch.nn.Module): def __init__(self): super().__init__() diff --git a/backends/qualcomm/tests/test_qnn_delegate.py b/backends/qualcomm/tests/test_qnn_delegate.py index 707ed9928e4..95e53276066 100644 --- a/backends/qualcomm/tests/test_qnn_delegate.py +++ b/backends/qualcomm/tests/test_qnn_delegate.py @@ -2052,6 +2052,11 @@ def test_qnn_backend_swapaxes(self): sample_input = (torch.randn([1, 2, 3, 4]),) self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_tan(self): + module = Tan() # noqa: F405 + sample_input = (torch.rand(2, 5, 1, 3) * 2 - 1,) + self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_tanh(self): module = Tanh() # noqa: F405 sample_input = (torch.randn(2, 5, 1, 3),) @@ -4854,6 +4859,12 @@ def test_qnn_backend_swapaxes(self): module = self.get_qdq_module(module, sample_input) self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_tan(self): + module = Tan() # noqa: F405 + sample_input = (torch.rand(2, 5, 1, 3) * 2 - 1,) + module = self.get_qdq_module(module, sample_input) + self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_tanh(self): module = Tanh() # noqa: F405 sample_input = (torch.randn(2, 5, 1, 3),) From 5358bcf74e6f88cd52320446f77058a81abd9ae0 Mon Sep 17 00:00:00 2001 From: Jacob Stevens Date: Tue, 19 May 2026 21:18:33 -0400 Subject: [PATCH 63/91] Fix broken ConvBNReLu from new Convert1DConvTo2D pass (#19558) (#19558) Summary: The pass checked for a batch norm following the conv to avoid breaking fusion with a squeeze. However, it did not support Conv -> Batch Norm -> ReLu OR Conv -> ReLU This commit adds that support, along with other supported activation Reviewed By: rascani Differential Revision: D105017469 --- .../nxp/aten_passes/convert_1d_conv_to_2d.py | 178 +++++++++++++----- .../aten_passes/neutron_aten_pass_manager.py | 2 +- backends/nxp/tests/BUCK | 20 ++ .../test_split_group_convolution.py | 3 +- .../nxp/tests/test_convert_1d_conv_to_2d.py | 155 ++++++++++++++- 5 files changed, 308 insertions(+), 50 deletions(-) diff --git a/backends/nxp/aten_passes/convert_1d_conv_to_2d.py b/backends/nxp/aten_passes/convert_1d_conv_to_2d.py index 6963ac6bc3e..f95c271f2fa 100644 --- a/backends/nxp/aten_passes/convert_1d_conv_to_2d.py +++ b/backends/nxp/aten_passes/convert_1d_conv_to_2d.py @@ -8,6 +8,7 @@ try_get_tensor_constant_from_node, ) from executorch.backends.nxp.backend.graph_utils import is_batch_norm +from executorch.backends.nxp.backend.neutron_target_spec import NeutronTargetSpec from torch._subclasses import FakeTensor, FakeTensorMode from torch.ao.quantization.fx.utils import get_new_attr_name_with_prefix from torch.export.unflatten import _assign_attr, _AttrKind @@ -26,18 +27,21 @@ class ConvertConv1dToConv2dPass(PassBase): r""" The NXP backend supports only 2D convolutions. Rewrite 1D convolutions into an equivalent 2D form by inserting a singleton spatial dimension and then remove it again. - If batch norm is present after the convolution, it is also converted from 1D to 2D. + If batch norm and/or a fusable activation (as defined by the NeutronTargetSpec) follow the convolution, + they are also kept in 2D (before the squeeze) so the partitioner can fuse them with the convolution. - Without batch norm: + Without batch norm or activation: + + Without batch norm or activation: x W x W - [N, C1, H] [I/O, I/O, k] [N, C1, H] [I/O, I/O, 1, k] + [N, C, H] [I/O, I/O, k] [N, C, H] [I/O, I/O, 1, k] │ │ │ │ │ │ ┌─────────▼──────────┐ │ │ │ │ unsqueeze(x, -2) │ │ │ │ └─────────▼──────────┘ │ │ │ │ │ - │ │ [N, C1, 1, H] │ + │ │ [N, C, 1, H] │ │ │ │ │ └────────┐ ┌────────┘ └──────────┐ ┌──────────┘ │ │ │ │ @@ -46,26 +50,26 @@ class ConvertConv1dToConv2dPass(PassBase): │ (1D/transposed 1D) │ ────────────────► │ (2D/transposed 2D) │ └────────────┬───────────┘ with └───────────┬───────────┘ │ │ - │ [N, C2, 1, H] + │ [N, C, 1, H] │ │ │ ┌─────────▼──────────┐ │ │ squeeze(x, -2) │ │ └─────────┬──────────┘ │ │ ▼ ▼ - [N, C2, H] [N, C2, H] + [N, C, H] [N, C, H] y y With batch norm: x W x W - [N, C1, H] [I/O, I/O, k] [N, C1, H] [I/O, I/O, 1, k] + [N, C, H] [I/O, I/O, k] [N, C, H] [I/O, I/O, 1, k] │ │ │ │ │ │ ┌─────────▼──────────┐ │ │ │ │ unsqueeze(x, -2) │ │ │ │ └─────────▼──────────┘ │ │ │ │ │ - │ │ [N, C1, 1, H] │ + │ │ [N, C, 1, H] │ │ │ │ │ └────────┐ ┌────────┘ └──────────┐ ┌──────────┘ │ │ │ │ @@ -74,24 +78,102 @@ class ConvertConv1dToConv2dPass(PassBase): │ (1D/transposed 1D) │ ────────────────► │ (2D/transposed 2D) │ └────────────┬───────────┘ with └───────────┬───────────┘ │ │ - [N, C2, H] [N, C2, 1, H] + [N, C, H] [N, C, 1, H] │ │ ┌───────▼───────┐ ┌───────▼───────┐ │ batch_norm │ │ batch_norm │ │ (1D) │ │ (2D) │ └───────┬───────┘ └───────┬───────┘ │ │ - │ [N, C3, 1, H] + │ [N, C, 1, H] │ │ │ ┌───────▼────────┐ │ │ squeeze(-2) │ │ └───────┬────────┘ │ │ ▼ ▼ - [N, C3, H] [N, C3, H] + [N, C, H] [N, C, H] + y y + + With activation (e.g. relu): + + x W x W + [N, C, H] [I/O, I/O, k] [N, C, H] [I/O, I/O, 1, k] + │ │ │ │ + │ │ ┌─────────▼──────────┐ │ + │ │ │ unsqueeze(x, -2) │ │ + │ │ └─────────▼──────────┘ │ + │ │ │ │ + │ │ [N, C, 1, H] │ + │ │ │ │ + └────────┐ ┌────────┘ └──────────┐ ┌──────────┘ + │ │ │ │ + ┌────────▼───────▼───────┐ ┌────────▼─────▼────────┐ + │ convolution ◄──B [O] replace │ convolution ◄──B [O] + │ (1D/transposed 1D) │ ────────────────► │ (2D/transposed 2D) │ + └────────────┬───────────┘ with └───────────┬───────────┘ + │ │ + [N, C, H] [N, C, 1, H] + │ │ + ┌───────▼───────┐ ┌───────▼───────┐ + │ relu │ │ relu │ + └───────┬───────┘ └───────┬───────┘ + │ │ + │ [N, C, 1, H] + │ │ + │ ┌───────▼────────┐ + │ │ squeeze(-2) │ + │ └───────┬────────┘ + │ │ + ▼ ▼ + [N, C, H] [N, C, H] + y y + + With batch norm and activation: + + x W x W + [N, C, H] [I/O, I/O, k] [N, C, H] [I/O, I/O, 1, k] + │ │ │ │ + │ │ ┌─────────▼──────────┐ │ + │ │ │ unsqueeze(x, -2) │ │ + │ │ └─────────▼──────────┘ │ + │ │ │ │ + │ │ [N, C, 1, H] │ + │ │ │ │ + └────────┐ ┌────────┘ └──────────┐ ┌──────────┘ + │ │ │ │ + ┌────────▼───────▼───────┐ ┌────────▼─────▼────────┐ + │ convolution ◄──B [O] replace │ convolution ◄──B [O] + │ (1D/transposed 1D) │ ────────────────► │ (2D/transposed 2D) │ + └────────────┬───────────┘ with └───────────┬───────────┘ + │ │ + [N, C, H] [N, C, 1, H] + │ │ + ┌───────▼───────┐ ┌───────▼───────┐ + │ batch_norm │ │ batch_norm │ + │ (1D) │ │ (2D) │ + └───────┬───────┘ └───────┬───────┘ + │ │ + [N, C, H] [N, C, 1, H] + │ │ + ┌───────▼───────┐ ┌───────▼───────┐ + │ relu │ │ relu │ + └───────┬───────┘ └───────┬───────┘ + │ │ + │ [N, C, 1, H] + │ │ + │ ┌───────▼────────┐ + │ │ squeeze(-2) │ + │ └───────┬────────┘ + │ │ + ▼ ▼ + [N, C, H] [N, C, H] y y """ + def __init__(self, neutron_target_spec: NeutronTargetSpec): + self.neutron_target_spec = neutron_target_spec + @staticmethod def _is_conv_1d(node: Node) -> bool: return node.target == torch.ops.aten.conv1d.default @@ -204,12 +286,12 @@ def _create_some_conv_2d_node(self, target, *conv_args): return some_conv_node - def _create_sq_or_unsq_node(self, target, *sq_or_unsq_args) -> Node: - sq_or_unsq_node = self.graph_module.graph.call_function(target, sq_or_unsq_args) + def _create_generic_node_by_target(self, target, *args) -> Node: + new_node = self.graph_module.graph.call_function(target, args) - sq_or_unsq_node.meta["source_fn_stack"] = [(sq_or_unsq_node.name, target)] + new_node.meta["source_fn_stack"] = [(new_node.name, target)] with FakeTensorMode() as mode: - inp_node = sq_or_unsq_args[0] + inp_node = args[0] fake_input = FakeTensor.from_tensor( torch.empty( self._get_node_shape(inp_node), dtype=self._get_node_dtype(inp_node) @@ -217,12 +299,12 @@ def _create_sq_or_unsq_node(self, target, *sq_or_unsq_args) -> Node: mode, ) - output = target(fake_input, *sq_or_unsq_args[1:]) - sq_or_unsq_node.meta["val"] = FakeTensor.from_tensor( + output = target(fake_input, *args[1:]) + new_node.meta["val"] = FakeTensor.from_tensor( torch.empty(output.shape, dtype=output.dtype), mode ) - return sq_or_unsq_node + return new_node @staticmethod def _get_conv_1d_transp_args(node: Node): @@ -299,7 +381,7 @@ def _convert_node_1d_args_to_2d(self, old_1d_node: Node): # input = [n, c, h] => [n, c, 1, h] unsqueeze_target = torch.ops.aten.unsqueeze.default inp_unsq_args = (input_node, -2) - inp_unsq_node = self._create_sq_or_unsq_node( + inp_unsq_node = self._create_generic_node_by_target( unsqueeze_target, *inp_unsq_args ) @@ -357,35 +439,47 @@ def call(self, graph_module: GraphModule) -> PassResult: ) old_1d_conv_users = list(old_1d_node.users.keys()) + last_4d_node = new_2d_node + node_to_replace = old_1d_node + nodes_to_erase = [] + + old_1d_bn_users = old_1d_conv_users + if len(old_1d_conv_users) == 1 and is_batch_norm(old_1d_conv_users[0]): bn_1d_node = old_1d_conv_users[0] - - # also convert batch_norm 1d to 2d - with self.graph_module.graph.inserting_after(new_2d_node): + with self.graph_module.graph.inserting_after(last_4d_node): bn_2d_args = (new_2d_node,) + bn_1d_node.args[1:] bn_2d_node = self._create_batch_norm_2d_node(*bn_2d_args) - - with self.graph_module.graph.inserting_after(bn_2d_node): - squeeze_target = torch.ops.aten.squeeze.dim - - out_sq_args = (bn_2d_node, -2) - out_sq_node = self._create_sq_or_unsq_node( - squeeze_target, *out_sq_args - ) - - bn_1d_node.replace_all_uses_with(out_sq_node) - self.graph_module.graph.erase_node(bn_1d_node) - - else: - with self.graph_module.graph.inserting_after(new_2d_node): - squeeze_target = torch.ops.aten.squeeze.dim - - out_sq_args = (new_2d_node, -2) - out_sq_node = self._create_sq_or_unsq_node( - squeeze_target, *out_sq_args + last_4d_node = bn_2d_node + node_to_replace = bn_1d_node + nodes_to_erase.append(bn_1d_node) + old_1d_bn_users = list(bn_1d_node.users.keys()) + + if len( + old_1d_bn_users + ) == 1 and self.neutron_target_spec.neutron_target_info.is_supported_fused_activation__aten( + old_1d_bn_users[0] + ): + act_1d_node = old_1d_bn_users[0] + with self.graph_module.graph.inserting_after(last_4d_node): + act_2d_args = (last_4d_node,) + act_1d_node.args[1:] + act_2d_node = self._create_generic_node_by_target( + act_1d_node.target, *act_2d_args ) + last_4d_node = act_2d_node + node_to_replace = act_1d_node + nodes_to_erase.append(act_1d_node) + + with self.graph_module.graph.inserting_after(last_4d_node): + squeeze_target = torch.ops.aten.squeeze.dim + out_sq_args = (last_4d_node, -2) + out_sq_node = self._create_generic_node_by_target( + squeeze_target, *out_sq_args + ) - old_1d_node.replace_all_uses_with(out_sq_node) + node_to_replace.replace_all_uses_with(out_sq_node) + for n in reversed(nodes_to_erase): + self.graph_module.graph.erase_node(n) graph_module.graph.erase_node(old_1d_node) made_changes = True diff --git a/backends/nxp/aten_passes/neutron_aten_pass_manager.py b/backends/nxp/aten_passes/neutron_aten_pass_manager.py index 4f1ff2648aa..d00b45be582 100644 --- a/backends/nxp/aten_passes/neutron_aten_pass_manager.py +++ b/backends/nxp/aten_passes/neutron_aten_pass_manager.py @@ -52,7 +52,7 @@ def _get_default_passes(neutron_target_spec, qat_mode: bool = False) -> list[Pas FuseLinearAndAddPass(), MoveActivationBeforeConcat(neutron_target_spec), ConvertDivToMulPass(), - ConvertConv1dToConv2dPass(), + ConvertConv1dToConv2dPass(neutron_target_spec), ] if not qat_mode: diff --git a/backends/nxp/tests/BUCK b/backends/nxp/tests/BUCK index f664e0f1faf..c16d6267425 100644 --- a/backends/nxp/tests/BUCK +++ b/backends/nxp/tests/BUCK @@ -92,6 +92,26 @@ fbcode_target(_kind = python_pytest, ], ) +fbcode_target(_kind = python_pytest, + name = "test_convert_1d_conv_to_2d", + srcs = [ + "test_convert_1d_conv_to_2d.py", + ], + env = { + "PYTEST_ADDOPTS": "--ignore-glob=*full_pipeline* -k 'not full_pipeline'", + }, + deps = [ + "//caffe2:torch", + "//executorch/backends/nxp:aten_passes", + "//executorch/backends/nxp:neutron_backend", + ":executorch_pipeline", + ":models", + "fbsource//third-party/pypi/numpy:numpy", + "fbsource//third-party/pypi/pytest:pytest", + "fbsource//third-party/pypi/pytest-mock:pytest-mock", # @manual + ], +) + fbcode_target(_kind = python_pytest, name = "test_integration", srcs = [ diff --git a/backends/nxp/tests/generic_tests/test_split_group_convolution.py b/backends/nxp/tests/generic_tests/test_split_group_convolution.py index 804b27e910a..12d2f193f57 100644 --- a/backends/nxp/tests/generic_tests/test_split_group_convolution.py +++ b/backends/nxp/tests/generic_tests/test_split_group_convolution.py @@ -161,7 +161,8 @@ def test_split_group_convolution__1d( # `ConvertConv1dToConv2dPass` is needed to convert `conv1d` to `conv2d`. # The 1d variant is not supported. modified_module = NeutronAtenPassManager( - neutron_target_spec, [SplitGroupConvolution(), ConvertConv1dToConv2dPass()] + neutron_target_spec, + [SplitGroupConvolution(), ConvertConv1dToConv2dPass(neutron_target_spec)], )(graph_module).graph_module # Verify that the behavior has not changed. diff --git a/backends/nxp/tests/test_convert_1d_conv_to_2d.py b/backends/nxp/tests/test_convert_1d_conv_to_2d.py index 9a1d4d3f91f..27e16a0358c 100644 --- a/backends/nxp/tests/test_convert_1d_conv_to_2d.py +++ b/backends/nxp/tests/test_convert_1d_conv_to_2d.py @@ -24,6 +24,7 @@ ) from executorch.backends.nxp.tests.models import Conv1dModule, ConvTranspose1dModule from executorch.exir.dialects._ops import ops as exir_ops +from torch import nn from torch.export import ExportedProgram @@ -39,6 +40,11 @@ def reseed_model_per_test_run(): AtenConvTranspose2d = torch.ops.aten.conv_transpose2d.input AtenSqueeze = torch.ops.aten.squeeze.dim AtenUnsqueeze = torch.ops.aten.unsqueeze.default +AtenRelu = torch.ops.aten.relu.default +AtenSigmoid = torch.ops.aten.sigmoid.default +AtenTanh = torch.ops.aten.tanh.default +AtenHardtanh = torch.ops.aten.hardtanh.default +AtenBatchNorm = torch.ops.aten.batch_norm.default EdgeConvolution = exir_ops.edge.aten.convolution.default ExecutorchDelegateCall = torch.ops.higher_order.executorch_call_delegate @@ -99,9 +105,9 @@ def test_convert_conv_1d_to_conv2d( outputs_before = [o.detach().numpy() for o in exir_program_aten(example_input)] # Apply the optimization. - NeutronAtenPassManager(neutron_target_spec, [ConvertConv1dToConv2dPass()])( - exir_program_aten - ) + NeutronAtenPassManager( + neutron_target_spec, [ConvertConv1dToConv2dPass(neutron_target_spec)] + )(exir_program_aten) # Make sure no `aten.conv1d` nodes are in the model. assert not graph_contains_any_of_ops( @@ -207,9 +213,9 @@ def test_convert_conv_1d_transp_to_conv2d_transp( outputs_before = [o.detach().numpy() for o in exir_program_aten(example_input)] # Apply the optimization. - NeutronAtenPassManager(neutron_target_spec, [ConvertConv1dToConv2dPass()])( - exir_program_aten - ) + NeutronAtenPassManager( + neutron_target_spec, [ConvertConv1dToConv2dPass(neutron_target_spec)] + )(exir_program_aten) # Make sure no `aten.conv_transpose1d` nodes are in the model. assert not graph_contains_any_of_ops( @@ -393,3 +399,140 @@ def test_convert_conv_1d_to_conv2d_transp_full_pipeline( input_data=example_input, tfl_model=neutron_ir_model, ) + + +class Conv1dActivationModule(nn.Module): + def __init__( + self, in_channels, out_channels, kernel_size, activation, stride=1, padding=0 + ): + super().__init__() + self.conv = nn.Conv1d(in_channels, out_channels, kernel_size, stride, padding) + self.activation = activation + + def forward(self, x): + return self.activation(self.conv(x)) + + +class Conv1dBNActivationModule(nn.Module): + def __init__( + self, in_channels, out_channels, kernel_size, activation, stride=1, padding=0 + ): + super().__init__() + self.conv = nn.Conv1d(in_channels, out_channels, kernel_size, stride, padding) + self.bn = nn.BatchNorm1d(out_channels) + self.activation = activation + + def forward(self, x): + return self.activation(self.bn(self.conv(x))) + + +class Conv1dHardtanhUnsupportedModule(nn.Module): + def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0): + super().__init__() + self.conv = nn.Conv1d(in_channels, out_channels, kernel_size, stride, padding) + self.hardtanh = nn.Hardtanh(min_val=-1.0, max_val=1.0) + + def forward(self, x): + return self.hardtanh(self.conv(x)) + + +@pytest.mark.parametrize( + "activation, expected_act_target, has_bn", + [ + pytest.param(nn.ReLU(), AtenRelu, False, id="conv1d_relu"), + pytest.param(nn.ReLU(), AtenRelu, True, id="conv1d_bn_relu"), + pytest.param(nn.Sigmoid(), AtenSigmoid, False, id="conv1d_sigmoid"), + pytest.param(nn.Sigmoid(), AtenSigmoid, True, id="conv1d_bn_sigmoid"), + pytest.param(nn.Tanh(), AtenTanh, False, id="conv1d_tanh"), + pytest.param(nn.Tanh(), AtenTanh, True, id="conv1d_bn_tanh"), + pytest.param( + nn.Hardtanh(min_val=0.0, max_val=6.0), + AtenHardtanh, + False, + id="conv1d_relu6", + ), + pytest.param( + nn.Hardtanh(min_val=0.0, max_val=6.0), + AtenHardtanh, + True, + id="conv1d_bn_relu6", + ), + ], +) +def test_convert_conv_1d_to_conv2d_keeps_activation_in_4d( + activation, expected_act_target, has_bn +): + input_shape = (3, 7, 23) + model_cls = Conv1dBNActivationModule if has_bn else Conv1dActivationModule + model = model_cls( + in_channels=7, out_channels=14, kernel_size=3, activation=activation, padding=1 + ) + example_input = torch.rand(input_shape) + + exir_program_aten = torch.export.export(model, (example_input,)).module() + + assert graph_contains_any_of_ops(exir_program_aten.graph, [AtenConv1d]) + outputs_before = [o.detach().numpy() for o in exir_program_aten(example_input)] + + NeutronAtenPassManager( + neutron_target_spec, [ConvertConv1dToConv2dPass(neutron_target_spec)] + )(exir_program_aten) + + assert not graph_contains_any_of_ops(exir_program_aten.graph, [AtenConv1d]) + + nodes = list(exir_program_aten.graph.nodes) + conv_nodes = [i for i, n in enumerate(nodes) if n.target == AtenConv2d] + assert len(conv_nodes) == 1 + i = conv_nodes[0] + + assert nodes[i - 1].target == AtenUnsqueeze + assert nodes[i].target == AtenConv2d + + if has_bn: + assert nodes[i + 1].target == AtenBatchNorm + assert nodes[i + 2].target == expected_act_target + assert nodes[i + 3].target == AtenSqueeze + else: + assert nodes[i + 1].target == expected_act_target + assert nodes[i + 2].target == AtenSqueeze + + outputs_after = [o.detach().numpy() for o in exir_program_aten(example_input)] + + assert len(outputs_before) == len(outputs_after) + for j in range(len(outputs_before)): + assert np.allclose(outputs_before[j], outputs_after[j]) + + +def test_convert_conv_1d_to_conv2d_unsupported_hardtanh_not_fused(): + input_shape = (3, 7, 23) + model = Conv1dHardtanhUnsupportedModule( + in_channels=7, out_channels=14, kernel_size=3, padding=1 + ) + example_input = torch.rand(input_shape) + + exir_program_aten = torch.export.export(model, (example_input,)).module() + + assert graph_contains_any_of_ops(exir_program_aten.graph, [AtenConv1d]) + outputs_before = [o.detach().numpy() for o in exir_program_aten(example_input)] + + NeutronAtenPassManager( + neutron_target_spec, [ConvertConv1dToConv2dPass(neutron_target_spec)] + )(exir_program_aten) + + assert not graph_contains_any_of_ops(exir_program_aten.graph, [AtenConv1d]) + + nodes = list(exir_program_aten.graph.nodes) + conv_nodes = [i for i, n in enumerate(nodes) if n.target == AtenConv2d] + assert len(conv_nodes) == 1 + i = conv_nodes[0] + + assert nodes[i - 1].target == AtenUnsqueeze + assert nodes[i].target == AtenConv2d + assert nodes[i + 1].target == AtenSqueeze + assert nodes[i + 2].target == AtenHardtanh + + outputs_after = [o.detach().numpy() for o in exir_program_aten(example_input)] + + assert len(outputs_before) == len(outputs_after) + for j in range(len(outputs_before)): + assert np.allclose(outputs_before[j], outputs_after[j]) From 10c8958bd5a8910a1ab49ae9ef2f1f529eba1e2d Mon Sep 17 00:00:00 2001 From: Scott Roy <161522778+metascroy@users.noreply.github.com> Date: Tue, 19 May 2026 18:22:47 -0700 Subject: [PATCH 64/91] Drop _loadedBackendOptions ivar from Apple bindings (#19680) Differential Revision: D105100368 Pull Request resolved: https://github.com/pytorch/executorch/pull/19680 --- .../ExecuTorch/Exported/ExecuTorchModule.mm | 64 +++---------------- .../ExecuTorch/__tests__/ModuleTest.swift | 39 +++++------ .../__tests__/ObjC/ModuleTestObjC.m | 49 ++++++++++++++ 3 files changed, 77 insertions(+), 75 deletions(-) diff --git a/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm b/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm index 53b7d997c6a..7dda8898e25 100644 --- a/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm +++ b/extension/apple/ExecuTorch/Exported/ExecuTorchModule.mm @@ -252,27 +252,6 @@ @implementation ExecuTorchModule { std::unique_ptr _module; NSMutableDictionary *> *_inputs; NSMutableDictionary *> *_outputs; - // Strong reference to the most recently passed BackendOptionsMap. The - // C++ Module borrows a pointer into the map's underlying C++ storage and - // dereferences it during lazy load_method calls (triggered by forward), - // so the ObjC wrapper must keep it alive. ARC handles the lifetime. - // - // INVARIANT: this ivar is only ever overwritten with another non-nil - // BackendOptionsMap, and never reset to nil while `_module` is alive. - // Resetting to nil would release the C++ map while `_module` still holds - // a borrowed pointer into it. - // - // THREAD SAFETY: like the rest of `ExecuTorchModule`, write access here - // is not thread-safe. The ARC retain/release on assignment is non-atomic - // for direct ivars; serialize `loadWithOptions:` calls externally if you - // share a `Module` across threads. - // - // TODO: remove this ivar once the C++ Module owns its LoadBackendOptionsMap - // by value (today it borrows a raw pointer). With owned options the ObjC - // wrapper has nothing to retain, the thread-safety caveat above goes - // away, and -loadMethod:options: / -loadWithOptions: stop needing a - // custom lifetime contract between the bindings and the C++ layer. - ExecuTorchBackendOptionsMap *_loadedBackendOptions; } - (instancetype)initWithFilePath:(NSString *)filePath @@ -354,25 +333,10 @@ - (BOOL)loadWithOptions:(ExecuTorchBackendOptionsMap *)options verification:(ExecuTorchVerification)verification error:(NSError **)error { NSParameterAssert(options); - // Retain the options object so the C++ borrowed pointer it contains stays - // valid for the lifetime of any methods loaded with these options. - // (Methods load lazily during forward(), so the borrow may outlive this - // call.) See ExecuTorchBackendOptionsMap.h for the lifetime contract. - // - // No rollback on failure: Module::load updates its backend_options_ raw - // pointer BEFORE attempting load_internal, so after a failed call the - // C++ side already references `options`. The ObjC retain therefore - // always matches what C++ points at, even on the failure path — a - // two-phase commit here would instead leave C++ pointing at a map the - // wrapper no longer retains. See: - // https://github.com/pytorch/executorch/blob/6412f55a54dd3ce1f4ed220a3e96ee19b8f37967/extension/module/module.cpp#L192-L197 - // - // TODO: once Module::load is made transactional (i.e. it only commits - // `backend_options_` after load_internal succeeds), replace the - // unconditional assignment below with a proper two-phase commit that - // only overwrites _loadedBackendOptions on success. This removes the - // "match C++'s unconditional write" workaround documented above. - _loadedBackendOptions = options; + // Module deep-copies the LoadBackendOptionsMap on the C++ side, so we + // do not need to retain `options` past this call. ARC releases the + // wrapper when the parameter goes out of scope and the Module's owned + // copy keeps lazy load_method paths working. const auto errorCode = _module->load(*[options cppMap], static_cast(verification)); if (errorCode != Error::Ok) { @@ -395,22 +359,10 @@ - (BOOL)loadMethod:(NSString *)methodName options:(ExecuTorchBackendOptionsMap *)options error:(NSError **)error { NSParameterAssert(options); - // Do NOT assign to _loadedBackendOptions here. Module::load_method - // consumes `backend_options` synchronously within this call — it is - // passed through to program_->load_method and is not cached on the - // Module. Only Module::load(backend_options, ...) stores the pointer - // (via backend_options_). ARC keeps `options` alive for the call - // duration via the parameter, so no ivar retention is needed here. - // See: - // load_method: https://github.com/pytorch/executorch/blob/6412f55a54dd3ce1f4ed220a3e96ee19b8f37967/extension/module/module.cpp#L353-L409 - // load (stores backend_options_): https://github.com/pytorch/executorch/blob/6412f55a54dd3ce1f4ed220a3e96ee19b8f37967/extension/module/module.cpp#L195 - // - // Overwriting _loadedBackendOptions would release any map previously - // installed by -loadWithOptions:, but the C++ Module's backend_options_ - // raw pointer would still reference that released map's storage — a - // use-after-free on the next lazy load_method. The XCTest - // testMixedLoadWithOptionsAndLoadMethodWithOptionsOnMultiMethodModel - // pins this invariant via a weak reference. + // load_method consumes `options` synchronously: the cppMap pointer is + // passed through to program_->load_method and is not cached on the C++ + // Module. ARC keeps `options` alive for the duration of this call via + // the parameter, so no extra retention is needed here. const auto errorCode = _module->load_method(methodName.UTF8String, /*planned_memory=*/nullptr, /*event_tracer=*/nullptr, diff --git a/extension/apple/ExecuTorch/__tests__/ModuleTest.swift b/extension/apple/ExecuTorch/__tests__/ModuleTest.swift index db75345f071..deea7d57189 100644 --- a/extension/apple/ExecuTorch/__tests__/ModuleTest.swift +++ b/extension/apple/ExecuTorch/__tests__/ModuleTest.swift @@ -525,22 +525,23 @@ class ModuleTest: XCTestCase { } // Mixed sequence on a multi-method delegated model: - // 1. load(optionsA) — installs optionsA; the C++ Module - // stores a raw pointer into optionsA's storage and the ObjC - // wrapper retains optionsA via _loadedBackendOptions. + // 1. load(optionsA) — installs optionsA. The C++ Module + // deep-copies optionsA at load time; the Apple binding does NOT + // retain the input map. After the autoreleasepool drains, the + // caller's optionsA is dropped — the C++ Module's internal copy + // keeps the configuration alive. // 2. load("mul", options: optionsB) — loads "mul" explicitly with - // optionsB, synchronously. Must NOT release optionsA (doing so - // would leave _module->backend_options_ dangling). - // 3. forward(inputs) — triggers a lazy load_method on - // "forward" which falls back to the stored pointer (into optionsA). + // optionsB; the C++ Module deep-copies optionsB. + // 3. forward(inputs) — triggers a lazy load_method on + // "forward" which consults the deep-copied optionsA stored + // inside the C++ Module. // - // The XCTAssertNotNil(weakA) after step 2 is the deterministic check: - // a buggy loadMethod:options: that assigns `_loadedBackendOptions = - // options` releases optionsA's last strong ref there, weakA becomes - // nil, and the assertion fails independent of heap layout. With the - // correct implementation weakA stays non-nil. The forward/execute - // assertions additionally verify the positive path end-to-end. - func testMixedLoadWithOptionsAndLoadMethodWithOptionsOnMultiMethodModel() throws { + // The XCTAssertNil(weakA) after step 1 is the deterministic check: + // it proves the Apple binding does not silently retain the input map + // (a regression would re-introduce a strong reference). The forward + // assertions verify the positive path: even though the caller has + // dropped optionsA, the deep-copied configuration is still applied. + func testMultiMethodLoadAndForwardWithBackendOptions() throws { let modelPath = try requireFixture("add_mul_coreml", ofType: "pte") let module = Module(filePath: modelPath) @@ -552,7 +553,9 @@ class ModuleTest: XCTestCase { weakA = optionsA try module.load(options: optionsA) } - XCTAssertNotNil(weakA, "Module must retain optionsA after load(optionsA)") + XCTAssertNil(weakA, + "Apple binding must not retain the input BackendOptionsMap — " + + "the C++ Module deep-copies it at load time") try autoreleasepool { let optionsB = try BackendOptionsMap(options: [ @@ -561,11 +564,9 @@ class ModuleTest: XCTestCase { try module.load("mul", options: optionsB) } XCTAssertTrue(module.isLoaded("mul")) - XCTAssertNotNil(weakA, - "load(\"mul\", options: optionsB) must not release optionsA — " + - "_module->backend_options_ still points into its storage") - // Lazy load_method("forward") must still see valid optionsA storage. + // Lazy load_method("forward") must still apply the configuration + // from the now-released optionsA, via the C++ Module's deep copy. let inputs: [Tensor] = [Tensor([2]), Tensor([3])] let addOuts: [Value] = try module.forward(inputs) XCTAssertEqual(addOuts.first?.tensor(), Tensor([Float(5)])) diff --git a/extension/apple/ExecuTorch/__tests__/ObjC/ModuleTestObjC.m b/extension/apple/ExecuTorch/__tests__/ObjC/ModuleTestObjC.m index 69efaa25304..491f1e2d25f 100644 --- a/extension/apple/ExecuTorch/__tests__/ObjC/ModuleTestObjC.m +++ b/extension/apple/ExecuTorch/__tests__/ObjC/ModuleTestObjC.m @@ -15,6 +15,55 @@ @interface ModuleTestObjC : XCTestCase @implementation ModuleTestObjC +// Pins the deep-copy contract: -loadWithOptions: must not retain the +// options wrapper. The C++ Module deep-copies the LoadBackendOptionsMap +// (and its BackendOption arrays) into Module-owned storage, so dropping +// the ObjC wrapper after loadWithOptions: returns must be safe and a +// subsequent forward() must continue to work using the Module's owned +// copy. If a future refactor reverts to the borrowed-pointer design and +// reintroduces an ivar to retain the wrapper, this test fails (the +// weak reference stays non-nil). +- (void)testLoadWithOptionsDoesNotRetainOptions { + NSString *modelPath = [self requireFixture:@"add_coreml" ofType:@"pte"]; + if (!modelPath) return; + NSError *error = nil; + ExecuTorchModule *module = [[ExecuTorchModule alloc] initWithFilePath:modelPath]; + + __weak ExecuTorchBackendOptionsMap *weakOptions = nil; + @autoreleasepool { + ExecuTorchBackendOptionsMap *options = [ExecuTorchBackendOptionsMap mapWithOptions:@{ + @"CoreMLBackend": @[ + [ExecuTorchBackendOption optionWithKey:@"compute_unit" stringValue:@"cpu_only"], + ], + } error:&error]; + XCTAssertNotNil(options, @"%@", error); + weakOptions = options; + XCTAssertTrue([module loadWithOptions:options error:&error], @"%@", error); + } + // Local + autoreleased refs have drained. With deep-copy, the wrapper + // can be reclaimed and the C++ Module keeps its own copy of the + // backend options for any future lazy load_method calls. + XCTAssertNil(weakOptions, + @"loadWithOptions: must not retain the map (Module deep-copies). " + @"See module.cpp Module::load(LoadBackendOptionsMap, ...) deep-copy."); + + // Forward must still execute against the Module-owned options copy. + ExecuTorchTensor *one = + [[ExecuTorchTensor alloc] initWithScalars:@[@1.0f] dataType:ExecuTorchDataTypeFloat]; + NSArray *outputs = + [module forwardWithTensors:@[one, one] error:&error]; + XCTAssertNotNil(outputs, @"%@", error); + + __block float result = NAN; + [outputs.firstObject.tensorValue + bytesWithHandler:^(const void *bytes, NSInteger count, ExecuTorchDataType dt) { + if (dt == ExecuTorchDataTypeFloat && count >= 1) { + result = ((const float *)bytes)[0]; + } + }]; + XCTAssertEqual(result, 2.0f); +} + - (NSBundle *)resourceBundle { #if SWIFT_PACKAGE return SWIFTPM_MODULE_BUNDLE; From d66a37c3f709c48f397f03f1e8b8ba80be8e4d62 Mon Sep 17 00:00:00 2001 From: Jacob Szwejbka Date: Tue, 19 May 2026 18:48:41 -0700 Subject: [PATCH 65/91] Bump PyTorch pins to 2.12 (#19643) cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani --- .ci/docker/build.sh | 5 ++ .ci/docker/ci_commit_pins/pytorch.txt | 2 +- .ci/docker/common/install_cache.sh | 3 + .ci/docker/common/install_pytorch.sh | 8 +- .ci/docker/ubuntu/Dockerfile | 3 + .ci/scripts/utils.sh | 7 +- .github/workflows/mlx.yml | 4 +- backends/arm/_passes/arm_pass.py | 38 +++++++++ .../test_per_channel_conversion.py | 15 ++-- .../llama3_2_vision/text_decoder/model.py | 14 ++-- .../text_decoder/test/test_text_decoder.py | 1 - .../models/parakeet/export_parakeet_tdt.py | 4 +- extension/llm/modules/attention.py | 8 +- install_requirements.py | 4 +- .../c10/torch/headeronly/macros/Macros.h | 79 +++++++++++++++---- .../c10/torch/headeronly/util/BFloat16.h | 13 +-- torch_pin.py | 2 +- 17 files changed, 159 insertions(+), 51 deletions(-) diff --git a/.ci/docker/build.sh b/.ci/docker/build.sh index 0a4c6a6f757..24c4efce24a 100755 --- a/.ci/docker/build.sh +++ b/.ci/docker/build.sh @@ -97,6 +97,10 @@ esac TORCH_VERSION=$(cat ci_commit_pins/pytorch.txt) BUILD_DOCS=1 +if [[ "${GCC_VERSION:-}" == "11" && -z "${SKIP_PYTORCH:-}" ]]; then + PYTORCH_BUILD_MAX_JOBS=6 +fi + # Copy requirements-lintrunner.txt from root to here cp ../../requirements-lintrunner.txt ./ @@ -109,6 +113,7 @@ docker build \ --build-arg "PYTHON_VERSION=${PYTHON_VERSION}" \ --build-arg "MINICONDA_VERSION=${MINICONDA_VERSION}" \ --build-arg "TORCH_VERSION=${TORCH_VERSION}" \ + --build-arg "PYTORCH_BUILD_MAX_JOBS=${PYTORCH_BUILD_MAX_JOBS:-}" \ --build-arg "BUCK2_VERSION=${BUCK2_VERSION}" \ --build-arg "LINTRUNNER=${LINTRUNNER:-}" \ --build-arg "BUILD_DOCS=${BUILD_DOCS}" \ diff --git a/.ci/docker/ci_commit_pins/pytorch.txt b/.ci/docker/ci_commit_pins/pytorch.txt index f6e39a63b92..242371cbebe 100644 --- a/.ci/docker/ci_commit_pins/pytorch.txt +++ b/.ci/docker/ci_commit_pins/pytorch.txt @@ -1 +1 @@ -release/2.11 \ No newline at end of file +release/2.12 diff --git a/.ci/docker/common/install_cache.sh b/.ci/docker/common/install_cache.sh index 7b7d39994ca..82be8697320 100755 --- a/.ci/docker/common/install_cache.sh +++ b/.ci/docker/common/install_cache.sh @@ -76,6 +76,9 @@ init_sccache() { # This is the remote cache bucket export SCCACHE_BUCKET=ossci-compiler-cache-circleci-v2 export SCCACHE_S3_KEY_PREFIX=executorch + export SCCACHE_REGION=us-east-1 + export AWS_REGION=us-east-1 + export AWS_DEFAULT_REGION=us-east-1 export SCCACHE_IDLE_TIMEOUT=0 export SCCACHE_ERROR_LOG=/tmp/sccache_error.log export RUST_LOG=sccache::server=error diff --git a/.ci/docker/common/install_pytorch.sh b/.ci/docker/common/install_pytorch.sh index 548a24f885d..3c80d093ab2 100755 --- a/.ci/docker/common/install_pytorch.sh +++ b/.ci/docker/common/install_pytorch.sh @@ -27,6 +27,12 @@ install_pytorch_and_domains() { chown -R ci-user . export _GLIBCXX_USE_CXX11_ABI=1 + if [[ "$(uname -m)" == "aarch64" ]]; then + export BUILD_IGNORE_SVE_UNAVAILABLE=1 + fi + if [[ -n "${PYTORCH_BUILD_MAX_JOBS:-}" ]]; then + export MAX_JOBS="${PYTORCH_BUILD_MAX_JOBS}" + fi # Then build and install PyTorch conda_run python setup.py bdist_wheel pip_install "$(echo dist/*.whl)" @@ -34,7 +40,7 @@ install_pytorch_and_domains() { # Grab the pinned audio and vision commits from PyTorch TORCHAUDIO_VERSION=release/2.11 export TORCHAUDIO_VERSION - TORCHVISION_VERSION=release/0.26 + TORCHVISION_VERSION=release/0.27 export TORCHVISION_VERSION install_domains diff --git a/.ci/docker/ubuntu/Dockerfile b/.ci/docker/ubuntu/Dockerfile index 0e2d7e48eb9..9a5b2536df0 100644 --- a/.ci/docker/ubuntu/Dockerfile +++ b/.ci/docker/ubuntu/Dockerfile @@ -62,9 +62,12 @@ RUN bash ./install_cache.sh && rm install_cache.sh utils.sh ENV SCCACHE_BUCKET ossci-compiler-cache-circleci-v2 ENV SCCACHE_S3_KEY_PREFIX executorch ENV SCCACHE_REGION us-east-1 +ENV AWS_REGION us-east-1 +ENV AWS_DEFAULT_REGION us-east-1 ARG TORCH_VERSION ARG SKIP_PYTORCH +ARG PYTORCH_BUILD_MAX_JOBS COPY ./common/install_pytorch.sh install_pytorch.sh COPY ./common/utils.sh utils.sh RUN if [ -z "${SKIP_PYTORCH}" ]; then bash ./install_pytorch.sh; fi && rm install_pytorch.sh utils.sh diff --git a/.ci/scripts/utils.sh b/.ci/scripts/utils.sh index 486745f4bf6..b312d0ede83 100644 --- a/.ci/scripts/utils.sh +++ b/.ci/scripts/utils.sh @@ -107,7 +107,7 @@ install_pytorch_and_domains() { local torch_release=$(cat version.txt) # Download key must match the upload key below (basename of dist/*.whl, # which always carries setup.py's resolved +gitHASH). Branch-ref pins - # like `release/2.11` would otherwise produce `+gitrelease` here and + # like `release/2.12` would otherwise produce `+gitrelease` here and # never hit the cache. local torch_short_hash=$(git rev-parse --short=7 HEAD) local torch_wheel_path="cached_artifacts/pytorch/executorch/pytorch_wheels/${system_name}/${python_version}" @@ -132,6 +132,9 @@ install_pytorch_and_domains() { # (e.g. executorch's requirements-ci.txt). pip install -r requirements-build.txt git submodule update --init --recursive + if [[ "$(uname -m)" == "aarch64" ]]; then + export BUILD_IGNORE_SVE_UNAVAILABLE=1 + fi USE_DISTRIBUTED=1 python setup.py bdist_wheel pip install "$(echo dist/*.whl)" @@ -175,7 +178,7 @@ install_pytorch_and_domains() { # Grab the pinned audio and vision commits from PyTorch TORCHAUDIO_VERSION=release/2.11 export TORCHAUDIO_VERSION - TORCHVISION_VERSION=release/0.26 + TORCHVISION_VERSION=release/0.27 export TORCHVISION_VERSION install_domains diff --git a/.github/workflows/mlx.yml b/.github/workflows/mlx.yml index d429db16053..c4be146f862 100644 --- a/.github/workflows/mlx.yml +++ b/.github/workflows/mlx.yml @@ -120,10 +120,10 @@ jobs: --prompt-len 4 \ --max-new-tokens 5 2>&1) echo "$OUTPUT" - if echo "$OUTPUT" | grep -q "Generated token ids: \[167, 167, 81, 167, 81\]"; then + if echo "$OUTPUT" | grep -q "Generated token ids: \[167, 94, 253, 88, 227\]"; then echo "Success: Qwen 3.5 MoE MLX export + inference completed with expected output" else - echo "Failed: unexpected output (expected [167, 167, 81, 167, 81])" + echo "Failed: unexpected output (expected [167, 94, 253, 88, 227])" exit 1 fi echo "::endgroup::" diff --git a/backends/arm/_passes/arm_pass.py b/backends/arm/_passes/arm_pass.py index 1a1a179f456..add0f3aeb20 100644 --- a/backends/arm/_passes/arm_pass.py +++ b/backends/arm/_passes/arm_pass.py @@ -9,12 +9,14 @@ from abc import abstractmethod from typing import Any, List, Optional, Set, Type +import torch from executorch.backends.arm.constants import DISALLOW_TFA_META_KEY from executorch.backends.arm.tosa.mapping import TosaSpecialDtype from executorch.exir.dialects._ops import ops as exir_ops from executorch.exir.pass_base import ExportPass, NodeMetadata, ProxyValue from torch.fx import GraphModule from torch.fx.passes.infra.pass_base import PassResult +from torch.utils import _pytree as pytree class ArmPass(ExportPass): @@ -79,6 +81,13 @@ def get_name(pass_) -> str: ) def call_operator(self, op, args, kwargs, meta, updated: Optional[bool] = False): + if ( + op == exir_ops.edge.aten.bmm.default + and isinstance(meta, NodeMetadata) + and len(meta.data.get("input_qparams", {})) > 0 + ): + return self._call_quantized_bmm_without_fake_kernel(op, args, kwargs, meta) + if not updated: return super().call_operator(op, args, kwargs, meta) @@ -91,6 +100,35 @@ def call_operator(self, op, args, kwargs, meta, updated: Optional[bool] = False) new_meta["stack_trace"] = f"{old_stack_trace}\n{traceback.format_stack()[-2]}" return super().call_operator(op, args, kwargs, NodeMetadata(new_meta)) + def _call_quantized_bmm_without_fake_kernel( + self, + op, + args: tuple[ProxyValue, ...], + kwargs: dict[str, Any], + meta: NodeMetadata, + ) -> ProxyValue: + old_val = meta.data["val"] + output_qparams = meta.data.get("output_qparams", {}) + dtype = ( + next(iter(output_qparams.values())).dtype + if len(output_qparams) > 0 + else old_val.dtype + ) + res_data = torch.empty_like(old_val, dtype=dtype) + + args_proxy, kwargs_proxy = pytree.tree_map_only( + ProxyValue, lambda x: x.proxy, (args, kwargs) + ) + res_proxy = self.tracer.create_proxy( + "call_function", + op, + args_proxy, + kwargs_proxy, + ) + res_proxy.node.meta.update(meta.data) + self.tracer.set_metadata(res_proxy.node, res_data) + return ProxyValue(res_data, res_proxy) + def call_submodule( self, graph_module: GraphModule, inputs: tuple[Any, ...] ) -> PassResult: diff --git a/backends/nxp/tests/generic_tests/test_per_channel_conversion.py b/backends/nxp/tests/generic_tests/test_per_channel_conversion.py index b3034ff17ed..706d8ed3e14 100644 --- a/backends/nxp/tests/generic_tests/test_per_channel_conversion.py +++ b/backends/nxp/tests/generic_tests/test_per_channel_conversion.py @@ -169,14 +169,19 @@ def test_per_channel_convolution(self, _, use_qat: bool): atol=1.0, ) - nodes = list(exported_program.graph.nodes) - + conv_nodes = [ + node + for node in exported_program.graph.nodes + if node.target == exir_ops.edge.aten.convolution.default + ] + assert len(conv_nodes) == 1 + + conv_node = conv_nodes[0] assert ( - nodes[8].target + conv_node.args[1].target == exir_ops.edge.quantized_decomposed.dequantize_per_channel.default ) assert ( - nodes[9].target + conv_node.args[2].target == exir_ops.edge.quantized_decomposed.dequantize_per_channel.default ) - assert nodes[10].target == exir_ops.edge.aten.convolution.default diff --git a/examples/models/llama3_2_vision/text_decoder/model.py b/examples/models/llama3_2_vision/text_decoder/model.py index 8f3a620affc..9f15f777045 100644 --- a/examples/models/llama3_2_vision/text_decoder/model.py +++ b/examples/models/llama3_2_vision/text_decoder/model.py @@ -181,19 +181,19 @@ def get_example_kwarg_inputs(self): return None def get_dynamic_shapes(self): - batch_size = 1 + static = torch.export.Dim.STATIC dim_seq_len = torch.export.Dim("token_dim", min=1, max=self.max_seq_len) # Hardcoding # of tiles to be 2. image tokens per tile is 1601. if self.use_kv_cache: dynamic_shapes = { - "tokens": {0: batch_size, 1: dim_seq_len}, - "encoder_input": None, - "encoder_mask": {0: 1, 1: dim_seq_len, 2: None}, - "mask": {0: batch_size, 1: dim_seq_len, 2: None}, - "input_pos": {0: batch_size, 1: dim_seq_len}, + "tokens": {0: static, 1: dim_seq_len}, + "encoder_input": {0: static, 1: static, 2: static}, + "encoder_mask": {0: static, 1: dim_seq_len, 2: static}, + "mask": {0: static, 1: dim_seq_len, 2: static}, + "input_pos": {0: static, 1: dim_seq_len}, } else: dynamic_shapes = { - "tokens": {0: batch_size, 1: dim_seq_len}, + "tokens": {0: static, 1: dim_seq_len}, } return dynamic_shapes diff --git a/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py b/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py index 4af637212a8..0ef7b298139 100644 --- a/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py +++ b/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py @@ -69,7 +69,6 @@ def test_llama3_2_text_decoder_aoti(self) -> None: encoder, model.get_example_inputs(), kwargs=model.get_example_kwarg_inputs(), - dynamic_shapes=model.get_dynamic_shapes(), strict=True, ) with tempfile.TemporaryDirectory() as tmpdir: diff --git a/examples/models/parakeet/export_parakeet_tdt.py b/examples/models/parakeet/export_parakeet_tdt.py index 6a18cd58218..75943f6c4ae 100644 --- a/examples/models/parakeet/export_parakeet_tdt.py +++ b/examples/models/parakeet/export_parakeet_tdt.py @@ -360,8 +360,8 @@ def export_all( preprocessor_wrapper, (sample_audio, sample_length), dynamic_shapes={ - # min=1600 samples = 0.1 sec @ 16kHz, max aligned with encoder limit - "audio": {0: Dim("audio_len", min=1600, max=max_audio_samples)}, + # min=10 frames = 0.1 sec @ 16kHz, max aligned with encoder limit. + "audio": {0: Dim.AUTO(min=1600, max=max_audio_samples)}, "length": {}, }, strict=False, diff --git a/extension/llm/modules/attention.py b/extension/llm/modules/attention.py index f9446ea3aa7..8869553875e 100644 --- a/extension/llm/modules/attention.py +++ b/extension/llm/modules/attention.py @@ -302,11 +302,9 @@ def false_fn(y): k, v = calculate_kv(y) else: # Expecting the k, v returning here to be the same size of self.kv_cache - # In eager, we expect this predicate to specialize. In export, this will - # become a SymBool so it's not specialized. - k, v, cache_pos = torch.cond( - torch.isnan(y).all().item(), true_fn, false_fn, (y,) - ) + # In eager, we expect this predicate to specialize. In export, keep it + # as a tensor predicate so AOTI does not introduce unbacked symbols. + k, v, cache_pos = torch.cond(torch.isnan(y).all(), true_fn, false_fn, (y,)) # Update key-value cache self.kv_cache.k_cache.copy_(k) self.kv_cache.v_cache.copy_(v) diff --git a/install_requirements.py b/install_requirements.py index b30068cbdb8..53204ffd3ee 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -49,7 +49,7 @@ def install_requirements(use_pytorch_nightly): # 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 - ("torch==2.11.0" if use_pytorch_nightly else "torch"), + ("torch==2.12.0" if use_pytorch_nightly else "torch"), ] # Install the requirements for core ExecuTorch package. @@ -112,7 +112,7 @@ def install_optional_example_requirements(use_pytorch_nightly): print("Installing torch domain libraries") DOMAIN_LIBRARIES = [ - ("torchvision==0.26.0" if use_pytorch_nightly else "torchvision"), + ("torchvision==0.27.0" if use_pytorch_nightly else "torchvision"), ("torchaudio==2.11.0" if use_pytorch_nightly else "torchaudio"), ] # Then install domain libraries diff --git a/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h b/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h index 63aa0d20d8e..cef99df3f56 100644 --- a/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h +++ b/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h @@ -325,41 +325,88 @@ constexpr uint32_t CUDA_THREADS_PER_BLOCK_FALLBACK = 256; #define C10_HIP_HOST_DEVICE #endif -#if defined(USE_ROCM) // C10_WARP_SIZE is only allowed for device code. -// Host code _must_ use at::cuda::warp_size() +// Host code dynamically-sized launch configs _must_ use at::cuda::warp_size(). +// Host or device statically-sized arrays _must_ use either +// C10_WARP_SIZE_UPPER_BOUND or C10_WARP_SIZE_LOWER_BOUND, as needed. +// // HIP header used to define warpSize as a constexpr that was either 32 or 64 // depending on the target device, and then always set it to 64 for host code. -// Host pass of HIP compiler needs C10_WARP_SIZE defined to _something_ so we -// set it to something unreasonable to trigger obvious host code errors. - +// For a time, that allowed C10_WARP_SIZE to be defined like so: +// +// #ifdef USE_ROCM +// #define C10_WARP_SIZE warpSize +// #else +// #define C10_WARP_SIZE 32 +// #endif +// +// In ROCm 7, warpSize is no longer constexpr, matching CUDA behavior. +// We can now only use warpSize for C10_WARP_SIZE in device code and this is +// enforced by using __device__ in its definition. In host code where +// C10_WARP_SIZE was previously used as a compile-time constant, this will now +// cause a compile-time error. +// +// If an array was previously expected to be sized at compile-time using +// C10_WARP_SIZE, users must now use either C10_WARP_SIZE_UPPER_BOUND or +// C10_WARP_SIZE_LOWER_BOUND depending on the situation. +// +// If C10_WARP_SIZE was previously used to determine kernel launch sizes, users +// must now use at::cuda::warp_size() for the dynamic runtime query. +// +// Unfortunately, C10_WARP_SIZE has been public and available for both host and +// device since approximately 2019, so forcing it to be device-only would break +// existing code in the wild. +#if defined(USE_ROCM) namespace at::cuda { TORCH_CUDA_CPP_API int warp_size(); } -#ifdef __HIPCC__ -static inline int __host__ C10_WARP_SIZE_INTERNAL() { +#if defined(__HIPCC__) +static __host__ inline int C10_WARP_SIZE_INTERNAL() { return at::cuda::warp_size(); } - -static inline constexpr int __device__ C10_WARP_SIZE_INTERNAL() { +// NOTE: __device__ C10_WARP_SIZE_INTERNAL +// For __SPIRV__, we must use dynamic warpSize. When not targeting __SPIRV__, +// we can use constexpr. This matches prior behavior. We preserve this for +// backward compatibility instead of forcing old code to use dynamic warpSize +// and losing constexpr. However, compiling for --offload-arch=amdgcnspirv +// could expose where C10_WARP_SIZE was used incorrectly where the dynamic +// warpSize is not allowed. +#if defined(__SPIRV__) +static __device__ inline int C10_WARP_SIZE_INTERNAL() { + return warpSize; +} +#else // __SPIRV__ +static __device__ inline constexpr int C10_WARP_SIZE_INTERNAL() { #if defined(__GFX9__) return 64; #else // __GFX9__ return 32; #endif // __GFX9__ } -#else // __HIPCC__ +#endif // __SPIRV__ +#if defined(__SPIRV__) +#define C10_WARP_SIZE_LOWER_BOUND 32 +#define C10_WARP_SIZE_UPPER_BOUND 64 +#elif defined(__GFX9__) +#define C10_WARP_SIZE_LOWER_BOUND 64 +#define C10_WARP_SIZE_UPPER_BOUND 64 +#else +#define C10_WARP_SIZE_LOWER_BOUND 32 +#define C10_WARP_SIZE_UPPER_BOUND 32 +#endif +#else // !__HIPCC__ static inline int C10_WARP_SIZE_INTERNAL() { return at::cuda::warp_size(); } +#define C10_WARP_SIZE_LOWER_BOUND 32 +#define C10_WARP_SIZE_UPPER_BOUND 64 #endif // __HIPCC__ - #define C10_WARP_SIZE (C10_WARP_SIZE_INTERNAL()) -#define C10_WARP_SIZE_STATIC 64 - -#else // defined(USE_ROCM) +#else // !USE_ROCM #define C10_WARP_SIZE 32 -#endif +#define C10_WARP_SIZE_LOWER_BOUND 32 +#define C10_WARP_SIZE_UPPER_BOUND 32 +#endif // USE_ROCM #if defined(_MSC_VER) && _MSC_VER <= 1900 #define __func__ __FUNCTION__ @@ -629,7 +676,7 @@ __host__ __device__ // This macro is used to find older C++ compilers // that don't support move optimization for return values. -#if (defined(__GNUC__) && __GNUC__ < 13) || \ +#if (defined(__GNUC__) && __GNUC__ < 13 && __cplusplus < 202002L) || \ (defined(__clang_major__) && __clang_major__ < 13) #define C10_RETURN_MOVE_IF_OLD_COMPILER 1 #else diff --git a/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h b/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h index 64479ba36f1..9aa08c265bd 100644 --- a/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h +++ b/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h @@ -12,7 +12,7 @@ #include #include -#if defined(__CUDACC__) && !defined(USE_ROCM) +#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) #include #endif @@ -46,7 +46,7 @@ struct alignas(2) BFloat16 { /* implicit */ inline C10_HOST_DEVICE BFloat16(float value); inline C10_HOST_DEVICE operator float() const; -#if defined(__CUDACC__) && !defined(USE_ROCM) +#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) inline C10_HOST_DEVICE BFloat16(const __nv_bfloat16& value); explicit inline C10_HOST_DEVICE operator __nv_bfloat16() const; #endif @@ -124,8 +124,9 @@ C10_CLANG_DIAGNOSTIC_IGNORE("-Wimplicit-int-float-conversion") /// Constructors inline C10_HOST_DEVICE BFloat16::BFloat16(float value) : -#if defined(__CUDACC__) && !defined(USE_ROCM) && defined(__CUDA_ARCH__) && \ - __CUDA_ARCH__ >= 800 +#if defined(__CUDACC__) && \ + (!defined(USE_ROCM) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 || \ + defined(USE_ROCM) && (TORCH_HIP_VERSION >= 702)) x(__bfloat16_as_ushort(__float2bfloat16(value))) #elif defined(__SYCL_DEVICE_ONLY__) && \ defined(SYCL_EXT_ONEAPI_BFLOAT16_MATH_FUNCTIONS) @@ -139,7 +140,7 @@ inline C10_HOST_DEVICE BFloat16::BFloat16(float value) /// Implicit conversions inline C10_HOST_DEVICE BFloat16::operator float() const { -#if defined(__CUDACC__) && !defined(USE_ROCM) +#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) return __bfloat162float(*reinterpret_cast(&x)); #elif defined(__SYCL_DEVICE_ONLY__) && \ defined(SYCL_EXT_ONEAPI_BFLOAT16_MATH_FUNCTIONS) @@ -149,7 +150,7 @@ inline C10_HOST_DEVICE BFloat16::operator float() const { #endif } -#if defined(__CUDACC__) && !defined(USE_ROCM) +#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) inline C10_HOST_DEVICE BFloat16::BFloat16(const __nv_bfloat16& value) { x = *reinterpret_cast(&value); } diff --git a/torch_pin.py b/torch_pin.py index 3575d9a376d..0c5cd50fe6d 100644 --- a/torch_pin.py +++ b/torch_pin.py @@ -1,2 +1,2 @@ -TORCH_VERSION = "2.11.0" +TORCH_VERSION = "2.12.0" # NIGHTLY_VERSION = "dev20260318" Temporarily pinning to stable release candidate. Revert https://github.com/pytorch/executorch/pull/18287 From a4bd823f72ea0fff25718a055e42e4332c6b46c6 Mon Sep 17 00:00:00 2001 From: billmguo Date: Tue, 19 May 2026 20:01:03 -0700 Subject: [PATCH 66/91] Fix race condition in XNNPACK weights cache during concurrent `init()` Differential Revision: D105753995 Pull Request resolved: https://github.com/pytorch/executorch/pull/19682 --- backends/xnnpack/runtime/XNNPACKBackend.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backends/xnnpack/runtime/XNNPACKBackend.cpp b/backends/xnnpack/runtime/XNNPACKBackend.cpp index 1076e5f2e25..c20fa985f46 100644 --- a/backends/xnnpack/runtime/XNNPACKBackend.cpp +++ b/backends/xnnpack/runtime/XNNPACKBackend.cpp @@ -91,8 +91,13 @@ class XnnpackBackend final auto workspace = workspace_result.get(); bool use_weight_cache = options_.resolve_weight_cache(context); + // Hold the lock for the entire init-compile-finalize sequence to prevent + // concurrent inits from resetting is_finalized_ or overwriting + // named_data_map_ while compileModel is using the shared weights cache. + std::unique_lock lock_weights_cache( + weights_cache_mutex_, std::defer_lock); if (use_weight_cache) { - const std::lock_guard lock_weight_cache(weights_cache_mutex_); + lock_weights_cache.lock(); weights_cache_->initialize_for_runtime( context.get_runtime_allocator(), named_data_map); } From 477707f2aca0e16038d80c0175bd492435b1164d Mon Sep 17 00:00:00 2001 From: winskuo-quic <143469905+winskuo-quic@users.noreply.github.com> Date: Wed, 20 May 2026 11:57:46 +0800 Subject: [PATCH 67/91] Qualcomm AI Engine Direct - Minor qnn_config fix (#19388) ### Summary Some older python version seems to interpret the qnn_config.htp_performance_mode as a list while newer version just treat it as an enum. To make it compatible on older python version, remove the comma. ### Test plan [PLEASE REMOVE] How did you test this PR? Please write down any manual commands you used and note down tests that you have written if applicable. From 3eb57fadeabb8b2a808c9064fe11c0db7c9d222d Mon Sep 17 00:00:00 2001 From: qti-horodnic Date: Tue, 19 May 2026 21:13:08 -0700 Subject: [PATCH 68/91] Qualcomm AI Engine Direct - Adding QNN backend support for scatter.src core ATen op (#19283) ### Summary Added support for the core ATen op `scatter.src` using an op builder with the [QNN implementation](https://docs.qualcomm.com/doc/80-63442-10/topic/HtpOpDefSupplement.html#scatterelements) for `ScatterElements`. Note `scatter.src` uses `ScatterElements` directly with the argument `reduction=NONE`. ### Test plan ``` python backends/qualcomm/tests/test_qnn_delegate.py -k TestQNNQuantizedOperator.test_qnn_backend_scatter_src --model SM8750 --host aisw-vm15-labsd --device 545ee4aa --build_folder build-android python backends/qualcomm/tests/test_qnn_delegate.py -k TestQNNFloatingPointOperator.test_qnn_backend_scatter_src --model SM8750 --host aisw-vm15-labsd --device 545ee4aa --build_folder build-android ``` --- backends/qualcomm/_passes/layout_transform.py | 1 + backends/qualcomm/builders/README.md | 4 +- backends/qualcomm/builders/__init__.py | 2 + .../qualcomm/builders/op_scatter_elements.py | 103 ++++++++++++++++++ backends/qualcomm/builders/qnn_constants.py | 11 ++ backends/qualcomm/partition/utils.py | 1 + .../quantizer/annotators/htp_rules.py | 38 +++++++ .../quantizer/annotators/lpai_rules.py | 38 +++++++ backends/qualcomm/tests/models.py | 9 ++ backends/qualcomm/tests/test_qnn_delegate.py | 85 +++++++++++++++ 10 files changed, 290 insertions(+), 2 deletions(-) create mode 100644 backends/qualcomm/builders/op_scatter_elements.py diff --git a/backends/qualcomm/_passes/layout_transform.py b/backends/qualcomm/_passes/layout_transform.py index 5953360a13b..5b9c13e6ef4 100644 --- a/backends/qualcomm/_passes/layout_transform.py +++ b/backends/qualcomm/_passes/layout_transform.py @@ -120,6 +120,7 @@ class LayoutTransform(ExportPass): exir_ops.edge.aten.repeat.default, exir_ops.edge.aten.relu.default, exir_ops.edge.aten.round.default, + exir_ops.edge.aten.scatter.src, exir_ops.edge.aten.sigmoid.default, exir_ops.edge.aten.sign.default, exir_ops.edge.aten.slice_copy.Tensor, diff --git a/backends/qualcomm/builders/README.md b/backends/qualcomm/builders/README.md index 203c73f804a..a443ed0905c 100644 --- a/backends/qualcomm/builders/README.md +++ b/backends/qualcomm/builders/README.md @@ -368,7 +368,7 @@ Please help update following table if you are contributing new operators: + 🚫 = Deprecated, supported with other QNN Ops -| Operators | HTP - 99/120 Enabled | +| Operators | HTP - 100/120 Enabled | |-----------|---------| | Argmax | ✓ | | Argmin | ✓ | @@ -473,7 +473,7 @@ Please help update following table if you are contributing new operators: | ResizeNearestNeighbor | ✓ | | RoiAlign | ✗ | | RmsNorm | ✓ | -| ScatterElements | ✗ | +| ScatterElements | ✓ | | ScatterNd | ✓ | | Sigmoid | ✓ | | Softmax | ✓ | diff --git a/backends/qualcomm/builders/__init__.py b/backends/qualcomm/builders/__init__.py index 8549e4f255f..dd69515b1c1 100644 --- a/backends/qualcomm/builders/__init__.py +++ b/backends/qualcomm/builders/__init__.py @@ -90,6 +90,7 @@ op_round, op_rsqrt, op_scalar_tensor, + op_scatter_elements, op_select_copy, op_sigmoid, op_sign, @@ -204,6 +205,7 @@ op_round, op_rsqrt, op_scalar_tensor, + op_scatter_elements, op_select_copy, op_sigmoid, op_sign, diff --git a/backends/qualcomm/builders/op_scatter_elements.py b/backends/qualcomm/builders/op_scatter_elements.py new file mode 100644 index 00000000000..4bcf4572803 --- /dev/null +++ b/backends/qualcomm/builders/op_scatter_elements.py @@ -0,0 +1,103 @@ +# Copyright (c) Qualcomm Innovation Center, Inc. +# All rights reserved +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. +from typing import Dict + +import executorch.backends.qualcomm.python.PyQnnManagerAdaptor as PyQnnManager + +import numpy as np +import torch +from executorch.backends.qualcomm.utils.constants import QCOM_AXIS_ORDER, QCOM_DATA + +from .node_visitor import NodeVisitor +from .node_visitor_manager import register_node_visitor +from .qnn_constants import OpScatterElements, QNN_OP_PACKAGE_NAME_QTI_AISW + + +@register_node_visitor +class ScatterElements(NodeVisitor): + target = ["aten.scatter.src"] + + def __init__(self, *args) -> None: + super().__init__(*args) + + def define_node( + self, + node: torch.fx.Node, + nodes_to_wrappers: Dict[torch.fx.Node, PyQnnManager.TensorWrapper], + ) -> PyQnnManager.PyQnnOpWrapper: + input_node = self.get_node(node.args[0]) + input_tensor = self.get_tensor(input_node, node) + input_tensor_wrapper = self.define_tensor( + input_node, + node, + input_tensor, + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, + nodes_to_wrappers, + ) + + index_node = self.get_node(node.args[2]) + index_tensor = self.get_tensor(index_node, node) + index_tensor_wrapper = self.define_tensor( + index_node, + node, + index_tensor.to(torch.int32), + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, + nodes_to_wrappers, + ) + + updates_node = self.get_node(node.args[3]) + updates_tensor = self.get_tensor(updates_node, node) + updates_tensor_wrapper = self.define_tensor( + updates_node, + node, + updates_tensor, + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, + nodes_to_wrappers, + ) + + output_tensor = self.get_tensor(node, node) + output_tensor_wrapper = self.define_tensor( + node, + node, + output_tensor, + PyQnnManager.Qnn_TensorType_t.QNN_TENSOR_TYPE_NATIVE, + nodes_to_wrappers, + ) + + dim = node.args[1] + if dim < 0: + dim = dim % len(input_tensor.shape) + + if QCOM_AXIS_ORDER in node.meta: + dim = node.meta[QCOM_AXIS_ORDER].index(dim) + + scatter_op = PyQnnManager.PyQnnOpWrapper( + node.name, + QNN_OP_PACKAGE_NAME_QTI_AISW, + OpScatterElements.op_name, + ) + scatter_op.AddInputTensors( + [ + input_tensor_wrapper, + index_tensor_wrapper, + updates_tensor_wrapper, + ] + ) + scatter_op.AddOutputTensors([output_tensor_wrapper]) + + scatter_op.AddScalarParam( + OpScatterElements.param_axis, + PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_UINT_32, + {QCOM_DATA: np.uint32(dim)}, + ) + + scatter_op.AddScalarParam( + OpScatterElements.param_reduction, + PyQnnManager.Qnn_DataType_t.QNN_DATATYPE_UINT_32, + {QCOM_DATA: np.uint32(OpScatterElements.Reduction.NONE)}, + ) + + return scatter_op diff --git a/backends/qualcomm/builders/qnn_constants.py b/backends/qualcomm/builders/qnn_constants.py index 168601530c6..d1f0d3fff00 100644 --- a/backends/qualcomm/builders/qnn_constants.py +++ b/backends/qualcomm/builders/qnn_constants.py @@ -594,6 +594,17 @@ class OpRmsNorm: param_axes: str = "axes" +@dataclass(init=False, frozen=True) +class OpScatterElements: + op_name: str = "ScatterElements" + param_axis: str = "axis" + param_reduction: str = "reduction" + + @unique + class Reduction(IntEnum): + NONE = 0 + + @dataclass(init=False, frozen=True) class OpScatterNd: op_name: str = "ScatterNd" diff --git a/backends/qualcomm/partition/utils.py b/backends/qualcomm/partition/utils.py index a83444a56b2..93f00d4e994 100644 --- a/backends/qualcomm/partition/utils.py +++ b/backends/qualcomm/partition/utils.py @@ -68,6 +68,7 @@ def get_skip_decomp_table() -> List[torch._ops.OperatorBase]: torch.ops.aten.reflection_pad2d.default, torch.ops.aten.rms_norm.default, torch.ops.aten._safe_softmax.default, + torch.ops.aten.scatter.src, torch.ops.aten.stack.default, torch.ops.aten.upsample_bicubic2d.vec, # This request is ignored because it is in a blocklist. Refer to exir/program/_program.py diff --git a/backends/qualcomm/quantizer/annotators/htp_rules.py b/backends/qualcomm/quantizer/annotators/htp_rules.py index 1dd0ab7f488..819c9f64136 100644 --- a/backends/qualcomm/quantizer/annotators/htp_rules.py +++ b/backends/qualcomm/quantizer/annotators/htp_rules.py @@ -1391,6 +1391,44 @@ class ScaledDotProductAttention(GeneralOpDef): pass +@register_annotator( + [torch.ops.aten.scatter.src], + qnn_op=None, +) +class ScatterElements(GeneralOpDef): + @staticmethod + def annotate(node: Node, quantization_config: QuantizationConfig) -> None: + if _is_annotated([node]): + return + + input_act = node.args[0] + if not isinstance(input_act, Node) or not _is_float_tensor(input_act): + return + + input_qspec_map = {} + input_qspec_map[input_act] = quantization_config.input_activation + + if ( + len(node.args) > 3 + and isinstance(node.args[3], Node) + and _is_float_tensor(node.args[3]) + ): + input_qspec_map[node.args[3]] = SharedQuantizationSpec((input_act, node)) + + output_act_qspec = ( + SharedQuantizationSpec((input_act, node)) + if _is_float_tensor(node) + else None + ) + + if len(input_qspec_map) > 0 or output_act_qspec is not None: + node.meta[Q_ANNOTATION_KEY] = QuantizationAnnotation( + input_qspec_map=input_qspec_map, + output_qspec=output_act_qspec, + _annotated=True, + ) + + @register_annotator( [torch.ops.aten.sigmoid, torch.ops.aten.sigmoid.default], QnnConstants.OpSigmoid.op_name, diff --git a/backends/qualcomm/quantizer/annotators/lpai_rules.py b/backends/qualcomm/quantizer/annotators/lpai_rules.py index 3a3bffa174d..6870882c2db 100644 --- a/backends/qualcomm/quantizer/annotators/lpai_rules.py +++ b/backends/qualcomm/quantizer/annotators/lpai_rules.py @@ -869,6 +869,44 @@ class ScaledDotProductAttention(GeneralOpDef): pass +@register_annotator( + [torch.ops.aten.scatter.src], + qnn_op=None, +) +class ScatterElements(GeneralOpDef): + @staticmethod + def annotate(node: Node, quantization_config: QuantizationConfig) -> None: + if _is_annotated([node]): + return + + input_act = node.args[0] + if not isinstance(input_act, Node) or not _is_float_tensor(input_act): + return + + input_qspec_map = {} + input_qspec_map[input_act] = quantization_config.input_activation + + if ( + len(node.args) > 3 + and isinstance(node.args[3], Node) + and _is_float_tensor(node.args[3]) + ): + input_qspec_map[node.args[3]] = SharedQuantizationSpec((input_act, node)) + + output_act_qspec = ( + SharedQuantizationSpec((input_act, node)) + if _is_float_tensor(node) + else None + ) + + if len(input_qspec_map) > 0 or output_act_qspec is not None: + node.meta[Q_ANNOTATION_KEY] = QuantizationAnnotation( + input_qspec_map=input_qspec_map, + output_qspec=output_act_qspec, + _annotated=True, + ) + + @register_annotator( [torch.ops.aten.sigmoid, torch.ops.aten.sigmoid.default], QnnConstants.OpSigmoid.op_name, diff --git a/backends/qualcomm/tests/models.py b/backends/qualcomm/tests/models.py index bbda847282f..e190828f06a 100644 --- a/backends/qualcomm/tests/models.py +++ b/backends/qualcomm/tests/models.py @@ -2201,6 +2201,15 @@ def forward(self, query_layer, key_layer, value_layer, attn_mask): return attn_output +class ScatterSrc(torch.nn.Module): + def __init__(self, dim=1): + super().__init__() + self.dim = dim + + def forward(self, data, index, src): + return torch.scatter(data, self.dim, index, src) + + class SelectCopy(torch.nn.Module): def __init__(self): super().__init__() diff --git a/backends/qualcomm/tests/test_qnn_delegate.py b/backends/qualcomm/tests/test_qnn_delegate.py index 95e53276066..0d96cce2e06 100644 --- a/backends/qualcomm/tests/test_qnn_delegate.py +++ b/backends/qualcomm/tests/test_qnn_delegate.py @@ -1930,6 +1930,52 @@ def test_qnn_backend_round(self): sample_input = (torch.randn([3, 4]),) self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_scatter_src(self): + test_comb = [ + { + QCOM_MODULE: [ScatterSrc(dim=1)], # noqa: F405 + QCOM_SAMPLE_INPUTS: [ + ( + torch.zeros(3, 5), + torch.tensor( + [[0, 1, 2, 3, 4], [4, 3, 2, 1, 0], [1, 0, 3, 4, 2]], + dtype=torch.int64, + ), + torch.rand(3, 5), + ), + ( + torch.zeros(3, 5, dtype=torch.float16), + torch.tensor( + [[0, 1, 2, 3, 4], [4, 3, 2, 1, 0], [1, 0, 3, 4, 2]], + dtype=torch.int64, + ), + torch.rand(3, 5, dtype=torch.float16), + ), + ], + }, + { + QCOM_MODULE: [ScatterSrc(dim=0)], # noqa: F405 + QCOM_SAMPLE_INPUTS: [ + ( + torch.zeros(3, 5), + torch.tensor( + [[2, 1, 0, 1, 2], [0, 2, 1, 2, 0], [1, 0, 2, 0, 1]], + dtype=torch.int64, + ), + torch.rand(3, 5), + ), + ], + }, + ] + + index = 0 + for comb in test_comb: + for module in comb[QCOM_MODULE]: + for sample_input in comb[QCOM_SAMPLE_INPUTS]: + with self.subTest(i=index): + index += 1 + self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_rsqrt(self): module = Rsqrt() # noqa: F405 sample_input = (torch.abs(torch.randn([3, 4])),) @@ -4722,6 +4768,45 @@ def test_qnn_backend_rsqrt(self): module = self.get_qdq_module(module, sample_input) self.lower_module_and_test_output(module, sample_input) + def test_qnn_backend_scatter_src(self): + test_comb = [ + { + QCOM_MODULE: [ScatterSrc(dim=1)], # noqa: F405 + QCOM_SAMPLE_INPUTS: [ + ( + torch.zeros(3, 5), + torch.tensor( + [[0, 1, 2, 3, 4], [4, 3, 2, 1, 0], [1, 0, 3, 4, 2]], + dtype=torch.int64, + ), + torch.rand(3, 5), + ), + ], + }, + { + QCOM_MODULE: [ScatterSrc(dim=0)], # noqa: F405 + QCOM_SAMPLE_INPUTS: [ + ( + torch.zeros(3, 5), + torch.tensor( + [[2, 1, 0, 1, 2], [0, 2, 1, 2, 0], [1, 0, 2, 0, 1]], + dtype=torch.int64, + ), + torch.rand(3, 5), + ), + ], + }, + ] + + index = 0 + for comb in test_comb: + for module in comb[QCOM_MODULE]: + for sample_input in comb[QCOM_SAMPLE_INPUTS]: + with self.subTest(i=index): + index += 1 + qdq_module = self.get_qdq_module(module, sample_input) + self.lower_module_and_test_output(qdq_module, sample_input) + def test_qnn_backend_sdpa(self): modules = [ ScaledDotProductAttention(), # noqa: F405 From 6f052fee6982d3a995654dd42477c4bf25a825f0 Mon Sep 17 00:00:00 2001 From: mcremon-meta <134334895+mcremon-meta@users.noreply.github.com> Date: Wed, 20 May 2026 00:12:08 -0700 Subject: [PATCH 69/91] Handle rank-changing views in FuseCascadedTransposeOrPermuteOps (#19539) Differential Revision: D104775245 Pull Request resolved: https://github.com/pytorch/executorch/pull/19539 --- .../fuse_cascaded_transpose_or_permute_ops.py | 130 +++++++- .../remove_permutes_around_elementwise_ops.py | 50 +-- .../test/test_permute_optimization_passes.py | 289 ++++++++++++++---- 3 files changed, 358 insertions(+), 111 deletions(-) diff --git a/backends/transforms/fuse_cascaded_transpose_or_permute_ops.py b/backends/transforms/fuse_cascaded_transpose_or_permute_ops.py index b8d6c75a174..f350120e7eb 100644 --- a/backends/transforms/fuse_cascaded_transpose_or_permute_ops.py +++ b/backends/transforms/fuse_cascaded_transpose_or_permute_ops.py @@ -20,7 +20,8 @@ class FuseCascadedTransposeOrPermuteOps(RemoveOrReplacePassInterface): """ Fuse a chain of transpose and permute ops into a single permute or a no-op. - Handles branches and chains permutes. + Handles branches and chains of permutes, including permute-view-permute + patterns where a squeeze/unsqueeze view sits between two permutes. """ transpose_or_permute_target = { @@ -28,20 +29,31 @@ class FuseCascadedTransposeOrPermuteOps(RemoveOrReplacePassInterface): exir_ops.edge.aten.permute_copy.default, } + _VIEW_OPS = { + exir_ops.edge.aten.view_copy.default, + exir_ops.edge.aten.view.default, + } + @property def targets(self) -> list[EdgeOpOverload]: return list(self.transpose_or_permute_target) def maybe_remove_or_replace(self, node: Node) -> bool: - # Fuse with the parent node if it's also a permute or a transpose. Since the - # pass interface traverses all ops in order the pass will properly fuse a chain - # of permutes. parent_node = get_arg(node, "input", Node) - if parent_node.target not in self.transpose_or_permute_target: - return False - input_of_parent = get_arg(parent_node, "input", Node) - # Compute combined effect of permutes. + # Case 1: Direct permute/transpose → permute/transpose + if parent_node.target in self.transpose_or_permute_target: + return self._fuse_direct(node, parent_node) + + # Case 2: permute → view_copy(squeeze/unsqueeze) → permute + if parent_node.target in self._VIEW_OPS: + return self._fuse_across_view(node, parent_node) + + return False + + def _fuse_direct(self, node: Node, parent_node: Node) -> bool: + """Fuse two adjacent permute/transpose ops.""" + input_of_parent = get_arg(parent_node, "input", Node) dims = list(range(node.meta["val"].ndim)) if parent_node.target == exir_ops.edge.aten.transpose_copy.int: @@ -54,7 +66,6 @@ def maybe_remove_or_replace(self, node: Node) -> bool: else: dims = get_permuted_dims(node, dims) - # If combined effect is identity replace the node with input. if dims == sorted(dims): node.replace_all_uses_with(input_of_parent) else: @@ -67,3 +78,104 @@ def maybe_remove_or_replace(self, node: Node) -> bool: node.replace_all_uses_with(new_permute) return True + + def _apply_view_to_dims( + self, dims: list[int], view_in_shape, view_out_shape + ) -> list[int] | None: + """Apply a squeeze or unsqueeze view to dimension mapping. + + Returns the updated dims, or None if the view cannot be mapped. + """ + if len(view_out_shape) == len(view_in_shape) + 1: + # unsqueeze: insert a new dim + index = self._find_extra_one(view_out_shape, view_in_shape) + if index == -1: + return None + dims = [x + 1 if x >= index else x for x in dims] + dims.insert(index, -1) # -1 marks the inserted dim + elif len(view_in_shape) == len(view_out_shape) + 1: + # squeeze: remove a dim + index = self._find_extra_one(view_in_shape, view_out_shape) + if index == -1: + return None + dims = list(dims) + del dims[index] + return dims + + def _fuse_across_view(self, node: Node, view_node: Node) -> bool: # noqa: C901 + """Fuse permute -> view(squeeze/unsqueeze) -> permute into a view_copy.""" + # view_node must have exactly one user (this permute node) + if len(view_node.users) != 1: + return False + # view_node's parent must be a permute/transpose + view_input = get_arg(view_node, "input", Node) + if view_input.target not in self.transpose_or_permute_target: + return False + # The view must be a squeeze or unsqueeze (rank differs by 1) + view_in_shape = view_input.meta["val"].shape + view_out_shape = view_node.meta["val"].shape + if abs(len(view_in_shape) - len(view_out_shape)) != 1: + return False + + # Get the input before the first permute + input_of_first_permute = get_arg(view_input, "input", Node) + + # Compute the combined effect on the original input dimensions + # Start with identity dims for the original input + original_ndim = input_of_first_permute.meta["val"].ndim + dims = list(range(original_ndim)) + + # Apply first permute + if view_input.target == exir_ops.edge.aten.transpose_copy.int: + dims = get_transposed_dims(view_input, dims) + else: + dims = get_permuted_dims(view_input, dims) + + # Apply the view (squeeze/unsqueeze) + dims = self._apply_view_to_dims(dims, view_in_shape, view_out_shape) + if dims is None: + return False + + # Apply second permute (node) + if node.target == exir_ops.edge.aten.transpose_copy.int: + node_dims = list(range(len(dims))) + node_dims = get_transposed_dims(node, node_dims) + dims = [dims[d] for d in node_dims] + elif node.target == exir_ops.edge.aten.permute_copy.default: + perm = get_arg(node, "dims") + dims = [dims[d] for d in perm] + else: + raise ValueError(f"Unexpected target: {node.target}") + + # Check if the combined effect (ignoring -1 inserted dims) is identity + real_dims = [d for d in dims if d != -1] + + if real_dims == sorted(real_dims): + # Combined permutations are identity — replace with view_copy + # (the only remaining effect is the squeeze/unsqueeze reshape) + output_shape = node.meta["val"].shape + if output_shape == input_of_first_permute.meta["val"].shape: + # Total no-op: replace with input + node.replace_all_uses_with(input_of_first_permute) + else: + with node.graph.inserting_before(node): + new_view = node.graph.call_function( + exir_ops.edge.aten.view_copy.default, + args=(input_of_first_permute, list(output_shape)), + ) + new_view.meta = node.meta + node.replace_all_uses_with(new_view) + return True + + return False + + @staticmethod + def _find_extra_one(longer: list[int], shorter: list[int]) -> int: + if len(longer) != len(shorter) + 1: + return -1 + for i in range(len(shorter)): + if longer[i] != shorter[i]: + if longer[i] == 1 and shorter[i:] == longer[i + 1 :]: + return i + return -1 + return len(shorter) if longer[-1] == 1 else -1 diff --git a/backends/transforms/remove_permutes_around_elementwise_ops.py b/backends/transforms/remove_permutes_around_elementwise_ops.py index 7d14301f232..eec6bdc4e08 100644 --- a/backends/transforms/remove_permutes_around_elementwise_ops.py +++ b/backends/transforms/remove_permutes_around_elementwise_ops.py @@ -12,7 +12,7 @@ import torch import torch.fx -from executorch.backends.transforms.permute_pass_utils import get_arg +from executorch.backends.transforms.permute_pass_utils import get_arg, set_arg from executorch.exir.dialects._ops import ops as exir_ops from executorch.exir.pass_base import ExportPass, PassResult @@ -106,11 +106,8 @@ def _check_squeeze_unsqueeze_view(self, node: torch.fx.Node) -> bool: return True if node.target not in self._VIEW_OPS: return False - if node.meta.get("val") is None: - return False inp = node.args[0] - if not isinstance(inp, torch.fx.Node) or inp.meta.get("val") is None: - return False + assert isinstance(inp, torch.fx.Node) in_shape = inp.meta["val"].shape out_shape = node.meta["val"].shape if len(out_shape) == len(in_shape) + 1: @@ -377,9 +374,9 @@ def _is_constant(self, node: torch.fx.Node) -> bool: def _get_node_rank(self, node: torch.fx.Node) -> int | None: """Return the tensor rank of a node's output, or None if unknown.""" val = node.meta.get("val") - if val is not None and hasattr(val, "shape"): - return len(val.shape) - return None + if val is None: + return None + return len(val.shape) @staticmethod def _is_pointwise(target) -> bool: @@ -432,10 +429,8 @@ def permute_subgraph(self, subgraph: Subgraph) -> None: # noqa: C901 node.update_arg(1, index) elif node.target in self._SQUEEZE_OPS: # squeeze dim is in input space (rank) - dim = cast(int, node.args[1]) - rank = len(node_start_perm) - index = dim if dim >= 0 else dim + rank - node.update_arg(1, node_start_perm[index]) + dim = get_arg(node, "dim", int) + set_arg(node, "dim", node_start_perm[dim]) # Skip incoming permutes. for inp, out in subgraph.edges_in: @@ -486,30 +481,16 @@ def permute_subgraph(self, subgraph: Subgraph) -> None: # noqa: C901 out.replace_all_uses_with(inp) def update_cat(self, node: torch.fx.Node, start_permute: list[int]) -> None: - if len(node.args) >= 2: - node.update_arg(1, start_permute[cast(int, node.args[1])]) - elif "dim" in node.kwargs: - node.update_kwarg("dim", start_permute[cast(int, node.kwargs["dim"])]) - else: - # Default cat dim is 0. - node.update_kwarg("dim", start_permute[0]) + dim = get_arg(node, "dim", int) + set_arg(node, "dim", start_permute[dim]) def update_mean_dim(self, node: torch.fx.Node, start_permute: list[int]) -> None: - if len(node.args) >= 2: - node.update_arg( - 1, [start_permute[dim] for dim in cast(list[int], node.args[1])] - ) - else: - node.update_kwarg( - "dim", - [start_permute[dim] for dim in cast(list[int], node.kwargs["dim"])], - ) + dims = get_arg(node, "dim") + set_arg(node, "dim", [start_permute[d] for d in cast(list[int], dims)]) def update_slice_copy(self, node: torch.fx.Node, start_permute: list[int]) -> None: - if len(node.args) >= 2: - node.update_arg(1, start_permute[cast(int, node.args[1])]) - else: - node.update_kwarg("dim", start_permute[cast(int, node.kwargs["dim"])]) + dim = get_arg(node, "dim", int) + set_arg(node, "dim", start_permute[dim]) def update_view_copy(self, node: torch.fx.Node, start_permute: list[int]) -> None: """Adjust view_copy shape arg after permute removal. @@ -517,11 +498,8 @@ def update_view_copy(self, node: torch.fx.Node, start_permute: list[int]) -> Non After removing the start permute, the view's input is in the original (un-permuted) layout. Recompute the view's target shape accordingly. """ - if node.meta.get("val") is None: - return inp = node.args[0] - if not isinstance(inp, torch.fx.Node) or inp.meta.get("val") is None: - return + assert isinstance(inp, torch.fx.Node) in_shape = inp.meta["val"].shape out_shape = node.meta["val"].shape diff --git a/backends/transforms/test/test_permute_optimization_passes.py b/backends/transforms/test/test_permute_optimization_passes.py index 7b56344ad2e..808a599f81f 100644 --- a/backends/transforms/test/test_permute_optimization_passes.py +++ b/backends/transforms/test/test_permute_optimization_passes.py @@ -122,15 +122,12 @@ def test_cascaded_permutes_multiple_users(self) -> None: permute1 = builder.call_operator( op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 3, 1]) ) - # permute2 reverses permute1 => identity permute2 = builder.call_operator( op=exir_ops.edge.aten.permute_copy.default, args=(permute1, [0, 3, 1, 2]) ) - # permute3: different permutation permute3 = builder.call_operator( op=exir_ops.edge.aten.permute_copy.default, args=(permute1, [0, 2, 1, 3]) ) - # permute4 -> permute5: chained permute4 = builder.call_operator( op=exir_ops.edge.aten.permute_copy.default, args=(permute1, [3, 2, 0, 1]) ) @@ -151,6 +148,168 @@ def test_cascaded_permutes_multiple_users(self) -> None: "FuseCascadedTransposeOrPermuteOps", ) + def test_permute_view_permute_fuse(self) -> None: + """permute_3D([0,2,1]) → view(unsqueeze) → permute_4D([0,2,3,1]) should + be replaced with a single view_copy (permutations cancel out).""" + builder = GraphBuilder() + x_data = torch.randn(1, 40, 18) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + v = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 18, 1, 40]) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v, [0, 2, 3, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = FuseCascadedTransposeOrPermuteOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + gm = result.graph_module + + self.assertEqual(count_node(gm, exir_ops.edge.aten.permute_copy.default), 0) + self.assertEqual(count_node(gm, exir_ops.edge.aten.view_copy.default), 1) + validate_numerics( + gm_before, + gm, + [x_data], + "FuseCascadedAcrossView", + ) + + def test_permute_view_squeeze_permute_fuse(self) -> None: + """permute_4D → view(squeeze) → permute_3D should fuse when + the combined permutation is identity.""" + builder = GraphBuilder() + x_data = torch.randn(1, 1, 40, 18) + x = builder.placeholder("x", x_data) + # NHWC-like permute + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 3, 1, 2]) + ) + # Squeeze dim 2 (size 1) + v = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 18, 40]) + ) + # Inverse 3D permute + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = FuseCascadedTransposeOrPermuteOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + gm = result.graph_module + + self.assertEqual(count_node(gm, exir_ops.edge.aten.permute_copy.default), 0) + validate_numerics( + gm_before, + gm, + [x_data], + "FuseCascadedSqueezeView", + ) + + def test_transpose_view_permute_fuse(self) -> None: + """transpose → view(unsqueeze) → permute should fuse when combined + permutations cancel out.""" + builder = GraphBuilder() + x_data = torch.randn(1, 40, 18) + x = builder.placeholder("x", x_data) + t1 = builder.call_operator( + op=exir_ops.edge.aten.transpose_copy.int, args=(x, 1, 2) + ) + v = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(t1, [1, 18, 1, 40]) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v, [0, 2, 3, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = FuseCascadedTransposeOrPermuteOps() + result = cast(PassResult, p(original)) + self.assertTrue(result.modified) + gm = result.graph_module + + self.assertEqual(count_node(gm, exir_ops.edge.aten.permute_copy.default), 0) + self.assertEqual(count_node(gm, exir_ops.edge.aten.transpose_copy.int), 0) + validate_numerics( + gm_before, + gm, + [x_data], + "FuseTransposeViewPermute", + ) + + def test_no_fuse_non_squeeze_view(self) -> None: + """permute → view (not squeeze/unsqueeze, changes shape) → permute + should NOT fuse.""" + builder = GraphBuilder() + x_data = torch.randn(1, 6, 8) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + # This view reshapes 8x6 → 4x12, NOT a squeeze/unsqueeze + v = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 4, 12]) + ) + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v, [0, 2, 1]) + ) + builder.output([p2]) + original = builder.get_graph_module() + + p = FuseCascadedTransposeOrPermuteOps() + result = cast(PassResult, p(original)) + # The view is not a squeeze/unsqueeze so cross-view fusion should not fire + self.assertFalse(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 2 + ) + + def test_no_fuse_non_cancelling_across_view(self) -> None: + """permute → view(unsqueeze) → permute where combined permutations + are NOT identity should NOT be fused away.""" + builder = GraphBuilder() + x_data = torch.randn(1, 40, 18) + x = builder.placeholder("x", x_data) + p1 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(x, [0, 2, 1]) + ) + v = builder.call_operator( + op=exir_ops.edge.aten.view_copy.default, args=(p1, [1, 18, 1, 40]) + ) + # This permute does NOT cancel with p1 + p2 = builder.call_operator( + op=exir_ops.edge.aten.permute_copy.default, args=(v, [0, 1, 3, 2]) + ) + builder.output([p2]) + original = builder.get_graph_module() + gm_before = copy.deepcopy(original) + + p = FuseCascadedTransposeOrPermuteOps() + result = cast(PassResult, p(original)) + # Should NOT have removed both permutes + self.assertFalse(result.modified) + self.assertEqual( + count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 2 + ) + validate_numerics( + gm_before, + result.graph_module, + [x_data], + "FuseNonCancellingAcrossView", + ) + # ────────────────────────────────────────────────────────────────────── # Tests for FuseCascadedViewOps @@ -250,7 +409,6 @@ def test_permute3_view4_chains(self) -> None: self.assertEqual(count_node(gm, exir_ops.edge.aten.view_copy.default), 2) self.assertEqual(count_node(gm, exir_ops.edge.aten.permute_copy.default), 2) - # Verify order: views before permutes targets = get_compute_nodes(gm) view_indices = [ i @@ -350,7 +508,6 @@ def test_negative_not_squeeze_like(self) -> None: count_node(result.graph_module, exir_ops.edge.aten.permute_copy.default), 2, ) - # Order unchanged: view, permute, view, permute targets = get_compute_nodes(result.graph_module) self.assertEqual(targets[0], exir_ops.edge.aten.view_copy.default) self.assertEqual(targets[1], exir_ops.edge.aten.permute_copy.default) @@ -383,6 +540,67 @@ def test_replace_nop_transpose_with_view_float(self) -> None: gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" ) + def test_replace_nop_transpose_with_view_int(self) -> None: + x = torch.randint(low=0, high=100, size=(2, 1, 5), dtype=torch.int64) + gm = single_op_builder( + placeholders=(x,), + op=exir_ops.edge.aten.transpose_copy.int, + args=(x, 1, 0), + ) + gm_before = copy.deepcopy(gm) + + p = ReplaceNopTransposeOrPermuteWithViewPass() + result = cast(PassResult, p(gm)) + self.assertTrue(result.modified) + gm_after = result.graph_module + self.assertEqual(count_node(gm_after, exir_ops.edge.aten.transpose_copy.int), 0) + self.assertEqual(count_node(gm_after, exir_ops.edge.aten.view_copy.default), 1) + validate_numerics( + gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" + ) + + def test_replace_nop_permute_5d(self) -> None: + x = torch.randn(3, 1, 3, 1, 4) + gm = single_op_builder( + placeholders=(x,), + op=exir_ops.edge.aten.permute_copy.default, + args=(x, [0, 2, 4, 1, 3]), + ) + gm_before = copy.deepcopy(gm) + + p = ReplaceNopTransposeOrPermuteWithViewPass() + result = cast(PassResult, p(gm)) + self.assertTrue(result.modified) + gm_after = result.graph_module + self.assertEqual( + count_node(gm_after, exir_ops.edge.aten.permute_copy.default), 0 + ) + self.assertEqual(count_node(gm_after, exir_ops.edge.aten.view_copy.default), 1) + validate_numerics( + gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" + ) + + def test_replace_nop_permute_3d(self) -> None: + x = torch.randn(1, 3, 4) + gm = single_op_builder( + placeholders=(x,), + op=exir_ops.edge.aten.permute_copy.default, + args=(x, [1, 2, 0]), + ) + gm_before = copy.deepcopy(gm) + + p = ReplaceNopTransposeOrPermuteWithViewPass() + result = cast(PassResult, p(gm)) + self.assertTrue(result.modified) + gm_after = result.graph_module + self.assertEqual( + count_node(gm_after, exir_ops.edge.aten.permute_copy.default), 0 + ) + self.assertEqual(count_node(gm_after, exir_ops.edge.aten.view_copy.default), 1) + validate_numerics( + gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" + ) + # ────────────────────────────────────────────────────────────────────── # Tests for RemovePermutesAroundElementwiseOps cross-view handling @@ -780,64 +998,3 @@ def test_permute_unsqueeze_copy_neg_dim_mul_squeeze_copy_permute(self) -> None: [x_data], "permute_unsqueeze_copy_neg_dim_mul_squeeze_copy_permute", ) - - def test_replace_nop_transpose_with_view_int(self) -> None: - x = torch.randint(low=0, high=100, size=(2, 1, 5), dtype=torch.int64) - gm = single_op_builder( - placeholders=(x,), - op=exir_ops.edge.aten.transpose_copy.int, - args=(x, 1, 0), - ) - gm_before = copy.deepcopy(gm) - - p = ReplaceNopTransposeOrPermuteWithViewPass() - result = cast(PassResult, p(gm)) - self.assertTrue(result.modified) - gm_after = result.graph_module - self.assertEqual(count_node(gm_after, exir_ops.edge.aten.transpose_copy.int), 0) - self.assertEqual(count_node(gm_after, exir_ops.edge.aten.view_copy.default), 1) - validate_numerics( - gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" - ) - - def test_replace_nop_permute_5d(self) -> None: - x = torch.randn(3, 1, 3, 1, 4) - gm = single_op_builder( - placeholders=(x,), - op=exir_ops.edge.aten.permute_copy.default, - args=(x, [0, 2, 4, 1, 3]), - ) - gm_before = copy.deepcopy(gm) - - p = ReplaceNopTransposeOrPermuteWithViewPass() - result = cast(PassResult, p(gm)) - self.assertTrue(result.modified) - gm_after = result.graph_module - self.assertEqual( - count_node(gm_after, exir_ops.edge.aten.permute_copy.default), 0 - ) - self.assertEqual(count_node(gm_after, exir_ops.edge.aten.view_copy.default), 1) - validate_numerics( - gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" - ) - - def test_replace_nop_permute_3d(self) -> None: - x = torch.randn(1, 3, 4) - gm = single_op_builder( - placeholders=(x,), - op=exir_ops.edge.aten.permute_copy.default, - args=(x, [1, 2, 0]), - ) - gm_before = copy.deepcopy(gm) - - p = ReplaceNopTransposeOrPermuteWithViewPass() - result = cast(PassResult, p(gm)) - self.assertTrue(result.modified) - gm_after = result.graph_module - self.assertEqual( - count_node(gm_after, exir_ops.edge.aten.permute_copy.default), 0 - ) - self.assertEqual(count_node(gm_after, exir_ops.edge.aten.view_copy.default), 1) - validate_numerics( - gm_before, gm_after, [x], "ReplaceNopTransposeOrPermuteWithViewPass" - ) From 885ebb9588bf297f85964e0a1a14d68e21ab81df Mon Sep 17 00:00:00 2001 From: jethroqti Date: Wed, 20 May 2026 16:12:22 +0800 Subject: [PATCH 70/91] Qualcomm AI Engine Direct - heap profiling at runtime with HTP backend (#19224) Summary: Heap profiling at runtime with HTP backend on Android platforms. DSP heap profiling is available for QnnContext_createFromBinary use-cases. It captures total DSP heap usage at two checkpoints: - Before the first context is created (before_context_created) - After the last context is freed (after_context_freed) The difference between the two values represents heap consumed during context execution. The value after freeing is typically equal to or greater than before creation. Test plan: python backends/qualcomm/tests/test_qnn_delegate.py TestQNNQuantizedUtils.test_qnn_backend_runtime_option_heap_profile -b build-android -H ${HOST} -s ${SN} -m ${SOC_MODEL} --- backends/qualcomm/debugger/README.md | 78 ++++++- backends/qualcomm/export_utils.py | 5 + .../qualcomm/runtime/QnnBackendOptions.cpp | 8 + backends/qualcomm/runtime/QnnBackendOptions.h | 13 ++ backends/qualcomm/runtime/QnnExecuTorch.h | 1 + .../qualcomm/runtime/QnnExecuTorchBackend.cpp | 12 ++ .../qualcomm/runtime/QnnExecuTorchBackend.h | 1 + .../runtime/backends/QnnBackendFactory.cpp | 3 +- .../runtime/backends/QnnContextCommon.cpp | 73 ++++++- .../runtime/backends/QnnContextCommon.h | 23 +- .../qualcomm/runtime/backends/QnnProfiler.cpp | 196 +++++++++++++----- .../qualcomm/runtime/backends/QnnProfiler.h | 8 + .../runtime/backends/gpu/GpuContext.cpp | 8 +- .../runtime/backends/htp/HtpContext.h | 15 +- .../backends/htp/HtpContextCustomConfig.h | 11 +- .../htp/host/HtpContextCustomConfig.cpp | 1 + .../htp/target/HtpContextCustomConfig.cpp | 11 + .../backends/ir/host/QnnDlcManager.cpp | 3 +- .../runtime/backends/lpai/LpaiContext.cpp | 8 +- backends/qualcomm/tests/test_qnn_delegate.py | 73 +++++++ backends/qualcomm/tests/utils.py | 37 ++++ .../executor_runner/qnn_executor_runner.cpp | 21 +- 22 files changed, 539 insertions(+), 70 deletions(-) diff --git a/backends/qualcomm/debugger/README.md b/backends/qualcomm/debugger/README.md index bda3937bc53..8300920d1d5 100644 --- a/backends/qualcomm/debugger/README.md +++ b/backends/qualcomm/debugger/README.md @@ -78,7 +78,7 @@ qairt_visualizer.view(reports=[optrace, qhas]) - `model`: Path to your QNN model file (e.g., `path_to_your_model.dlc`). - **`reports`**: List of report file paths, including the optrace (`optrace.json`) and QHAS (`optrace_qnn_htp_analysis_summary.json`). -Note: Files ending with `.bin ` do not support graph visualization in qairt_visualizer. +Note: Files ending with `.bin` do not support graph visualization in qairt_visualizer. ## Demo @@ -266,3 +266,79 @@ python -m examples.qualcomm.util_scripts.qnn_intermediate_debugger_demo -b build 3. Does not support graphs with partitions (partial delegation). 4. Does not support LLM models. 5. Does not support graphs with multiple methods. + + +## ExecuTorch QNN HTP Heap Profiling + +Measures DSP memory usage when using context binary models on the HTP backend. + +### Introduction + +DSP heap profiling is available for `QnnContext_createFromBinary` use-cases. It captures total DSP heap usage at two checkpoints: + +- **Before the first context is created** (`before_context_created`) +- **After the last context is freed** (`after_context_freed`) + +The difference between the two values represents heap consumed during context execution. The value after freeing is typically equal to or greater than before creation. + +### Instructions + +#### Run the example test + +```bash +python backends/qualcomm/tests/test_qnn_delegate.py \ + TestQNNQuantizedUtils.test_qnn_backend_runtime_option_heap_profile \ + -b build-android -H ${HOST} -s ${SN} -m ${SOC_MODEL} +``` + +See [test_qnn_delegate.py](../tests/test_qnn_delegate.py) for the full test implementation. + +#### Setting + +```python +from executorch.backends.qualcomm.utils.utils import generate_htp_compiler_spec +from executorch.backends.qualcomm.utils.utils import generate_qnn_executorch_compiler_spec + +backend_options = generate_htp_compiler_spec( + use_multi_contexts=True, +) + +compiler_specs = generate_qnn_executorch_compiler_spec( + soc_model=self.chipset_table[TestQNN.soc_model], + backend_options=backend_options, + profile_level=2, +) + +# ... + +self.verify_output( + module, + sample_input, + exec_prog, + save_heap_result=True, +) +``` + +#### Output file format + +The result is written to a text file (default: `htp_heap_usage.txt`) with two lines: + +``` +DSP:before_context_created (bytes), +DSP:after_context_freed (bytes), +``` + +#### Reference result + +Measured on SM8850. A difference of 0 means no additional heap is consumed during context binary execution. + +```console +First value (before_context_created): 928212 bytes +Second value (after_context_freed): 928212 bytes +difference: 0.00 bytes +``` + +### Limitations + +1. Only supported HTP backend on Android and QNX platforms. +2. By enabling this feature, initialization and cleanup time might be impacted. diff --git a/backends/qualcomm/export_utils.py b/backends/qualcomm/export_utils.py index 9c86d2d6640..1bca168ad3f 100644 --- a/backends/qualcomm/export_utils.py +++ b/backends/qualcomm/export_utils.py @@ -493,6 +493,11 @@ def pull_debug_output(self, etdump_path, debug_ouput_path, callback=None): if callback: callback() + def pull_heap_output(self, src_file_path, dst_folder, callback=None): + self._adb(["pull", src_file_path, dst_folder]) + if callback: + callback() + def build_executorch_binary( model: torch.nn.Module, # noqa: B006 diff --git a/backends/qualcomm/runtime/QnnBackendOptions.cpp b/backends/qualcomm/runtime/QnnBackendOptions.cpp index 0eb678b45e2..2117932bddc 100644 --- a/backends/qualcomm/runtime/QnnBackendOptions.cpp +++ b/backends/qualcomm/runtime/QnnBackendOptions.cpp @@ -52,6 +52,14 @@ template QnnExecuTorchProfileLevel get_option( QnnExecuTorchProfileLevel, const char*); +executorch::runtime::Error get_runtime_option( + const char* key, + executorch::runtime::BackendOption& backend_option) { + std::strncpy(backend_option.key, key, runtime::kMaxOptionKeyLength); + backend_option.key[runtime::kMaxOptionKeyLength - 1] = '\0'; + return get_option(QNN_BACKEND, backend_option); +} + } // namespace qnn } // namespace backends } // namespace executorch diff --git a/backends/qualcomm/runtime/QnnBackendOptions.h b/backends/qualcomm/runtime/QnnBackendOptions.h index c366755edd0..93e0de1fb61 100644 --- a/backends/qualcomm/runtime/QnnBackendOptions.h +++ b/backends/qualcomm/runtime/QnnBackendOptions.h @@ -37,6 +37,19 @@ struct RuntimeOption { template T get_option(T aot_option, const char* aot_key); +/** + * @brief + * Get the backend option. + * This method checks runtime option only. + * + * @param key The key of runtime option. + * @param backend_option The backend_option to be restored in runtime. + */ + +executorch::runtime::Error get_runtime_option( + const char* key, + executorch::runtime::BackendOption& backend_option); + } // namespace qnn } // namespace backends } // namespace executorch diff --git a/backends/qualcomm/runtime/QnnExecuTorch.h b/backends/qualcomm/runtime/QnnExecuTorch.h index 8a0ee3fed4b..9699e5b4735 100644 --- a/backends/qualcomm/runtime/QnnExecuTorch.h +++ b/backends/qualcomm/runtime/QnnExecuTorch.h @@ -25,6 +25,7 @@ #define QNN_RUNTIME_LPAI_CLIENT_PERF_TYPE "qnn_runtime_lpai_client_perf_type" #define QNN_RUNTIME_LPAI_AFFINITY "qnn_runtime_lpai_affinity" #define QNN_RUNTIME_LPAI_CORE_SELECTION "qnn_runtime_lpai_core_selection" +#define QNN_RUNTIME_HEAP_PROFILING_PATH "qnn_runtime_heap_profiling_path" #ifdef __cplusplus extern "C" { diff --git a/backends/qualcomm/runtime/QnnExecuTorchBackend.cpp b/backends/qualcomm/runtime/QnnExecuTorchBackend.cpp index 33cca5350d9..fdd70c0a8db 100644 --- a/backends/qualcomm/runtime/QnnExecuTorchBackend.cpp +++ b/backends/qualcomm/runtime/QnnExecuTorchBackend.cpp @@ -245,6 +245,13 @@ executorch::runtime::Error QnnExecuTorchBackend::set_option( qnn_runtime_lpai_core_selection_.value = *val; qnn_runtime_lpai_core_selection_.is_set = true; } + } else if (strcmp(option.key, QNN_RUNTIME_HEAP_PROFILING_PATH) == 0) { + if (auto* val = + std::get_if>( + &option.value)) { + qnn_runtime_heap_profiling_path_.value = *val; + qnn_runtime_heap_profiling_path_.is_set = true; + } } else { ET_LOG( Error, @@ -268,6 +275,7 @@ executorch::runtime::Error QnnExecuTorchBackend::get_option( executorch::runtime::BackendOptionContext& context, executorch::runtime::Span& backend_options) { + std::lock_guard guard(runtime_option_mutex_); size_t matches = backend_options.size(); for (size_t i = 0; i < backend_options.size(); ++i) { // Set the value to what was stored by set_option @@ -303,6 +311,10 @@ executorch::runtime::Error QnnExecuTorchBackend::get_option( strcmp(backend_options[i].key, QNN_RUNTIME_LPAI_CORE_SELECTION) == 0 && qnn_runtime_lpai_core_selection_.is_set) { backend_options[i].value = qnn_runtime_lpai_core_selection_.value; + } else if ( + strcmp(backend_options[i].key, QNN_RUNTIME_HEAP_PROFILING_PATH) == 0 && + qnn_runtime_heap_profiling_path_.is_set) { + backend_options[i].value = qnn_runtime_heap_profiling_path_.value; } else { // either runtime never called set_option or key does not exist matches--; diff --git a/backends/qualcomm/runtime/QnnExecuTorchBackend.h b/backends/qualcomm/runtime/QnnExecuTorchBackend.h index 942e61e2267..e3548c8752b 100644 --- a/backends/qualcomm/runtime/QnnExecuTorchBackend.h +++ b/backends/qualcomm/runtime/QnnExecuTorchBackend.h @@ -71,6 +71,7 @@ class QnnExecuTorchBackend final RuntimeOption qnn_runtime_lpai_client_perf_type_{false, 0}; RuntimeOption qnn_runtime_lpai_affinity_{false, 0}; RuntimeOption qnn_runtime_lpai_core_selection_{false, 0}; + RuntimeOption qnn_runtime_heap_profiling_path_{false, {}}; }; } // namespace qnn diff --git a/backends/qualcomm/runtime/backends/QnnBackendFactory.cpp b/backends/qualcomm/runtime/backends/QnnBackendFactory.cpp index fa2008befd5..4e819a43121 100644 --- a/backends/qualcomm/runtime/backends/QnnBackendFactory.cpp +++ b/backends/qualcomm/runtime/backends/QnnBackendFactory.cpp @@ -71,7 +71,8 @@ std::unique_ptr QnnBackendFactory::Create( qnn_device_ptr, backend_params->qnn_backend_cache_ptr_.get(), htp_options, - qnn_dlc_manager); + qnn_dlc_manager, + get_option(options->profile_level(), QNN_RUNTIME_PROFILE_LEVEL)); backend_params->qnn_graph_ptr_ = std::make_unique( implementation_ptr, diff --git a/backends/qualcomm/runtime/backends/QnnContextCommon.cpp b/backends/qualcomm/runtime/backends/QnnContextCommon.cpp index e16a173db6c..e81f92a8003 100644 --- a/backends/qualcomm/runtime/backends/QnnContextCommon.cpp +++ b/backends/qualcomm/runtime/backends/QnnContextCommon.cpp @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. */ +#include #include #include @@ -13,12 +14,46 @@ namespace executorch { namespace backends { namespace qnn { +std::mutex QnnContext::htp_context_mutex_; +int QnnContext::htp_context_count_{0}; + +void QnnContext::WriteHeapProfile() { + executorch::runtime::BackendOption backend_option; + std::string heap_profiling_path; + if (get_runtime_option(QNN_RUNTIME_HEAP_PROFILING_PATH, backend_option) == + Error::Ok) { + auto* arr = std::get_if>( + &backend_option.value); + if (arr) { + heap_profiling_path = arr->data(); + } + } + Qnn_ErrorHandle_t error_profile = + qnn_profiler_->ProfileDataToFile(heap_profiling_path); + if (error_profile != QNN_SUCCESS) { + QNN_EXECUTORCH_LOG_ERROR( + "Failed to profile. Cannot get profile from handle. Error %d", + QNN_GET_ERROR_CODE(error_profile)); + } +} + QnnContext::~QnnContext() { const QnnInterface& qnn_interface = implementation_->GetQnnInterface(); Qnn_ErrorHandle_t error = QNN_SUCCESS; + if (handle_ != nullptr) { QNN_EXECUTORCH_LOG_INFO("Destroy Qnn context"); - error = qnn_interface.qnn_context_free(handle_, /*profile=*/nullptr); + + bool do_heap_profile = false; + { + std::lock_guard lock(htp_context_mutex_); + if (is_htp_backend_ && htp_context_count_ > 0 && need_to_profile_) { + --htp_context_count_; + do_heap_profile = (htp_context_count_ == 0); + } + } + error = qnn_interface.qnn_context_free( + handle_, do_heap_profile ? qnn_profiler_->GetHandle() : nullptr); if (error != QNN_SUCCESS) { QNN_EXECUTORCH_LOG_ERROR( "Failed to free QNN " @@ -26,6 +61,8 @@ QnnContext::~QnnContext() { "ID %u, error %d", qnn_interface.GetBackendId(), QNN_GET_ERROR_CODE(error)); + } else if (do_heap_profile) { + WriteHeapProfile(); } handle_ = nullptr; } @@ -45,21 +82,51 @@ Error QnnContext::Configure() { if (cache_->GetCacheState() == QnnBackendCache::DESERIALIZE) { const QnnExecuTorchContextBinary& qnn_context_blob = cache_->GetQnnContextBlob(); + /* + Total DSP heap usage can be measured in two conditions, first context + creation and last context free. By the QNN documentation, we need to insert + profileHandle in qnn_context_create_from_binary when creating first context + and closing last context. + + Limitations are two: + 1.Only supported on Android and QNX platforms. + 2.By enabling this feature initialization and cleanup time might be + impacted. + */ + + bool do_heap_profile = false; + { + std::lock_guard lock(htp_context_mutex_); + do_heap_profile = + is_htp_backend_ && (htp_context_count_ == 0) && need_to_profile_; + if (is_htp_backend_) { + ++htp_context_count_; + } + } error = qnn_interface.qnn_context_create_from_binary( backend_->GetHandle(), device_->GetHandle(), - temp_context_config.empty() ? nullptr : temp_context_config.data(), + (temp_context_config.empty() ? nullptr : temp_context_config.data()), static_cast(qnn_context_blob.buffer), qnn_context_blob.nbytes, &handle_, - /*profile=*/nullptr); + do_heap_profile ? qnn_profiler_->GetHandle() : nullptr); if (error != QNN_SUCCESS) { QNN_EXECUTORCH_LOG_ERROR( "Can't create context from " "binary. Error %d.", QNN_GET_ERROR_CODE(error)); + // Rollback the count since context creation failed + { + std::lock_guard lock(htp_context_mutex_); + if (is_htp_backend_ && htp_context_count_ > 0) { + --htp_context_count_; + } + } return Error::Internal; + } else if (do_heap_profile) { + WriteHeapProfile(); } } else if ( cache_->GetCacheState() == QnnBackendCache::SERIALIZE || diff --git a/backends/qualcomm/runtime/backends/QnnContextCommon.h b/backends/qualcomm/runtime/backends/QnnContextCommon.h index 7d507a4a50c..c0351b857b7 100644 --- a/backends/qualcomm/runtime/backends/QnnContextCommon.h +++ b/backends/qualcomm/runtime/backends/QnnContextCommon.h @@ -13,7 +13,10 @@ #include #include +#include + #include +#include namespace executorch { namespace backends { @@ -28,13 +31,22 @@ class QnnContext { QnnBackend* backend, QnnDevice* device, QnnBackendCache* cache, - QnnDlcManager* qnn_dlc_manager) + QnnDlcManager* qnn_dlc_manager, + const QnnExecuTorchProfileLevel& profile_level) : handle_(nullptr), implementation_(implementation), backend_(backend), device_(device), cache_(cache), - qnn_dlc_manager_(qnn_dlc_manager) {} + qnn_dlc_manager_(qnn_dlc_manager), + is_htp_backend_( + implementation->GetQnnInterface().GetBackendId() == + QNN_BACKEND_ID_HTP), + need_to_profile_( + profile_level != QnnExecuTorchProfileLevel::kProfileOff) { + qnn_profiler_ = + std::make_unique(implementation_, backend_, profile_level); + } virtual ~QnnContext(); @@ -73,6 +85,7 @@ class QnnContext { }; private: + void WriteHeapProfile(); Qnn_ContextHandle_t handle_; QnnImplementation* implementation_; QnnBackend* backend_; @@ -80,6 +93,12 @@ class QnnContext { QnnBackendCache* cache_; QnnContextCustomProtocol qnn_context_custom_protocol_; QnnDlcManager* qnn_dlc_manager_; + + std::unique_ptr qnn_profiler_; + bool is_htp_backend_; + bool need_to_profile_; + static std::mutex htp_context_mutex_; + static int htp_context_count_; }; } // namespace qnn } // namespace backends diff --git a/backends/qualcomm/runtime/backends/QnnProfiler.cpp b/backends/qualcomm/runtime/backends/QnnProfiler.cpp index b4650b30796..195c967a674 100644 --- a/backends/qualcomm/runtime/backends/QnnProfiler.cpp +++ b/backends/qualcomm/runtime/backends/QnnProfiler.cpp @@ -8,10 +8,34 @@ #include +#include +#include + namespace executorch { namespace backends { namespace qnn { +#define DEFINE_HEAP_BEFORE_CREATION "DSP:before_context_created" +#define DEFINE_HEAP_AFTER_FREED "DSP:after_context_freed" + +namespace { +const char* get_event_unit(QnnProfile_EventUnit_t unit) { + switch (unit) { + case QNN_PROFILE_EVENTUNIT_MICROSEC: + return " (us)"; + case QNN_PROFILE_EVENTUNIT_BYTES: + return " (bytes)"; + case QNN_PROFILE_EVENTUNIT_COUNT: + return " (count)"; + case QNN_PROFILE_EVENTUNIT_BACKEND: + // cycle unit is default appeared + case QNN_PROFILE_EVENTUNIT_CYCLES: + default: + return ""; + } +} +} // namespace + QnnProfile::QnnProfile( QnnImplementation* implementation, QnnBackend* backend, @@ -71,36 +95,36 @@ QnnProfile::QnnProfile( } } +Qnn_ErrorHandle_t QnnProfile::FetchEvents( + const QnnProfile_EventId_t** events_ptr, + std::uint32_t* num_events) { + if (handle_ == nullptr) { + QNN_EXECUTORCH_LOG_WARN("Profile handle is null, skipping FetchEvents"); + *num_events = 0; + return QNN_SUCCESS; + } + const QnnInterface& qnn_interface = implementation_->GetQnnInterface(); + Qnn_ErrorHandle_t error = + qnn_interface.qnn_profile_get_events(handle_, events_ptr, num_events); + if (error != QNN_SUCCESS) { + QNN_EXECUTORCH_LOG_ERROR( + "Failed to get profile events: %d", QNN_GET_ERROR_CODE(error)); + } + return error; +} + Qnn_ErrorHandle_t QnnProfile::ProfileData( executorch::runtime::EventTracer* event_tracer) { - const QnnInterface& qnn_interface = implementation_->GetQnnInterface(); const QnnProfile_EventId_t* events_ptr = nullptr; - const QnnProfile_EventId_t* sub_events_ptr = nullptr; std::uint32_t num_events = 0; - std::uint32_t num_sub_events = 0; - Qnn_ErrorHandle_t error = - qnn_interface.qnn_profile_get_events(handle_, &events_ptr, &num_events); + Qnn_ErrorHandle_t error = FetchEvents(&events_ptr, &num_events); if (error != QNN_SUCCESS) { QNN_EXECUTORCH_LOG_ERROR( - "ProfileData failed to get events: %d", QNN_GET_ERROR_CODE(error)); + "Failed to profile data in function FetchEvents: %d", + QNN_GET_ERROR_CODE(error)); return error; } - - auto get_unit = [](QnnProfile_EventUnit_t unit) { - switch (unit) { - case QNN_PROFILE_EVENTUNIT_MICROSEC: - return " (us)"; - case QNN_PROFILE_EVENTUNIT_BYTES: - return " (bytes)"; - case QNN_PROFILE_EVENTUNIT_COUNT: - return " (count)"; - case QNN_PROFILE_EVENTUNIT_BACKEND: - // cycle unit is default appeared - case QNN_PROFILE_EVENTUNIT_CYCLES: - default: - return ""; - } - }; + const QnnInterface& qnn_interface = implementation_->GetQnnInterface(); QnnProfile_EventData_t event_data; for (std::uint32_t i = 0; i < num_events; ++i) { error = @@ -115,7 +139,7 @@ Qnn_ErrorHandle_t QnnProfile::ProfileData( } // add events for other important metrics, e.g. RPC execution time std::string identifier = - std::string(event_data.identifier) + get_unit(event_data.unit); + std::string(event_data.identifier) + get_event_unit(event_data.unit); executorch::runtime::event_tracer_log_profiling_delegate( event_tracer, identifier.c_str(), @@ -125,48 +149,114 @@ Qnn_ErrorHandle_t QnnProfile::ProfileData( event_data.value); // Check an event's sub events only if it relates to graph execution time // (and its sub events are the individual op executions): - if (backend_->IsProfileEventTypeParentOfNodeTime(event_data.type)) { - error = qnn_interface.qnn_profile_get_sub_events( - events_ptr[i], &sub_events_ptr, &num_sub_events); + if (!backend_->IsProfileEventTypeParentOfNodeTime(event_data.type)) { + continue; + } + const QnnProfile_EventId_t* sub_events_ptr = nullptr; + std::uint32_t num_sub_events = 0; + error = qnn_interface.qnn_profile_get_sub_events( + events_ptr[i], &sub_events_ptr, &num_sub_events); + if (error != QNN_SUCCESS) { + QNN_EXECUTORCH_LOG_ERROR( + "ProfileData failed to get sub events " + "for event %d: %d", + i, + QNN_GET_ERROR_CODE(error)); + return error; + } + + QnnProfile_EventData_t sub_event_data; + for (std::uint32_t j = 0; j < num_sub_events; ++j) { + error = qnn_interface.qnn_profile_get_event_data( + sub_events_ptr[j], &sub_event_data); if (error != QNN_SUCCESS) { QNN_EXECUTORCH_LOG_ERROR( - "ProfileData failed to get sub events " - "for event %d: %d", + "ProfileData failed to get sub " + "event data for sub event %d of event %d: %d", + j, i, QNN_GET_ERROR_CODE(error)); return error; } - - QnnProfile_EventData_t sub_event_data; - for (std::uint32_t j = 0; j < num_sub_events; ++j) { - error = qnn_interface.qnn_profile_get_event_data( - sub_events_ptr[j], &sub_event_data); - if (error != QNN_SUCCESS) { - QNN_EXECUTORCH_LOG_ERROR( - "ProfileData failed to get sub " - "event data for sub event %d of event %d: %d", - j, - i, - QNN_GET_ERROR_CODE(error)); - return error; - } - if (sub_event_data.type == QNN_PROFILE_EVENTTYPE_NODE && - (sub_event_data.unit == QNN_PROFILE_EVENTUNIT_MICROSEC || - sub_event_data.unit == QNN_PROFILE_EVENTUNIT_CYCLES)) { - executorch::runtime::event_tracer_log_profiling_delegate( - event_tracer, - sub_event_data.identifier, - /*delegate_debug_id=*/ - static_cast(-1), - 0, - sub_event_data.value); - } + if (sub_event_data.type == QNN_PROFILE_EVENTTYPE_NODE && + (sub_event_data.unit == QNN_PROFILE_EVENTUNIT_MICROSEC || + sub_event_data.unit == QNN_PROFILE_EVENTUNIT_CYCLES)) { + executorch::runtime::event_tracer_log_profiling_delegate( + event_tracer, + sub_event_data.identifier, + /*delegate_debug_id=*/ + static_cast(-1), + 0, + sub_event_data.value); } } } return error; } +Qnn_ErrorHandle_t QnnProfile::ProfileDataToFile( + const std::string& profile_filename) { + if (handle_ == nullptr) { + QNN_EXECUTORCH_LOG_WARN( + "Profile handle is null, skipping ProfileDataToFile"); + return QNN_SUCCESS; + } + if (profile_filename.empty()) { + QNN_EXECUTORCH_LOG_WARN( + "Heap profiling path is empty. Please provide profiling filename from runtime option."); + return QNN_SUCCESS; + } + const QnnProfile_EventId_t* events_ptr = nullptr; + std::uint32_t num_events = 0; + Qnn_ErrorHandle_t error = FetchEvents(&events_ptr, &num_events); + if (error != QNN_SUCCESS) { + QNN_EXECUTORCH_LOG_ERROR( + "Failed to profile data in function FetchEvents: %d", + QNN_GET_ERROR_CODE(error)); + return error; + } + const QnnInterface& qnn_interface = implementation_->GetQnnInterface(); + QnnProfile_EventData_t event_data; + std::uint32_t count_num_events = 0; + for (std::uint32_t i = 0; i < num_events; ++i) { + error = + qnn_interface.qnn_profile_get_event_data(events_ptr[i], &event_data); + if (error != QNN_SUCCESS) { + QNN_EXECUTORCH_LOG_ERROR( + "ProfileData failed to get event data " + "for event %d: %d", + i, + QNN_GET_ERROR_CODE(error)); + return error; + } + + std::ios_base::openmode open_mode = std::ios::app; + if (strcmp(event_data.identifier, DEFINE_HEAP_BEFORE_CREATION) == 0) { + open_mode = std::ios::trunc; + } else if (strcmp(event_data.identifier, DEFINE_HEAP_AFTER_FREED) == 0) { + open_mode = std::ios::app; + } else { + count_num_events++; + continue; + } + std::string identifier = + std::string(event_data.identifier) + get_event_unit(event_data.unit); + std::ofstream ofs(profile_filename, open_mode); + if (!ofs) { + QNN_EXECUTORCH_LOG_ERROR( + "Error when opening profile file: %s", profile_filename.c_str()); + return QNN_COMMON_ERROR_GENERAL; + } + ofs << identifier << ", " << event_data.value << "\n"; + } + if (count_num_events == num_events) { + QNN_EXECUTORCH_LOG_WARN( + "Not HTP backend but enable htp profiling. Please check setting."); + return QNN_SUCCESS; + } + return QNN_SUCCESS; +} + QnnProfile::~QnnProfile() { const QnnInterface& qnn_interface = implementation_->GetQnnInterface(); if (handle_ != nullptr) { diff --git a/backends/qualcomm/runtime/backends/QnnProfiler.h b/backends/qualcomm/runtime/backends/QnnProfiler.h index de8fbd1d9d5..e8f2a3c0502 100644 --- a/backends/qualcomm/runtime/backends/QnnProfiler.h +++ b/backends/qualcomm/runtime/backends/QnnProfiler.h @@ -12,6 +12,9 @@ #include #include #include "QnnProfile.h" + +#include + namespace executorch { namespace backends { namespace qnn { @@ -24,6 +27,7 @@ class QnnProfile { const QnnExecuTorchProfileLevel& profile_level); ~QnnProfile(); Qnn_ErrorHandle_t ProfileData(executorch::runtime::EventTracer* event_tracer); + Qnn_ErrorHandle_t ProfileDataToFile(const std::string& profile_filename); Qnn_ProfileHandle_t GetHandle() { return handle_; @@ -33,6 +37,10 @@ class QnnProfile { Qnn_ProfileHandle_t handle_; QnnImplementation* implementation_; QnnBackend* backend_; + + Qnn_ErrorHandle_t FetchEvents( + const QnnProfile_EventId_t** events_ptr, + std::uint32_t* num_events); }; } // namespace qnn } // namespace backends diff --git a/backends/qualcomm/runtime/backends/gpu/GpuContext.cpp b/backends/qualcomm/runtime/backends/gpu/GpuContext.cpp index 07952e77eef..c6c6ace2bdf 100644 --- a/backends/qualcomm/runtime/backends/gpu/GpuContext.cpp +++ b/backends/qualcomm/runtime/backends/gpu/GpuContext.cpp @@ -21,7 +21,13 @@ GpuContext::GpuContext( QnnBackendCache* cache, QnnDlcManager* qnn_dlc_manager, const QnnExecuTorchGpuBackendOptions* gpu_options) - : QnnContext(implementation, backend, device, cache, qnn_dlc_manager) { + : QnnContext( + implementation, + backend, + device, + cache, + qnn_dlc_manager, + QnnExecuTorchProfileLevel::kProfileOff) { gpu_context_custom_config_ = std::make_unique(gpu_options); } diff --git a/backends/qualcomm/runtime/backends/htp/HtpContext.h b/backends/qualcomm/runtime/backends/htp/HtpContext.h index a0389ea5983..f00b709f607 100644 --- a/backends/qualcomm/runtime/backends/htp/HtpContext.h +++ b/backends/qualcomm/runtime/backends/htp/HtpContext.h @@ -25,10 +25,17 @@ class HtpContext : public QnnContext { QnnDevice* device, QnnBackendCache* cache, const QnnExecuTorchHtpBackendOptions* htp_options, - QnnDlcManager* qnn_dlc_manager) - : QnnContext(implementation, backend, device, cache, qnn_dlc_manager) { - htp_context_custom_config_ = - std::make_unique(this, htp_options); + QnnDlcManager* qnn_dlc_manager, + const QnnExecuTorchProfileLevel& profile_level) + : QnnContext( + implementation, + backend, + device, + cache, + qnn_dlc_manager, + profile_level) { + htp_context_custom_config_ = std::make_unique( + this, htp_options, profile_level); } ~HtpContext() {} diff --git a/backends/qualcomm/runtime/backends/htp/HtpContextCustomConfig.h b/backends/qualcomm/runtime/backends/htp/HtpContextCustomConfig.h index f0d4873b0d2..61a395fcb5b 100644 --- a/backends/qualcomm/runtime/backends/htp/HtpContextCustomConfig.h +++ b/backends/qualcomm/runtime/backends/htp/HtpContextCustomConfig.h @@ -26,12 +26,19 @@ class HtpContextCustomConfig { public: explicit HtpContextCustomConfig( const QnnContext* context, - const QnnExecuTorchHtpBackendOptions* htp_options) - : context_(context), htp_options_(htp_options) {} + const QnnExecuTorchHtpBackendOptions* htp_options, + const QnnExecuTorchProfileLevel& profile_level) + : profile_level_(profile_level), + context_(context), + htp_options_(htp_options) {} std::vector CreateContextCustomConfig(); private: + // profile_level_ is consumed only by the target build; the host build never + // reads it. Marked [[maybe_unused]] so the host build doesn't warn while the + // field stays available for the target side. + [[maybe_unused]] QnnExecuTorchProfileLevel profile_level_; QnnHtpContext_CustomConfig_t* AllocContextCustomConfig() { htp_context_config_.emplace_back( std::make_unique()); diff --git a/backends/qualcomm/runtime/backends/htp/host/HtpContextCustomConfig.cpp b/backends/qualcomm/runtime/backends/htp/host/HtpContextCustomConfig.cpp index 4850afa14a2..037998132a8 100644 --- a/backends/qualcomm/runtime/backends/htp/host/HtpContextCustomConfig.cpp +++ b/backends/qualcomm/runtime/backends/htp/host/HtpContextCustomConfig.cpp @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. */ +#include #include namespace executorch { diff --git a/backends/qualcomm/runtime/backends/htp/target/HtpContextCustomConfig.cpp b/backends/qualcomm/runtime/backends/htp/target/HtpContextCustomConfig.cpp index 676795797f8..8488bf21e79 100644 --- a/backends/qualcomm/runtime/backends/htp/target/HtpContextCustomConfig.cpp +++ b/backends/qualcomm/runtime/backends/htp/target/HtpContextCustomConfig.cpp @@ -19,6 +19,17 @@ HtpContextCustomConfig::CreateContextCustomConfig() { QnnHtpContext_CustomConfig_t* p_custom_config = nullptr; const HtpContext* htp_ctx = static_cast(context_); + // TODO: Verify heap profile works with kProfileBasic once enabled. + if (profile_level_ != QnnExecuTorchProfileLevel::kProfileOff) { + QnnHtpContext_CustomConfig_t* p_custom_config_profile = nullptr; + p_custom_config_profile = AllocContextCustomConfig(); + p_custom_config_profile->option = + QNN_HTP_CONTEXT_CONFIG_OPTION_DSP_MEMORY_PROFILING_ENABLED; + p_custom_config_profile->dspMemoryProfilingEnabled = true; + ret.push_back( + static_cast(p_custom_config_profile)); + } + if (htp_options_->use_multi_contexts() && htp_options_->max_sf_buf_size() != 0) { p_custom_config = AllocContextCustomConfig(); diff --git a/backends/qualcomm/runtime/backends/ir/host/QnnDlcManager.cpp b/backends/qualcomm/runtime/backends/ir/host/QnnDlcManager.cpp index 47d583b5c15..62d01c78706 100644 --- a/backends/qualcomm/runtime/backends/ir/host/QnnDlcManager.cpp +++ b/backends/qualcomm/runtime/backends/ir/host/QnnDlcManager.cpp @@ -47,7 +47,8 @@ Error QnnDlcManager::Create() { backend_bundle_ptr_->qnn_backend_ptr.get(), backend_bundle_ptr_->qnn_device_ptr.get(), backend_params_ptr_->qnn_backend_cache_ptr_.get(), - nullptr); + nullptr, + QnnExecuTorchProfileLevel::kProfileOff); backend_params_ptr_->qnn_graph_ptr_ = std::make_unique( backend_bundle_ptr_->implementation.get(), diff --git a/backends/qualcomm/runtime/backends/lpai/LpaiContext.cpp b/backends/qualcomm/runtime/backends/lpai/LpaiContext.cpp index d5203898f6b..e0c9d3ed3d8 100644 --- a/backends/qualcomm/runtime/backends/lpai/LpaiContext.cpp +++ b/backends/qualcomm/runtime/backends/lpai/LpaiContext.cpp @@ -20,7 +20,13 @@ LpaiContext::LpaiContext( QnnDevice* device, QnnBackendCache* cache, QnnDlcManager* qnn_dlc_manager) - : QnnContext(implementation, backend, device, cache, qnn_dlc_manager) { + : QnnContext( + implementation, + backend, + device, + cache, + qnn_dlc_manager, + QnnExecuTorchProfileLevel::kProfileOff) { lpai_context_custom_config_ = std::make_unique(); } diff --git a/backends/qualcomm/tests/test_qnn_delegate.py b/backends/qualcomm/tests/test_qnn_delegate.py index 0d96cce2e06..940c54c2f8d 100644 --- a/backends/qualcomm/tests/test_qnn_delegate.py +++ b/backends/qualcomm/tests/test_qnn_delegate.py @@ -5819,6 +5819,42 @@ def test_qnn_backend_profile_op(self): ) TestQNN.profile_level = 0 + def test_qnn_backend_runtime_option_heap_profile(self): + module = SimpleModel() # noqa: F405 + sample_input = (torch.ones(1, 32, 28, 28), torch.ones(1, 32, 28, 28)) + + backend_options = generate_htp_compiler_spec( + use_fp16=True, + use_multi_contexts=True, + ) + + compiler_specs = generate_qnn_executorch_compiler_spec( + soc_model=self.chipset_table[TestQNN.soc_model], + backend_options=backend_options, + profile_level=2, # if 0 for closing heap profiling + ) + + pass_jobs = get_capture_program_passes() + split_graph_pass, setting = self.split_graph(4) + pass_jobs[split_graph_pass] = setting + dep_table = get_passes_dependency_for_capture_program() + dep_table[split_graph_pass] = [FoldQDQ] + + edge_prog_mgr = to_edge_transform_and_lower_to_qnn( + module=module, + inputs=sample_input, + compiler_specs=compiler_specs, + dep_table=dep_table, + passes_job=pass_jobs, + ) + exec_prog = edge_prog_mgr.to_executorch() + self.verify_output( + module, + sample_input, + exec_prog, + save_heap_result=True, + ) + def test_qnn_backend_runtime_option_htp_performance(self): backend_options = generate_htp_compiler_spec(use_fp16=True) TestQNN.compiler_specs = generate_qnn_executorch_compiler_spec( @@ -6718,6 +6754,43 @@ def test_qnn_backend_profile_op(self): ) TestQNN.profile_level = 0 + def test_qnn_backend_runtime_option_heap_profile(self): + module = SimpleModel() # noqa: F405 + sample_input = (torch.ones(1, 32, 28, 28), torch.ones(1, 32, 28, 28)) + module1 = self.get_qdq_module(module, sample_input) + + backend_options = generate_htp_compiler_spec( + use_fp16=False, + use_multi_contexts=True, + ) + + compiler_specs = generate_qnn_executorch_compiler_spec( + soc_model=self.chipset_table[TestQNN.soc_model], + backend_options=backend_options, + profile_level=2, # if 0 for closing heap profiling + ) + + pass_jobs = get_capture_program_passes() + split_graph_pass, setting = self.split_graph(4) + pass_jobs[split_graph_pass] = setting + dep_table = get_passes_dependency_for_capture_program() + dep_table[split_graph_pass] = [FoldQDQ] + + edge_prog_mgr = to_edge_transform_and_lower_to_qnn( + module=module1, + inputs=sample_input, + compiler_specs=compiler_specs, + dep_table=dep_table, + passes_job=pass_jobs, + ) + exec_prog = edge_prog_mgr.to_executorch() + self.verify_output( + module1, + sample_input, + exec_prog, + save_heap_result=True, + ) + def test_qnn_backend_runtime_option_htp_performance(self): backend_options = generate_htp_compiler_spec(use_fp16=False) TestQNN.compiler_specs = generate_qnn_executorch_compiler_spec( diff --git a/backends/qualcomm/tests/utils.py b/backends/qualcomm/tests/utils.py index 5827ff050aa..d8802f74e68 100644 --- a/backends/qualcomm/tests/utils.py +++ b/backends/qualcomm/tests/utils.py @@ -8,6 +8,7 @@ import subprocess import tempfile import unittest +from pathlib import Path from typing import Callable, Dict, List, Optional, OrderedDict, Tuple import numpy as np @@ -219,6 +220,7 @@ class TestQNN(unittest.TestCase): inference_speed_output_path = "outputs/inference_speed.txt" static_llm_eval_method = "" direct_build_folder: str = "" + dsp_heap_profile_filename = "htp_heap_usage.txt" @classmethod def setUpClass(cls): @@ -359,6 +361,7 @@ def verify_output( # noqa: C901 save_inference_speed: bool = False, expected_compared_events: int = -1, qnn_intermediate_debugger: QNNIntermediateDebugger = None, + save_heap_result: bool = False, ): with tempfile.TemporaryDirectory() as tmp_dir: ( @@ -412,6 +415,29 @@ def validate_profile(): len(inspector.to_dataframe().index) >= expected_profile_events ) + def validate_heap_profile(): + file_path = f"{tmp_dir}/{self.dsp_heap_profile_filename}" + self.assertTrue( + Path(file_path).exists(), f"File not found: {file_path}" + ) + with open(file_path, "r") as f: + values = [ + int(line.split(",")[1].strip()) for line in f if line.strip() + ] + self.assertEqual(len(values), 2, f"Expected 2 entries, got {values}") + before, after = values + difference = after - before + + print(f"before_context_created: {before} bytes") + print(f"after_context_freed: {after} bytes") + print(f"difference: {difference:.2f} bytes") + + self.assertGreaterEqual( + after, + before, + "after_context_freed should be >= before_context_created", + ) + def validate_intermediate_tensor(): qnn_intermediate_debugger.setup_inspector( etdump_path=etdump_path, @@ -601,6 +627,11 @@ def validate_intermediate_tensor(): adb.extra_cmds += ( f" --performance_output_path {self.inference_speed_output_path}" ) + + if save_heap_result: + adb.extra_cmds += ( + f" --heap_profiling_path {self.dsp_heap_profile_filename}" + ) adb.execute(custom_runner_cmd=f"rm -rf {adb.output_folder}") adb.execute(method_index=method_index, output_callback=output_callback) adb.pull(host_output_path=tmp_dir, callback=post_process) @@ -620,6 +651,12 @@ def validate_intermediate_tensor(): f"{tmp_dir}/{self.inference_speed_output_path}", "r" ) as f: self.inference_speed = float(f.read()) + if save_heap_result: + adb.pull_heap_output( + f"{adb.workspace}/{self.dsp_heap_profile_filename}", + f"{tmp_dir}/{self.dsp_heap_profile_filename}", + callback=validate_heap_profile, + ) def lower_module_and_test_output( self, diff --git a/examples/qualcomm/executor_runner/qnn_executor_runner.cpp b/examples/qualcomm/executor_runner/qnn_executor_runner.cpp index df6a8ecbd79..a35a496f22b 100644 --- a/examples/qualcomm/executor_runner/qnn_executor_runner.cpp +++ b/examples/qualcomm/executor_runner/qnn_executor_runner.cpp @@ -143,6 +143,13 @@ DEFINE_int32( "This is a runtime option and will override the profile level set during AOT. " "Refer to QnnExecuTorchProfileLevel under qc_compiler_spec.fbs for more info."); +DEFINE_string( + heap_profiling_path, + "", + "Output path for QNN heap-profiling dump. " + "Empty disables heap profiling. " + "This is a runtime option and will override the path set during AOT."); + using executorch::aten::Tensor; using executorch::aten::TensorImpl; using executorch::etdump::ETDumpGen; @@ -213,7 +220,7 @@ int main(int argc, char** argv) { } // Set runtime options - executorch::runtime::BackendOptions<8> backend_options; + executorch::runtime::BackendOptions<9> backend_options; if (!gflags::GetCommandLineFlagInfoOrDie("log_level").is_default) { ET_LOG(Info, "Setting runtime log level: %d", FLAGS_log_level); ET_CHECK_MSG( @@ -291,6 +298,18 @@ int main(int argc, char** argv) { "Failed to set backend options: %s", QNN_RUNTIME_LPAI_CORE_SELECTION); } + if (!gflags::GetCommandLineFlagInfoOrDie("heap_profiling_path").is_default) { + ET_LOG( + Info, + "Setting runtime heap_profiling_path: %s", + FLAGS_heap_profiling_path.c_str()); + ET_CHECK_MSG( + backend_options.set_option( + QNN_RUNTIME_HEAP_PROFILING_PATH, + FLAGS_heap_profiling_path.c_str()) == Error::Ok, + "Failed to set backend options: %s", + QNN_RUNTIME_HEAP_PROFILING_PATH); + } ET_CHECK_MSG( set_option(QNN_BACKEND, backend_options.view()) == Error::Ok, "Failed to set runtime options."); From 82cf12328fc7843e84926188ed1cd3eae8076812 Mon Sep 17 00:00:00 2001 From: Adrian Lundell <36153706+AdrianLundell@users.noreply.github.com> Date: Wed, 20 May 2026 10:22:54 +0200 Subject: [PATCH 71/91] Arm backend: Fix stale docgen generation pt.2 (#19685) Port doc changes from 12bb0e70 from pure md-files to md.in stubs. Signed-off-by: Adrian Lundell --- .../docgen/ethos-u/backends-arm-ethos-u-overview.md.in | 4 ++-- .../arm/scripts/docgen/vgf/backends-arm-vgf-overview.md.in | 4 ++-- .../scripts/docgen/vgf/vgf-getting-started-tutorial.md.in | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in b/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in index bb1165f0de6..19993f9885e 100644 --- a/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in +++ b/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in @@ -153,7 +153,7 @@ ExecuTorch for the Ethos-U backend, you automatically install the compiler conta **→{doc}`/backends/arm-ethos-u/arm-ethos-u-troubleshooting` — Troubleshooting and common issues.** -**→{doc}`/backends/arm-ethos-u/tutorials/arm-ethos-u-tutorials` — Tutorials.** +**→{doc}`/backends/arm-ethos-u/tutorials/ethos-u-getting-started` — Getting started tutorial.** **→{doc}`/backends/arm-ethos-u/U55_op_support` — Ethos-U55 supported operators.** @@ -168,7 +168,7 @@ ExecuTorch for the Ethos-U backend, you automatically install the compiler conta arm-ethos-u-partitioner arm-ethos-u-quantization arm-ethos-u-troubleshooting -tutorials/arm-ethos-u-tutorials +tutorials/ethos-u-getting-started U55_op_support U85_op_support ``` diff --git a/backends/arm/scripts/docgen/vgf/backends-arm-vgf-overview.md.in b/backends/arm/scripts/docgen/vgf/backends-arm-vgf-overview.md.in index e12aafc55a7..53af3e2499d 100644 --- a/backends/arm/scripts/docgen/vgf/backends-arm-vgf-overview.md.in +++ b/backends/arm/scripts/docgen/vgf/backends-arm-vgf-overview.md.in @@ -79,7 +79,7 @@ described in the rest of this guide but with a concrete end-to-end sample. **→{doc}`/backends/arm-vgf/arm-vgf-troubleshooting` — Debug common issues.** -**→{doc}`/backends/arm-vgf/tutorials/arm-vgf-tutorials` — Tutorials.** +**→{doc}`/backends/arm-vgf/tutorials/vgf-getting-started` — Getting started tutorial.** **→{doc}`/backends/arm-vgf/VGF_op_support` — VGF supported operators.** @@ -92,6 +92,6 @@ described in the rest of this guide but with a concrete end-to-end sample. arm-vgf-partitioner arm-vgf-quantization arm-vgf-troubleshooting -tutorials/arm-vgf-tutorials +tutorials/vgf-getting-started VGF_op_support ``` diff --git a/backends/arm/scripts/docgen/vgf/vgf-getting-started-tutorial.md.in b/backends/arm/scripts/docgen/vgf/vgf-getting-started-tutorial.md.in index cf0d5a0dbad..531dea14b37 100644 --- a/backends/arm/scripts/docgen/vgf/vgf-getting-started-tutorial.md.in +++ b/backends/arm/scripts/docgen/vgf/vgf-getting-started-tutorial.md.in @@ -83,9 +83,9 @@ To produce a pte file equivalent to the one above, run `python -m backends.arm.scripts.aot_arm_compiler --model_name=add --delegate --quantize --output=simple_example.pte --target=vgf` ``` -### Runtime: +## Runtime -## Build executor runtime +### Build executor runtime After the AOT compilation flow is done, we can build the executor runner target. For this tutorial, the default runner can be used. Build it with the following configuration: @@ -115,7 +115,7 @@ The block diagram below demonstrates, at the high level, how the various build a ![](arm-delegate-runtime-build.svg) -## Deploying and running on device +### Deploying and running on device Since we are using the Vulkan emulation layer, we can run the executor runner with the VGF delegate on the host machine: From 32a86b69388b5a5208e367a96b0f5b7cb39df8e2 Mon Sep 17 00:00:00 2001 From: Usamah Date: Wed, 20 May 2026 12:17:05 +0100 Subject: [PATCH 72/91] Arm backend: Add VGF Swin2SR example and OOTB smoke test (#19670) Summary - Adds a VGF Swin2SR super-resolution example for Arm. - Adds FP and INT8 export/eval flows with deterministic demo assets. - Adds Arm OOTB smoke coverage and model tests. Validation - bash -n backends/arm/test/test_arm_ootb.sh - PYTHONPATH=. /Users/usazah01/src/executorch/env/bin/python -m pytest -q -p no:rerunfailures backends/arm/test/models/test_swin2sr_arm.py -s - PATH=/Users/usazah01/src/executorch/env/bin:$PATH backends/arm/scripts/pre-push cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani --------- Signed-off-by: Usamah Zaheer --- backends/arm/test/models/test_swin2sr_arm.py | 118 +++++ backends/arm/test/test_arm_ootb.sh | 133 +++++- examples/arm/README.md | 10 + .../super_resolution_example_vgf/README.md | 19 + .../model_export/README.md | 116 +++++ .../model_export/common.py | 452 ++++++++++++++++++ .../model_export/export_super_resolution.py | 366 ++++++++++++++ .../model_export/prepare_demo_assets.py | 149 ++++++ .../requirements.txt | 8 + .../runtime/README.md | 57 +++ .../runtime/run_super_resolution.py | 252 ++++++++++ 11 files changed, 1678 insertions(+), 2 deletions(-) create mode 100644 backends/arm/test/models/test_swin2sr_arm.py create mode 100644 examples/arm/super_resolution_example_vgf/README.md create mode 100644 examples/arm/super_resolution_example_vgf/model_export/README.md create mode 100644 examples/arm/super_resolution_example_vgf/model_export/common.py create mode 100644 examples/arm/super_resolution_example_vgf/model_export/export_super_resolution.py create mode 100644 examples/arm/super_resolution_example_vgf/model_export/prepare_demo_assets.py create mode 100644 examples/arm/super_resolution_example_vgf/requirements.txt create mode 100644 examples/arm/super_resolution_example_vgf/runtime/README.md create mode 100644 examples/arm/super_resolution_example_vgf/runtime/run_super_resolution.py diff --git a/backends/arm/test/models/test_swin2sr_arm.py b/backends/arm/test/models/test_swin2sr_arm.py new file mode 100644 index 00000000000..6bf9b2a18d5 --- /dev/null +++ b/backends/arm/test/models/test_swin2sr_arm.py @@ -0,0 +1,118 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from typing import Tuple + +import torch + +from executorch.backends.arm.test import common +from executorch.backends.arm.test.tester.test_pipeline import ( + TosaPipelineFP, + TosaPipelineINT, + VgfPipeline, +) +from transformers import Swin2SRConfig, Swin2SRForImageSuperResolution + +input_t = Tuple[torch.Tensor] + +exir_ops = [ + "executorch_exir_dialects_edge__ops_aten_add_Tensor", + "executorch_exir_dialects_edge__ops_aten_convolution_default", + "executorch_exir_dialects_edge__ops_aten_layer_norm_default", + "executorch_exir_dialects_edge__ops_aten_matmul_default", + "executorch_exir_dialects_edge__ops_aten_mul_Tensor", + "executorch_exir_dialects_edge__ops_aten_pixel_shuffle_default", + "executorch_exir_dialects_edge__ops_aten_softmax_int", +] + + +class TinySwin2SR(torch.nn.Module): + def __init__(self): + super().__init__() + config = Swin2SRConfig( + image_size=8, + patch_size=1, + num_channels=3, + embed_dim=16, + depths=[1, 1], + num_heads=[1, 1], + window_size=4, + upscale=2, + img_range=1.0, + resi_connection="1conv", + upsampler="pixelshuffle", + ) + self.model = Swin2SRForImageSuperResolution(config).eval() + + def forward(self, x: torch.Tensor) -> torch.Tensor: + return self.model(pixel_values=x, return_dict=True).reconstruction + + +def make_model_and_inputs() -> tuple[torch.nn.Module, input_t]: + model = TinySwin2SR().eval() + inputs = (torch.rand(1, 3, 8, 8),) + return model, inputs + + +def test_swin2sr_tosa_FP(): + model, model_inputs = make_model_and_inputs() + pipeline = TosaPipelineFP[input_t]( + model, + model_inputs, + aten_op=[], + exir_op=exir_ops, + use_to_edge_transform_and_lower=True, + ) + pipeline.pop_stage("check_count.exir") + # TODO: MLETORCH-2134 re-enable once Swin2SR runs on the TOSA ref model. + pipeline.pop_stage("run_method_and_compare_outputs") + pipeline.run() + + +def test_swin2sr_tosa_INT(): + model, model_inputs = make_model_and_inputs() + pipeline = TosaPipelineINT[input_t]( + model, + model_inputs, + aten_op=[], + exir_op=exir_ops, + use_to_edge_transform_and_lower=True, + ) + pipeline.pop_stage("check_count.exir") + # TODO: MLETORCH-2134 re-enable once Swin2SR runs on the TOSA ref model. + pipeline.pop_stage("run_method_and_compare_outputs") + pipeline.run() + + +@common.SkipIfNoModelConverter +def test_swin2sr_vgf_quant(): + model, model_inputs = make_model_and_inputs() + pipeline = VgfPipeline[input_t]( + model, + model_inputs, + aten_op=[], + exir_op=exir_ops, + use_to_edge_transform_and_lower=True, + quantize=True, + ) + pipeline.pop_stage("check_count.exir") + # TODO: MLETORCH-2134 re-enable once Swin2SR runs on the TOSA ref model. + pipeline.pop_stage("run_method_and_compare_outputs") + pipeline.run() + + +@common.SkipIfNoModelConverter +def test_swin2sr_vgf_no_quant(): + model, model_inputs = make_model_and_inputs() + pipeline = VgfPipeline[input_t]( + model, + model_inputs, + aten_op=[], + exir_op=exir_ops, + use_to_edge_transform_and_lower=True, + quantize=False, + ) + pipeline.pop_stage("check_count.exir") + pipeline.run() diff --git a/backends/arm/test/test_arm_ootb.sh b/backends/arm/test/test_arm_ootb.sh index e97dfc10ddb..078566445f9 100755 --- a/backends/arm/test/test_arm_ootb.sh +++ b/backends/arm/test/test_arm_ootb.sh @@ -22,7 +22,7 @@ if [[ "$1" == "-h" || "$1" == "--help" ]]; then fi if [[ $# -eq 0 ]]; then - TEST_SUITES=(run_ootb_tests_ethos_u run_ootb_tests_tosa run_ootb_tests_vgf run_deit_e2e_ethos_u) + TEST_SUITES=(run_ootb_tests_ethos_u run_ootb_tests_tosa run_ootb_tests_vgf run_deit_e2e_ethos_u run_swin2sr_e2e_vgf) else TEST_SUITES=("$1") fi @@ -66,7 +66,7 @@ run_deit_e2e_ethos_u() { local image_path="${work_root}/dog.bmp" local pte_path="${export_dir}/deit_tiny_smoke.pte" local toolchain_file="${et_root_dir}/examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake" - echo "${FUNCNAME}: Work root is ${work_root}; existing artifacts will be reused if present" + echo "${FUNCNAME}: Work directory: ${work_root}; existing artifacts will be reused if present" mkdir -p "${model_dir}" "${export_dir}" "${build_dir}" @@ -150,6 +150,135 @@ run_deit_e2e_ethos_u() { echo "${FUNCNAME}: PASS" } +run_swin2sr_e2e_vgf() { + echo "$FUNCNAME: Prepare demo assets, export FP/INT8, build, and run the Swin2SR VGF e2e test" + + local script_dir + script_dir=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd) + et_root_dir=$(cd "${script_dir}/../../.." && pwd) + local example_dir="${et_root_dir}/examples/arm/super_resolution_example_vgf" + local work_root="${et_root_dir}/arm_test/swin2sr_vgf_ootb_smoke" + local demo_dir="${work_root}/demo_assets" + local runtime_dir="${demo_dir}/runtime" + local runner_path="${work_root}/executor_runner" + local input_image="${runtime_dir}/demo_lr_64.png" + local fp_pte_path="${demo_dir}/swin2sr_x2_vgf_fp.pte" + local int8_pte_path="${demo_dir}/swin2sr_x2_vgf_int8.pte" + local fp_output_image="${runtime_dir}/demo_fp_128.png" + local int8_output_image="${runtime_dir}/demo_int8_128.png" + local checkpoint_id="caidas/swin2SR-classical-sr-x2-64" + local checkpoint_revision="cee1c923c6a37361c6e5650b65dcf4be821e5d52" + echo "${FUNCNAME}: Work directory: ${work_root}; existing artifacts will be reused if present" + + mkdir -p "${demo_dir}" "${runtime_dir}" + + setup_path_script=${et_root_dir}/examples/arm/arm-scratch/setup_path.sh + source ${setup_path_script} + + echo "${FUNCNAME}: Installing example requirements" + pip install -r "${example_dir}/requirements.txt" + + echo "${FUNCNAME}: Preparing deterministic demo assets" + python3 "${example_dir}/model_export/prepare_demo_assets.py" \ + --output-dir "${demo_dir}" + + echo "${FUNCNAME}: Building VKML executor_runner" + "${et_root_dir}/backends/arm/scripts/build_executor_runner_vkml.sh" \ + --output="${work_root}" + + if [[ ! -f "${runner_path}" ]]; then + runner_path=$(find "${work_root}" -name executor_runner -type f | head -n 1) + fi + [[ -f "${runner_path}" ]] || { + echo "${FUNCNAME}: Missing executor_runner under ${work_root}" + return 1 + } + + echo "${FUNCNAME}: Exporting FP Swin2SR model" + python3 "${example_dir}/model_export/export_super_resolution.py" \ + --model-name swin2sr \ + --checkpoint "${checkpoint_id}" \ + --checkpoint-revision "${checkpoint_revision}" \ + --input-height 64 \ + --input-width 64 \ + --quantization-mode none \ + --eval-lr-dir "${demo_dir}/eval/lr" \ + --eval-hr-dir "${demo_dir}/eval/hr" \ + --num-eval-samples 2 \ + --output-path "${fp_pte_path}" + + for artifact in \ + "${fp_pte_path}" \ + "${demo_dir}/swin2sr_x2_vgf_fp.json" \ + "${demo_dir}/swin2sr_x2_vgf_fp_delegation.txt" \ + "${demo_dir}/swin2sr_x2_vgf_fp_metrics.json"; do + [[ -f "${artifact}" ]] || { + echo "${FUNCNAME}: Missing FP export artifact ${artifact}" + return 1 + } + done + + echo "${FUNCNAME}: Exporting INT8 Swin2SR model" + python3 "${example_dir}/model_export/export_super_resolution.py" \ + --model-name swin2sr \ + --checkpoint "${checkpoint_id}" \ + --checkpoint-revision "${checkpoint_revision}" \ + --input-height 64 \ + --input-width 64 \ + --quantization-mode int8 \ + --calibration-lr-dir "${demo_dir}/calibration/lr" \ + --eval-lr-dir "${demo_dir}/eval/lr" \ + --eval-hr-dir "${demo_dir}/eval/hr" \ + --num-calibration-samples 4 \ + --num-eval-samples 2 \ + --output-path "${int8_pte_path}" + + for artifact in \ + "${int8_pte_path}" \ + "${demo_dir}/swin2sr_x2_vgf_int8.json" \ + "${demo_dir}/swin2sr_x2_vgf_int8_delegation.txt" \ + "${demo_dir}/swin2sr_x2_vgf_int8_metrics.json"; do + [[ -f "${artifact}" ]] || { + echo "${FUNCNAME}: Missing INT8 export artifact ${artifact}" + return 1 + } + done + + echo "${FUNCNAME}: Running FP runtime smoke" + python3 "${example_dir}/runtime/run_super_resolution.py" \ + --model-path "${fp_pte_path}" \ + --runner "${runner_path}" \ + --input-image "${input_image}" \ + --output-image "${fp_output_image}" \ + --working-dir "${runtime_dir}/fp_work" + + [[ -f "${fp_output_image}" ]] || { + echo "${FUNCNAME}: Missing FP runtime output ${fp_output_image}" + return 1 + } + + if [[ "$(uname -s)" == "Linux" ]]; then + echo "${FUNCNAME}: Running INT8 runtime smoke" + python3 "${example_dir}/runtime/run_super_resolution.py" \ + --model-path "${int8_pte_path}" \ + --runner "${runner_path}" \ + --input-image "${input_image}" \ + --output-image "${int8_output_image}" \ + --working-dir "${runtime_dir}/int8_work" + + [[ -f "${int8_output_image}" ]] || { + echo "${FUNCNAME}: Missing INT8 runtime output ${int8_output_image}" + return 1 + } + else + # TODO: MLETORCH-2105 remove this once the next ML SDK release supports + # quantized VKML runtime validation on Darwin. + echo "${FUNCNAME}: Skipping INT8 runtime on $(uname -s); quantized VKML runtime validation is Linux-only" + fi + + echo "${FUNCNAME}: PASS" +} + for suite in "${TEST_SUITES[@]}"; do "${suite}" done diff --git a/examples/arm/README.md b/examples/arm/README.md index bcd8a1e1d0a..008a9e197a6 100644 --- a/examples/arm/README.md +++ b/examples/arm/README.md @@ -64,6 +64,16 @@ $ python3 -m backends.arm.scripts.aot_arm_compiler --model_name=mv2 --target=eth `aot_arm_compiler.py` is called from the scripts below so you don't need to, but it can be useful to do by hand in some cases. +## Host VGF example applications + +The Arm examples directory also contains host-side VGF reference flows for +specific tasks: + +- `examples/arm/image_classification_example_vgf` for DEiT image + classification. +- `examples/arm/super_resolution_example_vgf` for Swin2SR image + super-resolution. + ## ExecuTorch on Arm Ethos-U55/U65 and U85 diff --git a/examples/arm/super_resolution_example_vgf/README.md b/examples/arm/super_resolution_example_vgf/README.md new file mode 100644 index 00000000000..cefe5c55f22 --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/README.md @@ -0,0 +1,19 @@ +# Swin2SR Super-Resolution Example Application (VGF) + +This example shows how to export a Swin2SR image super-resolution model for the +Arm VGF backend and run it on host using the generic `executor_runner` binary. +It is a host-only workflow; a device-specific VGF runtime application is out of +scope here. + +## Layout + +- `model_export/prepare_demo_assets.py` — Creates a deterministic text-heavy + demo input plus small LR/HR calibration and evaluation sets from a repo-local + screenshot. +- `model_export/README.md` — Dataset-backed FP/INT8 export, PTQ + calibration and evaluation, and `.pte` generation. +- `runtime/README.md` — Running the exported `.pte` on host using + `executor_runner` and converting the output tensor back into an image. + +Use `examples/arm/image_classification_example_vgf` for the image +classification flow. diff --git a/examples/arm/super_resolution_example_vgf/model_export/README.md b/examples/arm/super_resolution_example_vgf/model_export/README.md new file mode 100644 index 00000000000..9489327ed1b --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/model_export/README.md @@ -0,0 +1,116 @@ +# Swin2SR VGF Export + +This example provides two scripts: + +- `prepare_demo_assets.py` — Creates a deterministic local demo dataset from a + repo-local screenshot so the export and runtime steps can be reproduced + without an external SR dataset. +- `export_super_resolution.py` — Loads a checkpoint, applies optional + post-training quantization, evaluates PSNR/SSIM on paired LR/HR samples, and + exports a VGF-ready ExecuTorch program for host execution. + +## Requirements + +- Python 3.10+ with `executorch` and the dependencies in + `examples/arm/super_resolution_example_vgf/requirements.txt`. +- ML SDK dependencies installed through `examples/arm/setup.sh + --disable-ethos-u-deps --enable-mlsdk-deps`. + +## Quick demo assets + +To generate the text-heavy demo crop used by the runtime walkthrough, along +with the small LR/HR directories used for INT8 calibration and evaluation, run: + +```bash +python examples/arm/super_resolution_example_vgf/model_export/prepare_demo_assets.py \ + --output-dir ./demo_assets +``` + +This writes: + +```text +demo_assets/ + calibration/hr/ + calibration/lr/ + eval/hr/ + eval/lr/ + runtime/demo_hr_128.png + runtime/demo_lr_64.png + metadata.json +``` + +The export flow expects paired RGB image directories with matching relative +paths on the LR and HR sides when evaluation metrics are requested. For each +pair, the HR image must be exactly `upscale x` larger than the LR image. The +exporter crops LR inputs to `--input-height` x `--input-width` and crops the HR +target to the matching scaled patch. + +## Export and evaluate for VGF + +The concrete quick-demo commands below use the pinned revision currently cached +for `caidas/swin2SR-classical-sr-x2-64`: +`cee1c923c6a37361c6e5650b65dcf4be821e5d52`. + +### FP export + +```bash +python examples/arm/super_resolution_example_vgf/model_export/export_super_resolution.py \ + --model-name swin2sr \ + --checkpoint caidas/swin2SR-classical-sr-x2-64 \ + --checkpoint-revision cee1c923c6a37361c6e5650b65dcf4be821e5d52 \ + --input-height 64 \ + --input-width 64 \ + --quantization-mode none \ + --eval-lr-dir ./demo_assets/eval/lr \ + --eval-hr-dir ./demo_assets/eval/hr \ + --num-eval-samples 2 \ + --output-path ./demo_assets/swin2sr_x2_vgf_fp.pte +``` + +### INT8 export + +```bash +python examples/arm/super_resolution_example_vgf/model_export/export_super_resolution.py \ + --model-name swin2sr \ + --checkpoint caidas/swin2SR-classical-sr-x2-64 \ + --checkpoint-revision cee1c923c6a37361c6e5650b65dcf4be821e5d52 \ + --input-height 64 \ + --input-width 64 \ + --quantization-mode int8 \ + --calibration-lr-dir ./demo_assets/calibration/lr \ + --eval-lr-dir ./demo_assets/eval/lr \ + --eval-hr-dir ./demo_assets/eval/hr \ + --num-calibration-samples 4 \ + --num-eval-samples 2 \ + --output-path ./demo_assets/swin2sr_x2_vgf_int8.pte +``` + +For FP export, set `--quantization-mode none`. INT8 export requires +`--calibration-lr-dir`; the exporter no longer falls back to random calibration +inputs. The exporter first tries installed ExecuTorch quantized kernels and +then local build outputs such as `cmake-out/kernels/quantized` or +`arm_test/*/kernels/quantized` to register the quantized out-variant ops needed +by `to_executorch()`. + +When `--eval-lr-dir` and `--eval-hr-dir` are provided, the exporter compares +the exported program module against the paired HR images and writes PSNR/SSIM +metrics. The quick-demo dataset is intentionally tiny, so these metrics are a +smoke signal for gross quality regressions rather than a benchmark target; use +a larger paired validation set when setting release-quality thresholds. + +In the OOTB smoke flow, FP export over the generated 2-sample eval set produced +approximately PSNR 34.85 / SSIM 0.994, while INT8 PTQ produced approximately +PSNR 22.71 / SSIM 0.870. The INT8 drop is expected; these numbers are included +only as a smoke-test reference for the generated demo assets. + +## Output artifacts + +For an export path such as `./swin2sr_x2_vgf_int8.pte`, the exporter writes: + +- `swin2sr_x2_vgf_int8.pte` — The ExecuTorch program. +- `swin2sr_x2_vgf_int8.json` — Static input/output metadata consumed by the + runtime helper. +- `swin2sr_x2_vgf_int8_delegation.txt` — A summary of delegated and + non-delegated operators. +- `swin2sr_x2_vgf_int8_metrics.json` — Optional PSNR/SSIM evaluation metrics + when `--eval-lr-dir` and `--eval-hr-dir` are provided. diff --git a/examples/arm/super_resolution_example_vgf/model_export/common.py b/examples/arm/super_resolution_example_vgf/model_export/common.py new file mode 100644 index 00000000000..617d5575402 --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/model_export/common.py @@ -0,0 +1,452 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from __future__ import annotations + +import json +from dataclasses import dataclass +from pathlib import Path +from typing import Any, Iterable + +import numpy as np +import torch +import torch.nn.functional as F +from PIL import Image +from torch.utils.data import Dataset +from transformers import Swin2SRForImageSuperResolution + +IMAGE_SUFFIXES = {".bmp", ".jpeg", ".jpg", ".png", ".webp"} +SUPPORTED_MODELS = ("swin2sr",) + + +class Swin2SRWrapper(torch.nn.Module): + def __init__(self, model: Swin2SRForImageSuperResolution): + super().__init__() + self.model = model + + def forward(self, pixel_values: torch.Tensor) -> torch.Tensor: + return self.model(pixel_values=pixel_values, return_dict=True).reconstruction + + +@dataclass(frozen=True) +class SuperResolutionModelBundle: + model_name: str + model: torch.nn.Module + example_inputs: tuple[torch.Tensor] + input_shape: tuple[int, ...] + output_shape: tuple[int, ...] + input_dtype: str + output_dtype: str + upscale: int + window_size: int + + +def write_json(path: str | Path, payload: dict[str, Any]) -> Path: + path = Path(path) + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n") + return path + + +def list_image_paths(path: str | Path) -> list[Path]: + path = Path(path) + if path.is_file(): + if path.suffix.lower() not in IMAGE_SUFFIXES: + raise ValueError(f"Unsupported image file type: {path}") + return [path] + + if not path.is_dir(): + raise ValueError(f"Image path does not exist: {path}") + + image_paths = sorted( + candidate + for candidate in path.rglob("*") + if candidate.is_file() and candidate.suffix.lower() in IMAGE_SUFFIXES + ) + if not image_paths: + raise ValueError(f"No supported images found in: {path}") + return image_paths + + +def load_image_tensor(image_path: str | Path) -> torch.Tensor: + image = Image.open(image_path).convert("RGB") + image_np = np.asarray(image, dtype=np.float32) / 255.0 + return torch.from_numpy(image_np).permute(2, 0, 1).contiguous().clone() + + +def crop_input_tensor( + image: torch.Tensor, + input_height: int, + input_width: int, + crop_mode: str, +) -> torch.Tensor: + height, width = image.shape[1:] + if height < input_height or width < input_width: + raise ValueError( + "Image tensor is smaller than the requested crop size: " + f"{tuple(image.shape)} vs {(input_height, input_width)}." + ) + + if height == input_height and width == input_width: + return image + + max_top = height - input_height + max_left = width - input_width + if crop_mode == "random": + top = int(torch.randint(max_top + 1, ()).item()) + left = int(torch.randint(max_left + 1, ()).item()) + elif crop_mode == "center": + top = max_top // 2 + left = max_left // 2 + else: + raise ValueError(f"Unsupported crop mode: {crop_mode}") + + return image[:, top : top + input_height, left : left + input_width].contiguous() + + +def load_calibration_inputs( + image_path: str | Path, + input_height: int, + input_width: int, + max_samples: int, +) -> list[tuple[torch.Tensor]]: + if max_samples <= 0: + raise ValueError("max_samples must be positive.") + + calibration_inputs = [] + for candidate in list_image_paths(image_path)[:max_samples]: + image = load_image_tensor(candidate) + image = crop_input_tensor(image, input_height, input_width, crop_mode="center") + calibration_inputs.append((image.unsqueeze(0),)) + return calibration_inputs + + +def _collect_image_map(root: Path) -> dict[Path, Path]: + image_map = { + candidate.relative_to(root): candidate for candidate in list_image_paths(root) + } + if not image_map: + raise ValueError(f"No supported images found in: {root}") + return image_map + + +def paired_image_paths( + lr_dir: str | Path, + hr_dir: str | Path, + max_samples: int | None = None, +) -> list[tuple[Path, Path]]: + lr_root = Path(lr_dir) + hr_root = Path(hr_dir) + lr_map = _collect_image_map(lr_root) + hr_map = _collect_image_map(hr_root) + + lr_keys = set(lr_map) + hr_keys = set(hr_map) + if lr_keys != hr_keys: + missing_lr = sorted(str(key) for key in hr_keys - lr_keys) + missing_hr = sorted(str(key) for key in lr_keys - hr_keys) + details = [] + if missing_lr: + details.append(f"Missing LR files: {missing_lr[:5]}") + if missing_hr: + details.append(f"Missing HR files: {missing_hr[:5]}") + raise ValueError( + "LR/HR directories do not contain matching files. " + " ".join(details) + ) + + pairs = [(lr_map[key], hr_map[key]) for key in sorted(lr_map)] + if max_samples is not None: + if max_samples <= 0: + raise ValueError("max_samples must be positive.") + pairs = pairs[:max_samples] + if not pairs: + raise ValueError("No paired super-resolution samples were found.") + return pairs + + +def _validate_pair_shapes( + lr_tensor: torch.Tensor, + hr_tensor: torch.Tensor, + upscale: int, +) -> None: + if lr_tensor.shape[0] != 3 or hr_tensor.shape[0] != 3: + raise ValueError("Only RGB LR/HR image pairs are supported.") + + expected_hr_shape = ( + hr_tensor.shape[0], + lr_tensor.shape[1] * upscale, + lr_tensor.shape[2] * upscale, + ) + if tuple(hr_tensor.shape) != expected_hr_shape: + raise ValueError( + "HR image shape does not match the LR image and upscale factor: " + f"LR {tuple(lr_tensor.shape)}, HR {tuple(hr_tensor.shape)}, upscale {upscale}." + ) + + +def crop_super_resolution_pair( + lr_tensor: torch.Tensor, + hr_tensor: torch.Tensor, + input_height: int, + input_width: int, + upscale: int, + crop_mode: str, +) -> tuple[torch.Tensor, torch.Tensor]: + _validate_pair_shapes(lr_tensor, hr_tensor, upscale) + + lr_height, lr_width = lr_tensor.shape[1:] + if lr_height < input_height or lr_width < input_width: + raise ValueError( + "LR image is smaller than the requested crop size: " + f"{tuple(lr_tensor.shape)} vs {(input_height, input_width)}." + ) + + if lr_height == input_height and lr_width == input_width: + return lr_tensor.contiguous(), hr_tensor.contiguous() + + max_top = lr_height - input_height + max_left = lr_width - input_width + if crop_mode == "random": + top = int(torch.randint(max_top + 1, ()).item()) + left = int(torch.randint(max_left + 1, ()).item()) + elif crop_mode == "center": + top = max_top // 2 + left = max_left // 2 + else: + raise ValueError(f"Unsupported crop mode: {crop_mode}") + + hr_top = top * upscale + hr_left = left * upscale + return ( + lr_tensor[:, top : top + input_height, left : left + input_width].contiguous(), + hr_tensor[ + :, + hr_top : hr_top + input_height * upscale, + hr_left : hr_left + input_width * upscale, + ].contiguous(), + ) + + +class PairedSuperResolutionDataset(Dataset[tuple[torch.Tensor, torch.Tensor]]): + def __init__( + self, + lr_dir: str | Path, + hr_dir: str | Path, + input_height: int, + input_width: int, + upscale: int, + crop_mode: str, + max_samples: int | None = None, + ): + self.pairs = paired_image_paths(lr_dir, hr_dir, max_samples=max_samples) + self.input_height = input_height + self.input_width = input_width + self.upscale = upscale + self.crop_mode = crop_mode + + def __len__(self) -> int: + return len(self.pairs) + + def __getitem__(self, idx: int) -> tuple[torch.Tensor, torch.Tensor]: + lr_path, hr_path = self.pairs[idx] + lr_tensor = load_image_tensor(lr_path) + hr_tensor = load_image_tensor(hr_path) + return crop_super_resolution_pair( + lr_tensor, + hr_tensor, + self.input_height, + self.input_width, + self.upscale, + self.crop_mode, + ) + + +def _load_checkpointed_swin2sr( + checkpoint: str, + checkpoint_revision: str | None, + local_files_only: bool, +) -> Swin2SRWrapper: + is_local_checkpoint = Path(checkpoint).expanduser().exists() + if checkpoint_revision is None and not (local_files_only or is_local_checkpoint): + raise ValueError( + "--checkpoint-revision is required when --checkpoint is a remote Hugging Face model id." + ) + if checkpoint_revision is None: + model = Swin2SRForImageSuperResolution.from_pretrained( # nosec B615 + checkpoint, + local_files_only=local_files_only, + ).eval() + else: + model = Swin2SRForImageSuperResolution.from_pretrained( # nosec B615 + checkpoint, + revision=checkpoint_revision, + local_files_only=local_files_only, + ).eval() + return Swin2SRWrapper(model) + + +def create_model_bundle( + model_name: str, + input_height: int, + input_width: int, + checkpoint: str | None = None, + checkpoint_revision: str | None = None, + local_files_only: bool = False, +) -> SuperResolutionModelBundle: + if model_name not in SUPPORTED_MODELS: + raise ValueError( + f"Unsupported model '{model_name}'. Supported models: {SUPPORTED_MODELS}" + ) + if input_height <= 0 or input_width <= 0: + raise ValueError("Input dimensions must be positive.") + + if checkpoint is None: + raise ValueError("--checkpoint is required when --model-name=swin2sr.") + model = _load_checkpointed_swin2sr( + checkpoint, + checkpoint_revision, + local_files_only, + ) + + example_input = torch.rand((1, 3, input_height, input_width), dtype=torch.float32) + with torch.no_grad(): + example_output = model(example_input) + + if example_output.dim() != 4: + raise ValueError( + f"Expected a 4D reconstruction tensor, got {tuple(example_output.shape)}." + ) + + model_impl = model.model + return SuperResolutionModelBundle( + model_name=model_name, + model=model, + example_inputs=(example_input,), + input_shape=tuple(example_input.shape), + output_shape=tuple(example_output.shape), + input_dtype=str(example_input.dtype).replace("torch.", ""), + output_dtype=str(example_output.dtype).replace("torch.", ""), + upscale=int(model_impl.config.upscale), + window_size=int(model_impl.config.window_size), + ) + + +def _gaussian_window( + channels: int, + device: torch.device, + dtype: torch.dtype, + height: int, + width: int, +) -> torch.Tensor: + window_size = min(11, height, width) + if window_size % 2 == 0: + window_size -= 1 + window_size = max(window_size, 1) + sigma = max(window_size / 6.0, 1e-3) + + coords = torch.arange(window_size, device=device, dtype=dtype) - window_size // 2 + kernel_1d = torch.exp(-(coords**2) / (2 * sigma**2)) + kernel_1d = kernel_1d / kernel_1d.sum() + kernel_2d = torch.outer(kernel_1d, kernel_1d) + return kernel_2d.expand(channels, 1, window_size, window_size).contiguous() + + +def batch_psnr(prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor: + mse = F.mse_loss(prediction, target, reduction="none").mean(dim=(1, 2, 3)) + return 10.0 * torch.log10(1.0 / mse.clamp_min(1e-12)) + + +def batch_ssim(prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor: + channels = prediction.shape[1] + kernel = _gaussian_window( + channels, + prediction.device, + prediction.dtype, + prediction.shape[-2], + prediction.shape[-1], + ) + padding = kernel.shape[-1] // 2 + c1 = 0.01**2 + c2 = 0.03**2 + + mu_x = F.conv2d(prediction, kernel, padding=padding, groups=channels) + mu_y = F.conv2d(target, kernel, padding=padding, groups=channels) + + mu_x_sq = mu_x.pow(2) + mu_y_sq = mu_y.pow(2) + mu_xy = mu_x * mu_y + + sigma_x_sq = ( + F.conv2d(prediction * prediction, kernel, padding=padding, groups=channels) + - mu_x_sq + ) + sigma_y_sq = ( + F.conv2d(target * target, kernel, padding=padding, groups=channels) - mu_y_sq + ) + sigma_xy = ( + F.conv2d(prediction * target, kernel, padding=padding, groups=channels) - mu_xy + ) + + ssim_map = ((2 * mu_xy + c1) * (2 * sigma_xy + c2)) / ( + (mu_x_sq + mu_y_sq + c1) * (sigma_x_sq + sigma_y_sq + c2) + ) + return ssim_map.mean(dim=(1, 2, 3)) + + +def _model_reconstruction( + model: torch.nn.Module, + input_tensor: torch.Tensor, +) -> torch.Tensor: + output = model(input_tensor) + if hasattr(output, "reconstruction"): + output = output.reconstruction + if not isinstance(output, torch.Tensor): + raise TypeError(f"Expected tensor output, got {type(output)}") + return output + + +def evaluate_super_resolution_model( + model: torch.nn.Module, + dataset: Iterable[tuple[torch.Tensor, torch.Tensor]], + device: torch.device, +) -> dict[str, float]: + if hasattr(model, "eval"): + try: + model.eval() + except NotImplementedError: + pass + + total_l1 = 0.0 + total_psnr = 0.0 + total_ssim = 0.0 + total_examples = 0 + + with torch.no_grad(): + for lr_tensor, hr_tensor in dataset: + lr_tensor = lr_tensor.to(device) + hr_tensor = hr_tensor.to(device) + prediction = _model_reconstruction(model, lr_tensor).clamp(0.0, 1.0) + + l1_values = F.l1_loss(prediction, hr_tensor, reduction="none").mean( + dim=(1, 2, 3) + ) + psnr_values = batch_psnr(prediction, hr_tensor) + ssim_values = batch_ssim(prediction, hr_tensor) + + batch_size = lr_tensor.shape[0] + total_l1 += l1_values.sum().item() + total_psnr += psnr_values.sum().item() + total_ssim += ssim_values.sum().item() + total_examples += batch_size + + if total_examples == 0: + raise ValueError("Evaluation dataset is empty.") + + return { + "l1": total_l1 / total_examples, + "psnr": total_psnr / total_examples, + "ssim": total_ssim / total_examples, + "num_samples": float(total_examples), + } diff --git a/examples/arm/super_resolution_example_vgf/model_export/export_super_resolution.py b/examples/arm/super_resolution_example_vgf/model_export/export_super_resolution.py new file mode 100644 index 00000000000..a8d3d7dfecf --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/model_export/export_super_resolution.py @@ -0,0 +1,366 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from __future__ import annotations + +import argparse +from pathlib import Path + +import torch + +from executorch.backends.arm.quantizer import ( + get_symmetric_quantization_config, + VgfQuantizer, +) +from executorch.backends.arm.vgf import VgfCompileSpec, VgfPartitioner +from executorch.devtools.backend_debug import get_delegation_info +from executorch.exir import ( + EdgeCompileConfig, + ExecutorchBackendConfig, + to_edge_transform_and_lower, +) +from executorch.extension.export_util.utils import save_pte_program +from torch.utils.data import DataLoader +from torchao.quantization.pt2e.quantize_pt2e import convert_pt2e, prepare_pt2e + +# Keep script-compatible imports without requiring package execution. +if __package__ is None or __package__ == "": + import sys + + sys.path.append(str(Path(__file__).resolve().parent)) + from common import ( # type: ignore[import-not-found, no-redef] + create_model_bundle, + evaluate_super_resolution_model, + load_calibration_inputs, + PairedSuperResolutionDataset, + SUPPORTED_MODELS, + write_json, + ) +else: + from .common import ( + create_model_bundle, + evaluate_super_resolution_model, + load_calibration_inputs, + PairedSuperResolutionDataset, + SUPPORTED_MODELS, + write_json, + ) + +CALIBRATION_MAX_SAMPLES = 1000 +EVAL_MAX_SAMPLES = 1000 + + +def has_quantized_out_variants() -> bool: + try: + _ = torch.ops.quantized_decomposed.quantize_per_tensor.out + _ = torch.ops.quantized_decomposed.dequantize_per_tensor.out + return True + except AttributeError: + return False + + +def ensure_quantized_ops_loaded() -> Path | None: + if has_quantized_out_variants(): + return None + + quantized_kernels_available = False + try: + import executorch.kernels.quantized # noqa: F401 + except ImportError: + quantized_kernels_available = False + else: + quantized_kernels_available = True + + if quantized_kernels_available and has_quantized_out_variants(): + return None + + repo_root = Path(__file__).resolve().parents[4] + search_patterns = ( + "cmake-out/kernels/quantized/libquantized_ops_aot_lib.*", + "arm_test/*/kernels/quantized/libquantized_ops_aot_lib.*", + ) + for pattern in search_patterns: + for candidate in sorted(repo_root.glob(pattern)): + if not candidate.is_file(): + continue + torch.ops.load_library(str(candidate)) + if has_quantized_out_variants(): + return candidate + + raise RuntimeError( + "INT8 export requires the quantized ops out-variant library. " + "Build or install ExecuTorch quantized kernels so that " + "`quantized_decomposed::quantize_per_tensor.out` and " + "`quantized_decomposed::dequantize_per_tensor.out` are available." + ) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Export a Swin2SR model for VGF.") + parser.add_argument( + "--model-name", + choices=SUPPORTED_MODELS, + default="swin2sr", + help="Model profile to export.", + ) + parser.add_argument( + "--checkpoint", + default=None, + help="Checkpoint directory or Hugging Face model id.", + ) + parser.add_argument( + "--local-files-only", + action="store_true", + help="Resolve Hugging Face assets from local cache only.", + ) + parser.add_argument( + "--checkpoint-revision", + default=None, + help=( + "Pinned Hugging Face revision to use when --checkpoint points to a model id. " + "Required for remote checkpoints; ignored for local checkpoint paths." + ), + ) + parser.add_argument( + "--input-height", + type=int, + default=64, + help="Static low-resolution input height used for export.", + ) + parser.add_argument( + "--input-width", + type=int, + default=64, + help="Static low-resolution input width used for export.", + ) + parser.add_argument( + "--output-path", + type=str, + required=True, + help="Destination .pte path.", + ) + parser.add_argument( + "--quantization-mode", + choices=("none", "int8"), + default="none", + help="Quantization mode used before lowering to VGF.", + ) + parser.add_argument( + "--calibration-lr-dir", + default=None, + help=( + "Directory of low-resolution images used for PTQ calibration. " + "Required when --quantization-mode=int8." + ), + ) + parser.add_argument( + "--num-calibration-samples", + type=int, + default=32, + help="Maximum number of calibration images to use.", + ) + parser.add_argument( + "--eval-lr-dir", + default=None, + help="Optional directory of low-resolution evaluation images.", + ) + parser.add_argument( + "--eval-hr-dir", + default=None, + help="Optional directory of high-resolution evaluation targets.", + ) + parser.add_argument( + "--num-eval-samples", + type=int, + default=100, + help="Maximum number of evaluation image pairs to use.", + ) + parser.add_argument( + "--artifact-dir", + default=None, + help="Optional directory for intermediate VGF/TOSA artifacts.", + ) + return parser.parse_args() + + +def quantize_model( + model: torch.nn.Module, + quantizer: VgfQuantizer, + example_inputs: tuple[torch.Tensor], + calibration_samples: list[tuple[torch.Tensor]], +) -> torch.export.ExportedProgram: + exported_program = torch.export.export(model, example_inputs) + graph_module = exported_program.module(check_guards=False) + + prepared = prepare_pt2e(graph_module, quantizer) + for sample in calibration_samples: + prepared(*sample) + + quantized_model = convert_pt2e(prepared) + return torch.export.export(quantized_model, example_inputs) + + +def write_delegation_report(edge_program_manager, report_path: Path) -> None: + delegation_info = get_delegation_info( + edge_program_manager.exported_program().graph_module + ) + report_path.write_text(delegation_info.get_summary() + "\n") + + +def maybe_make_eval_loader( + eval_lr_dir: str | None, + eval_hr_dir: str | None, + input_height: int, + input_width: int, + upscale: int, + num_eval_samples: int, +) -> DataLoader[tuple[torch.Tensor, torch.Tensor]] | None: + if eval_lr_dir is None and eval_hr_dir is None: + return None + if (eval_lr_dir is None) != (eval_hr_dir is None): + raise ValueError("--eval-lr-dir and --eval-hr-dir must be provided together.") + + eval_dataset = PairedSuperResolutionDataset( + eval_lr_dir, + eval_hr_dir, + input_height, + input_width, + upscale, + crop_mode="center", + max_samples=min(num_eval_samples, EVAL_MAX_SAMPLES), + ) + return DataLoader(eval_dataset, batch_size=1, shuffle=False, num_workers=0) + + +def main() -> None: + args = parse_args() + + output_path = Path(args.output_path).resolve() + output_path.parent.mkdir(parents=True, exist_ok=True) + metadata_path = output_path.with_suffix(".json") + delegation_path = output_path.with_name(f"{output_path.stem}_delegation.txt") + metrics_path = output_path.with_name(f"{output_path.stem}_metrics.json") + + bundle = create_model_bundle( + model_name=args.model_name, + input_height=args.input_height, + input_width=args.input_width, + checkpoint=args.checkpoint, + checkpoint_revision=args.checkpoint_revision, + local_files_only=args.local_files_only, + ) + + quantize = args.quantization_mode != "none" + compile_spec = VgfCompileSpec("TOSA-1.0+INT" if quantize else "TOSA-1.0+FP") + if args.artifact_dir is not None: + artifact_dir = Path(args.artifact_dir).resolve() + artifact_dir.mkdir(parents=True, exist_ok=True) + compile_spec.dump_intermediate_artifacts_to(str(artifact_dir)) + + calibration_samples: list[tuple[torch.Tensor]] = [] + if quantize: + quantized_ops_library = ensure_quantized_ops_loaded() + if quantized_ops_library is not None: + print(f"Loaded quantized ops library from {quantized_ops_library}") + if args.calibration_lr_dir is None: + raise ValueError( + "--calibration-lr-dir is required when --quantization-mode=int8." + ) + calibration_samples = load_calibration_inputs( + args.calibration_lr_dir, + args.input_height, + args.input_width, + min(args.num_calibration_samples, CALIBRATION_MAX_SAMPLES), + ) + + exported_program: torch.export.ExportedProgram + if quantize: + quantizer = VgfQuantizer(compile_spec) + quantizer.set_global(get_symmetric_quantization_config(is_per_channel=True)) + exported_program = quantize_model( + bundle.model, + quantizer, + bundle.example_inputs, + calibration_samples, + ) + else: + exported_program = torch.export.export(bundle.model, bundle.example_inputs) + + eval_loader = maybe_make_eval_loader( + args.eval_lr_dir, + args.eval_hr_dir, + args.input_height, + args.input_width, + bundle.upscale, + args.num_eval_samples, + ) + evaluation_metrics: dict[str, float] | None = None + if eval_loader is not None: + eval_module = exported_program.module(check_guards=False) + metrics = evaluate_super_resolution_model( + eval_module, + eval_loader, + torch.device("cpu"), + ) + evaluation_metrics = metrics + write_json(metrics_path, metrics) + print( + "Evaluation metrics: " + f"l1={metrics['l1']:.6f} " + f"psnr={metrics['psnr']:.4f} " + f"ssim={metrics['ssim']:.4f}" + ) + + partitioner = VgfPartitioner(compile_spec) + edge_program_manager = to_edge_transform_and_lower( + programs=exported_program, + partitioner=[partitioner], + compile_config=EdgeCompileConfig(_check_ir_validity=False), + ) + write_delegation_report(edge_program_manager, delegation_path) + + executorch_program_manager = edge_program_manager.to_executorch( + config=ExecutorchBackendConfig(extract_delegate_segments=False) + ) + save_pte_program( + executorch_program_manager, + str(output_path), + output_dir=str(output_path.parent), + ) + if not output_path.is_file(): + raise RuntimeError(f"Expected exported model at {output_path}") + + write_json( + metadata_path, + { + "model_name": bundle.model_name, + "checkpoint": args.checkpoint, + "checkpoint_revision": args.checkpoint_revision, + "input_shape": list(bundle.input_shape), + "output_shape": list(bundle.output_shape), + "input_dtype": bundle.input_dtype, + "output_dtype": bundle.output_dtype, + "num_outputs": 1, + "upscale": bundle.upscale, + "window_size": bundle.window_size, + "quantization_mode": args.quantization_mode, + "num_calibration_samples": len(calibration_samples), + "num_eval_samples": ( + int(evaluation_metrics["num_samples"]) + if evaluation_metrics is not None + else 0 + ), + }, + ) + + print(f"Exported model saved to {output_path}") + print(f"Metadata saved to {metadata_path}") + print(f"Delegation summary saved to {delegation_path}") + if evaluation_metrics is not None: + print(f"Evaluation metrics saved to {metrics_path}") + + +if __name__ == "__main__": + main() diff --git a/examples/arm/super_resolution_example_vgf/model_export/prepare_demo_assets.py b/examples/arm/super_resolution_example_vgf/model_export/prepare_demo_assets.py new file mode 100644 index 00000000000..130b72b80d8 --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/model_export/prepare_demo_assets.py @@ -0,0 +1,149 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from __future__ import annotations + +import argparse +import json +from pathlib import Path + +from PIL import Image + +RUNTIME_DEMO_CROP = ("demo", 60, 420) +CALIBRATION_CROPS = ( + ("calib_0", 60, 280), + ("calib_1", 60, 420), + ("calib_2", 60, 560), + ("calib_3", 60, 700), +) +EVAL_CROPS = ( + ("eval_0", 60, 420), + ("eval_1", 60, 700), +) +DEFAULT_SOURCE_IMAGE = ( + Path(__file__).resolve().parents[4] / "docs/source/_static/img/ios_demo_app.jpg" +) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Prepare a reproducible Swin2SR demo dataset from a repo-local image." + ) + parser.add_argument( + "--output-dir", + required=True, + help="Directory where calibration, evaluation, and runtime demo assets are written.", + ) + parser.add_argument( + "--source-image", + default=str(DEFAULT_SOURCE_IMAGE), + help="Source image used for the fixed text-heavy crops.", + ) + parser.add_argument( + "--hr-size", + type=int, + default=128, + help="High-resolution crop size.", + ) + parser.add_argument( + "--lr-size", + type=int, + default=64, + help="Low-resolution size written for runtime/calibration inputs.", + ) + return parser.parse_args() + + +def downsample_to_lr(image: Image.Image, lr_size: int) -> Image.Image: + return image.resize((lr_size, lr_size), Image.Resampling.BICUBIC) + + +def save_image(path: Path, image: Image.Image) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + image.save(path) + + +def crop_square(image: Image.Image, left: int, top: int, size: int) -> Image.Image: + right = left + size + bottom = top + size + if right > image.width or bottom > image.height: + raise ValueError( + f"Crop {(left, top, size)} exceeds source image bounds {image.size}." + ) + return image.crop((left, top, right, bottom)) + + +def write_metadata( + output_dir: Path, + source_image: Path, + hr_size: int, + lr_size: int, +) -> None: + metadata = { + "source_image": str(source_image), + "hr_size": hr_size, + "lr_size": lr_size, + "runtime_demo_crop": { + "name": RUNTIME_DEMO_CROP[0], + "left": RUNTIME_DEMO_CROP[1], + "top": RUNTIME_DEMO_CROP[2], + }, + "calibration_crops": [ + {"name": name, "left": left, "top": top} + for name, left, top in CALIBRATION_CROPS + ], + "eval_crops": [ + {"name": name, "left": left, "top": top} for name, left, top in EVAL_CROPS + ], + } + metadata_path = output_dir / "metadata.json" + metadata_path.write_text(json.dumps(metadata, indent=2, sort_keys=True) + "\n") + + +def main() -> None: + args = parse_args() + if args.lr_size <= 0 or args.hr_size <= 0: + raise ValueError("--lr-size and --hr-size must be positive.") + if args.hr_size != args.lr_size * 2: + raise ValueError("This demo helper expects x2 super-resolution sizes.") + + output_dir = Path(args.output_dir).resolve() + source_image = Path(args.source_image).resolve() + if not source_image.is_file(): + raise FileNotFoundError(f"Source image not found: {source_image}") + + image = Image.open(source_image).convert("RGB") + + for name, left, top in CALIBRATION_CROPS: + hr_crop = crop_square(image, left, top, args.hr_size) + lr_crop = downsample_to_lr(hr_crop, args.lr_size) + save_image(output_dir / "calibration/hr" / f"{name}.png", hr_crop) + save_image(output_dir / "calibration/lr" / f"{name}.png", lr_crop) + + for name, left, top in EVAL_CROPS: + hr_crop = crop_square(image, left, top, args.hr_size) + lr_crop = downsample_to_lr(hr_crop, args.lr_size) + save_image(output_dir / "eval/hr" / f"{name}.png", hr_crop) + save_image(output_dir / "eval/lr" / f"{name}.png", lr_crop) + + demo_name, demo_left, demo_top = RUNTIME_DEMO_CROP + demo_hr = crop_square(image, demo_left, demo_top, args.hr_size) + demo_lr = downsample_to_lr(demo_hr, args.lr_size) + save_image(output_dir / "runtime" / f"{demo_name}_hr_{args.hr_size}.png", demo_hr) + save_image(output_dir / "runtime" / f"{demo_name}_lr_{args.lr_size}.png", demo_lr) + + write_metadata(output_dir, source_image, args.hr_size, args.lr_size) + + print(f"Prepared demo assets under {output_dir}") + print( + f"Runtime input: {output_dir / 'runtime' / f'{demo_name}_lr_{args.lr_size}.png'}" + ) + print( + f"Runtime reference: {output_dir / 'runtime' / f'{demo_name}_hr_{args.hr_size}.png'}" + ) + + +if __name__ == "__main__": + main() diff --git a/examples/arm/super_resolution_example_vgf/requirements.txt b/examples/arm/super_resolution_example_vgf/requirements.txt new file mode 100644 index 00000000000..ba8fbdf938a --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/requirements.txt @@ -0,0 +1,8 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +numpy == 2.1.3 +Pillow == 12.0.0 +transformers[torch] == 4.56.1 diff --git a/examples/arm/super_resolution_example_vgf/runtime/README.md b/examples/arm/super_resolution_example_vgf/runtime/README.md new file mode 100644 index 00000000000..a5ab742fb81 --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/runtime/README.md @@ -0,0 +1,57 @@ +# VGF Host Runtime (executor_runner) + +This flow runs the VGF-exported `.pte` on host using the portable +`executor_runner` binary built at the repo root. The runtime helper script +serializes the input image, invokes `executor_runner`, then reconstructs the +output image from the generated tensor bytes. + +For the smallest reproducible demo in this repo, first create the fixed +text-heavy input and the small LR/HR export set: + +```bash +python examples/arm/super_resolution_example_vgf/model_export/prepare_demo_assets.py \ + --output-dir ./demo_assets +``` + +1. Install ML SDK dependencies and set up the environment: + +```bash +examples/arm/setup.sh --disable-ethos-u-deps --enable-mlsdk-deps +source examples/arm/arm-scratch/setup_path.sh +``` + +2. Build the runner with VGF enabled: + +```bash +cmake -B cmake-out \ + -DCMAKE_BUILD_TYPE=Debug \ + -DEXECUTORCH_BUILD_EXTENSION_DATA_LOADER=ON \ + -DEXECUTORCH_BUILD_EXTENSION_MODULE=ON \ + -DEXECUTORCH_BUILD_EXTENSION_FLAT_TENSOR=ON \ + -DEXECUTORCH_BUILD_EXTENSION_TENSOR=ON \ + -DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON \ + -DEXECUTORCH_BUILD_VULKAN=ON \ + -DEXECUTORCH_BUILD_VGF=ON \ + -DEXECUTORCH_ENABLE_LOGGING=ON \ + . + +cmake --build cmake-out --target executor_runner +``` + +3. Run the exported model on an image that matches the static export size: + +```bash +python examples/arm/super_resolution_example_vgf/runtime/run_super_resolution.py \ + --model-path ./demo_assets/swin2sr_x2_vgf_fp.pte \ + --input-image ./demo_assets/runtime/demo_lr_64.png \ + --output-image ./demo_assets/runtime/demo_fp_128.png +``` + +The runtime helper reads the metadata emitted by the exporter to reconstruct the +output tensor and save it as an image. Because the export uses static shapes, +the input image must match the exported low-resolution dimensions exactly. + +Use the same runtime input with `./demo_assets/swin2sr_x2_vgf_int8.pte` to +validate the INT8 path once the quantized export has been generated. If the +host VKML emulation layer rejects quantized shaders, rerun that runtime step on +Linux or on the target Vulkan driver stack. diff --git a/examples/arm/super_resolution_example_vgf/runtime/run_super_resolution.py b/examples/arm/super_resolution_example_vgf/runtime/run_super_resolution.py new file mode 100644 index 00000000000..ff6b8f30480 --- /dev/null +++ b/examples/arm/super_resolution_example_vgf/runtime/run_super_resolution.py @@ -0,0 +1,252 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +from __future__ import annotations + +import argparse +import json +import math +import subprocess # nosec B404 - executes the trusted local executor_runner binary +import tempfile +from pathlib import Path +from typing import Any, Sequence + +import numpy as np +import torch +from PIL import Image + +STRING_TO_NUMPY_DTYPE = { + "float16": np.float16, + "float32": np.float32, + "int8": np.int8, + "uint8": np.uint8, +} + + +def read_json(path: str | Path) -> dict[str, Any]: + return json.loads(Path(path).read_text()) + + +def load_image_tensor( + image_path: str | Path, + expected_shape: Sequence[int] | None = None, +) -> torch.Tensor: + image = Image.open(image_path).convert("RGB") + image_np = np.asarray(image, dtype=np.float32) / 255.0 + tensor = ( + torch.from_numpy(image_np).permute(2, 0, 1).contiguous().unsqueeze(0).clone() + ) + if expected_shape is not None and tuple(tensor.shape) != tuple(expected_shape): + raise ValueError( + f"Image {image_path} produces tensor shape {tuple(tensor.shape)}, " + f"expected {tuple(expected_shape)}." + ) + return tensor + + +def save_tensor_bytes(path: str | Path, tensor: torch.Tensor) -> Path: + path = Path(path) + path.parent.mkdir(parents=True, exist_ok=True) + array = tensor.detach().cpu().contiguous().numpy() + path.write_bytes(array.tobytes()) + return path + + +def load_tensor_bytes( + path: str | Path, + shape: Sequence[int], + dtype_name: str, +) -> torch.Tensor: + np_dtype = STRING_TO_NUMPY_DTYPE.get(dtype_name) + if np_dtype is None: + raise ValueError(f"Unsupported tensor dtype in metadata: {dtype_name}") + + array = np.fromfile(path, dtype=np_dtype) + expected_numel = math.prod(shape) + if array.size != expected_numel: + raise ValueError( + f"Tensor file {path} contains {array.size} values, expected {expected_numel}." + ) + + reshaped = array.reshape(tuple(shape)).copy() + return torch.from_numpy(reshaped) + + +def save_image_tensor(path: str | Path, tensor: torch.Tensor) -> Path: + path = Path(path) + path.parent.mkdir(parents=True, exist_ok=True) + + image = tensor.detach().cpu() + if image.dim() == 4: + if image.shape[0] != 1: + raise ValueError( + "Only batch size 1 is supported when writing image output." + ) + image = image[0] + + if image.dim() != 3: + raise ValueError(f"Expected CHW image tensor, got shape {tuple(image.shape)}.") + + channels = image.shape[0] + if channels not in {1, 3}: + raise ValueError(f"Expected 1 or 3 channels, got {channels}.") + + image = image.clamp(0.0, 1.0) + image_np = ( + image.permute(1, 2, 0).mul(255.0).round().to(torch.uint8).contiguous().numpy() + ) + + if channels == 1: + pil_image = Image.fromarray(image_np[..., 0], mode="L") + else: + pil_image = Image.fromarray(image_np, mode="RGB") + pil_image.save(path) + return path + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Run a VGF-exported Swin2SR model with executor_runner." + ) + parser.add_argument( + "--model-path", + required=True, + help="Path to the exported .pte file.", + ) + parser.add_argument( + "--metadata-path", + default=None, + help="Optional metadata JSON path. Defaults to .json.", + ) + parser.add_argument( + "--runner", + default="./cmake-out/executor_runner", + help="Path to the host executor_runner binary built with VGF support.", + ) + parser.add_argument( + "--input-image", + required=True, + help="Low-resolution input image.", + ) + parser.add_argument( + "--output-image", + required=True, + help="High-resolution output image path.", + ) + parser.add_argument( + "--working-dir", + default=None, + help="Optional directory for temporary input/output tensor files.", + ) + return parser.parse_args() + + +def resolve_metadata_path(model_path: Path, metadata_path: str | None) -> Path: + if metadata_path is not None: + return Path(metadata_path).resolve() + return model_path.with_suffix(".json") + + +def run_executor_runner( + runner: Path, + model_path: Path, + input_file: Path, + output_base: Path, +) -> subprocess.CompletedProcess[str]: + command = [ + str(runner), + "--model_path", + str(model_path), + "--inputs", + str(input_file), + "--output_file", + str(output_base), + "--print_output", + "none", + ] + return subprocess.run( # nosec B603 - command list is assembled without a shell + command, + check=False, + capture_output=True, + text=True, + ) + + +def main() -> None: + args = parse_args() + model_path = Path(args.model_path).resolve() + metadata_path = resolve_metadata_path(model_path, args.metadata_path) + runner_path = Path(args.runner).resolve() + + if not model_path.is_file(): + raise FileNotFoundError(f"Model file not found: {model_path}") + if not metadata_path.is_file(): + raise FileNotFoundError(f"Metadata file not found: {metadata_path}") + if not runner_path.is_file(): + raise FileNotFoundError(f"executor_runner not found: {runner_path}") + + metadata = read_json(metadata_path) + if metadata.get("num_outputs") != 1: + raise ValueError( + "The runtime helper currently supports single-output models only." + ) + + if args.working_dir is None: + with tempfile.TemporaryDirectory(prefix="executorch-sr-vgf-") as tmp_dir: + workdir = Path(tmp_dir) + run_once( + model_path=model_path, + metadata=metadata, + runner_path=runner_path, + input_image=Path(args.input_image), + output_image=Path(args.output_image), + working_dir=workdir, + ) + else: + workdir = Path(args.working_dir).resolve() + workdir.mkdir(parents=True, exist_ok=True) + run_once( + model_path=model_path, + metadata=metadata, + runner_path=runner_path, + input_image=Path(args.input_image), + output_image=Path(args.output_image), + working_dir=workdir, + ) + + +def run_once( + model_path: Path, + metadata: dict, + runner_path: Path, + input_image: Path, + output_image: Path, + working_dir: Path, +) -> None: + input_tensor = load_image_tensor(input_image, metadata["input_shape"]) + input_path = save_tensor_bytes(working_dir / "input0.bin", input_tensor) + output_base = working_dir / "output" + + result = run_executor_runner(runner_path, model_path, input_path, output_base) + if result.stdout: + print(result.stdout.strip()) + if result.returncode != 0: + raise RuntimeError( + "executor_runner failed.\n" + f"stdout:\n{result.stdout}\n" + f"stderr:\n{result.stderr}" + ) + + output_tensor = load_tensor_bytes( + output_base.with_name(f"{output_base.name}-0.bin"), + metadata["output_shape"], + metadata["output_dtype"], + ) + save_image_tensor(output_image, output_tensor) + print(f"Saved super-resolved image to {output_image.resolve()}") + + +if __name__ == "__main__": + main() From 9851477bc09c4fa98f96c4e6d7e86372cd989ea3 Mon Sep 17 00:00:00 2001 From: Erik Lundell Date: Wed, 20 May 2026 13:19:05 +0200 Subject: [PATCH 73/91] Arm backend: remove flag from Vk pipeline session (#19669) The flag VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT means "Do not perform expensive synchronous compilation during this call" If Vulkan detects that this is needed, it instead throws an error. We can skip this pre-caution. --- backends/arm/runtime/VGFSetup.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backends/arm/runtime/VGFSetup.cpp b/backends/arm/runtime/VGFSetup.cpp index 0e1a66dd5a0..b62a6b2ec23 100644 --- a/backends/arm/runtime/VGFSetup.cpp +++ b/backends/arm/runtime/VGFSetup.cpp @@ -727,8 +727,7 @@ bool VgfRepr::process_vgf( VkDataGraphPipelineCreateInfoARM graph_pipeline_info{ .sType = VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM, .pNext = &shader_info, - .flags = VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT | - VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR, + .flags = VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR, .layout = vk_pipeline_layout, .resourceInfoCount = static_cast(data_graph_resources.size()), .pResourceInfos = data_graph_resources.data(), From 7724fd76e48e48535d2970ed87cfdd2afff7922e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Lindstr=C3=B6m?= <33344797+martinlsm@users.noreply.github.com> Date: Wed, 20 May 2026 13:42:04 +0200 Subject: [PATCH 74/91] Arm backend: Clarify aot_arm_compiler being a test script (#19684) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on the decision that aot_arm_compiler should no longer be used for production use, this patch updates the documentation to direct users away from aot_arm_compiler for production use, and instead points them to the Python API. Signed-off-by: Martin Lindström --- backends/arm/README.md | 48 +++++++++++++++++-- .../tutorials/ethos-u-getting-started.md | 7 +-- .../arm-vgf/tutorials/vgf-getting-started.md | 7 +-- examples/arm/README.md | 4 -- 4 files changed, 53 insertions(+), 13 deletions(-) diff --git a/backends/arm/README.md b/backends/arm/README.md index 25684581777..e9afa5a928d 100644 --- a/backends/arm/README.md +++ b/backends/arm/README.md @@ -116,6 +116,33 @@ Developers who need local source builds can use: The current flow lowers to TOSA and converts to VGF for use in external projects, so the `executor_runner` is not typically used here. +### Compiling models with the Python API + +Use the Python API as the primary way to compile your own models. It lets you +keep model construction, export inputs, quantization, custom passes, and artifact +generation in your application code. The `aot_arm_compiler.py` script is useful +for simple examples and smoke tests, but production code should call the +ExecuTorch and Arm backend APIs directly. + +The delegated Python API flow is: + +1. Prepare the model and representative example inputs. +2. Create a target-specific Arm compile spec. +3. Export the model with `torch.export.export`. +4. Optionally quantize with the target-specific Arm quantizer and re-export the + quantized graph. +5. Create the matching Arm partitioner from the compile spec. +6. Lower with `to_edge_transform_and_lower`. +7. Convert to an ExecuTorch program and save the PTE file. + +For complete examples of that flow, including quantization and target-specific +compile specs, see: + +- `docs/source/backends/arm-ethos-u/tutorials/ethos-u-getting-started.md` +- `docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md` + +Additional examples are available in `examples/arm`. + ### Direct Drive (experimental, Ethos-U85 on Linux) workflow Direct Drive enables execution on Ethos-U85 via the Linux driver stack. @@ -159,7 +186,8 @@ scp -P 2222 arm_test/cmake-out/executor_runner root@127.0.0.1:/tmp/ #### Direct Drive model (PTE) workflow -Create a PTE file: +For a quick test with the example `add` model, +`aot_arm_compiler.py` can be used: ``` python3 -m backends.arm.scripts.aot_arm_compiler \ @@ -170,16 +198,30 @@ python3 -m backends.arm.scripts.aot_arm_compiler \ --direct_drive ``` +For production use, the Python API described in +[Compiling models with the Python API](#compiling-models-with-the-python-api) +should be used. Use an Ethos-U85 target and set the Direct Drive `extra_flags` when creating the `EthosUCompileSpec`: + +```python +compile_spec = EthosUCompileSpec( + target="ethos-u85-256", + extra_flags=["--separate-io-regions", "--cop-format=COP2"], +) +``` + +Then save the generated program as e.g. `model.pte` or +update the copy and run commands below to match your output file name. + Copy the `executor_runner` binary and the generated PTE file to the running FVP: ``` -scp -P 2222 arm_test/cmake-out/executor_runner add_arm_delegate_ethos-u85-256.pte root@127.0.0.1:/tmp/ +scp -P 2222 arm_test/cmake-out/executor_runner model.pte root@127.0.0.1:/tmp/ ``` Run the model on the FVP: ``` -ssh -p 2222 root@127.0.0.1 -t "/tmp/executor_runner -model_path /tmp/add_arm_delegate_ethos-u85-256.pte -num_executions 1" +ssh -p 2222 root@127.0.0.1 -t "/tmp/executor_runner -model_path /tmp/model.pte -num_executions 1" ``` ## Testing 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 fe189a945ee..deccb474ee8 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 @@ -20,7 +20,7 @@ In this tutorial you will learn how to export a simple PyTorch model for the Exe ```{tip} If you are already familiar with this delegate, you may want to jump directly to the examples: * [Examples in the ExecuTorch repository](https://github.com/pytorch/executorch/tree/main/examples/arm) -* [A commandline compiler for example models](https://github.com/pytorch/executorch/blob/main/backends/arm/scripts/aot_arm_compiler.py) +* [A commandline compiler for quick tests and example models](https://github.com/pytorch/executorch/blob/main/backends/arm/scripts/aot_arm_compiler.py) ``` This tutorial serves as an introduction to using ExecuTorch to deploy PyTorch models on Arm® Ethos™-U targets. It is based on `ethos_u_minimal_example.ipynb`, provided in Arm’s examples folder. @@ -142,9 +142,10 @@ save_pte_program(executorch_program_manager, "ethos_u_minimal_example.pte") ```{tip} -For a quick start, you can use the script `backends/arm/scripts/aot_arm_compiler.py` to produce the pte. +For a quick test, you can use the script `backends/arm/scripts/aot_arm_compiler.py` to produce the pte. To produce a pte file equivalent to the one above, run -`python -m backends.arm.scripts.aot_arm_compiler --model_name=add --delegate --quantize --output=ethos_u_minimal_example.pte` +`python -m backends.arm.scripts.aot_arm_compiler --model_name=add --delegate --quantize --output=ethos_u_minimal_example.pte`. +For production use, you should instead use the stable Python API shown above. ``` ### Runtime: diff --git a/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md b/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md index 44e1ca59d93..fcb77452ac3 100644 --- a/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md +++ b/docs/source/backends/arm-vgf/tutorials/vgf-getting-started.md @@ -26,7 +26,7 @@ You may encounter some rough edges and features which may be documented or plann ```{tip} If you are already familiar with this delegate, you may want to jump directly to the examples: * [Examples in the ExecuTorch repository](https://github.com/pytorch/executorch/tree/main/examples/arm) -* [A commandline compiler for example models](https://github.com/pytorch/executorch/blob/main/backends/arm/scripts/aot_arm_compiler.py) +* [A commandline compiler for quick tests and example models](https://github.com/pytorch/executorch/blob/main/backends/arm/scripts/aot_arm_compiler.py) ``` This tutorial serves as an introduction to using ExecuTorch to deploy PyTorch models on VGF targets. The tutorial is based on `vgf_minimal_example.ipyb`, provided in Arm's example folder. @@ -163,9 +163,10 @@ assert os.path.exists(pte_path), "Build failed; no .pte-file found" ```{tip} -For a quick start, you can use the script `backends/arm/scripts/aot_arm_compiler.py` to produce the pte. +For a quick test, you can use the script `backends/arm/scripts/aot_arm_compiler.py` to produce the pte. To produce a pte file equivalent to the one above, run -`python -m backends.arm.scripts.aot_arm_compiler --model_name=add --delegate --quantize --output=simple_example.pte --target=vgf` +`python -m backends.arm.scripts.aot_arm_compiler --model_name=add --delegate --quantize --output=simple_example.pte --target=vgf`. +For production use, you should instead use the stable Python API shown above. ``` ## Runtime diff --git a/examples/arm/README.md b/examples/arm/README.md index 008a9e197a6..d1b81a6fa96 100644 --- a/examples/arm/README.md +++ b/examples/arm/README.md @@ -23,10 +23,6 @@ this can be changed with --et_build_root= `aot_arm_compiler.py` is used to convert a Python model or a saved .pt model to a PTE file and is used by `run.sh` and other test script but can also be used directly. -If you prefer to use the ExecuTorch API, there is also the `ethos_u_minimal_example.ipynb` notebook example. -This shows the workflow if you prefer to integrate a python torch.export and ExecuTorch flow directly into your -model codebase. This is particularly useful if you want to perform more complex training, such as quantization -aware training using the ArmQuantizer. ## Create a PTE file for Arm backends From d87890dc63fe47aed3025bc4c7dd98c5e68b1e80 Mon Sep 17 00:00:00 2001 From: Siddartha Pothapragada Date: Wed, 20 May 2026 06:58:13 -0700 Subject: [PATCH 75/91] Add conversation-history instrumentation tests for LlmModule (#19679) (#19679) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Adds `LlmModuleConversationHistoryTest`, an Android instrumentation test that exercises the multi-turn / KV-cache plumbing on `LlmModule`. The OKR theme this enables is "Feature testing → conversation history" (3.2), which depends on `prefillPrompt` + `resetContext` semantics being correct. The test runs on the existing TinyStories-110M fixture pulled by `android_test_setup.sh` from the public `ossci-android` S3 bucket, so it works on **both** internal fbsource Android CI and OSS GitHub Actions Android CI without any new fixture infrastructure. Because TinyStories is too small and not instruction-tuned, content-level assertions (e.g. "did the model recall the user's name") are not reliable. Instead, the test asserts four behavioral invariants of the conversation-history surface that any production multi-turn flow depends on: 1. `testResetContextProducesDeterministicOutput` — at temperature=0 (greedy decode), running the same prompt twice with `resetContext()` between yields identical token streams. This is the foundational invariant: clearing the KV cache truly returns the model to a clean state. 2. `testKvCacheStatePersistsAcrossGenerateCalls` — without `resetContext()` between calls, two `generate()` calls with the same prompt diverge, proving the KV cache is preserved across turns. If this ever fails, multi-turn conversation is silently broken. 3. `testPrefillPromptInfluencesNextGeneration` — `prefillPrompt(history)` followed by `generate(prompt)` differs from a clean-context `generate(prompt)`, proving the prefilled context actually reaches the decoder. 4. `testResetContextClearsPrefilledHistory` — `prefillPrompt + resetContext + generate` matches a clean-slate `generate`, proving reset fully clears prefilled state. Reviewed By: GregoryComer, kirklandsign Differential Revision: D105741356 Pulled By: psiddh --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Claude --- .../LlmModuleConversationHistoryTest.kt | 196 ++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 extension/android/executorch_android/src/androidTest/java/org/pytorch/executorch/LlmModuleConversationHistoryTest.kt diff --git a/extension/android/executorch_android/src/androidTest/java/org/pytorch/executorch/LlmModuleConversationHistoryTest.kt b/extension/android/executorch_android/src/androidTest/java/org/pytorch/executorch/LlmModuleConversationHistoryTest.kt new file mode 100644 index 00000000000..c75e2ee498d --- /dev/null +++ b/extension/android/executorch_android/src/androidTest/java/org/pytorch/executorch/LlmModuleConversationHistoryTest.kt @@ -0,0 +1,196 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. + */ +package org.pytorch.executorch + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import java.io.File +import java.io.IOException +import org.apache.commons.io.FileUtils +import org.junit.After +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotEquals +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.pytorch.executorch.TestFileUtils.getTestFilePath +import org.pytorch.executorch.extension.llm.LlmCallback +import org.pytorch.executorch.extension.llm.LlmModule + +/** + * Behavioral tests for multi-turn / conversation-history semantics on [LlmModule]. + * + * These tests run on the TinyStories-110M fixture pulled by `android_test_setup.sh`, which is too + * small and not instruction-tuned, so we cannot assert anything about the *content* of generated + * text (e.g. "did the model recall the user's name"). Instead, we assert structural invariants of + * the KV-cache + reset plumbing that any conversation-history feature depends on: + * 1. Determinism after [LlmModule.resetContext] at temperature=0 (greedy decode). + * 2. State preservation across successive [LlmModule.generate] calls (no reset → output diverges). + * 3. [LlmModule.prefillPrompt] influences the next [LlmModule.generate] call. + * 4. [LlmModule.resetContext] fully clears prefilled state. + * + * All tests run on both internal (fbsource Sandcastle) and OSS (GitHub Actions) Android CI because + * the fixture is fetched from the public `ossci-android` S3 bucket by `android_test_setup.sh` and + * the test only depends on the public `LlmModule` API. + */ +@RunWith(AndroidJUnit4::class) +class LlmModuleConversationHistoryTest { + + private lateinit var llmModule: LlmModule + + @Before + @Throws(IOException::class) + fun setUp() { + val pteFile = File(getTestFilePath(TEST_FILE_NAME)) + requireNotNull(javaClass.getResourceAsStream(TEST_FILE_NAME)) { + "Test resource $TEST_FILE_NAME not found; did android_test_setup.sh run?" + } + .use { pteStream -> FileUtils.copyInputStreamToFile(pteStream, pteFile) } + + val tokenizerFile = File(getTestFilePath(TOKENIZER_FILE_NAME)) + requireNotNull(javaClass.getResourceAsStream(TOKENIZER_FILE_NAME)) { + "Test resource $TOKENIZER_FILE_NAME not found; did android_test_setup.sh run?" + } + .use { tokenizerStream -> FileUtils.copyInputStreamToFile(tokenizerStream, tokenizerFile) } + + llmModule = + LlmModule(getTestFilePath(TEST_FILE_NAME), getTestFilePath(TOKENIZER_FILE_NAME), 0.0f) + llmModule.load() + } + + @After + fun tearDown() { + if (::llmModule.isInitialized) { + llmModule.close() + } + } + + /** + * resetContext() + greedy decode (temperature=0) must produce identical output across two runs + * with the same prompt. This is the foundational invariant any conversation-history feature + * relies on: clearing the KV cache truly returns the model to a clean state. + */ + @Test + @Throws(IOException::class) + fun testResetContextProducesDeterministicOutput() { + val firstRun = generateAndCollect(PROMPT_A) + llmModule.resetContext() + val secondRun = generateAndCollect(PROMPT_A) + + assertTrue("Expected non-empty generation on first run", firstRun.isNotEmpty()) + assertTrue("Expected non-empty generation on second run", secondRun.isNotEmpty()) + assertEquals( + "Greedy generation after resetContext() must be deterministic for the same prompt.", + firstRun, + secondRun, + ) + } + + /** + * Without resetContext() between calls, KV-cache state persists and influences subsequent + * generation. Generating the same prompt twice in a row should produce different output the + * second time (because the KV cache is no longer empty and start position is non-zero), or the + * second call may throw because the runtime detects the stale KV state. + * + * Either outcome proves state persistence. If this test ever starts failing (i.e. both calls + * succeed with equal output), the runtime is silently dropping state between generate() calls — + * that would break multi-turn conversations. + */ + @Test + @Throws(IOException::class) + fun testKvCacheStatePersistsAcrossGenerateCalls() { + val firstRun = generateAndCollect(PROMPT_A) + assertTrue("Expected non-empty generation on first run", firstRun.isNotEmpty()) + + try { + val secondRun = generateAndCollect(PROMPT_A) + assertNotEquals( + "Without resetContext(), repeated generate() calls must reflect persisted KV state.", + firstRun, + secondRun, + ) + } catch (_: ExecutorchRuntimeException) { + // The second generate() threw because KV-cache state from the first call + // affected execution — this also proves state persistence. + } + } + + /** + * prefillPrompt() must influence the next generate() — i.e. prefilled tokens are part of the + * conversation history. If prefilling has no effect, multi-turn flows that rely on injecting + * prior turns via prefill are broken. + */ + @Test + @Throws(IOException::class) + fun testPrefillPromptInfluencesNextGeneration() { + val baselineRun = generateAndCollect(PROMPT_A) + + llmModule.resetContext() + llmModule.prefillPrompt(PREFILL_HISTORY) + val withHistoryRun = generateAndCollect(PROMPT_A) + + assertTrue("Expected non-empty baseline generation", baselineRun.isNotEmpty()) + assertTrue("Expected non-empty post-prefill generation", withHistoryRun.isNotEmpty()) + assertNotEquals( + "prefillPrompt() must alter the KV state seen by the next generate() call.", + baselineRun, + withHistoryRun, + ) + } + + /** + * resetContext() must fully clear prefilled state — running prefill then resetting then + * generating should match a clean-slate generation of the same prompt. + */ + @Test + @Throws(IOException::class) + fun testResetContextClearsPrefilledHistory() { + val cleanRun = generateAndCollect(PROMPT_A) + + llmModule.resetContext() + llmModule.prefillPrompt(PREFILL_HISTORY) + llmModule.resetContext() + val postResetRun = generateAndCollect(PROMPT_A) + + assertTrue("Expected non-empty clean run", cleanRun.isNotEmpty()) + assertTrue("Expected non-empty post-reset run", postResetRun.isNotEmpty()) + assertEquals( + "resetContext() after a prefillPrompt() must fully clear KV state.", + cleanRun, + postResetRun, + ) + } + + private fun generateAndCollect(prompt: String): List { + val collector = CollectingCallback() + llmModule.generate(prompt, SEQ_LEN, collector) + return collector.tokens() + } + + private class CollectingCallback : LlmCallback { + private val tokens: MutableList = ArrayList() + + override fun onResult(result: String) { + tokens.add(result) + } + + override fun onStats(stats: String) = Unit + + fun tokens(): List = tokens.toList() + } + + companion object { + private const val TEST_FILE_NAME = "/stories.pte" + private const val TOKENIZER_FILE_NAME = "/tokenizer.bin" + + /** Short prompt; SEQ_LEN kept small to keep the test fast on CI emulators/devices. */ + private const val PROMPT_A = "Once" + private const val PREFILL_HISTORY = "Long ago, in a small village by the sea, " + private const val SEQ_LEN = 24 + } +} From 3b5d18da54e2f18712f3d9f6e86ee05eea921e9e Mon Sep 17 00:00:00 2001 From: Jacob Szwejbka Date: Wed, 20 May 2026 07:47:12 -0700 Subject: [PATCH 76/91] Revert PyTorch 2.12 pin bump (#19698) Summary cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani --- .ci/docker/build.sh | 5 -- .ci/docker/ci_commit_pins/pytorch.txt | 2 +- .ci/docker/common/install_cache.sh | 3 - .ci/docker/common/install_pytorch.sh | 8 +- .ci/docker/ubuntu/Dockerfile | 3 - .ci/scripts/utils.sh | 7 +- .github/workflows/mlx.yml | 4 +- backends/arm/_passes/arm_pass.py | 38 --------- .../test_per_channel_conversion.py | 15 ++-- .../llama3_2_vision/text_decoder/model.py | 14 ++-- .../text_decoder/test/test_text_decoder.py | 1 + .../models/parakeet/export_parakeet_tdt.py | 4 +- extension/llm/modules/attention.py | 8 +- install_requirements.py | 4 +- .../c10/torch/headeronly/macros/Macros.h | 79 ++++--------------- .../c10/torch/headeronly/util/BFloat16.h | 13 ++- torch_pin.py | 2 +- 17 files changed, 51 insertions(+), 159 deletions(-) diff --git a/.ci/docker/build.sh b/.ci/docker/build.sh index 24c4efce24a..0a4c6a6f757 100755 --- a/.ci/docker/build.sh +++ b/.ci/docker/build.sh @@ -97,10 +97,6 @@ esac TORCH_VERSION=$(cat ci_commit_pins/pytorch.txt) BUILD_DOCS=1 -if [[ "${GCC_VERSION:-}" == "11" && -z "${SKIP_PYTORCH:-}" ]]; then - PYTORCH_BUILD_MAX_JOBS=6 -fi - # Copy requirements-lintrunner.txt from root to here cp ../../requirements-lintrunner.txt ./ @@ -113,7 +109,6 @@ docker build \ --build-arg "PYTHON_VERSION=${PYTHON_VERSION}" \ --build-arg "MINICONDA_VERSION=${MINICONDA_VERSION}" \ --build-arg "TORCH_VERSION=${TORCH_VERSION}" \ - --build-arg "PYTORCH_BUILD_MAX_JOBS=${PYTORCH_BUILD_MAX_JOBS:-}" \ --build-arg "BUCK2_VERSION=${BUCK2_VERSION}" \ --build-arg "LINTRUNNER=${LINTRUNNER:-}" \ --build-arg "BUILD_DOCS=${BUILD_DOCS}" \ diff --git a/.ci/docker/ci_commit_pins/pytorch.txt b/.ci/docker/ci_commit_pins/pytorch.txt index 242371cbebe..f6e39a63b92 100644 --- a/.ci/docker/ci_commit_pins/pytorch.txt +++ b/.ci/docker/ci_commit_pins/pytorch.txt @@ -1 +1 @@ -release/2.12 +release/2.11 \ No newline at end of file diff --git a/.ci/docker/common/install_cache.sh b/.ci/docker/common/install_cache.sh index 82be8697320..7b7d39994ca 100755 --- a/.ci/docker/common/install_cache.sh +++ b/.ci/docker/common/install_cache.sh @@ -76,9 +76,6 @@ init_sccache() { # This is the remote cache bucket export SCCACHE_BUCKET=ossci-compiler-cache-circleci-v2 export SCCACHE_S3_KEY_PREFIX=executorch - export SCCACHE_REGION=us-east-1 - export AWS_REGION=us-east-1 - export AWS_DEFAULT_REGION=us-east-1 export SCCACHE_IDLE_TIMEOUT=0 export SCCACHE_ERROR_LOG=/tmp/sccache_error.log export RUST_LOG=sccache::server=error diff --git a/.ci/docker/common/install_pytorch.sh b/.ci/docker/common/install_pytorch.sh index 3c80d093ab2..548a24f885d 100755 --- a/.ci/docker/common/install_pytorch.sh +++ b/.ci/docker/common/install_pytorch.sh @@ -27,12 +27,6 @@ install_pytorch_and_domains() { chown -R ci-user . export _GLIBCXX_USE_CXX11_ABI=1 - if [[ "$(uname -m)" == "aarch64" ]]; then - export BUILD_IGNORE_SVE_UNAVAILABLE=1 - fi - if [[ -n "${PYTORCH_BUILD_MAX_JOBS:-}" ]]; then - export MAX_JOBS="${PYTORCH_BUILD_MAX_JOBS}" - fi # Then build and install PyTorch conda_run python setup.py bdist_wheel pip_install "$(echo dist/*.whl)" @@ -40,7 +34,7 @@ install_pytorch_and_domains() { # Grab the pinned audio and vision commits from PyTorch TORCHAUDIO_VERSION=release/2.11 export TORCHAUDIO_VERSION - TORCHVISION_VERSION=release/0.27 + TORCHVISION_VERSION=release/0.26 export TORCHVISION_VERSION install_domains diff --git a/.ci/docker/ubuntu/Dockerfile b/.ci/docker/ubuntu/Dockerfile index 9a5b2536df0..0e2d7e48eb9 100644 --- a/.ci/docker/ubuntu/Dockerfile +++ b/.ci/docker/ubuntu/Dockerfile @@ -62,12 +62,9 @@ RUN bash ./install_cache.sh && rm install_cache.sh utils.sh ENV SCCACHE_BUCKET ossci-compiler-cache-circleci-v2 ENV SCCACHE_S3_KEY_PREFIX executorch ENV SCCACHE_REGION us-east-1 -ENV AWS_REGION us-east-1 -ENV AWS_DEFAULT_REGION us-east-1 ARG TORCH_VERSION ARG SKIP_PYTORCH -ARG PYTORCH_BUILD_MAX_JOBS COPY ./common/install_pytorch.sh install_pytorch.sh COPY ./common/utils.sh utils.sh RUN if [ -z "${SKIP_PYTORCH}" ]; then bash ./install_pytorch.sh; fi && rm install_pytorch.sh utils.sh diff --git a/.ci/scripts/utils.sh b/.ci/scripts/utils.sh index b312d0ede83..486745f4bf6 100644 --- a/.ci/scripts/utils.sh +++ b/.ci/scripts/utils.sh @@ -107,7 +107,7 @@ install_pytorch_and_domains() { local torch_release=$(cat version.txt) # Download key must match the upload key below (basename of dist/*.whl, # which always carries setup.py's resolved +gitHASH). Branch-ref pins - # like `release/2.12` would otherwise produce `+gitrelease` here and + # like `release/2.11` would otherwise produce `+gitrelease` here and # never hit the cache. local torch_short_hash=$(git rev-parse --short=7 HEAD) local torch_wheel_path="cached_artifacts/pytorch/executorch/pytorch_wheels/${system_name}/${python_version}" @@ -132,9 +132,6 @@ install_pytorch_and_domains() { # (e.g. executorch's requirements-ci.txt). pip install -r requirements-build.txt git submodule update --init --recursive - if [[ "$(uname -m)" == "aarch64" ]]; then - export BUILD_IGNORE_SVE_UNAVAILABLE=1 - fi USE_DISTRIBUTED=1 python setup.py bdist_wheel pip install "$(echo dist/*.whl)" @@ -178,7 +175,7 @@ install_pytorch_and_domains() { # Grab the pinned audio and vision commits from PyTorch TORCHAUDIO_VERSION=release/2.11 export TORCHAUDIO_VERSION - TORCHVISION_VERSION=release/0.27 + TORCHVISION_VERSION=release/0.26 export TORCHVISION_VERSION install_domains diff --git a/.github/workflows/mlx.yml b/.github/workflows/mlx.yml index c4be146f862..d429db16053 100644 --- a/.github/workflows/mlx.yml +++ b/.github/workflows/mlx.yml @@ -120,10 +120,10 @@ jobs: --prompt-len 4 \ --max-new-tokens 5 2>&1) echo "$OUTPUT" - if echo "$OUTPUT" | grep -q "Generated token ids: \[167, 94, 253, 88, 227\]"; then + if echo "$OUTPUT" | grep -q "Generated token ids: \[167, 167, 81, 167, 81\]"; then echo "Success: Qwen 3.5 MoE MLX export + inference completed with expected output" else - echo "Failed: unexpected output (expected [167, 94, 253, 88, 227])" + echo "Failed: unexpected output (expected [167, 167, 81, 167, 81])" exit 1 fi echo "::endgroup::" diff --git a/backends/arm/_passes/arm_pass.py b/backends/arm/_passes/arm_pass.py index add0f3aeb20..1a1a179f456 100644 --- a/backends/arm/_passes/arm_pass.py +++ b/backends/arm/_passes/arm_pass.py @@ -9,14 +9,12 @@ from abc import abstractmethod from typing import Any, List, Optional, Set, Type -import torch from executorch.backends.arm.constants import DISALLOW_TFA_META_KEY from executorch.backends.arm.tosa.mapping import TosaSpecialDtype from executorch.exir.dialects._ops import ops as exir_ops from executorch.exir.pass_base import ExportPass, NodeMetadata, ProxyValue from torch.fx import GraphModule from torch.fx.passes.infra.pass_base import PassResult -from torch.utils import _pytree as pytree class ArmPass(ExportPass): @@ -81,13 +79,6 @@ def get_name(pass_) -> str: ) def call_operator(self, op, args, kwargs, meta, updated: Optional[bool] = False): - if ( - op == exir_ops.edge.aten.bmm.default - and isinstance(meta, NodeMetadata) - and len(meta.data.get("input_qparams", {})) > 0 - ): - return self._call_quantized_bmm_without_fake_kernel(op, args, kwargs, meta) - if not updated: return super().call_operator(op, args, kwargs, meta) @@ -100,35 +91,6 @@ def call_operator(self, op, args, kwargs, meta, updated: Optional[bool] = False) new_meta["stack_trace"] = f"{old_stack_trace}\n{traceback.format_stack()[-2]}" return super().call_operator(op, args, kwargs, NodeMetadata(new_meta)) - def _call_quantized_bmm_without_fake_kernel( - self, - op, - args: tuple[ProxyValue, ...], - kwargs: dict[str, Any], - meta: NodeMetadata, - ) -> ProxyValue: - old_val = meta.data["val"] - output_qparams = meta.data.get("output_qparams", {}) - dtype = ( - next(iter(output_qparams.values())).dtype - if len(output_qparams) > 0 - else old_val.dtype - ) - res_data = torch.empty_like(old_val, dtype=dtype) - - args_proxy, kwargs_proxy = pytree.tree_map_only( - ProxyValue, lambda x: x.proxy, (args, kwargs) - ) - res_proxy = self.tracer.create_proxy( - "call_function", - op, - args_proxy, - kwargs_proxy, - ) - res_proxy.node.meta.update(meta.data) - self.tracer.set_metadata(res_proxy.node, res_data) - return ProxyValue(res_data, res_proxy) - def call_submodule( self, graph_module: GraphModule, inputs: tuple[Any, ...] ) -> PassResult: diff --git a/backends/nxp/tests/generic_tests/test_per_channel_conversion.py b/backends/nxp/tests/generic_tests/test_per_channel_conversion.py index 706d8ed3e14..b3034ff17ed 100644 --- a/backends/nxp/tests/generic_tests/test_per_channel_conversion.py +++ b/backends/nxp/tests/generic_tests/test_per_channel_conversion.py @@ -169,19 +169,14 @@ def test_per_channel_convolution(self, _, use_qat: bool): atol=1.0, ) - conv_nodes = [ - node - for node in exported_program.graph.nodes - if node.target == exir_ops.edge.aten.convolution.default - ] - assert len(conv_nodes) == 1 - - conv_node = conv_nodes[0] + nodes = list(exported_program.graph.nodes) + assert ( - conv_node.args[1].target + nodes[8].target == exir_ops.edge.quantized_decomposed.dequantize_per_channel.default ) assert ( - conv_node.args[2].target + nodes[9].target == exir_ops.edge.quantized_decomposed.dequantize_per_channel.default ) + assert nodes[10].target == exir_ops.edge.aten.convolution.default diff --git a/examples/models/llama3_2_vision/text_decoder/model.py b/examples/models/llama3_2_vision/text_decoder/model.py index 9f15f777045..8f3a620affc 100644 --- a/examples/models/llama3_2_vision/text_decoder/model.py +++ b/examples/models/llama3_2_vision/text_decoder/model.py @@ -181,19 +181,19 @@ def get_example_kwarg_inputs(self): return None def get_dynamic_shapes(self): - static = torch.export.Dim.STATIC + batch_size = 1 dim_seq_len = torch.export.Dim("token_dim", min=1, max=self.max_seq_len) # Hardcoding # of tiles to be 2. image tokens per tile is 1601. if self.use_kv_cache: dynamic_shapes = { - "tokens": {0: static, 1: dim_seq_len}, - "encoder_input": {0: static, 1: static, 2: static}, - "encoder_mask": {0: static, 1: dim_seq_len, 2: static}, - "mask": {0: static, 1: dim_seq_len, 2: static}, - "input_pos": {0: static, 1: dim_seq_len}, + "tokens": {0: batch_size, 1: dim_seq_len}, + "encoder_input": None, + "encoder_mask": {0: 1, 1: dim_seq_len, 2: None}, + "mask": {0: batch_size, 1: dim_seq_len, 2: None}, + "input_pos": {0: batch_size, 1: dim_seq_len}, } else: dynamic_shapes = { - "tokens": {0: static, 1: dim_seq_len}, + "tokens": {0: batch_size, 1: dim_seq_len}, } return dynamic_shapes diff --git a/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py b/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py index 0ef7b298139..4af637212a8 100644 --- a/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py +++ b/examples/models/llama3_2_vision/text_decoder/test/test_text_decoder.py @@ -69,6 +69,7 @@ def test_llama3_2_text_decoder_aoti(self) -> None: encoder, model.get_example_inputs(), kwargs=model.get_example_kwarg_inputs(), + dynamic_shapes=model.get_dynamic_shapes(), strict=True, ) with tempfile.TemporaryDirectory() as tmpdir: diff --git a/examples/models/parakeet/export_parakeet_tdt.py b/examples/models/parakeet/export_parakeet_tdt.py index 75943f6c4ae..6a18cd58218 100644 --- a/examples/models/parakeet/export_parakeet_tdt.py +++ b/examples/models/parakeet/export_parakeet_tdt.py @@ -360,8 +360,8 @@ def export_all( preprocessor_wrapper, (sample_audio, sample_length), dynamic_shapes={ - # min=10 frames = 0.1 sec @ 16kHz, max aligned with encoder limit. - "audio": {0: Dim.AUTO(min=1600, max=max_audio_samples)}, + # min=1600 samples = 0.1 sec @ 16kHz, max aligned with encoder limit + "audio": {0: Dim("audio_len", min=1600, max=max_audio_samples)}, "length": {}, }, strict=False, diff --git a/extension/llm/modules/attention.py b/extension/llm/modules/attention.py index 8869553875e..f9446ea3aa7 100644 --- a/extension/llm/modules/attention.py +++ b/extension/llm/modules/attention.py @@ -302,9 +302,11 @@ def false_fn(y): k, v = calculate_kv(y) else: # Expecting the k, v returning here to be the same size of self.kv_cache - # In eager, we expect this predicate to specialize. In export, keep it - # as a tensor predicate so AOTI does not introduce unbacked symbols. - k, v, cache_pos = torch.cond(torch.isnan(y).all(), true_fn, false_fn, (y,)) + # In eager, we expect this predicate to specialize. In export, this will + # become a SymBool so it's not specialized. + k, v, cache_pos = torch.cond( + torch.isnan(y).all().item(), true_fn, false_fn, (y,) + ) # Update key-value cache self.kv_cache.k_cache.copy_(k) self.kv_cache.v_cache.copy_(v) diff --git a/install_requirements.py b/install_requirements.py index 53204ffd3ee..b30068cbdb8 100644 --- a/install_requirements.py +++ b/install_requirements.py @@ -49,7 +49,7 @@ def install_requirements(use_pytorch_nightly): # 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 - ("torch==2.12.0" if use_pytorch_nightly else "torch"), + ("torch==2.11.0" if use_pytorch_nightly else "torch"), ] # Install the requirements for core ExecuTorch package. @@ -112,7 +112,7 @@ def install_optional_example_requirements(use_pytorch_nightly): print("Installing torch domain libraries") DOMAIN_LIBRARIES = [ - ("torchvision==0.27.0" if use_pytorch_nightly else "torchvision"), + ("torchvision==0.26.0" if use_pytorch_nightly else "torchvision"), ("torchaudio==2.11.0" if use_pytorch_nightly else "torchaudio"), ] # Then install domain libraries diff --git a/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h b/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h index cef99df3f56..63aa0d20d8e 100644 --- a/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h +++ b/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h @@ -325,88 +325,41 @@ constexpr uint32_t CUDA_THREADS_PER_BLOCK_FALLBACK = 256; #define C10_HIP_HOST_DEVICE #endif +#if defined(USE_ROCM) // C10_WARP_SIZE is only allowed for device code. -// Host code dynamically-sized launch configs _must_ use at::cuda::warp_size(). -// Host or device statically-sized arrays _must_ use either -// C10_WARP_SIZE_UPPER_BOUND or C10_WARP_SIZE_LOWER_BOUND, as needed. -// +// Host code _must_ use at::cuda::warp_size() // HIP header used to define warpSize as a constexpr that was either 32 or 64 // depending on the target device, and then always set it to 64 for host code. -// For a time, that allowed C10_WARP_SIZE to be defined like so: -// -// #ifdef USE_ROCM -// #define C10_WARP_SIZE warpSize -// #else -// #define C10_WARP_SIZE 32 -// #endif -// -// In ROCm 7, warpSize is no longer constexpr, matching CUDA behavior. -// We can now only use warpSize for C10_WARP_SIZE in device code and this is -// enforced by using __device__ in its definition. In host code where -// C10_WARP_SIZE was previously used as a compile-time constant, this will now -// cause a compile-time error. -// -// If an array was previously expected to be sized at compile-time using -// C10_WARP_SIZE, users must now use either C10_WARP_SIZE_UPPER_BOUND or -// C10_WARP_SIZE_LOWER_BOUND depending on the situation. -// -// If C10_WARP_SIZE was previously used to determine kernel launch sizes, users -// must now use at::cuda::warp_size() for the dynamic runtime query. -// -// Unfortunately, C10_WARP_SIZE has been public and available for both host and -// device since approximately 2019, so forcing it to be device-only would break -// existing code in the wild. -#if defined(USE_ROCM) +// Host pass of HIP compiler needs C10_WARP_SIZE defined to _something_ so we +// set it to something unreasonable to trigger obvious host code errors. + namespace at::cuda { TORCH_CUDA_CPP_API int warp_size(); } -#if defined(__HIPCC__) -static __host__ inline int C10_WARP_SIZE_INTERNAL() { +#ifdef __HIPCC__ +static inline int __host__ C10_WARP_SIZE_INTERNAL() { return at::cuda::warp_size(); } -// NOTE: __device__ C10_WARP_SIZE_INTERNAL -// For __SPIRV__, we must use dynamic warpSize. When not targeting __SPIRV__, -// we can use constexpr. This matches prior behavior. We preserve this for -// backward compatibility instead of forcing old code to use dynamic warpSize -// and losing constexpr. However, compiling for --offload-arch=amdgcnspirv -// could expose where C10_WARP_SIZE was used incorrectly where the dynamic -// warpSize is not allowed. -#if defined(__SPIRV__) -static __device__ inline int C10_WARP_SIZE_INTERNAL() { - return warpSize; -} -#else // __SPIRV__ -static __device__ inline constexpr int C10_WARP_SIZE_INTERNAL() { + +static inline constexpr int __device__ C10_WARP_SIZE_INTERNAL() { #if defined(__GFX9__) return 64; #else // __GFX9__ return 32; #endif // __GFX9__ } -#endif // __SPIRV__ -#if defined(__SPIRV__) -#define C10_WARP_SIZE_LOWER_BOUND 32 -#define C10_WARP_SIZE_UPPER_BOUND 64 -#elif defined(__GFX9__) -#define C10_WARP_SIZE_LOWER_BOUND 64 -#define C10_WARP_SIZE_UPPER_BOUND 64 -#else -#define C10_WARP_SIZE_LOWER_BOUND 32 -#define C10_WARP_SIZE_UPPER_BOUND 32 -#endif -#else // !__HIPCC__ +#else // __HIPCC__ static inline int C10_WARP_SIZE_INTERNAL() { return at::cuda::warp_size(); } -#define C10_WARP_SIZE_LOWER_BOUND 32 -#define C10_WARP_SIZE_UPPER_BOUND 64 #endif // __HIPCC__ + #define C10_WARP_SIZE (C10_WARP_SIZE_INTERNAL()) -#else // !USE_ROCM +#define C10_WARP_SIZE_STATIC 64 + +#else // defined(USE_ROCM) #define C10_WARP_SIZE 32 -#define C10_WARP_SIZE_LOWER_BOUND 32 -#define C10_WARP_SIZE_UPPER_BOUND 32 -#endif // USE_ROCM +#endif #if defined(_MSC_VER) && _MSC_VER <= 1900 #define __func__ __FUNCTION__ @@ -676,7 +629,7 @@ __host__ __device__ // This macro is used to find older C++ compilers // that don't support move optimization for return values. -#if (defined(__GNUC__) && __GNUC__ < 13 && __cplusplus < 202002L) || \ +#if (defined(__GNUC__) && __GNUC__ < 13) || \ (defined(__clang_major__) && __clang_major__ < 13) #define C10_RETURN_MOVE_IF_OLD_COMPILER 1 #else diff --git a/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h b/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h index 9aa08c265bd..64479ba36f1 100644 --- a/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h +++ b/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h @@ -12,7 +12,7 @@ #include #include -#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) +#if defined(__CUDACC__) && !defined(USE_ROCM) #include #endif @@ -46,7 +46,7 @@ struct alignas(2) BFloat16 { /* implicit */ inline C10_HOST_DEVICE BFloat16(float value); inline C10_HOST_DEVICE operator float() const; -#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) +#if defined(__CUDACC__) && !defined(USE_ROCM) inline C10_HOST_DEVICE BFloat16(const __nv_bfloat16& value); explicit inline C10_HOST_DEVICE operator __nv_bfloat16() const; #endif @@ -124,9 +124,8 @@ C10_CLANG_DIAGNOSTIC_IGNORE("-Wimplicit-int-float-conversion") /// Constructors inline C10_HOST_DEVICE BFloat16::BFloat16(float value) : -#if defined(__CUDACC__) && \ - (!defined(USE_ROCM) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 800 || \ - defined(USE_ROCM) && (TORCH_HIP_VERSION >= 702)) +#if defined(__CUDACC__) && !defined(USE_ROCM) && defined(__CUDA_ARCH__) && \ + __CUDA_ARCH__ >= 800 x(__bfloat16_as_ushort(__float2bfloat16(value))) #elif defined(__SYCL_DEVICE_ONLY__) && \ defined(SYCL_EXT_ONEAPI_BFLOAT16_MATH_FUNCTIONS) @@ -140,7 +139,7 @@ inline C10_HOST_DEVICE BFloat16::BFloat16(float value) /// Implicit conversions inline C10_HOST_DEVICE BFloat16::operator float() const { -#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) +#if defined(__CUDACC__) && !defined(USE_ROCM) return __bfloat162float(*reinterpret_cast(&x)); #elif defined(__SYCL_DEVICE_ONLY__) && \ defined(SYCL_EXT_ONEAPI_BFLOAT16_MATH_FUNCTIONS) @@ -150,7 +149,7 @@ inline C10_HOST_DEVICE BFloat16::operator float() const { #endif } -#if defined(__CUDACC__) && (!defined(USE_ROCM) || (TORCH_HIP_VERSION >= 702)) +#if defined(__CUDACC__) && !defined(USE_ROCM) inline C10_HOST_DEVICE BFloat16::BFloat16(const __nv_bfloat16& value) { x = *reinterpret_cast(&value); } diff --git a/torch_pin.py b/torch_pin.py index 0c5cd50fe6d..3575d9a376d 100644 --- a/torch_pin.py +++ b/torch_pin.py @@ -1,2 +1,2 @@ -TORCH_VERSION = "2.12.0" +TORCH_VERSION = "2.11.0" # NIGHTLY_VERSION = "dev20260318" Temporarily pinning to stable release candidate. Revert https://github.com/pytorch/executorch/pull/18287 From 8debe936d7e46fdd23c866fdfc83a31500087ad2 Mon Sep 17 00:00:00 2001 From: Yufeng Shi Date: Wed, 20 May 2026 17:26:57 +0100 Subject: [PATCH 77/91] Add FP8 placeholder support to ExecuTorch serialization (#19043) Change-Id: Ibb7ef4167ab96426133fce64e34366c365cd12ad Signed-off-by: Yufeng Shi --- exir/print_program.py | 3 +++ exir/serde/export_serialize.py | 3 +++ exir/serde/schema.py | 5 ++++- exir/tensor.py | 3 +++ exir/tests/test_tensor.py | 9 +++++++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/exir/print_program.py b/exir/print_program.py index c1ec1a0bb8e..18029f4169a 100644 --- a/exir/print_program.py +++ b/exir/print_program.py @@ -1,5 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. +# Copyright 2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -60,6 +61,8 @@ def _scalar_type_str(scalar_type: ScalarType) -> str: ScalarType.QUINT8: "qui8", ScalarType.QINT32: "qi32", ScalarType.BFLOAT16: "bf16", + ScalarType.FLOAT8E5M2: "f8e5m2", + ScalarType.FLOAT8E4M3FN: "f8e4m3fn", ScalarType.QUINT4x2: "qui4x2", ScalarType.QUINT2x4: "qui2x4", } diff --git a/exir/serde/export_serialize.py b/exir/serde/export_serialize.py index 7fd1f9470d4..572d87f2dec 100644 --- a/exir/serde/export_serialize.py +++ b/exir/serde/export_serialize.py @@ -1,5 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. +# Copyright 2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -149,6 +150,8 @@ def _reverse_map(d: Dict[Any, Enum]): torch.complex128: ScalarType.COMPLEXDOUBLE, torch.bool: ScalarType.BOOL, torch.bfloat16: ScalarType.BFLOAT16, + torch.float8_e5m2: ScalarType.FLOAT8E5M2, + torch.float8_e4m3fn: ScalarType.FLOAT8E4M3FN, torch.uint16: ScalarType.UINT16 } diff --git a/exir/serde/schema.py b/exir/serde/schema.py index f91526c385f..bd1904aa34f 100644 --- a/exir/serde/schema.py +++ b/exir/serde/schema.py @@ -1,5 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. +# Copyright 2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -16,7 +17,7 @@ from executorch.exir.serde.union import _Union # NOTE: Please update this value if any modifications are made to the schema -SCHEMA_VERSION = (5, 3) +SCHEMA_VERSION = (5, 4) TREESPEC_VERSION = 1 @@ -36,6 +37,8 @@ class ScalarType(IntEnum): BOOL = 12 BFLOAT16 = 13 UINT16 = 14 + FLOAT8E5M2 = 15 + FLOAT8E4M3FN = 16 class Layout(IntEnum): Unknown = 0 diff --git a/exir/tensor.py b/exir/tensor.py index b1619d16bdf..e40d6f10168 100644 --- a/exir/tensor.py +++ b/exir/tensor.py @@ -1,5 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. +# Copyright 2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -292,6 +293,8 @@ def memory_format_enum(memory_format: torch.memory_format) -> int: torch.qint32: ScalarType.QINT32, torch.bfloat16: ScalarType.BFLOAT16, torch.quint4x2: ScalarType.QUINT4x2, + torch.float8_e5m2: ScalarType.FLOAT8E5M2, + torch.float8_e4m3fn: ScalarType.FLOAT8E4M3FN, torch.uint16: ScalarType.UINT16, torch.uint32: ScalarType.UINT32, } diff --git a/exir/tests/test_tensor.py b/exir/tests/test_tensor.py index c5383b0dac2..1a73e81319c 100644 --- a/exir/tests/test_tensor.py +++ b/exir/tests/test_tensor.py @@ -1,5 +1,6 @@ # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. +# Copyright 2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. @@ -90,6 +91,14 @@ def test_normal_tensor_conversion(self) -> None: # whereas strides for torch.memory_format = torch.channels_last is # (3*4*5, 1, 5*3, 3)) + def test_fp8_tensor_conversion(self) -> None: + for dtype in (torch.float8_e5m2, torch.float8_e4m3fn): + normal_tensor = torch.randn(2, 2, 3, dtype=torch.float32).to(dtype) + flatbuffer_tensor = make_tensor_value( + 1, 0, TensorSpec.from_tensor(normal_tensor) + ) + self.compare_tensors(normal_tensor, flatbuffer_tensor) + def test_allocation_info_succeeds(self) -> None: test_cases = ( ( From c0cbc74a69b42ac65a112a242f5d6876754e068e Mon Sep 17 00:00:00 2001 From: Usamah Date: Wed, 20 May 2026 18:01:40 +0100 Subject: [PATCH 78/91] Arm backend: Modernise and standalone the executor runner (#19018) ## Summary This PR modernizes the ExecuTorch Arm bare-metal runner workflow so users can move from a PyTorch model to a runnable Arm executor runner with fewer manual build-system steps, stronger validation, and faster repeated local iteration. The main change is a new standalone Arm executor runner CMake entry point. `run.sh` now acts as the orchestration layer for common Ethos-U bare-metal flows: it can derive build directories, configure the standalone runner with Arm bare-metal defaults, stage generated PTE/BPTE files, validate reused CMake caches, build the needed runner target, locate the runner binary, and invoke FVP. ## Problem Before this change, the Arm runner workflow depended on manually stitching together ExecuTorch build/install artifacts, runner CMake configuration, PTE input wiring, toolchain and target settings, optional debug features, and repeated install/export steps. That made the workflow harder to explain, fragile in CI, slower to iterate on locally, and easy to break when reusing a build directory configured for a different target or feature set. And a shorter version if the PR description is already long: ## CMake Architecture Change ```mermaid flowchart LR subgraph Before A1["Build ExecuTorch
    arm-baremetal preset"] --> A2["Install/export artifacts"] A2 --> A3["Configure runner CMake
    examples/arm/executor_runner"] A4["PTE / BPTE"] --> A3 A3 --> A5["arm_executor_runner ELF"] end subgraph After B1["run.sh"] --> B2["Validate / choose build dir"] B2 --> B3["Standalone runner CMake
    examples/arm/executor_runner/standalone"] B4["PTE / BPTE"] --> B1 B3 --> B5["ExecuTorch top-level CMake
    as subdirectory"] B3 --> B6["Arm CMake helpers + presets"] B5 --> B7["arm_executor_runner ELF"] B6 --> B7 end ``` ## What Changed - Added `examples/arm/executor_runner/standalone` as the supported standalone CMake entry point for `arm_executor_runner`. - Added shared Arm CMake helpers for Ethos-U SDK setup, required target validation, and predictable runner output paths. - Updated `build_executor_runner.sh` and `run.sh` to use the standalone runner workflow. - Added deterministic default build directories under `--et_build_root`. - Added cache validation for reused build directories, including target, toolchain, selected ops, PTE placement, BundleIO, ETDump, and devtools settings. - Added PTE/BPTE staging so repeated runs can reuse the same configured CMake build directory. - Integrated selective-op handling into the standalone runner path. - Cleaned up bare-metal install/export behavior so standalone builds can consume reusable build-tree artifacts. - Updated Arm README and notebooks for the new workflow. ## Iteration Speed Repeated local PTE-to-runner iteration is now **8x faster** because `run.sh` can reuse the configured standalone CMake build directory, stage updated PTE/BPTE payloads into the existing cache wiring, and rebuild only the needed runner target instead of repeating the full manual configure/install/export flow. This is a developer workflow speedup, not a model runtime speedup. ## Result For common Ethos-U bare-metal usage, the user-facing path is now script-owned and repeatable: 1. Run Arm setup. 2. Run `examples/arm/run.sh` with a model and target. 3. Reuse or inspect the generated build directory under `--et_build_root`. 4. Iterate by regenerating the PTE/BPTE and rebuilding through the same validated CMake cache. VGF host flows remain explicit: `run.sh` requires an existing `--build-dir` for VGF-style host builds rather than auto-configuring them as bare-metal runner builds. ## Testing Validated through the Arm backend runner, bare-metal, VGF, and CI workflows covered by this stack. cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani --------- Signed-off-by: Usamah Zaheer --- .ci/scripts/test_cortex_m_e2e.sh | 1 + CMakeLists.txt | 17 + backends/arm/CMakeLists.txt | 27 +- backends/arm/cmake/ArmEthosUSDK.cmake | 60 ++ backends/arm/cmake/ArmRunnerUtils.cmake | 69 ++ backends/arm/scripts/build_executor_runner.sh | 67 +- backends/arm/scripts/build_executorch.sh | 3 +- .../backends-arm-ethos-u-overview.md.in | 4 +- .../ethos-u-getting-started-tutorial.md.in | 23 +- backends/arm/scripts/run_fvp.sh | 4 +- backends/arm/test/misc/test_runner_utils.py | 36 + backends/arm/test/runner_utils.py | 106 ++- backends/arm/test/test_arm_backend.sh | 11 +- backends/cortex_m/CMakeLists.txt | 20 + .../arm-ethos-u/arm-ethos-u-overview.md | 4 +- .../tutorials/ethos-u-getting-started.md | 23 +- examples/arm/README.md | 16 +- examples/arm/cortex_m_mv2_example.ipynb | 4 +- examples/arm/ethos_u_minimal_example.ipynb | 28 +- examples/arm/executor_runner/CMakeLists.txt | 269 +++++--- examples/arm/executor_runner/pte_to_header.py | 3 +- .../executor_runner/standalone/CMakeLists.txt | 159 +++++ examples/arm/pruning_minimal_example.ipynb | 4 +- examples/arm/run.sh | 618 +++++++++++++++--- tools/cmake/preset/arm_baremetal.cmake | 25 +- 25 files changed, 1305 insertions(+), 296 deletions(-) create mode 100644 backends/arm/cmake/ArmEthosUSDK.cmake create mode 100644 backends/arm/cmake/ArmRunnerUtils.cmake create mode 100644 examples/arm/executor_runner/standalone/CMakeLists.txt diff --git a/.ci/scripts/test_cortex_m_e2e.sh b/.ci/scripts/test_cortex_m_e2e.sh index de47a45ea0d..ac6e6d46550 100755 --- a/.ci/scripts/test_cortex_m_e2e.sh +++ b/.ci/scripts/test_cortex_m_e2e.sh @@ -19,6 +19,7 @@ et_root_dir=$(realpath "${script_dir}/../..") # Quantization is the default for the cortex-m55 target; run.sh's # arg parser only recognizes --no_quantize, so we omit any explicit flag. +export ARM_FVP_INSTALL_I_AGREE_TO_THE_CONTAINED_EULA=True bash "${et_root_dir}/examples/arm/run.sh" \ --model_name="${MODEL}" \ --target=cortex-m55 \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 359a0e0f5e4..ac40d86d273 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -160,6 +160,23 @@ announce_configured_options(BUILD_TESTING) load_build_preset() include(${PROJECT_SOURCE_DIR}/tools/cmake/preset/default.cmake) +# Keep bare-metal installs enabled only when ExecuTorch owns the top-level +# build. Standalone consumers (e.g., the runner) set +# EXECUTORCH_BAREMETAL_SKIP_INSTALL=ON but still add ExecuTorch as a subproject, +# which cannot satisfy our install() export dependencies until their own targets +# are configured. +if(DEFINED EXECUTORCH_BAREMETAL_SKIP_INSTALL + AND EXECUTORCH_BAREMETAL_SKIP_INSTALL + AND NOT (CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) +) + set(CMAKE_SKIP_INSTALL_RULES + ON + CACHE BOOL + "Skip install() rules when ExecuTorch is consumed as a subproject" + FORCE + ) +endif() + # Enable ccache if available find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) diff --git a/backends/arm/CMakeLists.txt b/backends/arm/CMakeLists.txt index 0c8b241522c..d8a6c1afce7 100644 --- a/backends/arm/CMakeLists.txt +++ b/backends/arm/CMakeLists.txt @@ -63,17 +63,20 @@ if(EXECUTORCH_BUILD_ARM_BAREMETAL OR EXECUTORCH_BUILD_ARM_ETHOSU_LINUX) add_library(executorch_delegate_ethos_u STATIC ${_arm_backend_sources}) target_link_libraries(executorch_delegate_ethos_u PUBLIC executorch_core) + target_include_directories( + executorch_delegate_ethos_u PRIVATE ${_common_include_directories} + ) if(EXECUTORCH_BUILD_ARM_BAREMETAL) target_sources( executorch_delegate_ethos_u PRIVATE ${EXECUTORCH_ROOT}/backends/arm/runtime/EthosUBackend_Cortex_M.cpp ) - set(DRIVER_ETHOSU_INCLUDE_DIR + set(_ethosu_core_driver_include "${THIRD_PARTY_ROOT}/ethos-u-core-driver/include" ) target_include_directories( - executorch_delegate_ethos_u PRIVATE ${DRIVER_ETHOSU_INCLUDE_DIR} + executorch_delegate_ethos_u PRIVATE ${_ethosu_core_driver_include} ) target_link_libraries(executorch_delegate_ethos_u PUBLIC ethosu_core_driver) elseif(EXECUTORCH_BUILD_ARM_ETHOSU_LINUX) @@ -110,7 +113,25 @@ if(EXECUTORCH_BUILD_ARM_BAREMETAL OR EXECUTORCH_BUILD_ARM_ETHOSU_LINUX) ) endif() - install(TARGETS executorch_delegate_ethos_u EXPORT ExecuTorchTargets) + if(NOT CMAKE_SKIP_INSTALL_RULES) + install(TARGETS executorch_delegate_ethos_u EXPORT ExecuTorchTargets) + + if(TARGET ethosu_core_driver) + get_property( + _et_ethosu_core_driver_exported GLOBAL + PROPERTY ET_ETHOSU_CORE_DRIVER_EXPORTED + ) + if(NOT _et_ethosu_core_driver_exported) + install( + TARGETS ethosu_core_driver + EXPORT ExecuTorchTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) + set_property(GLOBAL PROPERTY ET_ETHOSU_CORE_DRIVER_EXPORTED TRUE) + endif() + endif() + endif() endif() diff --git a/backends/arm/cmake/ArmEthosUSDK.cmake b/backends/arm/cmake/ArmEthosUSDK.cmake new file mode 100644 index 00000000000..03affdf69bb --- /dev/null +++ b/backends/arm/cmake/ArmEthosUSDK.cmake @@ -0,0 +1,60 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +include_guard(GLOBAL) + +function(arm_ethos_u_content_ready SDK_PATH OUT_VAR) + if(EXISTS "${SDK_PATH}/core_platform" AND EXISTS "${SDK_PATH}/core_software") + set(${OUT_VAR} + TRUE + PARENT_SCOPE + ) + else() + set(${OUT_VAR} + FALSE + PARENT_SCOPE + ) + endif() +endfunction() + +function(arm_ethos_u_default_fetch SDK_PATH OUT_VAR) + arm_ethos_u_content_ready("${SDK_PATH}" _arm_ethos_ready) + if(_arm_ethos_ready) + set(${OUT_VAR} + OFF + PARENT_SCOPE + ) + else() + set(${OUT_VAR} + ON + PARENT_SCOPE + ) + endif() +endfunction() + +function(arm_ensure_ethos_u_content SDK_PATH EXECUTORCH_ROOT FETCH_REQUESTED) + arm_ethos_u_content_ready("${SDK_PATH}" _arm_ethos_ready_before) + + if(_arm_ethos_ready_before) + return() + endif() + + if(NOT FETCH_REQUESTED) + message( + FATAL_ERROR + "No Ethos-U content found at ${SDK_PATH}. Run examples/arm/setup.sh or enable FETCH_ETHOS_U_CONTENT=ON." + ) + endif() + + fetch_ethos_u_content(${SDK_PATH} ${EXECUTORCH_ROOT}) + + arm_ethos_u_content_ready("${SDK_PATH}" _arm_ethos_ready_after) + if(NOT _arm_ethos_ready_after) + message( + FATAL_ERROR + "Failed to fetch Ethos-U content into ${SDK_PATH}. Inspect the logs above." + ) + endif() +endfunction() diff --git a/backends/arm/cmake/ArmRunnerUtils.cmake b/backends/arm/cmake/ArmRunnerUtils.cmake new file mode 100644 index 00000000000..e67f38eec22 --- /dev/null +++ b/backends/arm/cmake/ArmRunnerUtils.cmake @@ -0,0 +1,69 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +include_guard(GLOBAL) + +# Helper routines shared by the standalone runner and any superbuild that reuses +# the runner targets. + +function(arm_runner_require_baremetal_targets) + if(NOT TARGET extension_runner_util) + message( + FATAL_ERROR + "extension_runner_util target missing. Configure ExecuTorch (or the standalone runner) with EXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL=ON." + ) + endif() + + if(NOT TARGET quantized_ops_lib OR NOT TARGET quantized_kernels) + message( + FATAL_ERROR + "quantized kernels not found. Ensure EXECUTORCH_BUILD_KERNELS_QUANTIZED=ON when configuring ExecuTorch." + ) + endif() + + if(NOT TARGET cortex_m_ops_lib OR NOT TARGET cortex_m_kernels) + message( + FATAL_ERROR + "cortex_m backend not found. Ensure EXECUTORCH_BUILD_CORTEX_M=ON when configuring ExecuTorch." + ) + endif() +endfunction() + +# Ensure a runner target emits its binary to a predictable location. Uses +# FALLBACK_DIR when TARGET_NAME has no runtime output directory set, and also +# fills per-configuration runtime output directories for multi-config generators +# when they are unset. +function(arm_runner_configure_runtime_output TARGET_NAME FALLBACK_DIR) + if(NOT TARGET ${TARGET_NAME}) + return() + endif() + + get_target_property(_base_runtime_dir ${TARGET_NAME} RUNTIME_OUTPUT_DIRECTORY) + if(NOT _base_runtime_dir + OR _base_runtime_dir STREQUAL "_base_runtime_dir-NOTFOUND" + OR "${_base_runtime_dir}" STREQUAL "" + ) + set_target_properties( + ${TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${FALLBACK_DIR}" + ) + set(_base_runtime_dir "${FALLBACK_DIR}") + endif() + + if(CMAKE_CONFIGURATION_TYPES) + foreach(_cfg ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${_cfg} _cfg_upper) + set(_cfg_prop "RUNTIME_OUTPUT_DIRECTORY_${_cfg_upper}") + get_target_property(_cfg_dir ${TARGET_NAME} ${_cfg_prop}) + if(NOT _cfg_dir + OR _cfg_dir STREQUAL "_cfg_dir-NOTFOUND" + OR "${_cfg_dir}" STREQUAL "" + ) + set_target_properties( + ${TARGET_NAME} PROPERTIES ${_cfg_prop} "${_base_runtime_dir}/${_cfg}" + ) + endif() + endforeach() + endif() +endfunction() diff --git a/backends/arm/scripts/build_executor_runner.sh b/backends/arm/scripts/build_executor_runner.sh index f2ffd2e27a7..55f1a272b9e 100755 --- a/backends/arm/scripts/build_executor_runner.sh +++ b/backends/arm/scripts/build_executor_runner.sh @@ -9,6 +9,9 @@ set -eu script_dir=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd) et_root_dir=$(cd ${script_dir}/../../.. && pwd) et_root_dir=$(realpath ${et_root_dir}) +runner_source_dir=${et_root_dir}/examples/arm/executor_runner/standalone +runner_source_dir=$(realpath ${runner_source_dir}) +preset_file=${et_root_dir}/tools/cmake/preset/arm_baremetal.cmake toolchain=arm-none-eabi-gcc setup_path_script=${et_root_dir}/examples/arm/arm-scratch/setup_path.sh _setup_msg="please refer to ${et_root_dir}/examples/arm/setup.sh to properly install necessary tools." @@ -101,6 +104,9 @@ toolchain_cmake=$(realpath ${toolchain_cmake}) source ${setup_path_script} +[[ -f ${preset_file} ]] \ + || { echo "Missing ${preset_file}. ${_setup_msg}"; exit 1; } + if [[ ${pte_file} == "semihosting" ]]; then pte_data="-DSEMIHOSTING=ON" else @@ -122,13 +128,13 @@ else fi fi ethosu_tools_dir=$(realpath ${ethosu_tools_dir}) -ethos_u_root_dir="$ethosu_tools_dir/ethos-u" +ethos_u_root_dir="${ethosu_tools_dir}/ethos-u" mkdir -p "${ethos_u_root_dir}" -ethosu_tools_dir=$(realpath ${ethos_u_root_dir}) - -et_build_dir=${et_build_root}/cmake-out -mkdir -p ${et_build_dir} -et_build_dir=$(realpath ${et_build_dir}) +ethos_u_root_dir=$(realpath ${ethos_u_root_dir}) +cmsis_nn_local_path="" +if [[ -d "${ethos_u_root_dir}/core_software/cmsis-nn" ]]; then + cmsis_nn_local_path=$(realpath "${ethos_u_root_dir}/core_software/cmsis-nn") +fi if [[ ${system_config} == "" ]] then @@ -160,34 +166,47 @@ echo "-------------------------------------------------------------------------- echo "Build Arm ${toolchain/-gcc/} executor_runner for ${target} PTE: ${pte_file} using ${system_config} ${memory_mode} ${extra_build_flags} to '${output_folder}'" echo "--------------------------------------------------------------------------------" -cd ${et_root_dir}/examples/arm/executor_runner - if [ "$bundleio" = true ] ; then build_bundleio_flags=" -DET_BUNDLE_IO=ON " + candidate_build_dir="${et_build_root}/cmake-out" + if [[ -d "${candidate_build_dir}" ]]; then + candidate_build_dir=$(realpath "${candidate_build_dir}") + build_bundleio_flags+=" -DET_BUILD_DIR_PATH=${candidate_build_dir} " + fi + if [[ -n "${BUNDLED_PROGRAM_LIBRARY_DIR:-}" ]]; then + build_bundleio_flags+=" -DBUNDLED_PROGRAM_LIBRARY_DIR=${BUNDLED_PROGRAM_LIBRARY_DIR} " + fi fi if [ "$build_with_etdump" = true ] ; then build_with_etdump_flags=" -DEXECUTORCH_ENABLE_EVENT_TRACER=ON -DET_DUMP_INTERMEDIATE_OUTPUTS=ON " fi +devtools_flags="" +if [ "$bundleio" = true ] || [ "$build_with_etdump" = true ] ; then + devtools_flags=" -DEXECUTORCH_BUILD_DEVTOOLS=ON " +fi -echo "Building with BundleIO/etdump/extra flags: ${build_bundleio_flags} ${build_with_etdump_flags} ${extra_build_flags}" +echo "Building with BundleIO/etdump/extra flags: ${build_bundleio_flags} ${build_with_etdump_flags} ${devtools_flags} ${extra_build_flags}" cmake \ - -DCMAKE_BUILD_TYPE=${build_type} \ - -DCMAKE_TOOLCHAIN_FILE=${toolchain_cmake} \ - -DTARGET_CPU=${target_cpu} \ - -DET_DIR_PATH:PATH=${et_root_dir} \ - -DET_BUILD_DIR_PATH:PATH=${et_build_dir} \ - -DETHOS_SDK_PATH:PATH=${ethos_u_root_dir} \ - -DETHOSU_TARGET_NPU_CONFIG=${target} \ - ${pte_data} \ - ${build_bundleio_flags} \ - ${build_with_etdump_flags} \ - -DPYTHON_EXECUTABLE=$(which python3) \ - -DSYSTEM_CONFIG=${system_config} \ - -DMEMORY_MODE=${memory_mode} \ + -S ${runner_source_dir} \ + -B ${output_folder} \ + -DEXECUTORCH_ROOT=${et_root_dir} \ + -DCMAKE_BUILD_TYPE=${build_type} \ + -DCMAKE_TOOLCHAIN_FILE=${toolchain_cmake} \ + -DTARGET_CPU=${target_cpu} \ + -DETHOSU_TARGET_NPU_CONFIG=${target} \ + -DEXECUTORCH_BUILD_PRESET_FILE=${preset_file} \ + -DEXECUTORCH_BAREMETAL_SKIP_INSTALL=OFF \ + ${pte_data} \ + ${build_bundleio_flags} \ + ${build_with_etdump_flags} \ + ${devtools_flags} \ + -DSYSTEM_CONFIG=${system_config} \ + -DMEMORY_MODE=${memory_mode} \ -DEXECUTORCH_SELECT_OPS_LIST="${select_ops_list}" \ - ${extra_build_flags} \ - -B ${output_folder} + -DETHOS_SDK_PATH:PATH=${ethos_u_root_dir} \ + ${cmsis_nn_local_path:+-DCMSIS_NN_LOCAL_PATH:PATH=${cmsis_nn_local_path}} \ + ${extra_build_flags} echo "[${BASH_SOURCE[0]}] Configured CMAKE" diff --git a/backends/arm/scripts/build_executorch.sh b/backends/arm/scripts/build_executorch.sh index cf7e327b9ce..828cec77ae8 100755 --- a/backends/arm/scripts/build_executorch.sh +++ b/backends/arm/scripts/build_executorch.sh @@ -85,6 +85,7 @@ cmake_args=( -DCMAKE_BUILD_TYPE=${build_type} -DEXECUTORCH_BUILD_DEVTOOLS=${build_devtools} -DEXECUTORCH_BUILD_ARM_ETDUMP=${build_with_etdump} + -DEXECUTORCH_BAREMETAL_SKIP_INSTALL=OFF ) if [[ ${is_linux_musl} -eq 1 ]]; then @@ -108,7 +109,7 @@ parallel_jobs="$(get_parallel_jobs)" if [[ ${is_linux_musl} -eq 1 ]]; then cmake --build ${et_build_dir} -j"${parallel_jobs}" --target executorch_delegate_ethos_u executor_runner --config ${build_type} -- else - cmake --build ${et_build_dir} -j"${parallel_jobs}" --target install --config ${build_type} -- + cmake --build ${et_build_dir} -j"${parallel_jobs}" --config ${build_type} fi set +x diff --git a/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in b/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in index 19993f9885e..555c61fd13b 100644 --- a/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in +++ b/backends/arm/scripts/docgen/ethos-u/backends-arm-ethos-u-overview.md.in @@ -27,7 +27,7 @@ For the AOT flow, compilation of a model to `.pte` format using the Ethos-U back - [TOSA Serialization Library](https://www.mlplatform.org/tosa/software.html) for serializing the Exir IR graph into TOSA IR. - [Ethos-U Vela graph compiler](https://pypi.org/project/ethos-u-vela/) for compiling TOSA flatbuffers into an Ethos-U command stream. -And for building and running the example application available in `examples/arm/executor_runner/`: +And for building and running the example application available in `examples/arm/executor_runner/` through the standalone CMake entry point: - [Arm GNU Toolchain](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain) for cross compilation. - [Arm® Corstone™ SSE-300 FVP](https://developer.arm.com/documentation/100966/1128/Arm--Corstone-SSE-300-FVP) for testing on a Arm® Cortex®-M55+Ethos-U55 reference design. - [Arm® Corstone™ SSE-320 FVP](https://developer.arm.com/documentation/109760/0000/SSE-320-FVP) for testing on a Arm® Cortex®-M85+Ethos-U85 reference design. @@ -55,7 +55,7 @@ For more information on quantization, see [Quantization](arm-ethos-u-quantizatio ## Runtime Integration -An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), and the steps requried for building and deploying it on a FVP it is explained in the previously mentioned [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). +An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), with a standalone CMake entry point in `examples/arm/executor_runner/standalone`. The steps required for building and deploying it on an FVP are explained in the previously mentioned [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). The example application is recommended to use for testing basic functionality of your lowered models, as well as a starting point for developing runtime integrations for your own targets. For an in-depth explanation of the architecture of the executor_runner and the steps required for doing such an integration, please refer to [Ethos-U porting guide](https://github.com/pytorch/executorch/blob/main/examples/arm/ethos-u-porting-guide.md). 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 256cb5756a3..ecd63afd8ba 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 @@ -76,35 +76,28 @@ To produce a pte file equivalent to the one above, run ### Runtime: -After the AOT compilation flow is done, the runtime can be cross compiled and linked to the produced `.pte`-file using the Arm cross-compilation toolchain. This is done in two steps: +After the AOT compilation flow is done, the runtime can be cross compiled and linked to the produced `.pte`-file using the Arm cross-compilation toolchain. Configure the standalone Arm executor runner CMake project to pull in the ExecuTorch build graph, link the Ethos-U delegate, and generate kernel bindings for any non-delegated ops. This produces the `arm_executor_runner` program that will run on target. -First, build and install the ExecuTorch libraries and EthosUDelegate: ``` # In ExecuTorch top-level, with sourced setup_path.sh -cmake -DCMAKE_BUILD_TYPE=Release --preset arm-baremetal -B cmake-out-arm . -cmake --build cmake-out-arm --target install -j$(nproc) -``` -Second, build and link the `arm_executor_runner` and generate kernel bindings for any non delegated ops. This is the actual program that will run on target. - -``` -# In ExecuTorch top-level, with sourced setup_path.sh -cmake -DCMAKE_TOOLCHAIN_FILE=`pwd`/examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake \ +cmake -S examples/arm/executor_runner/standalone \ + -B ethos_u_minimal_example \ + -DEXECUTORCH_ROOT=$(pwd) \ + -DCMAKE_TOOLCHAIN_FILE=$(pwd)/examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DET_PTE_FILE_PATH=ethos_u_minimal_example.pte \ -DTARGET_CPU=cortex-m55 \ -DETHOSU_TARGET_NPU_CONFIG=ethos-u55-128 \ -DMEMORY_MODE=Shared_Sram \ - -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded \ - -Bethos_u_minimal_example \ - examples/arm/executor_runner + -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded cmake --build ethos_u_minimal_example -j$(nproc) -- arm_executor_runner ``` ```{tip} -For a quick start, you can use the script `backends/arm/scripts/build_executor_runner.sh` to build the runner. +For a quick start, you can use the script `backends/arm/scripts/build_executor_runner.sh` to configure and build the standalone runner. To build a runner equivalent to the one above, run `./backends/arm/scripts/build_executor_runner.sh --pte=ethos_u_minimal_example.pte` -```` +``` The block diagram below shows, at the high level, how the various build artifacts are generated and are linked together to generate the final bare-metal executable. diff --git a/backends/arm/scripts/run_fvp.sh b/backends/arm/scripts/run_fvp.sh index 9f0010189af..9da309fbe41 100755 --- a/backends/arm/scripts/run_fvp.sh +++ b/backends/arm/scripts/run_fvp.sh @@ -151,7 +151,7 @@ elif [[ ${target} == *"ethos-u55"* ]]; then -C mps3_board.telnetterminal0.start_telnet=0 \ -C mps3_board.uart0.out_file='-' \ -C mps3_board.uart0.shutdown_on_eot=1 \ - "${extra_args_u55[@]}" \ + ${extra_args_u55[@]+"${extra_args_u55[@]}"} \ -a "${elf_file}" \ ${data_file} \ --timelimit ${timeout} 2>&1 | sed 's/\r$//' | tee ${log_file} || true # seconds @@ -164,7 +164,7 @@ elif [[ ${target} == *"ethos-u85"* ]]; then -C mps4_board.telnetterminal0.start_telnet=0 \ -C mps4_board.uart0.out_file='-' \ -C mps4_board.uart0.shutdown_on_eot=1 \ - "${extra_args_u85[@]}" \ + ${extra_args_u85[@]+"${extra_args_u85[@]}"} \ -a "${elf_file}" \ ${data_file} \ --timelimit ${timeout} 2>&1 | sed 's/\r$//' | tee ${log_file} || true # seconds diff --git a/backends/arm/test/misc/test_runner_utils.py b/backends/arm/test/misc/test_runner_utils.py index 10a8b6df3a6..3c78b21e008 100644 --- a/backends/arm/test/misc/test_runner_utils.py +++ b/backends/arm/test/misc/test_runner_utils.py @@ -77,3 +77,39 @@ def _fake_run_cmd(cmd, check=True): assert "-i i1.bin" in semihosting_cmd_arg assert long_input_paths[0] not in semihosting_cmd_arg assert long_input_paths[1] not in semihosting_cmd_arg + + +def test_get_elf_path_uses_repo_root_candidates(monkeypatch, tmp_path: Path) -> None: + elf_path = ( + tmp_path + / "arm_test" + / "arm_semihosting_executor_runner_corstone-300" + / "arm_executor_runner" + ) + elf_path.parent.mkdir(parents=True) + elf_path.write_bytes(b"") + + monkeypatch.setattr(runner_utils, "_elf_search_roots", lambda: [tmp_path]) + other_cwd = tmp_path / "elsewhere" + other_cwd.mkdir() + monkeypatch.chdir(other_cwd) + + assert runner_utils.get_elf_path("corstone-300") == str(elf_path) + + +def test_get_elf_path_accepts_nested_runner_output(monkeypatch, tmp_path: Path) -> None: + elf_path = ( + tmp_path + / "arm_test" + / "arm_semihosting_executor_runner_corstone-300" + / "examples" + / "arm" + / "executor_runner" + / "arm_executor_runner" + ) + elf_path.parent.mkdir(parents=True) + elf_path.write_bytes(b"") + + monkeypatch.setattr(runner_utils, "_elf_search_roots", lambda: [tmp_path]) + + assert runner_utils.get_elf_path("corstone-300") == str(elf_path) diff --git a/backends/arm/test/runner_utils.py b/backends/arm/test/runner_utils.py index 914a95f0c8d..93887fbda6b 100644 --- a/backends/arm/test/runner_utils.py +++ b/backends/arm/test/runner_utils.py @@ -12,6 +12,7 @@ import subprocess # nosec B404 - invoked only for trusted toolchain binaries import sys import tempfile +from collections.abc import Iterable from pathlib import Path from types import NoneType @@ -848,39 +849,98 @@ def vkml_emulation_layer_installed() -> bool: return layers_exists and deploy_exists -def assert_elf_path_exists(elf_path): - if not os.path.exists(elf_path): - raise FileNotFoundError( - f"Did not find build arm_executor_runner or executor_runner in path {elf_path}, \ - run setup_testing.sh or setup_testing_vkml.sh?" - ) - - -def get_elf_path(target_board: str, use_portable_ops: bool = False) -> str: - elf_path = "" +def _elf_search_roots() -> list[Path]: + roots: list[Path] = [] + for env_var in ( + "EXECUTORCH_ROOT", + "GITHUB_WORKSPACE", + "BUILD_WORKSPACE_DIRECTORY", + ): + env_root = os.environ.get(env_var) + if env_root: + roots.append(Path(env_root).expanduser()) + + cwd = Path.cwd().resolve() + search_parents = [cwd, *cwd.parents, *Path(__file__).resolve().parents] + for parent in search_parents: + if (parent / "examples" / "arm").is_dir() or (parent / "arm_test").exists(): + roots.append(parent) + + unique_roots: list[Path] = [] + seen: set[Path] = set() + for root in roots: + resolved = root.resolve() + if resolved not in seen: + unique_roots.append(resolved) + seen.add(resolved) + return unique_roots + + +def _elf_path_candidates( + target_board: str, use_portable_ops: bool = False +) -> list[Path]: if target_board not in VALID_TARGET: raise ValueError(f"Unsupported target: {target_board}") - if use_portable_ops: - portable_ops_str = "portable-ops_" - else: - portable_ops_str = "" - + portable_ops_str = "portable-ops_" if use_portable_ops else "" if target_board in ("corstone-300", "corstone-320"): - elf_path = os.path.join( + build_dir = Path( "arm_test", f"arm_semihosting_executor_runner_{portable_ops_str}{target_board}", - "arm_executor_runner", ) - elif target_board == "vkml_emulation_layer": - elf_path = os.path.join( - f"arm_test/arm_executor_runner_{portable_ops_str}vkml", - "executor_runner", + binary_name = "arm_executor_runner" + else: + build_dir = Path("arm_test", f"arm_executor_runner_{portable_ops_str}vkml") + binary_name = "executor_runner" + + candidates: list[Path] = [] + for root in _elf_search_roots(): + root_build_dir = root / build_dir + candidates.extend( + [ + root_build_dir / binary_name, + root_build_dir / "Release" / binary_name, + root_build_dir / "examples" / "arm" / "executor_runner" / binary_name, + root_build_dir + / "examples" + / "arm" + / "executor_runner" + / "Release" + / binary_name, + ] ) - assert_elf_path_exists(elf_path) - return elf_path + unique_candidates: list[Path] = [] + seen: set[Path] = set() + for candidate in candidates: + resolved = candidate.resolve(strict=False) + if resolved not in seen: + unique_candidates.append(resolved) + seen.add(resolved) + return unique_candidates + + +def _resolve_existing_elf_path(elf_candidates: Iterable[Path]) -> Path: + checked: list[Path] = [] + for elf_path in elf_candidates: + checked.append(elf_path) + if elf_path.exists(): + return elf_path + + checked_paths = ", ".join(str(path) for path in checked) + raise FileNotFoundError( + "Did not find build arm_executor_runner or executor_runner. " + f"Tried: {checked_paths}. " + "Run setup_testing.sh or setup_testing_vkml.sh?" + ) + + +def get_elf_path(target_board: str, use_portable_ops: bool = False) -> str: + elf_path = _resolve_existing_elf_path( + _elf_path_candidates(target_board, use_portable_ops=use_portable_ops) + ) + return str(elf_path) def arm_executor_runner_exists(target_board: str, use_portable_ops: bool = False): diff --git a/backends/arm/test/test_arm_backend.sh b/backends/arm/test/test_arm_backend.sh index 3c13fb58cb4..6a69e94b147 100755 --- a/backends/arm/test/test_arm_backend.sh +++ b/backends/arm/test/test_arm_backend.sh @@ -254,14 +254,17 @@ test_pytest_models_vkml() { test_run_vkml() { echo "${TEST_SUITE_NAME}: Test VKML delegate examples with run.sh" + source backends/arm/test/setup_testing_vkml.sh + echo "${TEST_SUITE_NAME}: Test VKML" out_folder="arm_test/test_run" + vkml_build_dir="${build_root_test_dir}" - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=add --output=${out_folder}/runner - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=mul --output=${out_folder}/runner + examples/arm/run.sh --build-dir="${vkml_build_dir}" --et_build_root=${out_folder} --target=vgf --model_name=add --output=${out_folder}/runner + examples/arm/run.sh --build-dir="${vkml_build_dir}" --et_build_root=${out_folder} --target=vgf --model_name=mul --output=${out_folder}/runner - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=qadd --output=${out_folder}/runner - examples/arm/run.sh --et_build_root=${out_folder} --target=vgf --model_name=qops --output=${out_folder}/runner + examples/arm/run.sh --build-dir="${vkml_build_dir}" --et_build_root=${out_folder} --target=vgf --model_name=qadd --output=${out_folder}/runner + examples/arm/run.sh --build-dir="${vkml_build_dir}" --et_build_root=${out_folder} --target=vgf --model_name=qops --output=${out_folder}/runner echo "${TEST_SUITE_NAME}: PASS" } diff --git a/backends/cortex_m/CMakeLists.txt b/backends/cortex_m/CMakeLists.txt index 8c8255b7b1b..876c65982e6 100644 --- a/backends/cortex_m/CMakeLists.txt +++ b/backends/cortex_m/CMakeLists.txt @@ -50,6 +50,26 @@ else() FetchContent_MakeAvailable(cmsis_nn) endif() +if(TARGET cmsis-nn) + if(CMSIS_NN_LOCAL_PATH AND EXISTS "${CMSIS_NN_LOCAL_PATH}") + set(cmsis_nn_source_dir "${CMSIS_NN_LOCAL_PATH}") + else() + set(cmsis_nn_source_dir "${cmsis_nn_SOURCE_DIR}") + endif() + if(cmsis_nn_source_dir) + set(cmsis_nn_include_dir "${cmsis_nn_source_dir}/Include") + set_target_properties( + cmsis-nn + PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES + "$;$" + ) + install(DIRECTORY "${cmsis_nn_include_dir}/" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/cmsis-nn" + ) + endif() +endif() + # Cortex-M ops kernel sources set(_cortex_m_kernels__srcs ${CMAKE_CURRENT_SOURCE_DIR}/ops/op_dequantize_per_tensor.cpp diff --git a/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md b/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md index 0638d781dc4..34b52ff5c35 100644 --- a/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md +++ b/docs/source/backends/arm-ethos-u/arm-ethos-u-overview.md @@ -27,7 +27,7 @@ For the AOT flow, compilation of a model to `.pte` format using the Ethos-U back - [TOSA Serialization Library](https://www.mlplatform.org/tosa/software.html) for serializing the Exir IR graph into TOSA IR. - [Ethos-U Vela graph compiler](https://pypi.org/project/ethos-u-vela/) for compiling TOSA flatbuffers into an Ethos-U command stream. -And for building and running the example application available in `examples/arm/executor_runner/`: +And for building and running the example application available in `examples/arm/executor_runner/` through the standalone CMake entry point: - [Arm GNU Toolchain](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain) for cross compilation. - [Arm® Corstone™ SSE-300 FVP](https://developer.arm.com/documentation/100966/1128/Arm--Corstone-SSE-300-FVP) for testing on a Arm® Cortex®-M55+Ethos-U55 reference design. - [Arm® Corstone™ SSE-320 FVP](https://developer.arm.com/documentation/109760/0000/SSE-320-FVP) for testing on a Arm® Cortex®-M85+Ethos-U85 reference design. @@ -111,7 +111,7 @@ For more information on quantization, see [Quantization](arm-ethos-u-quantizatio ## Runtime Integration -An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), and the steps requried for building and deploying it on a FVP it is explained in the previously mentioned [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). +An example runtime application is available in [examples/arm/executor_runner](https://github.com/pytorch/executorch/blob/main/examples/arm/executor_runner/), with a standalone CMake entry point in `examples/arm/executor_runner/standalone`. The steps required for building and deploying it on an FVP are explained in the previously mentioned [Arm Ethos-U Backend Tutorial](tutorials/ethos-u-getting-started.md). The example application is recommended to use for testing basic functionality of your lowered models, as well as a starting point for developing runtime integrations for your own targets. For an in-depth explanation of the architecture of the executor_runner and the steps required for doing such an integration, please refer to [Ethos-U porting guide](https://github.com/pytorch/executorch/blob/main/examples/arm/ethos-u-porting-guide.md). 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 deccb474ee8..5fdb3530023 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 @@ -150,35 +150,28 @@ For production use, you should instead use the stable Python API shown above. ### Runtime: -After the AOT compilation flow is done, the runtime can be cross compiled and linked to the produced `.pte`-file using the Arm cross-compilation toolchain. This is done in two steps: +After the AOT compilation flow is done, the runtime can be cross compiled and linked to the produced `.pte`-file using the Arm cross-compilation toolchain. Configure the standalone Arm executor runner CMake project to pull in the ExecuTorch build graph, link the Ethos-U delegate, and generate kernel bindings for any non-delegated ops. This produces the `arm_executor_runner` program that will run on target. -First, build and install the ExecuTorch libraries and EthosUDelegate: ``` # In ExecuTorch top-level, with sourced setup_path.sh -cmake -DCMAKE_BUILD_TYPE=Release --preset arm-baremetal -B cmake-out-arm . -cmake --build cmake-out-arm --target install -j$(nproc) -``` -Second, build and link the `arm_executor_runner` and generate kernel bindings for any non delegated ops. This is the actual program that will run on target. - -``` -# In ExecuTorch top-level, with sourced setup_path.sh -cmake -DCMAKE_TOOLCHAIN_FILE=`pwd`/examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake \ +cmake -S examples/arm/executor_runner/standalone \ + -B ethos_u_minimal_example \ + -DEXECUTORCH_ROOT=$(pwd) \ + -DCMAKE_TOOLCHAIN_FILE=$(pwd)/examples/arm/ethos-u-setup/arm-none-eabi-gcc.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DET_PTE_FILE_PATH=ethos_u_minimal_example.pte \ -DTARGET_CPU=cortex-m55 \ -DETHOSU_TARGET_NPU_CONFIG=ethos-u55-128 \ -DMEMORY_MODE=Shared_Sram \ - -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded \ - -Bethos_u_minimal_example \ - examples/arm/executor_runner + -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded cmake --build ethos_u_minimal_example -j$(nproc) -- arm_executor_runner ``` ```{tip} -For a quick start, you can use the script `backends/arm/scripts/build_executor_runner.sh` to build the runner. +For a quick start, you can use the script `backends/arm/scripts/build_executor_runner.sh` to configure and build the standalone runner. To build a runner equivalent to the one above, run `./backends/arm/scripts/build_executor_runner.sh --pte=ethos_u_minimal_example.pte` -```` +``` The block diagram below shows, at the high level, how the various build artifacts are generated and are linked together to generate the final bare-metal executable. diff --git a/examples/arm/README.md b/examples/arm/README.md index d1b81a6fa96..c5f5bb24862 100644 --- a/examples/arm/README.md +++ b/examples/arm/README.md @@ -1,3 +1,10 @@ + + ## ExecuTorch for Arm backends Ethos-U, VGF and Cortex-M This project contains scripts to help you setup and run a PyTorch @@ -11,12 +18,19 @@ The main scripts are `setup.sh`, `run.sh` and `setup.sh` will install the needed tools and with --root-dir you can change the path to a scratch folder where it will download and generate build artifacts. If supplied, you must also supply the same folder to run.sh with ---scratch-dir= If not supplied both script will use examples/arm/arm-scratch +--scratch-dir= If not supplied both scripts will use examples/arm/arm-scratch. `run.sh` can be used to build, run and test a model in an easy way and it will call cmake for you and in cases you want to run a simulator it will start it also. The script will call `aot_arm_compiler.py` to convert a model and include it in the build/run. +For bare-metal Ethos-U builds `run.sh` configures the standalone +`examples/arm/executor_runner/standalone` CMake entry point automatically. If +`--build-dir` is omitted, the script creates and owns a build tree under +`arm_test/_`. Supplying `--build-dir` reuses an existing tree +(for example a VGF host build or out-of-tree configuration) and `run.sh` +verifies it exposes the runner options it needs before compiling. + Build and test artifacts are by default placed under the folder arm_test folder this can be changed with --et_build_root= diff --git a/examples/arm/cortex_m_mv2_example.ipynb b/examples/arm/cortex_m_mv2_example.ipynb index c2fe4342773..36844b4e5fd 100644 --- a/examples/arm/cortex_m_mv2_example.ipynb +++ b/examples/arm/cortex_m_mv2_example.ipynb @@ -136,7 +136,7 @@ "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 executor_runner\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) -- arm_executor_runner" }, { "cell_type": "markdown", @@ -179,4 +179,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/examples/arm/ethos_u_minimal_example.ipynb b/examples/arm/ethos_u_minimal_example.ipynb index fbb15cd0e57..11f24019d23 100644 --- a/examples/arm/ethos_u_minimal_example.ipynb +++ b/examples/arm/ethos_u_minimal_example.ipynb @@ -171,26 +171,8 @@ "source": [ "## Build executor runtime\n", "\n", - "After the AOT compilation flow is done, the runtime can be cross compiled and linked to the produced .pte-file using the Arm cross-compilation toolchain. This is done in two steps:\n", - "1. Build and install the executorch libraries and EthosUDelegate.\n", - "2. Build and link the `arm_executor_runner` and generate kernel bindings for any non delegated ops." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%bash\n", - "# Ensure the arm-none-eabi-gcc toolchain and FVP:s are available on $PATH\n", - "source arm-scratch/setup_path.sh\n", - "\n", - "# Build executorch libraries cross-compiled for arm baremetal to executorch/cmake-out-arm\n", - "cmake --preset arm-baremetal \\\n", - "-DCMAKE_BUILD_TYPE=Release \\\n", - "-B../../cmake-out-arm ../..\n", - "cmake --build ../../cmake-out-arm --target install -j$(nproc) " + "After the AOT compilation flow finishes, cross-compile and link the runtime by configuring the standalone `examples/arm/executor_runner/standalone` CMake project with the Arm toolchain.\n", + "It automatically pulls the ExecuTorch checkout in as a dependency so the delegate, kernels, and runner util are rebuilt alongside the application, and it generates kernel bindings for any non-delegated ops found in the `.pte`.\n" ] }, { @@ -201,6 +183,8 @@ "source": [ "%%bash \n", "source arm-scratch/setup_path.sh\n", + "# Ensure CMake resolves the ExecuTorch checkout root regardless of caller env\n", + "export EXECUTORCH_ROOT=$(cd ../.. && pwd)\n", "\n", "# Build example executor runner application to examples/arm/ethos_u_minimal_example\n", "cmake -DCMAKE_TOOLCHAIN_FILE=$(pwd)/ethos-u-setup/arm-none-eabi-gcc.cmake \\\n", @@ -211,7 +195,7 @@ " -DMEMORY_MODE=Shared_Sram \\\n", " -DSYSTEM_CONFIG=Ethos_U55_High_End_Embedded \\\n", " -Bethos_u_minimal_example \\\n", - " executor_runner\n", + " -S executor_runner/standalone\n", "cmake --build ethos_u_minimal_example -j$(nproc) -- arm_executor_runner" ] }, @@ -232,6 +216,8 @@ "source": [ "%%bash \n", "source arm-scratch/setup_path.sh\n", + "# Ensure CMake resolves the ExecuTorch checkout root regardless of caller env\n", + "export EXECUTORCH_ROOT=$(cd ../.. && pwd)\n", "\n", "# Run the example\n", "../../backends/arm/scripts/run_fvp.sh --elf=ethos_u_minimal_example/arm_executor_runner --target=ethos-u55-128" diff --git a/examples/arm/executor_runner/CMakeLists.txt b/examples/arm/executor_runner/CMakeLists.txt index c169f5d447a..d84947a75ad 100644 --- a/examples/arm/executor_runner/CMakeLists.txt +++ b/examples/arm/executor_runner/CMakeLists.txt @@ -3,8 +3,49 @@ # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. -cmake_minimum_required(VERSION 3.20) -project(arm_executor_runner) +if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + cmake_minimum_required(VERSION 3.20) + project(arm_executor_runner_redirect LANGUAGES C CXX) + message( + FATAL_ERROR + "Configure standalone arm_executor_runner builds from ${CMAKE_CURRENT_LIST_DIR}/standalone instead of ${CMAKE_CURRENT_LIST_DIR}." + ) +endif() + +get_filename_component( + _default_executorch_root "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE +) + +if(NOT DEFINED EXECUTORCH_ROOT) + set(EXECUTORCH_ROOT + "${_default_executorch_root}" + CACHE PATH "Path to an ExecuTorch checkout" + ) +endif() + +set(ET_DIR_PATH + "${EXECUTORCH_ROOT}" + CACHE PATH "Kept for backward compatibility; synonym for EXECUTORCH_ROOT" +) +if(NOT DEFINED ET_INCLUDE_PATH) + set(ET_INCLUDE_PATH + "${EXECUTORCH_ROOT}" + CACHE + PATH + "Kept for backward compatibility; include root for ExecuTorch headers" + ) +endif() + +if(NOT EXISTS "${EXECUTORCH_ROOT}/CMakeLists.txt") + message( + FATAL_ERROR + "EXECUTORCH_ROOT (${EXECUTORCH_ROOT}) does not contain an ExecuTorch CMake project." + ) +endif() + +if(NOT COMMAND executorch_target_link_options_shared_lib) + include(${EXECUTORCH_ROOT}/tools/cmake/Utils.cmake) +endif() option( ET_MODEL_PTE_ADDR @@ -21,6 +62,12 @@ option(ET_LOG_DUMP_INPUT "Dump input in log" OFF) option(ET_LOG_DUMP_OUTPUT "Dump output in log" ON) option(ET_BUNDLE_IO "Set to compile in BundleIO support" OFF) +set(BUNDLED_PROGRAM_LIBRARY_DIR + "" + CACHE + PATH + "Optional directory that contains a prebuilt libbundled_program.a when ET_BUNDLE_IO is enabled without building devtools." +) set(ET_ATOL "0.01" CACHE STRING "Set atol to use for BundleIO testing (Requires ET_BUNDLE_IO)" @@ -55,13 +102,46 @@ option( OFF ) +if(NOT DEFINED PYTHON_EXECUTABLE) + find_package( + Python3 + COMPONENTS Interpreter + REQUIRED + ) + set(PYTHON_EXECUTABLE "${Python3_EXECUTABLE}") +endif() + +include(${EXECUTORCH_ROOT}/backends/arm/scripts/corstone_utils.cmake) +include(${EXECUTORCH_ROOT}/backends/arm/cmake/ArmEthosUSDK.cmake) +include(${EXECUTORCH_ROOT}/backends/arm/cmake/ArmRunnerUtils.cmake) + +arm_runner_require_baremetal_targets() + +# Keep the default scratch location aligned with the scratch tree used by +# setup.sh/run.sh so developers who just ran those scripts do not need extra +# CMake flags. +set(ETHOS_SDK_PATH + "${EXECUTORCH_ROOT}/examples/arm/arm-scratch/ethos-u" + CACHE PATH "Path to Ethos-U bare metal driver/env" +) + +arm_ethos_u_default_fetch("${ETHOS_SDK_PATH}" _fetch_ethos_u_default) option(FETCH_ETHOS_U_CONTENT - "Fetch ethos_u dependencies instead of relying on pre-downloads" ON + "Fetch ethos_u dependencies instead of relying on pre-downloads" + ${_fetch_ethos_u_default} +) +arm_ensure_ethos_u_content( + "${ETHOS_SDK_PATH}" "${EXECUTORCH_ROOT}" ${FETCH_ETHOS_U_CONTENT} ) -if(NOT DEFINED ET_MODEL_PTE_ADDR - AND NOT DEFINED ET_PTE_FILE_PATH - AND NOT DEFINED SEMIHOSTING +set(ET_PTE_FILE_PATH + "" + CACHE PATH "Path to ExecuTorch model pte" +) + +if(NOT ET_MODEL_PTE_ADDR + AND "${ET_PTE_FILE_PATH}" STREQUAL "" + AND NOT SEMIHOSTING ) message( FATAL_ERROR @@ -72,39 +152,16 @@ if(NOT DEFINED ET_MODEL_PTE_ADDR ) endif() -# Example ExecuTorch demo for bare metal Cortex-M based systems -set(ET_DIR_PATH - "${CMAKE_CURRENT_SOURCE_DIR}/../../.." - CACHE PATH "Path to ExecuTorch dir" +if(NOT SEMIHOSTING + AND NOT ET_MODEL_PTE_ADDR + AND NOT "${ET_PTE_FILE_PATH}" STREQUAL "" ) -include(${ET_DIR_PATH}/tools/cmake/Utils.cmake) -set(ET_BUILD_DIR_PATH - "${ET_DIR_PATH}/cmake-out-arm" - CACHE PATH "Path to ExecuTorch build/install dir" -) -set(ET_INCLUDE_PATH - "${ET_DIR_PATH}/.." - CACHE PATH "Path to ExecuTorch headers" -) -set(ET_PTE_FILE_PATH - "" - CACHE PATH "Path to ExecuTorch model pte" -) -set(ETHOS_SDK_PATH - "${ET_DIR_PATH}/examples/arm/arm-scratch/ethos-u" - CACHE PATH "Path to Ethos-U bare metal driver/env" -) -set(PYTHON_EXECUTABLE - "python" - CACHE PATH "Define to override python executable used" -) - -# Include corstone help functions -include(${ET_DIR_PATH}/backends/arm/scripts/corstone_utils.cmake) - -if(FETCH_ETHOS_U_CONTENT) - # Download ethos_u dependency if needed. - fetch_ethos_u_content(${ETHOS_SDK_PATH} ${ET_DIR_PATH}) + if(NOT EXISTS "${ET_PTE_FILE_PATH}") + message( + FATAL_ERROR + "ET_PTE_FILE_PATH is set to ${ET_PTE_FILE_PATH}, but no file was found. Generate the model first or point ET_PTE_FILE_PATH at an existing .pte/.bpte." + ) + endif() endif() # Selects timing adapter values matching system_config. Default is @@ -154,23 +211,33 @@ message( add_corstone_subdirectory(${SYSTEM_CONFIG} ${ETHOS_SDK_PATH}) configure_timing_adapters(${SYSTEM_CONFIG} ${MEMORY_MODE}) -# Dependencies from the ExecuTorch build -find_package( - executorch REQUIRED HINTS "${ET_BUILD_DIR_PATH}/lib/cmake/ExecuTorch" -) +if(NOT CMAKE_SKIP_INSTALL_RULES AND TARGET ethosu_core_driver) + get_property( + _et_ethosu_core_driver_exported GLOBAL + PROPERTY ET_ETHOSU_CORE_DRIVER_EXPORTED + ) + if(NOT _et_ethosu_core_driver_exported) + install( + TARGETS ethosu_core_driver + EXPORT ExecuTorchTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) + set_property(GLOBAL PROPERTY ET_ETHOSU_CORE_DRIVER_EXPORTED TRUE) + endif() +endif() # Convert pte to header -if(NOT ${ET_MODEL_PTE_ADDR} AND NOT SEMIHOSTING) +if(NOT "${ET_MODEL_PTE_ADDR}" AND NOT SEMIHOSTING) add_custom_target( gen_model_header DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/model_pte.h ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/model_pte.h - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/pte_to_header.py --pte - ${ET_PTE_FILE_PATH} --outdir ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/pte_to_header.py + --pte ${ET_PTE_FILE_PATH} --outdir ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${ET_PTE_FILE_PATH} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) endif() @@ -199,12 +266,12 @@ endif() # Proceed with specific actions if either is found if(NOT U55_FOUND EQUAL -1) message(STATUS "SYSTEM_CONFIG contains 'U55'.") - set(LINK_FILE_IN "${CMAKE_SOURCE_DIR}/Corstone-300.ld") + set(LINK_FILE_IN "${CMAKE_CURRENT_LIST_DIR}/Corstone-300.ld") endif() if(NOT U85_FOUND EQUAL -1) message(STATUS "SYSTEM_CONFIG contains 'U85'.") - set(LINK_FILE_IN "${CMAKE_SOURCE_DIR}/Corstone-320.ld") + set(LINK_FILE_IN "${CMAKE_CURRENT_LIST_DIR}/Corstone-320.ld") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") @@ -213,9 +280,9 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set(COMPILER_PREPROCESSOR_OPTIONS -E -x c -P) endif() -get_filename_component(LINK_FILE_OUT_BASE ${LINK_FILE} NAME) +get_filename_component(LINK_FILE_OUT_BASE "${LINK_FILE}" NAME) set(LINK_FILE_OUT - ${CMAKE_CURRENT_BINARY_DIR}/${LINK_FILE_OUT_BASE}.${LINK_FILE_EXT} + "${CMAKE_CURRENT_BINARY_DIR}/${LINK_FILE_OUT_BASE}.${LINK_FILE_EXT}" ) execute_process( @@ -251,26 +318,31 @@ list( # (user-set)SELECT_OPS_MODEL variable. For normal build, use # EXECUTORCH_SELECT_OPS_MODEL to include ops automatically. If the pte contains # no undelegated ops, use neither. -execute_process( - COMMAND - python "${ET_DIR_PATH}/codegen/tools/gen_oplist.py" - --model_file_path=${ET_PTE_FILE_PATH} - --output_path=${CMAKE_CURRENT_BINARY_DIR}/temp.yaml - OUTPUT_VARIABLE CMD_RESULT +set(FOUND_OPS_IN_FILE FALSE) +if(NOT SEMIHOSTING + AND NOT ET_MODEL_PTE_ADDR + AND NOT "${ET_PTE_FILE_PATH}" STREQUAL "" + AND EXISTS "${ET_PTE_FILE_PATH}" ) + execute_process( + COMMAND + ${PYTHON_EXECUTABLE} "${EXECUTORCH_ROOT}/codegen/tools/gen_oplist.py" + --model_file_path=${ET_PTE_FILE_PATH} + --output_path=${CMAKE_CURRENT_BINARY_DIR}/temp.yaml + OUTPUT_VARIABLE CMD_RESULT + ) -if(CMD_RESULT MATCHES "aten::" OR CMD_RESULT MATCHES "dim_order_ops::") - set(FOUND_OPS_IN_FILE "true") -else() - set(FOUND_OPS_IN_FILE "false") + if(CMD_RESULT MATCHES "aten::" OR CMD_RESULT MATCHES "dim_order_ops::") + set(FOUND_OPS_IN_FILE TRUE) + endif() endif() -if(${SEMIHOSTING}) +if(SEMIHOSTING) set(EXECUTORCH_SELECT_OPS_MODEL "") message( "gen_oplist: Building with semihosting, no model is used to auto generate ops from will use EXECUTORCH_SELECT_OPS_LIST=${EXECUTORCH_SELECT_OPS_LIST}" ) -elseif(${FOUND_OPS_IN_FILE}) +elseif(FOUND_OPS_IN_FILE) set(EXECUTORCH_SELECT_OPS_LIST "") set(EXECUTORCH_SELECT_OPS_MODEL "${ET_PTE_FILE_PATH}") message( @@ -289,10 +361,6 @@ endif() if(NOT ("${EXECUTORCH_SELECT_OPS_LIST}" STREQUAL "" AND "${EXECUTORCH_SELECT_OPS_MODEL}" STREQUAL "") ) - set(EXECUTORCH_ROOT ${ET_DIR_PATH}) - include(${ET_DIR_PATH}/tools/cmake/Utils.cmake) - include(${ET_DIR_PATH}/tools/cmake/Codegen.cmake) - gen_selected_ops( LIB_NAME "arm_portable_ops_lib" @@ -310,7 +378,7 @@ if(NOT ("${EXECUTORCH_SELECT_OPS_LIST}" STREQUAL "" generate_bindings_for_kernels( LIB_NAME "arm_portable_ops_lib" FUNCTIONS_YAML - ${ET_DIR_PATH}/kernels/portable/functions.yaml DTYPE_SELECTIVE_BUILD + ${EXECUTORCH_ROOT}/kernels/portable/functions.yaml DTYPE_SELECTIVE_BUILD "${EXECUTORCH_ENABLE_DTYPE_SELECTIVE_BUILD}" ) gen_operators_lib( @@ -333,16 +401,66 @@ if(EXECUTORCH_ENABLE_EVENT_TRACER) endif() if(ET_BUNDLE_IO) - list(APPEND arm_executor_runner_link bundled_program) + if(TARGET bundled_program) + list(APPEND arm_executor_runner_link bundled_program) + target_link_directories( + arm_executor_runner PRIVATE $ + ) + else() + set(_bundled_program_library "") + set(_bundled_program_search_paths "") + if(ET_BUILD_DIR_PATH) + list( + APPEND + _bundled_program_search_paths + "${ET_BUILD_DIR_PATH}" + "${ET_BUILD_DIR_PATH}/lib" + "${ET_BUILD_DIR_PATH}/devtools/bundled_program" + "${ET_BUILD_DIR_PATH}/devtools/bundled_program/lib" + ) + endif() + if(BUNDLED_PROGRAM_LIBRARY_DIR) + list(APPEND _bundled_program_search_paths + "${BUNDLED_PROGRAM_LIBRARY_DIR}" + ) + endif() + if(_bundled_program_search_paths) + list(REMOVE_DUPLICATES _bundled_program_search_paths) + # BundleIO can reuse a separate ExecuTorch build tree where + # bundled_program is not part of this CMake graph. Restrict the fallback + # lookup to the caller-provided build directories so we do not + # accidentally pick up an unrelated library from the host system. + find_library( + _bundled_program_library + NAMES bundled_program + PATHS ${_bundled_program_search_paths} + NO_DEFAULT_PATH + ) + endif() + if(_bundled_program_library) + list(APPEND arm_executor_runner_link ${_bundled_program_library}) + else() + message( + FATAL_ERROR + "ET_BUNDLE_IO enabled but bundled_program is unavailable. Either configure this build with EXECUTORCH_BUILD_DEVTOOLS=ON so the target exists or set BUNDLED_PROGRAM_LIBRARY_DIR/ET_BUILD_DIR_PATH to a build directory that contains libbundled_program.a." + ) + endif() + endif() endif() # Need whole-archive to ensure C++ ctor's are called - this may be wasteful for # bin size as we link in a number of other symbols target_link_libraries(arm_executor_runner PUBLIC ${arm_executor_runner_link}) +# Ensure the ELF lands next to the CMake build tree so run.sh (and downstream +# tooling) can locate it deterministically regardless of multi-config vs +# single-config generators. target_link_options( arm_executor_runner PUBLIC LINKER:-Map=arm_executor_runner.map ) +# Reuse a parent build's output directory if it already set one; otherwise keep +# the runner ELF next to this build tree so run.sh can find it predictably. +arm_runner_configure_runtime_output(arm_executor_runner "${CMAKE_BINARY_DIR}") # Sanitizers if(CMAKE_BUILD_TYPE MATCHES "UndefinedSanitizer") @@ -351,7 +469,7 @@ if(CMAKE_BUILD_TYPE MATCHES "UndefinedSanitizer") target_link_options(arm_executor_runner PRIVATE ${_et_runner_ubsan_flag}) if(NOT TARGET executorch_ubsan) add_subdirectory( - ${ET_DIR_PATH}/examples/arm/ubsan + ${EXECUTORCH_ROOT}/examples/arm/ubsan ${CMAKE_CURRENT_BINARY_DIR}/ubsan_runtime ) endif() @@ -367,7 +485,8 @@ if(CMAKE_BUILD_TYPE MATCHES "AddressSanitizer") target_link_options(arm_executor_runner PRIVATE ${_et_runner_asan_flags}) if(NOT TARGET executorch_asan) add_subdirectory( - ${ET_DIR_PATH}/examples/arm/asan ${CMAKE_CURRENT_BINARY_DIR}/asan_runtime + ${EXECUTORCH_ROOT}/examples/arm/asan + ${CMAKE_CURRENT_BINARY_DIR}/asan_runtime ) endif() target_link_libraries(arm_executor_runner PRIVATE executorch_asan) @@ -377,16 +496,18 @@ if(CMAKE_BUILD_TYPE MATCHES "AddressSanitizer") endif() # ET headers and generated headers includes +set(_arm_runner_include_dirs + ${ET_INCLUDE_PATH} ${ET_INCLUDE_PATH}/runtime/core/portable_type/c10 + ${CMAKE_CURRENT_BINARY_DIR} +) target_include_directories( - arm_executor_runner - PRIVATE ${ET_INCLUDE_PATH} ${ET_DIR_PATH}/runtime/core/portable_type/c10 - ${CMAKE_CURRENT_BINARY_DIR} + arm_executor_runner PRIVATE ${_arm_runner_include_dirs} ) target_compile_definitions( arm_executor_runner PRIVATE C10_USING_CUSTOM_GENERATED_MACROS ) -if(NOT ${ET_MODEL_PTE_ADDR} AND NOT SEMIHOSTING) +if(NOT "${ET_MODEL_PTE_ADDR}" AND NOT SEMIHOSTING) add_dependencies(arm_executor_runner gen_model_header) endif() diff --git a/examples/arm/executor_runner/pte_to_header.py b/examples/arm/executor_runner/pte_to_header.py index 65213bc729e..8656ac5abdf 100644 --- a/examples/arm/executor_runner/pte_to_header.py +++ b/examples/arm/executor_runner/pte_to_header.py @@ -1,6 +1,7 @@ +#!/usr/bin/env python3 # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. -# Copyright 2023-2025 Arm Limited and/or its affiliates. +# Copyright 2023-2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. diff --git a/examples/arm/executor_runner/standalone/CMakeLists.txt b/examples/arm/executor_runner/standalone/CMakeLists.txt new file mode 100644 index 00000000000..73493ca9e71 --- /dev/null +++ b/examples/arm/executor_runner/standalone/CMakeLists.txt @@ -0,0 +1,159 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +cmake_minimum_required(VERSION 3.20) +project(arm_executor_runner LANGUAGES C CXX) + +get_filename_component( + _default_executorch_root "${CMAKE_CURRENT_LIST_DIR}/../../../.." ABSOLUTE +) + +if(NOT DEFINED EXECUTORCH_ROOT) + set(EXECUTORCH_ROOT + "${_default_executorch_root}" + CACHE PATH "Path to an ExecuTorch checkout" + ) +endif() + +if(NOT EXISTS "${EXECUTORCH_ROOT}/CMakeLists.txt") + if(EXISTS "${_default_executorch_root}/CMakeLists.txt") + message( + WARNING + "EXECUTORCH_ROOT (${EXECUTORCH_ROOT}) does not contain an ExecuTorch CMake project. Falling back to ${_default_executorch_root}." + ) + set(EXECUTORCH_ROOT + "${_default_executorch_root}" + CACHE PATH "Path to an ExecuTorch checkout" FORCE + ) + else() + message( + FATAL_ERROR + "EXECUTORCH_ROOT (${EXECUTORCH_ROOT}) does not contain an ExecuTorch CMake project." + ) + endif() +endif() + +set(ARM_EXECUTOR_RUNNER_STANDALONE + ON + CACHE BOOL + "Indicates arm_executor_runner was configured as a standalone project" + FORCE +) + +# Load the preset helper so standalone builds inherit the same defaults as the +# superbuild (toolchains, delegated targets, devtools options, etc.). +set(_executorch_preset_cmake + "${EXECUTORCH_ROOT}/tools/cmake/common/preset.cmake" +) +if(EXISTS "${_executorch_preset_cmake}") + include("${_executorch_preset_cmake}") + if(NOT DEFINED EXECUTORCH_BUILD_PRESET_FILE) + set(EXECUTORCH_BUILD_PRESET_FILE + "${EXECUTORCH_ROOT}/tools/cmake/preset/arm_baremetal.cmake" + CACHE PATH "Preset used when configuring the standalone runner" + ) + endif() + load_build_preset() +endif() +include(${EXECUTORCH_ROOT}/tools/cmake/Utils.cmake) + +option(ARM_EXECUTOR_RUNNER_SKIP_INSTALL_RULES + "Skip install() rules for standalone arm_executor_runner builds" ON +) +if(DEFINED CMAKE_SKIP_INSTALL_RULES) + set(_arm_runner_skip_install_rules "${CMAKE_SKIP_INSTALL_RULES}") +endif() +if(ARM_EXECUTOR_RUNNER_SKIP_INSTALL_RULES) + set(CMAKE_SKIP_INSTALL_RULES ON) +endif() + +foreach( + _opt + EXECUTORCH_BUILD_ARM_BAREMETAL EXECUTORCH_BUILD_CORTEX_M + EXECUTORCH_BUILD_KERNELS_QUANTIZED EXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL +) + if(NOT DEFINED ${_opt}) + set(${_opt} + ON + CACHE BOOL "" FORCE + ) + endif() +endforeach() +set(EXECUTORCH_SKIP_ARM_EXECUTOR_RUNNER + ON + CACHE BOOL "" FORCE +) + +# examples/arm/executor_runner/CMakeLists.txt generates the runner-specific +# portable-op registration based on the PTE or an explicit select-ops list. +# Avoid feeding those cache entries into the top-level ExecuTorch configure, +# otherwise executorch_core auto-right-sizes MAX_KERNEL_NUM from the runner's +# placeholder/selective build inputs even though the runner also links +# quantized/cortex-m registration libraries. +set(_arm_runner_selective_cache_vars + EXECUTORCH_SELECT_OPS_LIST EXECUTORCH_SELECT_OPS_MODEL + EXECUTORCH_SELECT_OPS_YAML +) +foreach(_arm_runner_cache_var IN LISTS _arm_runner_selective_cache_vars) + if(DEFINED CACHE{${_arm_runner_cache_var}}) + get_property( + _arm_runner_cache_type + CACHE ${_arm_runner_cache_var} + PROPERTY TYPE + ) + if(NOT _arm_runner_cache_type OR _arm_runner_cache_type STREQUAL + "UNINITIALIZED" + ) + set(_arm_runner_cache_type STRING) + endif() + set(_arm_runner_saved_type_${_arm_runner_cache_var} + "${_arm_runner_cache_type}" + ) + set(_arm_runner_saved_value_${_arm_runner_cache_var} + "${${_arm_runner_cache_var}}" + ) + set(_arm_runner_saved_defined_${_arm_runner_cache_var} TRUE) + set(${_arm_runner_cache_var} + "" + CACHE ${_arm_runner_cache_type} "" FORCE + ) + endif() +endforeach() + +if(NOT DEFINED CACHE{MAX_KERNEL_NUM} AND NOT DEFINED MAX_KERNEL_NUM) + set(MAX_KERNEL_NUM + 2000 + CACHE STRING + "Maximum number of kernels registered by the standalone Arm runner" + ) +endif() + +# Pull ExecuTorch in-tree so all required targets (delegates, kernels, runner +# util, etc.) are built from this checkout. +add_subdirectory( + ${EXECUTORCH_ROOT} ${CMAKE_BINARY_DIR}/executorch EXCLUDE_FROM_ALL +) + +if(ARM_EXECUTOR_RUNNER_SKIP_INSTALL_RULES) + if(DEFINED _arm_runner_skip_install_rules) + set(CMAKE_SKIP_INSTALL_RULES "${_arm_runner_skip_install_rules}") + else() + unset(CMAKE_SKIP_INSTALL_RULES) + endif() +endif() + +foreach(_arm_runner_cache_var IN LISTS _arm_runner_selective_cache_vars) + if(_arm_runner_saved_defined_${_arm_runner_cache_var}) + set(${_arm_runner_cache_var} + "${_arm_runner_saved_value_${_arm_runner_cache_var}}" + CACHE ${_arm_runner_saved_type_${_arm_runner_cache_var}} "" FORCE + ) + endif() +endforeach() + +add_subdirectory( + ${EXECUTORCH_ROOT}/examples/arm/executor_runner + ${CMAKE_BINARY_DIR}/examples/arm/executor_runner +) diff --git a/examples/arm/pruning_minimal_example.ipynb b/examples/arm/pruning_minimal_example.ipynb index db585b94158..a24c6626a15 100644 --- a/examples/arm/pruning_minimal_example.ipynb +++ b/examples/arm/pruning_minimal_example.ipynb @@ -453,7 +453,7 @@ " -DMEMORY_MODE=Shared_Sram \\\n", " -DSYSTEM_CONFIG=Ethos_U85_SYS_DRAM_Mid \\\n", " -Bethos_u_original_model \\\n", - " executor_runner\n", + " -S executor_runner/standalone\n", "cmake --build ethos_u_original_model -j$(nproc) -- arm_executor_runner" ] }, @@ -499,7 +499,7 @@ " -DMEMORY_MODE=Shared_Sram \\\n", " -DSYSTEM_CONFIG=Ethos_U85_SYS_DRAM_Mid \\\n", " -Bethos_u_pruned_model \\\n", - " executor_runner\n", + " -S executor_runner/standalone\n", "cmake --build ethos_u_pruned_model -j$(nproc) -- arm_executor_runner" ] }, diff --git a/examples/arm/run.sh b/examples/arm/run.sh index b18115723b0..351eda14071 100755 --- a/examples/arm/run.sh +++ b/examples/arm/run.sh @@ -14,8 +14,9 @@ set -eu ######## script_dir=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd) et_root_dir=$(cd ${script_dir}/../.. && pwd) -et_root_dir=$(realpath ${et_root_dir}) - +et_root_dir=$(realpath "${et_root_dir}") +runner_source_dir="${et_root_dir}/examples/arm/executor_runner/standalone" +runner_source_dir=$(realpath "${runner_source_dir}") model_name="" model_input_set=false @@ -29,7 +30,7 @@ output_folder="." bundleio=false build_with_etdump=false build_type="Release" -extra_build_flags="" +build_dir="" build_only=false system_config="" config="" @@ -38,8 +39,9 @@ pte_placement="elf" et_build_root="${et_root_dir}/arm_test" arm_scratch_dir=${script_dir}/arm-scratch scratch_dir_set=false -toolchain=arm-none-eabi-gcc +toolchain="arm-none-eabi-gcc" select_ops_list="aten::_softmax.out" +select_ops_list_overridden=false qdq_fusion_op=false model_explorer=false perf_overlay=false @@ -47,6 +49,12 @@ visualize_tosa=false visualize_pte=false model_converter=false specify_ethosu_scratch=false +extra_build_flags="" +preset_file="${et_root_dir}/tools/cmake/preset/arm_baremetal.cmake" +cmake_cache_file="" +build_dir_initialized=false +multi_config=false +parallel_jobs=1 function help() { echo "Usage: $(basename $0) [options]" @@ -57,8 +65,7 @@ function help() { echo " --aot_arm_compiler_flags= Extra flags to pass to aot compiler" echo " --no_delegate Do not delegate the model (can't override builtin models)" echo " --no_quantize Do not quantize the model (can't override builtin models)" - echo " --portable_kernels= TO BE DEPRECATED: Alias to select_ops_list." - echo " --select_ops_list= Comma separated list of portable (non delagated) kernels to include Default: ${select_ops_list}" + echo " --select_ops_list= Comma separated list of portable (non delegated) kernels to include. Default: ${select_ops_list}" echo " NOTE: This is only used when building for semihosting." echo " See https://docs.pytorch.org/executorch/stable/kernel-library-selective-build.html for more information." echo " --target= Target to build and run for Default: ${target}" @@ -66,9 +73,10 @@ function help() { echo " --bundleio Create Bundled pte using Devtools BundelIO with Input/RefOutput included" echo " --etdump Adds Devtools etdump support to track timing, etdump area will be base64 encoded in the log" echo " --build_type= Build with Release, Debug, RelWithDebInfo, UndefinedSanitizer or AddressSanitizer, default is ${build_type}" - echo " --extra_build_flags= Extra flags to pass to cmake like -DET_ARM_BAREMETAL_METHOD_ALLOCATOR_POOL_SIZE=60000 Default: none " + echo " --build-dir=

    Optional: reuse an existing arm_executor_runner build directory (configured via 'cmake -S examples/arm/executor_runner/standalone -B ...'). If omitted, run.sh auto-configures one under ${et_build_root} for bare-metal targets." echo " --build_only Only build, don't run" - echo " --toolchain= Ethos-U: Toolchain can be specified (e.g. bare metal as arm-none-eabi-gcc or zephyr as arm-zephyr-eabi-gcc Default: ${toolchain}" + echo " --extra_build_flags=\"\" Extra -D style flags to pass to cmake when run.sh auto-configures the build" + echo " --toolchain= Toolchain preset to use when run.sh auto-configures the build. Default: ${toolchain}" echo " --system_config= Ethos-U: System configuration to select from the Vela configuration file (see vela.ini). Default: Ethos_U55_High_End_Embedded for EthosU55 targets, Ethos_U85_SYS_DRAM_Mid for EthosU85 targets." echo " NOTE: If given, this option must match the given target. This option also sets timing adapter values customized for specific hardware, see ./executor_runner/CMakeLists.txt." echo " --config= Ethos-U: System configuration file that specifies system configurations (vela.ini)" @@ -76,11 +84,11 @@ function help() { echo " --pte_placement= Ethos-U: Control if runtime has PTE baked into the elf or if its placed in memory outside of the elf, defaults to ${pte_placement}" echo " --specify_ethosu_scratch Use actual Ethos-U scratch size for given model to size temp allocator" echo " --et_build_root= Executorch build output root folder to use, defaults to ${et_build_root}" - echo " --scratch-dir= Path to your Arm scrach dir if you not using default ${arm_scratch_dir}" + echo " --scratch-dir= Path to your Ethos-U scratch dir if you not using default ${arm_scratch_dir}" echo " --qdq_fusion_op Enable QDQ fusion op" echo " --model_explorer Enable model explorer to visualize a TOSA or PTE model graph." echo " --visualize_pte With --model_explorer, visualize PTE flatbuffer model and delegates. Cannot be used with --visualize_tosa" - echo " NOTE: If PTE contains an Ethos-U delegate, the Ethos-U subgraph will be visualized if aot_arm_compiler_flags is set with the -i flag to include intermediate tosa files." + echo " NOTE: If PTE contains an Ethos-U delegate, the Ethos-U subgraph will be visualized if aot_arm_compiler_flags includes -i for TOSA dumps." echo " --visualize_tosa With --model_explorer, visualize TOSA flatbuffer model. Cannot be used with --visualize_pte" echo " --perf_overlay With --model_explorer and --visualize_tosa, include performance data from FVP PMU trace." exit 0 @@ -94,15 +102,18 @@ for arg in "$@"; do --aot_arm_compiler_flags=*) aot_arm_compiler_flags="${arg#*=}";; --no_delegate) aot_arm_compiler_flag_delegate="" ;; --no_quantize) aot_arm_compiler_flag_quantize="" ;; - --portable_kernels=*) select_ops_list="${arg#*=}" ; echo "WARNING: --portable_kernels is DEPRECATED use select_ops_list." ;; - --select_ops_list=*) select_ops_list="${arg#*=}";; + --select_ops_list=*) + select_ops_list="${arg#*=}" + select_ops_list_overridden=true + ;; --target=*) target="${arg#*=}";; --output=*) output_folder="${arg#*=}" ; output_folder_set=true ;; --bundleio) bundleio=true ;; --etdump) build_with_etdump=true ;; --build_type=*) build_type="${arg#*=}";; - --extra_build_flags=*) extra_build_flags="${arg#*=}";; + --build-dir=*) build_dir="${arg#*=}";; --build_only) build_only=true ;; + --extra_build_flags=*) extra_build_flags="${arg#*=}";; --toolchain=*) toolchain="${arg#*=}";; --system_config=*) system_config="${arg#*=}";; --config=*) config="${arg#*=}";; @@ -121,6 +132,11 @@ for arg in "$@"; do esac done +auto_configure=false +if [[ -z "${build_dir}" ]]; then + auto_configure=true +fi + if [ "$perf_overlay" = true ] && [ "$model_explorer" != true ]; then echo "Error: --perf_overlay requires --model_explorer" >&2 exit 1 @@ -141,10 +157,32 @@ if ! [[ ${pte_placement} == "elf" ]]; then fi # Default Ethos-u tool folder override with --scratch-dir= -arm_scratch_dir=$(realpath ${arm_scratch_dir}) +arm_scratch_dir=$(realpath "${arm_scratch_dir}") +ethos_u_root_dir="${arm_scratch_dir}/ethos-u" +mkdir -p "${ethos_u_root_dir}" +ethos_u_root_dir=$(realpath "${ethos_u_root_dir}") +cmsis_nn_local_path="" +if [[ -d "${ethos_u_root_dir}/core_software/cmsis-nn" ]]; then + cmsis_nn_local_path=$(realpath "${ethos_u_root_dir}/core_software/cmsis-nn") +fi setup_path_script=${arm_scratch_dir}/setup_path.sh _setup_msg="please refer to ${script_dir}/setup.sh to properly install necessary tools." +toolchain_cmake="" +case "${toolchain}" in + arm-none-eabi-gcc) + toolchain_cmake="${et_root_dir}/examples/arm/ethos-u-setup/${toolchain}.cmake" + ;; + arm-zephyr-eabi-gcc) + toolchain_cmake="${et_root_dir}/examples/zephyr/x86_64-linux-arm-zephyr-eabi-gcc.cmake" + ;; + *) + echo "Error: Invalid toolchain selection '${toolchain}'. Valid options: arm-none-eabi-gcc, arm-zephyr-eabi-gcc" >&2 + exit 1 + ;; +esac + + # Set target based variables if [[ ${system_config} == "" ]] then @@ -169,26 +207,10 @@ then config="Arm/vela.ini" fi -# Build executorch libraries -cd $et_root_dir -devtools_flag="" -bundleio_flag="" -etrecord_flag="" -et_dump_flag="" -qdq_fusion_op_flag="" -fvp_pmu_flag="" -if [ "$build_with_etdump" = true ] ; then - et_dump_flag="--etdump" - etrecord_flag="--etrecord" -fi - -if [ "$bundleio" = true ] ; then - devtools_flag="--devtools" - bundleio_flag="--bundleio" -fi - -if [ "$qdq_fusion_op" = true ] ; then - qdq_fusion_op_flag="--enable_qdq_fusion_pass" +target_cpu="cortex-m85" +if [[ ${target} =~ "ethos-u55" ]] +then + target_cpu="cortex-m55" fi function check_setup () { @@ -201,36 +223,31 @@ function check_setup () { echo "Could not find ${setup_path_script} file, ${_setup_msg}" return 1 fi - # If setup_path_script was correct all these checks should now pass - if [[ ${target} =~ "ethos-u" ]]; then - if [[ ${toolchain} == "arm-none-eabi-gcc" ]]; then - toolchain_cmake=${et_root_dir}/examples/arm/ethos-u-setup/${toolchain}.cmake - elif [[ ${toolchain} == "arm-zephyr-eabi-gcc" ]]; then - toolchain_cmake=${et_root_dir}/examples/zephyr/x86_64-linux-arm-zephyr-eabi-gcc.cmake - else - echo "Error: Invalid toolchain selection, provided: ${toolchain}" - echo " Valid options are {arm-none-eabi-gcc, arm-zephyr-eabi-gcc}" - exit 1; + + [[ -f ${et_root_dir}/CMakeLists.txt ]] \ + || { echo "Executorch repo doesn't contain CMakeLists.txt file at root level"; return 1; } + + [[ -f ${preset_file} ]] \ + || { echo "Could not find ${preset_file} file, ${_setup_msg}"; return 1; } + + if [[ "${auto_configure}" == true && ${target} != *"TOSA"* ]]; then + if ! command -v "${toolchain}" >/dev/null 2>&1; then + echo "Could not find ${toolchain} toolchain on PATH, ${_setup_msg}" + return 1 fi - toolchain_cmake=$(realpath ${toolchain_cmake}) - hash ${toolchain} \ - || { echo "Could not find ${toolchain} toolchain on PATH, ${_setup_msg}"; return 1; } [[ -f ${toolchain_cmake} ]] \ || { echo "Could not find ${toolchain_cmake} file, ${_setup_msg}"; return 1; } + fi - [[ -f ${et_root_dir}/CMakeLists.txt ]] \ - || { echo "Executorch repo doesn't contain CMakeLists.txt file at root level"; return 1; } - - backends/arm/scripts/build_executorch.sh --et_build_root="${et_build_root}" --build_type=$build_type $devtools_flag $et_dump_flag --toolchain="${toolchain}" - elif [[ ${target} == cortex-m* ]]; then + if [[ ${target} == cortex-m* ]]; then # build_test_runner.sh handles toolchain setup; just validate it's on PATH. hash arm-none-eabi-gcc \ || { echo "Could not find arm-none-eabi-gcc on PATH, ${_setup_msg}"; return 1; } elif [[ ${target} =~ "vgf" ]]; then - model_converter=$(which model-converter) + model_converter=$(which model-converter || true) echo "${model_converter}" - [[ "${model_converter}" == "model-converter not found" ]] \ + [[ -z "${model_converter}" || "${model_converter}" == "model-converter not found" ]] \ && { echo "Could not find model-converter, ${_setup_msg}"; return 1; } fi @@ -252,25 +269,416 @@ print(size) PY } +sanitize_for_path() { + local value="$1" + printf '%s' "${value}" | tr -c '[:alnum:]._-' '_' +} + +set_default_build_dir_path() { + if [[ ${target} == *"vgf"* ]]; then + cat <&2 +Error: auto-configuring a build directory is only supported for Ethos-U bare-metal targets. +Configure a host build manually, e.g. + cmake -S "${runner_source_dir}" -B -DEXECUTORCH_ROOT="${et_root_dir}" -DEXECUTORCH_BUILD_VGF=ON +and then pass --build-dir=. +EOF + exit 1 + fi + local sanitized_target + sanitized_target=$(sanitize_for_path "${target}") + local sanitized_build_type + sanitized_build_type=$(sanitize_for_path "${build_type}") + local sanitized_toolchain + sanitized_toolchain=$(sanitize_for_path "${toolchain}") + build_dir="${et_build_root}/${sanitized_target}_${sanitized_build_type}_${sanitized_toolchain}" +} + +configure_runner_build_dir() { + local pte_source="$1" + if [[ -z "${build_dir}" ]]; then + echo "Error: build_dir is not set. Cannot configure runner." >&2 + exit 1 + fi + if [[ "${pte_placement}" == "elf" ]]; then + pte_source=$(realpath "${pte_source}") + fi + mkdir -p "${build_dir}" + local cmake_cmd=( + cmake -S "${runner_source_dir}" -B "${build_dir}" + -DEXECUTORCH_ROOT="${et_root_dir}" + -DCMAKE_TOOLCHAIN_FILE="${toolchain_cmake}" + -DCMAKE_BUILD_TYPE="${build_type}" + -DEXECUTORCH_BUILD_ARM_BAREMETAL=ON + -DEXECUTORCH_BUILD_CORTEX_M=ON + -DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON + -DEXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL=ON + -DEXECUTORCH_BUILD_PRESET_FILE="${preset_file}" + -DEXECUTORCH_BAREMETAL_SKIP_INSTALL=OFF + -DETHOSU_TARGET_NPU_CONFIG="${target}" + -DTARGET_CPU="${target_cpu}" + -DSYSTEM_CONFIG="${system_config}" + -DMEMORY_MODE="${memory_mode}" + -DETHOS_SDK_PATH:PATH="${ethos_u_root_dir}" + -DEXECUTORCH_SELECT_OPS_LIST="${select_ops_list}" + ) + if [[ -n "${cmsis_nn_local_path}" ]]; then + cmake_cmd+=(-DCMSIS_NN_LOCAL_PATH:PATH="${cmsis_nn_local_path}") + fi + cmake_cmd+=(-DET_PTE_FILE_PATH:PATH="${pte_source}") + if [[ "${pte_placement}" == "elf" ]]; then + cmake_cmd+=(-DET_MODEL_PTE_ADDR=) + else + cmake_cmd+=(-DET_MODEL_PTE_ADDR="${pte_placement}") + fi + if [[ "${bundleio}" == true ]]; then + cmake_cmd+=(-DET_BUNDLE_IO=ON) + else + cmake_cmd+=(-DET_BUNDLE_IO=OFF) + fi + if [[ "${bundleio}" == true || "${build_with_etdump}" == true ]]; then + cmake_cmd+=(-DEXECUTORCH_BUILD_DEVTOOLS=ON) + else + cmake_cmd+=(-DEXECUTORCH_BUILD_DEVTOOLS=OFF) + fi + if [[ "${build_with_etdump}" == true ]]; then + cmake_cmd+=(-DEXECUTORCH_ENABLE_EVENT_TRACER=ON -DET_DUMP_INTERMEDIATE_OUTPUTS=ON) + else + cmake_cmd+=(-DEXECUTORCH_ENABLE_EVENT_TRACER=OFF -DET_DUMP_INTERMEDIATE_OUTPUTS=OFF) + fi + if [[ -n "${extra_build_flags}" ]]; then + # shellcheck disable=SC2206 + local extra_args=(${extra_build_flags}) + cmake_cmd+=("${extra_args[@]}") + fi + echo "[run.sh] Configuring ExecuTorch build at ${build_dir}" + "${cmake_cmd[@]}" + build_dir_initialized=false +} + +cmake_cache_get() { + local key="$1" + if [[ ! -f ${cmake_cache_file} ]]; then + echo "" + return 0 + fi + local line + line=$(grep -m1 "^${key}:" "${cmake_cache_file}" || true) + if [[ -z "${line}" ]]; then + echo "" + else + echo "${line#*=}" + fi +} + +cmake_cache_has_key() { + local key="$1" + [[ -f ${cmake_cache_file} ]] && grep -q "^${key}:" "${cmake_cache_file}" +} + +ensure_runner_build_dir() { + local standalone + standalone=$(cmake_cache_get ARM_EXECUTOR_RUNNER_STANDALONE) + local normalized + normalized=$(printf '%s' "${standalone}" | tr '[:lower:]' '[:upper:]') + if [[ "${normalized}" != "TRUE" && "${normalized}" != "ON" ]]; then + cat <&2 +Error: ${build_dir} is not a standalone arm_executor_runner build directory. +Configure it via: + cmake -S ${runner_source_dir} -B ${build_dir} -DEXECUTORCH_ROOT=${et_root_dir} [...] +and re-run run.sh. +EOF + exit 1 + fi +} + +ensure_select_ops_list_setting() { + local expected="$1" + local cache_value + cache_value=$(cmake_cache_get EXECUTORCH_SELECT_OPS_LIST) + if [[ -z "${cache_value}" ]]; then + cat <&2 +Error: EXECUTORCH_SELECT_OPS_LIST is not configured in ${build_dir}. +Reconfigure cmake -S ${runner_source_dir} -B ${build_dir} -DEXECUTORCH_SELECT_OPS_LIST=${expected}. +EOF + exit 1 + fi + if [[ "${cache_value}" != "${expected}" ]]; then + cat <&2 +Error: ${build_dir} was configured with EXECUTORCH_SELECT_OPS_LIST=${cache_value}, but run.sh requested ${expected}. +Reconfigure cmake -S ${runner_source_dir} -B ${build_dir} -DEXECUTORCH_SELECT_OPS_LIST=${expected}, or omit --select_ops_list. +EOF + exit 1 + fi +} + +require_cache_value() { + local key="$1" + local expected="$2" + local value + if ! cmake_cache_has_key "${key}"; then + echo "Error: ${key} not found in ${cmake_cache_file}. Reconfigure CMake with -D${key}=${expected}." >&2 + exit 1 + fi + value=$(cmake_cache_get "${key}") + if [[ "${value}" != "${expected}" ]]; then + echo "Error: ${key}=${value} in ${build_dir}. Reconfigure CMake with -D${key}=${expected} to use this run.sh invocation." >&2 + exit 1 + fi +} + +require_cache_bool() { + local key="$1" + local expected="$2" + local value + value=$(cmake_cache_get "${key}") + if [[ -z "${value}" ]]; then + echo "Error: ${key} not found in ${cmake_cache_file}. Reconfigure CMake with -D${key}=${expected}." >&2 + exit 1 + fi + local value_upper + value_upper=$(printf '%s' "${value}" | tr '[:lower:]' '[:upper:]') + local expected_upper + expected_upper=$(printf '%s' "${expected}" | tr '[:lower:]' '[:upper:]') + if [[ "${value_upper}" != "${expected_upper}" ]]; then + echo "Error: ${key}=${value} in ${build_dir}. Reconfigure CMake with -D${key}=${expected} to use run.sh." >&2 + exit 1 + fi +} + +is_cmake_false_value() { + local value_upper + value_upper=$(printf '%s' "$1" | tr '[:lower:]' '[:upper:]') + case "${value_upper}" in + ""|0|OFF|FALSE|NO|N|IGNORE|*-NOTFOUND) + return 0 + ;; + *) + return 1 + ;; + esac +} + +ensure_pte_placement_setting() { + local cached_addr + cached_addr=$(cmake_cache_get ET_MODEL_PTE_ADDR) + if ! cmake_cache_has_key ET_MODEL_PTE_ADDR; then + echo "Error: ET_MODEL_PTE_ADDR not found in ${cmake_cache_file}. Reconfigure CMake for the requested --pte_placement=${pte_placement}." >&2 + exit 1 + fi + if [[ "${pte_placement}" == "elf" ]]; then + if ! is_cmake_false_value "${cached_addr}"; then + echo "Error: --pte_placement=elf requested, but ${build_dir} was configured with ET_MODEL_PTE_ADDR=${cached_addr}. Reconfigure CMake with -DET_MODEL_PTE_ADDR=." >&2 + exit 1 + fi + if ! cmake_cache_has_key ET_PTE_FILE_PATH; then + echo "Error: ET_PTE_FILE_PATH not found in ${cmake_cache_file}. Reconfigure CMake with -DET_PTE_FILE_PATH=." >&2 + exit 1 + fi + return + fi + if is_cmake_false_value "${cached_addr}"; then + echo "Error: --pte_placement=${pte_placement} requested, but ${build_dir} was configured for an embedded PTE. Reconfigure CMake with -DET_MODEL_PTE_ADDR=${pte_placement}, or use --pte_placement=elf." >&2 + exit 1 + fi + if [[ "${cached_addr}" != "${pte_placement}" ]]; then + echo "Error: --pte_placement=${pte_placement} requested, but ${build_dir} was configured with ET_MODEL_PTE_ADDR=${cached_addr}. Reconfigure CMake with -DET_MODEL_PTE_ADDR=${pte_placement}." >&2 + exit 1 + fi +} + +get_parallel_jobs() { + if command -v nproc >/dev/null 2>&1; then + nproc + elif command -v sysctl >/dev/null 2>&1 && sysctl hw.logicalcpu >/dev/null 2>&1; then + sysctl -n hw.logicalcpu + elif command -v getconf >/dev/null 2>&1; then + getconf _NPROCESSORS_ONLN + elif [[ -n "${NUMBER_OF_PROCESSORS:-}" ]]; then + echo "${NUMBER_OF_PROCESSORS}" + else + echo 1 + fi +} + +build_runner_target() { + local cmake_target="$1" + local build_cmd=(cmake --build "${build_dir}" --target "${cmake_target}" --parallel "${parallel_jobs}") + if [[ "${multi_config}" == true ]]; then + build_cmd+=(--config "${build_type}") + fi + echo "[run.sh] Building target ${cmake_target} in ${build_dir}" + "${build_cmd[@]}" +} + +locate_runner_binary() { + local binary_name="$1" + local candidates=() + if [[ "${multi_config}" == true ]]; then + candidates+=("${build_dir}/${build_type}/${binary_name}") + candidates+=("${build_dir}/examples/arm/executor_runner/${build_type}/${binary_name}") + fi + candidates+=("${build_dir}/${binary_name}") + candidates+=("${build_dir}/examples/arm/executor_runner/${binary_name}") + for candidate in "${candidates[@]}"; do + if [[ -f "${candidate}" ]]; then + echo "${candidate}" + return 0 + fi + done + local found + found=$(find "${build_dir}" -name "${binary_name}" -type f 2>/dev/null | head -n 1 || true) + if [[ -n "${found}" ]]; then + echo "${found}" + return 0 + fi + return 1 +} +ensure_build_dir_ready() { + if [[ "${build_dir_initialized}" == true ]]; then + return + fi + if [[ -z "${build_dir}" ]]; then + echo "Error: build_dir is not set. Configure CMake first." >&2 + exit 1 + fi + build_dir=$(realpath "${build_dir}") + cmake_cache_file="${build_dir}/CMakeCache.txt" + if [[ ! -f ${cmake_cache_file} ]]; then + cat <&2 +Error: ${build_dir} does not contain a configured arm_executor_runner build (missing CMakeCache.txt). +Run cmake -S ${runner_source_dir} -B ${build_dir} -DEXECUTORCH_ROOT=${et_root_dir} with the desired options first, then re-run run.sh. +EOF + exit 1 + fi + if [[ ${target} == *"vgf"* ]]; then + require_cache_bool EXECUTORCH_BUILD_VGF ON + else + ensure_runner_build_dir + require_cache_bool EXECUTORCH_BUILD_ARM_BAREMETAL ON + require_cache_bool EXECUTORCH_BAREMETAL_SKIP_INSTALL OFF + require_cache_value ETHOSU_TARGET_NPU_CONFIG "${target}" + require_cache_value TARGET_CPU "${target_cpu}" + require_cache_value SYSTEM_CONFIG "${system_config}" + require_cache_value MEMORY_MODE "${memory_mode}" + if [[ "${bundleio}" == true ]]; then + require_cache_bool ET_BUNDLE_IO ON + else + require_cache_bool ET_BUNDLE_IO OFF + fi + if [[ "${bundleio}" == true || "${build_with_etdump}" == true ]]; then + require_cache_bool EXECUTORCH_BUILD_DEVTOOLS ON + else + require_cache_bool EXECUTORCH_BUILD_DEVTOOLS OFF + fi + if [[ "${build_with_etdump}" == true ]]; then + require_cache_bool EXECUTORCH_ENABLE_EVENT_TRACER ON + require_cache_bool ET_DUMP_INTERMEDIATE_OUTPUTS ON + else + require_cache_bool EXECUTORCH_ENABLE_EVENT_TRACER OFF + require_cache_bool ET_DUMP_INTERMEDIATE_OUTPUTS OFF + fi + fi + if [[ ${target} != *"vgf"* ]]; then + ensure_select_ops_list_setting "${select_ops_list}" + fi + multi_config=false + if [[ -n "$(cmake_cache_get CMAKE_CONFIGURATION_TYPES)" ]]; then + multi_config=true + fi + parallel_jobs=$(get_parallel_jobs) + build_dir_initialized=true +} + ####### ### Main ####### if ! check_setup; then if [ "$scratch_dir_set" = false ] ; then - # check setup failed, no scratchdir given as parameter. trying to run setup.sh - if ${script_dir}/setup.sh; then - # and recheck setup. If this fails exit. - if ! check_setup; then - exit 1 - fi - else - # setup.sh failed, it should print why - exit 1 - fi + # check setup failed, no scratchdir given as parameter. trying to run setup.sh + if ${script_dir}/setup.sh; then + # and recheck setup. If this fails exit. + if ! check_setup; then + exit 1 + fi + else + # setup.sh failed, it should print why + exit 1 + fi fi fi +cd "${et_root_dir}" + +bundleio_flag="" +etrecord_flag_template="" +qdq_fusion_op_flag="" +if [ "$build_with_etdump" = true ] ; then + etrecord_flag_template="--etrecord" +fi + +if [ "$bundleio" = true ] ; then + bundleio_flag="--bundleio" +fi + +if [ "$qdq_fusion_op" = true ] ; then + qdq_fusion_op_flag="--enable_qdq_fusion_pass" +fi + +if [[ "${auto_configure}" == true ]]; then + set_default_build_dir_path +else + if [[ -z "${build_dir}" ]]; then + echo "Error: --build-dir must not be empty." >&2 + exit 1 + fi + ensure_build_dir_ready +fi + +stage_pte_into_cache() { + local new_pte="$1" + local cache_path + cache_path=$(cmake_cache_get ET_PTE_FILE_PATH) + if [[ -z "${cache_path}" ]]; then + cat <&2 +Error: --pte_placement=elf requires ET_PTE_FILE_PATH to be set when configuring CMake. +Re-run cmake -S . -B ${build_dir} -DET_PTE_FILE_PATH=/absolute/path/to/model.pte (or use --pte_placement=). +EOF + exit 1 + fi + if [[ "${cache_path}" != /* ]]; then + cache_path="${build_dir}/${cache_path}" + fi + mkdir -p "$(dirname "${cache_path}")" + cp "${new_pte}" "${cache_path}" + echo "${cache_path}" +} + +configure_ethosu_scratch_if_requested() { + local pte_path="$1" + if [ "$specify_ethosu_scratch" != true ] || [[ ! ${target} =~ "ethos-u" ]]; then + return + fi + local scratch_size + scratch_size=$(get_ethosu_scratch_size "$pte_path" || true) + if [[ -z "${scratch_size}" ]]; then + echo "WARNING: Failed to derive Ethos-U scratch size from ${pte_path}" >&2 + return + fi + local cmake_cmd=( + cmake -S "${runner_source_dir}" -B "${build_dir}" + ) + if [[ -n "${extra_build_flags}" ]]; then + # shellcheck disable=SC2206 + local extra_args=(${extra_build_flags}) + cmake_cmd+=("${extra_args[@]}") + fi + cmake_cmd+=("-DET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE=${scratch_size}") + echo "[run.sh] Updating scratch allocator size to ${scratch_size}" + "${cmake_cmd[@]}" +} + if [[ -z "$model_name" ]]; then + echo "[run.sh] WARNING: Built-in test models executed when --model_name is omitted are deprecated and will be removed after the ExecuTorch 1.2 release." >&2 # the test models run, and whether to delegate test_model=( "softmax" # 0 @@ -302,7 +710,7 @@ for i in "${!test_model[@]}"; do printf "Running e2e flow for model '%s' with flags '%s'\n" "${model}" "${model_compiler_flags}" echo "--------------------------------------------------------------------------------" - cd $et_root_dir + cd "${et_root_dir}" # Remove path and file exetension to get model_short_name ext=${model##*.} model_short_name=$(basename -- "${model}" .$ext) @@ -323,13 +731,14 @@ for i in "${!test_model[@]}"; do output_folder=${et_build_root}/${model_short_name} fi + local_fvp_pmu_flag="" if [ "$perf_overlay" = true ] ; then model_compiler_flags+="--enable_debug_mode tosa" - fvp_pmu_flag="--trace_file=${output_folder}/pmu_trace.gz" + local_fvp_pmu_flag="--trace_file=${output_folder}/pmu_trace.gz" fi - mkdir -p ${output_folder} - output_folder=$(realpath ${output_folder}) + mkdir -p "${output_folder}" + output_folder=$(realpath "${output_folder}") pte_file="${output_folder}/${model_filename_ext}" # Remove old pte files @@ -339,16 +748,17 @@ for i in "${!test_model[@]}"; do model_compiler_flags="${model_compiler_flags} --model_input=${model_input}" fi - ARM_AOT_CMD="python3 -m backends.arm.scripts.aot_arm_compiler --model_name=${model} --target=${target} ${model_compiler_flags} --intermediate=${output_folder} --output=${pte_file} --system_config=${system_config} --memory_mode=${memory_mode} $bundleio_flag ${etrecord_flag} --config=${config} $qdq_fusion_op_flag" + model_etrecord_flag="${etrecord_flag_template}" + ARM_AOT_CMD="python3 -m backends.arm.scripts.aot_arm_compiler --model_name=${model} --target=${target} ${model_compiler_flags} --intermediate=${output_folder} --output=${pte_file} --system_config=${system_config} --memory_mode=${memory_mode} $bundleio_flag ${model_etrecord_flag} --config=${config} $qdq_fusion_op_flag" echo "CALL ${ARM_AOT_CMD}" >&2 ${ARM_AOT_CMD} 1>&2 - pte_file=$(realpath ${pte_file}) + pte_file=$(realpath "${pte_file}") - if [ "${etrecord_flag}" != "" ] ; then + if [ "${model_etrecord_flag}" != "" ] ; then etrecord_filename="${output_folder}/${model_filename}_etrecord.bin" - etrecord_filename=$(realpath ${etrecord_filename}) - etrecord_flag="--etrecord=${etrecord_filename}" + etrecord_filename=$(realpath "${etrecord_filename}") + model_etrecord_flag="--etrecord=${etrecord_filename}" fi [[ -f ${pte_file} ]] || { >&2 echo "Failed to generate a pte file - ${pte_file}"; exit 1; } @@ -357,6 +767,7 @@ for i in "${!test_model[@]}"; do if [[ ${target} == *"TOSA"* ]]; then echo "Build for ${target} skip generating a .elf and running it" + continue elif [[ ${target} == cortex-m* ]]; then # Cortex-M backend uses a shared semihosting executor_runner (built # by build_test_runner.sh) that loads the .bpte at runtime, rather @@ -374,51 +785,54 @@ for i in "${!test_model[@]}"; do set +x elif [[ ${target} == *"vgf"* ]]; then echo "Build and run for VKML, (target: ${target})" - set -x - backends/arm/scripts/build_executor_runner_vkml.sh --build_type=${build_type} \ - --extra_build_flags="${extra_build_flags}" \ - --output="${output_folder}" \ - ${bundleio_flag} + build_runner_target executor_runner if [ "$build_only" = false ] ; then - backends/arm/scripts/run_vkml.sh --model=${pte_file} --build_path=${output_folder} + backends/arm/scripts/run_vkml.sh --model=${pte_file} --build_path=${build_dir} fi - set +x - else - # Build the application, the pte is imported as a header/c array or the address specified by --pte_placement - model_data="" - pte_file_or_mem="${pte_file}" - elf_file="${output_folder}/${model_filename}/cmake-out/arm_executor_runner" - if ! [[ ${pte_placement} == "elf" ]]; then - # Place PTE in memory specified by pte_placement - pte_file_or_mem="${pte_placement}" - model_data="--data=${pte_file}@${pte_placement}" - elf_file="${et_build_root}/${target}_${pte_placement}/cmake-out/arm_executor_runner" + if [[ "${auto_configure}" == true ]]; then + configure_runner_build_dir "${pte_file}" fi + ensure_build_dir_ready + ensure_pte_placement_setting - if [ "$specify_ethosu_scratch" = true ] && [[ ${target} =~ "ethos-u" ]]; then - scratch_size=$(get_ethosu_scratch_size "$pte_file") - if [ "$?" -eq 0 ] && [ -n "$scratch_size" ]; then - extra_build_flags="${extra_build_flags} -DET_ARM_BAREMETAL_SCRATCH_TEMP_ALLOCATOR_POOL_SIZE=${scratch_size}" + model_data="" + if [[ ${pte_placement} == "elf" ]]; then + if [[ "${auto_configure}" == true ]]; then + staged_path=$(cmake_cache_get ET_PTE_FILE_PATH) + echo "ET_PTE_FILE_PATH payload: ${staged_path}" else - echo "WARNING: Failed to derive Ethos-U scratch size from ${pte_file}" >&2 + staged_path=$(stage_pte_into_cache "${pte_file}") + echo "Updated ET_PTE_FILE_PATH payload: ${staged_path}" fi + else + model_data="--data=${pte_file}@${pte_placement}" fi - set -x - backends/arm/scripts/build_executor_runner.sh --et_build_root="${et_build_root}" --pte="${pte_file_or_mem}" --build_type=${build_type} --target=${target} --system_config=${system_config} --memory_mode=${memory_mode} ${bundleio_flag} ${et_dump_flag} --extra_build_flags="${extra_build_flags}" --ethosu_tools_dir="${arm_scratch_dir}" --toolchain="${toolchain}" --select_ops_list="${select_ops_list}" - if [ "$build_only" = false ] ; then - # Execute the executor_runner on FVP Simulator + configure_ethosu_scratch_if_requested "${pte_file}" - backends/arm/scripts/run_fvp.sh --elf=${elf_file} ${model_data} --target=$target ${etrecord_flag} ${fvp_pmu_flag} + build_runner_target arm_executor_runner + elf_file=$(locate_runner_binary arm_executor_runner) \ + || { echo "Failed to locate arm_executor_runner in ${build_dir}." >&2; exit 1; } + if [ "$build_only" = false ] ; then + fvp_args=("--elf=${elf_file}" "--target=${target}") + if [[ -n "${model_data}" ]]; then + fvp_args+=("${model_data}") + fi + if [[ -n "${model_etrecord_flag}" ]]; then + fvp_args+=("${model_etrecord_flag}") + fi + if [[ -n "${local_fvp_pmu_flag}" ]]; then + fvp_args+=("${local_fvp_pmu_flag}") + fi + backends/arm/scripts/run_fvp.sh "${fvp_args[@]}" fi - set +x fi if [ "$model_explorer" = true ]; then perf_flags="" if [ "$perf_overlay" = true ]; then - perf_flags+="--trace ${output_folder}/pmu_trace.gz --tables ${output_folder}/output/out_debug.xml" + perf_flags+=" --trace ${output_folder}/pmu_trace.gz --tables ${output_folder}/output/out_debug.xml" fi visualization_file="" diff --git a/tools/cmake/preset/arm_baremetal.cmake b/tools/cmake/preset/arm_baremetal.cmake index 882780ade1d..c12cc95233a 100644 --- a/tools/cmake/preset/arm_baremetal.cmake +++ b/tools/cmake/preset/arm_baremetal.cmake @@ -1,9 +1,30 @@ -# Copyright 2025 Arm Limited and/or its affiliates. +# Copyright 2025-2026 Arm Limited and/or its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. -set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}") +define_overridable_option( + EXECUTORCH_BAREMETAL_SKIP_INSTALL + "Skip emitting install/export rules when building bare-metal artifacts" BOOL + ON +) + +if(EXECUTORCH_BAREMETAL_SKIP_INSTALL) + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}") + # Bare-metal builds consume the build tree directly. Keep the install target + # available (many docs/scripts still invoke it) but route the output back into + # the build tree so nothing is exported outside the repo. + unset(CMAKE_SKIP_INSTALL_RULES CACHE) + set(CMAKE_SKIP_INSTALL_RULES OFF) + set(CMAKE_SKIP_INSTALL_RULES + OFF + CACHE + BOOL + "Retain install() rules so docs/scripts can keep calling `--target install`" + FORCE + ) +endif() + set_overridable_option(EXECUTORCH_BUILD_EXECUTOR_RUNNER OFF) set_overridable_option(EXECUTORCH_BUILD_EXTENSION_FLAT_TENSOR OFF) set_overridable_option(EXECUTORCH_BUILD_EXTENSION_DATA_LOADER OFF) From 6745047a67610ecdfe552f1e105b6a4f77368a72 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 20 May 2026 19:06:56 +0200 Subject: [PATCH 79/91] Add XNNPACK, MobileNetV2, MobileBERT, Llama, ResNet18 to RISC-V testing matrix (#19617) ### Summary This is the continuation of https://github.com/pytorch/executorch/pull/19399 and https://github.com/pytorch/executorch/pull/19521, to deliver on Phase 2 of https://github.com/pytorch/executorch/issues/18991 ### Test plan This code is exclusively test code. Everything works out of the box, and CI will validate. --- .ci/scripts/test_riscv_qemu.sh | 42 +++++- .github/workflows/_test_riscv.yml | 28 +++- .github/workflows/riscv64.yml | 25 ++++ examples/riscv/aot_riscv.py | 189 +++++++++++++++++++++++-- examples/riscv/requirements.txt | 2 + examples/riscv/run.sh | 37 ++++- examples/riscv/setup.sh | 15 +- tools/cmake/preset/riscv64_linux.cmake | 14 ++ 8 files changed, 330 insertions(+), 22 deletions(-) create mode 100644 examples/riscv/requirements.txt diff --git a/.ci/scripts/test_riscv_qemu.sh b/.ci/scripts/test_riscv_qemu.sh index 27ab57f3b09..0d8b2815f74 100755 --- a/.ci/scripts/test_riscv_qemu.sh +++ b/.ci/scripts/test_riscv_qemu.sh @@ -5,7 +5,7 @@ # LICENSE file in the root directory of this source tree. # CI wrapper: install RISC-V cross-compile + qemu-user tooling, then run the -# RISC-V Phase 1 smoke test (export, cross-compile, qemu-user execution) via +# RISC-V smoke test (export, cross-compile, qemu-user execution) via # examples/riscv/run.sh. The bundled-IO comparison and Test_result: PASS # check are done by run.sh. @@ -14,5 +14,43 @@ set -eu script_dir=$(realpath "$(dirname "${BASH_SOURCE[0]}")") et_root_dir=$(realpath "${script_dir}/../..") +model="add" +xnnpack=false +quantize=false +verbose=false + +usage() { + cat < Which model to export and run (default: add) + --xnnpack Enable the XNNPACK backend (AOT partitioner + runtime) + --quantize Produce an 8-bit quantized model + -h, --help Show this help +EOF +} + +for arg in "$@"; do + case $arg in + --model=*) model="${arg#*=}" ;; + --xnnpack) xnnpack=true ;; + --quantize) quantize=true ;; + --verbose) verbose=true ;; + -h|--help) usage; exit 0 ;; + *) echo "Unknown option: $arg" >&2; usage; exit 1 ;; + esac +done + +run_extra_args=() +if ${xnnpack}; then + run_extra_args+=(--xnnpack) +fi +if ${quantize}; then + run_extra_args+=(--quantize) +fi +if ${verbose}; then + run_extra_args+=(--verbose) +fi + bash "${et_root_dir}/examples/riscv/setup.sh" -bash "${et_root_dir}/examples/riscv/run.sh" +bash "${et_root_dir}/examples/riscv/run.sh" --model="${model}" "${run_extra_args[@]}" diff --git a/.github/workflows/_test_riscv.yml b/.github/workflows/_test_riscv.yml index 79eec6cbb4c..da19dfc9bda 100644 --- a/.github/workflows/_test_riscv.yml +++ b/.github/workflows/_test_riscv.yml @@ -12,13 +12,36 @@ on: required: false type: number default: 30 + model: + description: 'Which model to run. Possible values are: add, mv2 (mobilenetv2)' + required: false + type: string + default: 'add' + xnnpack: + description: 'Whether to enable XNNPACK' + required: false + type: boolean + default: false + quantize: + description: 'Produce an 8-bit quantized model' + required: false + type: boolean + default: false + gcc-version: + description: 'The version of GCC to use' + required: false + type: number + docker-image: + description: 'The docker image to use for this job' + required: false + type: string jobs: run: uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main with: runner: linux.2xlarge - docker-image: ci-image:executorch-ubuntu-22.04-gcc11 + docker-image: ${{ inputs.docker-image || 'ci-image:executorch-ubuntu-22.04-gcc11' }} submodules: 'recursive' ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} timeout: ${{ inputs.timeout }} @@ -29,4 +52,5 @@ jobs: source .ci/scripts/utils.sh install_executorch "--use-pt-pinned-commit" - bash .ci/scripts/test_riscv_qemu.sh + export GCC_VERSION=${{ inputs.gcc-version }} + bash .ci/scripts/test_riscv_qemu.sh --model="${{ inputs.model }}" ${{ inputs.xnnpack && '--xnnpack' || '' }} ${{ inputs.quantize && '--quantize' || '' }} diff --git a/.github/workflows/riscv64.yml b/.github/workflows/riscv64.yml index aa970dc6270..9823db09cc1 100644 --- a/.github/workflows/riscv64.yml +++ b/.github/workflows/riscv64.yml @@ -25,6 +25,31 @@ jobs: test-riscv: name: test-riscv uses: ./.github/workflows/_test_riscv.yml + strategy: + fail-fast: false + matrix: + include: + - { model: add, xnnpack: false, quantize: false } + - { model: add, xnnpack: true, quantize: false } + - { model: mv2, xnnpack: false, quantize: false } + - { model: mv2, xnnpack: true, quantize: false } + - { model: mv2, xnnpack: true, quantize: true } + - { model: mobilebert, xnnpack: false, quantize: false } + - { model: mobilebert, xnnpack: true, quantize: false } + - { model: mobilebert, xnnpack: true, quantize: true } + - { model: llama2, xnnpack: false, quantize: false } + - { model: llama2, xnnpack: true, quantize: false } + - { model: llama2, xnnpack: true, quantize: true } + - { model: resnet18, xnnpack: false, quantize: false } + - { model: resnet18, xnnpack: true, quantize: false } + - { model: resnet18, xnnpack: true, quantize: true } permissions: id-token: write contents: read + with: + model: ${{ matrix.model }} + xnnpack: ${{ matrix.xnnpack }} + quantize: ${{ matrix.quantize }} + # XNNPACK requires GCC 14+ + gcc-version: ${{ matrix.xnnpack && 14 || 11 }} + docker-image: ${{ matrix.xnnpack && 'ci-image:executorch-ubuntu-24.04-gcc14' || 'ci-image:executorch-ubuntu-22.04-gcc11' }} diff --git a/examples/riscv/aot_riscv.py b/examples/riscv/aot_riscv.py index 8076f056ba2..22e8b31df73 100644 --- a/examples/riscv/aot_riscv.py +++ b/examples/riscv/aot_riscv.py @@ -3,14 +3,15 @@ # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. -"""AOT export for the RISC-V Phase 1.0 smoke test. +"""AOT export for the RISC-V smoke test. -Exports a trivial ``torch.add`` module to a BundledProgram (.bpte) that the -portable executor_runner can load on a riscv64 target and verify against the -embedded reference output, emitting ``Test_result: PASS`` on success. +Exports a small model to a BundledProgram (.bpte) that the portable +executor_runner can load on a riscv64 target and verify against the embedded +reference output, emitting ``Test_result: PASS`` on success. """ import argparse +import logging from pathlib import Path import torch @@ -28,26 +29,186 @@ def forward(self, x: torch.Tensor, y: torch.Tensor) -> torch.Tensor: return x + y +def build_add(): + model = AddModule().eval() + example_inputs = (torch.ones(1, 4), torch.full((1, 4), 2.0)) + test_inputs = [ + (torch.ones(1, 4), torch.full((1, 4), 2.0)), + (torch.full((1, 4), 3.0), torch.full((1, 4), 4.0)), + ] + return model, example_inputs, test_inputs, True + + +def build_mv2(): + from torchvision.models import mobilenet_v2, MobileNet_V2_Weights + + model = mobilenet_v2(weights=MobileNet_V2_Weights.DEFAULT).eval() + torch.manual_seed(0) + example_inputs = (torch.randn(1, 3, 224, 224),) + test_inputs = [example_inputs] + return model, example_inputs, test_inputs, False + + +def build_mobilebert(): + from transformers import MobileBertConfig, MobileBertModel + + config = MobileBertConfig( + vocab_size=1024, + hidden_size=128, + embedding_size=64, + num_hidden_layers=2, + num_attention_heads=2, + intermediate_size=128, + intra_bottleneck_size=32, + ) + + class Wrapper(torch.nn.Module): + def __init__(self): + super().__init__() + self.model = MobileBertModel(config).eval() + + def forward(self, input_ids): + return self.model(input_ids).last_hidden_state + + model = Wrapper().eval() + example_inputs = (torch.tensor([[1, 2, 3, 4, 5, 6, 7, 8]]),) + test_inputs = [example_inputs] + return model, example_inputs, test_inputs, False + + +def build_llama2(): + # Use the executorch native Transformer (matches MODEL_NAME_TO_MODEL["llama2"] + # in examples/models/__init__.py). Unlike HF LlamaModel, RoPE freqs are + # precomputed buffers and just sliced at forward time, so no + # torch.arange()/Long causal mask is built per forward — which is what + # the PT2E XNNPACK quantizer trips over on HF Llama. + from executorch.examples.models.llama.llama_transformer import construct_transformer + from executorch.examples.models.llama.model_args import ModelArgs + + seq_len = 8 + args = ModelArgs( + dim=128, + n_layers=2, + n_heads=4, + n_kv_heads=2, # GQA: kv_heads < n_heads exercises the GQA path + vocab_size=1024, + hidden_dim=256, # SwiGLU FFN: gate + up projections at this width + max_seq_len=seq_len, + max_context_len=seq_len, + rope_theta=10000.0, + ) + torch.manual_seed(0) + model = construct_transformer(args).eval() + example_inputs = (torch.tensor([[1, 2, 3, 4, 5, 6, 7, 8]], dtype=torch.long),) + test_inputs = [example_inputs] + return model, example_inputs, test_inputs, False + + +def build_resnet18(): + from torchvision.models import resnet18, ResNet18_Weights + + model = resnet18(weights=ResNet18_Weights.DEFAULT).eval() + torch.manual_seed(0) + example_inputs = (torch.randn(1, 3, 224, 224),) + test_inputs = [example_inputs] + return model, example_inputs, test_inputs, False + + +MODELS = { + "add": build_add, + "mv2": build_mv2, + "mobilebert": build_mobilebert, + "llama2": build_llama2, + "resnet18": build_resnet18, +} + + def main() -> None: parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--model", + choices=sorted(MODELS), + default="add", + help="Which model to export", + ) parser.add_argument( "--output", type=Path, - default=Path("add_riscv.bpte"), - help="Output .bpte path", + default=None, + help="Output .bpte path (default: _riscv.bpte)", + ) + parser.add_argument( + "--xnnpack", + action="store_true", + help="Lower through the XNNPACK partitioner", + ) + parser.add_argument( + "--quantize", + action="store_true", + help="Produce an 8-bit quantized model", + ) + parser.add_argument( + "--verbose", + action="store_true", + help="Enable XNNPACK partitioner DEBUG logging and dump the lowered graph", ) args = parser.parse_args() - model = AddModule().eval() - example_inputs = (torch.ones(1, 4), torch.full((1, 4), 2.0)) + if args.verbose: + logging.basicConfig(level=logging.DEBUG) - exported = export(model, example_inputs) - et_program = to_edge_transform_and_lower(exported).to_executorch() + if args.output is None: + args.output = Path(f"{args.model}_riscv.bpte") + + model, example_inputs, test_inputs, strict = MODELS[args.model]() + + if args.quantize: + from executorch.examples.xnnpack import MODEL_NAME_TO_OPTIONS, QuantType + from executorch.examples.xnnpack.quantization.utils import quantize + + if args.model not in MODEL_NAME_TO_OPTIONS: + parser.error(f"No XNNPACK quantization recipe for model {args.model!r}") + quant_type = MODEL_NAME_TO_OPTIONS[args.model].quantization + if quant_type == QuantType.NONE: + parser.error(f"Quantization recipe for {args.model!r} is NONE") + ep = export(model, example_inputs, strict=strict) + model = quantize(ep.module(), example_inputs, quant_type) + + exported = export(model, example_inputs, strict=strict) + partitioners = [] + if args.xnnpack: + from executorch.backends.xnnpack.partition.xnnpack_partitioner import ( + XnnpackPartitioner, + ) + + partitioners.append(XnnpackPartitioner(verbose=args.verbose)) + + compile_config = None + if args.quantize: + from executorch.exir import EdgeCompileConfig + + compile_config = EdgeCompileConfig(_check_ir_validity=False) + + edge = to_edge_transform_and_lower( + exported, partitioner=partitioners, compile_config=compile_config + ) + delegated = sum( + 1 + for n in edge.exported_program().graph.nodes + if n.op == "call_function" and "call_delegate" in str(n.target) + ) + print( + f"[aot_riscv] model={args.model} xnnpack={args.xnnpack} " + f"quantize={args.quantize} delegated_nodes={delegated}" + ) + + if args.verbose: + from executorch.exir.backend.utils import print_delegated_graph + + print_delegated_graph(edge.exported_program().graph_module) + + et_program = edge.to_executorch() - test_inputs = [ - (torch.ones(1, 4), torch.full((1, 4), 2.0)), - (torch.full((1, 4), 3.0), torch.full((1, 4), 4.0)), - ] test_suite = MethodTestSuite( method_name="forward", test_cases=[ diff --git a/examples/riscv/requirements.txt b/examples/riscv/requirements.txt new file mode 100644 index 00000000000..273e7156a1d --- /dev/null +++ b/examples/riscv/requirements.txt @@ -0,0 +1,2 @@ +torchvision +transformers diff --git a/examples/riscv/run.sh b/examples/riscv/run.sh index 7c05edcbc8c..644944ab8a4 100755 --- a/examples/riscv/run.sh +++ b/examples/riscv/run.sh @@ -20,11 +20,19 @@ build_dir="${et_root_dir}/cmake-out-riscv" output_dir="${et_root_dir}/riscv_test" qemu="qemu-riscv64-static" qemu_timeout="600" +model="add" +xnnpack=false +quantize=false +verbose=false usage() { cat < Which model to export and run (default: ${model}) + --xnnpack Enable the XNNPACK backend (AOT partitioner + runtime) + --quantize Produce an 8-bit quantized model + --verbose Enable XNNPACK partitioner DEBUG logging and dump the lowered graph --build_only Only export and cross-compile; do not invoke QEMU --build_dir= CMake build directory (default: ${build_dir}) --output_dir= Directory for the exported .bpte (default: ${output_dir}) @@ -36,6 +44,10 @@ EOF for arg in "$@"; do case $arg in + --model=*) model="${arg#*=}" ;; + --xnnpack) xnnpack=true ;; + --quantize) quantize=true ;; + --verbose) verbose=true ;; --build_only) build_only=true ;; --build_dir=*) build_dir="${arg#*=}" ;; --output_dir=*) output_dir="${arg#*=}" ;; @@ -47,14 +59,29 @@ for arg in "$@"; do done mkdir -p "${output_dir}" -bpte_path="${output_dir}/add_riscv.bpte" +bpte_path="${output_dir}/${model}_riscv.bpte" echo "[run.sh] Step 1/3: AOT export on host" -python "${script_dir}/aot_riscv.py" --output "${bpte_path}" +aot_extra_args=() +if ${xnnpack}; then + aot_extra_args+=(--xnnpack) +fi +if ${quantize}; then + aot_extra_args+=(--quantize) +fi +if ${verbose}; then + aot_extra_args+=(--verbose) +fi +python "${script_dir}/aot_riscv.py" --model "${model}" "${aot_extra_args[@]}" --output "${bpte_path}" echo "[run.sh] Step 2/3: cross-compile executor_runner for riscv64-linux" +cmake_extra_args=() +if ${xnnpack}; then + cmake_extra_args+=(-DEXECUTORCH_BUILD_XNNPACK=ON) +fi cmake -S "${et_root_dir}" -B "${build_dir}" \ --preset riscv64-linux \ + "${cmake_extra_args[@]}" \ -DCMAKE_BUILD_TYPE=Release cmake --build "${build_dir}" -j"$(nproc)" --target executor_runner @@ -87,9 +114,15 @@ export QEMU_LD_PREFIX="${QEMU_LD_PREFIX:-/usr/riscv64-linux-gnu}" log_file=$(mktemp) trap 'rm -f "${log_file}"' EXIT +runner_extra_args=() +if ${quantize}; then + runner_extra_args+=(--bundleio_rtol=0.1 --bundleio_atol=0.25) +fi + set +e timeout --signal=KILL "${qemu_timeout}" "${qemu}" "${runner}" \ --model_path="${bpte_path}" \ + "${runner_extra_args[@]}" \ 2>&1 | tee "${log_file}" qemu_status=${PIPESTATUS[0]} set -e diff --git a/examples/riscv/setup.sh b/examples/riscv/setup.sh index c1342c60d5e..955c8ca3386 100755 --- a/examples/riscv/setup.sh +++ b/examples/riscv/setup.sh @@ -10,6 +10,8 @@ set -eu +script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd) + if ! command -v apt-get >/dev/null 2>&1; then echo "[$(basename "$0")] this setup script targets Debian/Ubuntu (apt-get not found)" >&2 exit 1 @@ -23,14 +25,23 @@ fi ${SUDO} apt-get update ${SUDO} apt-get install -y --no-install-recommends \ build-essential \ - gcc-riscv64-linux-gnu \ - g++-riscv64-linux-gnu \ + gcc${GCC_VERSION:+-${GCC_VERSION}}-riscv64-linux-gnu \ + g++${GCC_VERSION:+-${GCC_VERSION}}-riscv64-linux-gnu \ binutils-riscv64-linux-gnu \ libc6-riscv64-cross \ libc6-dev-riscv64-cross \ cmake \ file \ + ca-certificates \ qemu-user-static +if [[ -n "${GCC_VERSION+x}" ]]; then + ${SUDO} update-alternatives --install /usr/bin/riscv64-linux-gnu-gcc riscv64-linux-gnu-gcc /usr/bin/riscv64-linux-gnu-gcc${GCC_VERSION:+-${GCC_VERSION}} 100 + ${SUDO} update-alternatives --install /usr/bin/riscv64-linux-gnu-g++ riscv64-linux-gnu-g++ /usr/bin/riscv64-linux-gnu-g++${GCC_VERSION:+-${GCC_VERSION}} 100 +fi + riscv64-linux-gnu-gcc --version | head -n1 qemu-riscv64-static --version | head -n1 + +# Some python packages also need to be installed +pip install -r "${script_dir}/requirements.txt" diff --git a/tools/cmake/preset/riscv64_linux.cmake b/tools/cmake/preset/riscv64_linux.cmake index 32b891cd743..c094534b594 100644 --- a/tools/cmake/preset/riscv64_linux.cmake +++ b/tools/cmake/preset/riscv64_linux.cmake @@ -9,3 +9,17 @@ set_overridable_option(EXECUTORCH_BUILD_EXTENSION_RUNNER_UTIL ON) set_overridable_option(EXECUTORCH_BUILD_DEVTOOLS ON) set_overridable_option(EXECUTORCH_ENABLE_BUNDLE_IO ON) set_overridable_option(EXECUTORCH_ENABLE_LOGGING ON) + +if(EXECUTORCH_BUILD_XNNPACK) + if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_LESS 14) + message(FATAL_ERROR "XNNPACK requires GCC 14+ on riscv64") + endif() +elseif(NOT DEFINED EXECUTORCH_BUILD_XNNPACK) + if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL + 14 + ) + set(EXECUTORCH_BUILD_XNNPACK ON) + else() + message(NOTICE "XNNPACK requires GCC 14+ on riscv64") + endif() +endif() From 1feb56c6ff5b33a18fd426a7d87209672f75c9cb Mon Sep 17 00:00:00 2001 From: Zingo Andersen Date: Wed, 20 May 2026 19:16:40 +0200 Subject: [PATCH 80/91] Zephyr: Move CI testing to a script (#19542) Moves CI testing from yaml to .ci/scripts/test_zephyr.sh and create a table of readme and target combinations to run instead of having mv2 tests hard coded. This will make it easier to add more sample and tests in the future as the test flow is more generic. Signed-off-by: Zingo Andersen --- .ci/scripts/test_zephyr.sh | 178 ++++++++++++++++++ .github/workflows/trunk.yml | 147 +-------------- backends/arm/test/test_github_trunk_zephyr.sh | 71 +++++-- zephyr/samples/hello-executorch/README.md | 4 +- zephyr/samples/mv2-ethosu/README.md | 38 +++- 5 files changed, 274 insertions(+), 164 deletions(-) create mode 100755 .ci/scripts/test_zephyr.sh diff --git a/.ci/scripts/test_zephyr.sh b/.ci/scripts/test_zephyr.sh new file mode 100755 index 00000000000..6ce8e082b84 --- /dev/null +++ b/.ci/scripts/test_zephyr.sh @@ -0,0 +1,178 @@ +#!/usr/bin/env bash +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# Copyright 2026 Arm Limited and/or its affiliates. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +set -euo pipefail + +SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +EXECUTORCH_PROJ_ROOT="$(realpath "${SCRIPT_DIR}/../..")" +ZEPHYR_README_PATH="zephyr/README.md" + +ZEPHYR_SAMPLES_README_PATH="zephyr/samples/hello-executorch/README.md" +TARGETS_ARG="${TARGET_LIST:-}" + +usage() { + cat < README containing test_* command blocks + --targets Comma-separated target list, e.g. ethos-u55,cortex-m55,ethos-u85 + -h, --help Show this help +EOF +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --targets) + TARGETS_ARG="$2" + shift 2 + ;; + --zephyr-samples-readme-path) + ZEPHYR_SAMPLES_README_PATH="$2" + shift 2 + ;; + -h|--help) + usage + exit 0 + ;; + *) + echo "ERROR: Unknown argument: $1" >&2 + usage >&2 + exit 1 + ;; + esac +done + +if [[ -z "${TARGETS_ARG}" ]]; then + echo "ERROR: --targets or TARGET_LIST must be set" >&2 + usage >&2 + exit 1 +fi + +IFS=',' read -r -a TARGETS <<< "${TARGETS_ARG}" + +export EXECUTORCH_PROJ_ROOT + +cd "${EXECUTORCH_PROJ_ROOT}" + +# Source utility scripts. +. .ci/scripts/utils.sh +. .ci/scripts/zephyr-utils.sh + +run_target_test_blocks_from_readme() { + local readme_path="$1" + local target="$2" + local resolved_readme_path marker markers + + resolved_readme_path="$(_utils_path_from_root "${readme_path}")" + markers="$(awk -v target="${target}" ' + { + line = $0 + while (match(line, //)) { + marker = substr(line, RSTART, RLENGTH) + if (index(marker, " in ${readme_path}" >&2 + return 1 + fi + + while IFS= read -r marker; do + echo "---- ${target} ${marker} ----" + run_command_block_from_readme "${readme_path}" "${marker}" + done <<< "${markers}" +} + +# Check that zephyr/README.md and zephyr/executorch.yaml are in sync. +verify_zephyr_readme + +# Based on instructions in zephyr/README.md and the selected sample README. +run_command_block_from_readme "${ZEPHYR_README_PATH}" "" + +# Make sure to backup the zephyr_scratch folder if it exists to allow for local +# testing that does not lose code/data. +if [[ -d "zephyr_scratch" ]]; then + mv "zephyr_scratch" "zephyr_scratch.backup.$(date +%Y%m%d%H%M%S)" +fi +mkdir -p zephyr_scratch/ + +cd zephyr_scratch +export ZEPHYR_PROJ_ROOT="$(realpath "$(pwd)")" + +echo "---- Zephyr SDK ----" +# Use ZephyrSDK if on the disk (e.g. setup in the docker) +# Check for a zephyr-sdk-0.17.4 directory and make a symlink if found in parent directories +if sdk_dir=$(find ../../.. -maxdepth 4 -type d -name 'zephyr-sdk-0.17.4' -print -quit) && [ -n "${sdk_dir}" ]; then + echo "---- Found pre downloaded Zephyr SDK in ${sdk_dir} ----" + ln -s "${sdk_dir}" . +fi + +# Download and setup Zephyr SDK 0.17.4 if not already present +if [ ! -d "zephyr-sdk-0.17.4" ]; then + echo "---- Downloading Zephyr SDK ----" + wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.17.4/zephyr-sdk-0.17.4_linux-x86_64.tar.xz + tar -xf zephyr-sdk-0.17.4_linux-x86_64.tar.xz + rm -f zephyr-sdk-0.17.4_linux-x86_64.tar.xz* +fi + +./zephyr-sdk-0.17.4/setup.sh -c -t arm-zephyr-eabi +export ZEPHYR_SDK_INSTALL_DIR=$(realpath ./zephyr-sdk-0.17.4) + +cd ${ZEPHYR_PROJ_ROOT} + +run_command_block_from_readme "${ZEPHYR_README_PATH}" "" + +cp "${EXECUTORCH_PROJ_ROOT}/zephyr/executorch.yaml" zephyr/submanifests/ + +run_command_block_from_readme "${ZEPHYR_README_PATH}" "" + +# Switch to executorch in this PR e.g. replace modules/lib/executorch with the +# root folder of this repo instead of doing a re-checkout and figuring out the +# correct commit hash. +rm -Rf modules/lib/executorch +ln -s "${EXECUTORCH_PROJ_ROOT}" modules/lib/executorch + +# Setup git local user for Executorch git to allow +# modules/lib/executorch/examples/arm/setup.sh to run inside CI later. +if ! git config --get user.name >/dev/null 2>&1; then + git config --global user.name "Github Executorch" +fi +if ! git config --get user.email >/dev/null 2>&1; then + git config --global user.email "github_executorch@arm.com" +fi + +run_command_block_from_readme "${ZEPHYR_README_PATH}" "" +run_command_block_from_readme "${ZEPHYR_README_PATH}" "" + +for TARGET in "${TARGETS[@]}"; do + TARGET="$(echo "${TARGET}" | xargs)" + + echo "---- ${TARGET} ----" + rm -Rf build + + if [[ ${TARGET} == "ethos-u55" || ${TARGET} == "cortex-m55" ]]; then + BOARD="corstone300" + elif [[ ${TARGET} == "ethos-u85" ]]; then + BOARD="corstone320" + else + echo "Fail unsupported target selection ${TARGET}" + exit 1 + fi + + echo "---- ${TARGET} Board ${BOARD} FVP setup ----" + run_command_block_from_readme "${ZEPHYR_SAMPLES_README_PATH}" "" + + # Run all blocks that match + run_target_test_blocks_from_readme "${ZEPHYR_SAMPLES_README_PATH}" "${TARGET}" +done diff --git a/.github/workflows/trunk.yml b/.github/workflows/trunk.yml index 93a8fce7698..3dad255589c 100644 --- a/.github/workflows/trunk.yml +++ b/.github/workflows/trunk.yml @@ -62,7 +62,12 @@ jobs: uses: pytorch/test-infra/.github/workflows/linux_job.yml@main strategy: matrix: - target: [ethos-u55, cortex-m55, ethos-u85] + include: + - { readme: zephyr/samples/hello-executorch/README.md, target: ethos-u55 } + - { readme: zephyr/samples/hello-executorch/README.md, target: cortex-m55 } + - { readme: zephyr/samples/hello-executorch/README.md, target: ethos-u85 } + - { readme: zephyr/samples/mv2-ethosu/README.md, target: ethos-u55 } + - { readme: zephyr/samples/mv2-ethosu/README.md, target: ethos-u85 } fail-fast: false with: runner: linux.2xlarge @@ -79,143 +84,9 @@ jobs: # Test zephyr backend set -e - # Support comma-separated TARGET_LIST or ${{ matrix.target }} list, e.g., TARGET_LIST="ethos-u55,cortex-m55,ethos-u85" - if [ -z "${TARGET_LIST:-}" ]; then - IFS=',' read -r -a TARGETS <<< "${{ matrix.target }}" - else - IFS=',' read -r -a TARGETS <<< "${TARGET_LIST}" - fi - - export EXECUTORCH_PROJ_ROOT=$(realpath $(pwd)) - ZEPHYR_README_PATH="zephyr/README.md" - ZEPHYR_SAMPLES_README_PATH="zephyr/samples/hello-executorch/README.md" - - # Source utility scripts - . .ci/scripts/utils.sh - . .ci/scripts/zephyr-utils.sh - - # check that zephyr/README.md and zephyr/executorch.yaml are in sync - verify_zephyr_readme - - # Based on instructions in zephyr/README.md and zephyr/samples/hello-executorch/README.md - - run_command_block_from_readme "${ZEPHYR_README_PATH}" "" - - # Make sure to backup the zephyr_scratch folder if it exists to allow for local - # testing that does not lose code/data - if [ -d "zephyr_scratch" ]; then - mv "zephyr_scratch" "zephyr_scratch.backup.$(date +%Y%m%d%H%M%S)" - fi - mkdir -p zephyr_scratch/ - - cd zephyr_scratch - export ZEPHYR_PROJ_ROOT=$(realpath $(pwd)) - - echo "---- Zephyr SDK ----" - # Use ZephyrSDK if on the disk (e.g. setup in the docker) - # Check for a zephyr-sdk-0.17.4 directory and make a symlink if found in parent directories - if sdk_dir=$(find ../../.. -maxdepth 4 -type d -name 'zephyr-sdk-0.17.4' -print -quit) && [ -n "${sdk_dir}" ]; then - echo "---- Found pre downloaded Zephyr SDK in ${sdk_dir} ----" - ln -s "${sdk_dir}" . - fi - - # Download and setup Zephyr SDK 0.17.4 if not already present - if [ ! -d "zephyr-sdk-0.17.4" ]; then - echo "---- Downloading Zephyr SDK ----" - wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.17.4/zephyr-sdk-0.17.4_linux-x86_64.tar.xz - tar -xf zephyr-sdk-0.17.4_linux-x86_64.tar.xz - rm -f zephyr-sdk-0.17.4_linux-x86_64.tar.xz* - fi - - ./zephyr-sdk-0.17.4/setup.sh -c -t arm-zephyr-eabi - export ZEPHYR_SDK_INSTALL_DIR=$(realpath ./zephyr-sdk-0.17.4) - - cd ${ZEPHYR_PROJ_ROOT} - - run_command_block_from_readme "${ZEPHYR_README_PATH}" "" - - cp ${EXECUTORCH_PROJ_ROOT}/zephyr/executorch.yaml zephyr/submanifests/ - - run_command_block_from_readme "${ZEPHYR_README_PATH}" "" - - # Switch to executorch in this PR e.g. replace modules/lib/executorch with the root folder of this repo - # instead of doing a re-checkout and figure out the correct commit hash etc - rm -Rf modules/lib/executorch - ln -s ${EXECUTORCH_PROJ_ROOT} modules/lib/executorch - - # Setup git local user for Executorch git to allows modules/lib/executorch/examples/arm/setup.sh be run inside CI later - # Configure git user only if not already set - if ! git config --get user.name >/dev/null 2>&1; then - git config --global user.name "Github Executorch" - fi - if ! git config --get user.email >/dev/null 2>&1; then - git config --global user.email "github_executorch@arm.com" - fi - - run_command_block_from_readme "${ZEPHYR_README_PATH}" "" - - run_command_block_from_readme "${ZEPHYR_README_PATH}" "" - - for TARGET in "${TARGETS[@]}"; do - TARGET="$(echo "$TARGET" | xargs)" # trim whitespace - - echo "---- ${TARGET} ----" - rm -Rf build - - if [[ ${TARGET} == "ethos-u55" || ${TARGET} == "cortex-m55" ]]; then - BOARD="corstone300" - elif [[ ${TARGET} == "ethos-u85" ]]; then - BOARD="corstone320" - else - echo "Fail unsupport target selection ${TARGET}" - exit 1 - fi - - echo "---- ${TARGET} Board ${BOARD} FVP setup ----" - run_command_block_from_readme "${ZEPHYR_SAMPLES_README_PATH}" "" - - echo "---- ${TARGET} Create PTE ----" - run_command_block_from_readme "${ZEPHYR_SAMPLES_README_PATH}" "" - - echo "---- ${TARGET} Build and run ----" - run_command_block_from_readme "${ZEPHYR_SAMPLES_README_PATH}" "" - done - - # MV2 Ethos-U sample (NPU targets only — skips cortex-m55) - MV2_README_PATH="zephyr/samples/mv2-ethosu/README.md" - - for TARGET in "${TARGETS[@]}"; do - TARGET="$(echo "$TARGET" | xargs)" - - if [[ ${TARGET} == "cortex-m55" ]]; then - echo "---- Skipping MV2 for ${TARGET} (NPU-only sample) ----" - continue - fi - - if [[ ${TARGET} == "ethos-u55" ]]; then - BOARD="corstone300" - elif [[ ${TARGET} == "ethos-u85" ]]; then - BOARD="corstone320" - else - echo "Fail unsupported target selection ${TARGET}" - exit 1 - fi - - echo "---- MV2 ${TARGET} ----" - rm -Rf build - - echo "---- MV2 ${TARGET} Board ${BOARD} FVP setup ----" - run_command_block_from_readme "${ZEPHYR_SAMPLES_README_PATH}" "" - - echo "---- MV2 ${TARGET} Create PTE ----" - run_command_block_from_readme "${MV2_README_PATH}" "" - - # Build only — FVP cycle-accurate simulation of MV2 is too slow - # for the CI timeout. Corstone-300 also lacks enough ISRAM for - # the runtime pools. The build step still catches link regressions. - echo "---- MV2 ${TARGET} Build only ----" - run_command_block_from_readme "${MV2_README_PATH}" "" - done + .ci/scripts/test_zephyr.sh \ + --targets "${TARGET_LIST:-${{ matrix.target }}}" \ + --zephyr-samples-readme-path "${{ matrix.readme }}" test-models-linux-aarch64: name: test-models-linux-aarch64 diff --git a/backends/arm/test/test_github_trunk_zephyr.sh b/backends/arm/test/test_github_trunk_zephyr.sh index 36d4e40411c..c4ab0e5cfbc 100755 --- a/backends/arm/test/test_github_trunk_zephyr.sh +++ b/backends/arm/test/test_github_trunk_zephyr.sh @@ -9,7 +9,7 @@ # github/workflows/trunk.yml as a bash script, (ignoring the conda commands) # This is mostly useful for testing this before upstreaming or for debugging CI issues. # Or a way to setup zephyrOS so you can play with it. -# Parse optional argument to set TARGET_LIST environment variable +# Parse optional arguments to select README and target list. # Target list (--target-list) adds a comma separated list of targets you want to test # matching the zephyr/README.md tags: @@ -20,22 +20,33 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" -ROOT_DIR="$(cd "${SCRIPT_DIR}" && pwd)" +ROOT_DIR="$(cd "${SCRIPT_DIR}/../../.." && pwd)" +TARGET_LIST_OVERRIDDEN=0 +if [[ -n "${TARGET_LIST:-}" ]]; then + TARGET_LIST_OVERRIDDEN=1 +fi TARGET_LIST="${TARGET_LIST:-ethos-u55,cortex-m55,ethos-u85}" +README_PATH="${README_PATH:-}" +HELLO_README_PATH="zephyr/samples/hello-executorch/README.md" +MV2_README_PATH="zephyr/samples/mv2-ethosu/README.md" +DEFAULT_MV2_TARGET_LIST="ethos-u55,ethos-u85" usage() { cat <&2 + usage >&2 + exit 2 +fi -SCRIPT_CONTENT="$(python - <<'PY' -from ruamel.yaml import YAML -with open(".github/workflows/trunk.yml") as f: - data = YAML().load(f) -script = data["jobs"]["test-arm-backend-zephyr"]["with"]["script"] -filtered = [] -con_lines = ("CONDA_ENV=", "conda activate") -for line in script.splitlines(): - if any(line.strip().startswith(prefix) for prefix in con_lines): - continue - filtered.append(line) -print("\n".join(filtered)) -PY -)" +cd "${ROOT_DIR}" + +run_zephyr_readme() { + local readme_path="$1" + local targets="$2" + + echo "Running ${readme_path} targets: ${targets}" + .ci/scripts/test_zephyr.sh \ + --zephyr-samples-readme-path "${readme_path}" \ + --targets "${targets}" +} -printf "%s\n" "${SCRIPT_CONTENT}" | /bin/bash +if [[ -n "${README_PATH}" ]]; then + run_zephyr_readme "${README_PATH}" "${TARGET_LIST}" +else + run_zephyr_readme "${HELLO_README_PATH}" "${TARGET_LIST}" + run_zephyr_readme "${MV2_README_PATH}" "${DEFAULT_MV2_TARGET_LIST}" +fi diff --git a/zephyr/samples/hello-executorch/README.md b/zephyr/samples/hello-executorch/README.md index ab8022d5d62..45efe73d7d1 100644 --- a/zephyr/samples/hello-executorch/README.md +++ b/zephyr/samples/hello-executorch/README.md @@ -17,7 +17,7 @@ This is done in the example depending on the board you build for so if you build Set up FVP paths and macs used, this will also set `shutdown_on_eot` so the FVP auto stops after it has run the example. Config Zephyr Corstone300 FVP - + ``` export FVP_ROOT=$PWD/modules/lib/executorch/examples/arm/arm-scratch/FVP-corstone300 export ARMFVP_BIN_PATH=${FVP_ROOT}/models/Linux64_GCC-9.3 @@ -72,7 +72,7 @@ west build -b mps3/corstone300/fvp modules/lib/executorch/zephyr/samples/hello-e Set up FVP paths, libs and macs used, this will also set `shutdown_on_eot` so the FVP auto stops after it has run the example. Config Zephyr Corstone320 FVP - + ``` export FVP_ROOT=$PWD/modules/lib/executorch/examples/arm/arm-scratch/FVP-corstone320 export ARMFVP_BIN_PATH=${FVP_ROOT}/models/Linux64_GCC-9.3 diff --git a/zephyr/samples/mv2-ethosu/README.md b/zephyr/samples/mv2-ethosu/README.md index a05b46835b2..70877abcafb 100644 --- a/zephyr/samples/mv2-ethosu/README.md +++ b/zephyr/samples/mv2-ethosu/README.md @@ -18,36 +18,66 @@ The model classifies a static RGB test input tensor with shape `[1, 3, 224, 224] > ~3 MiB, so the build will link but FVP execution will fail at runtime. > Use Corstone-320 (below) for end-to-end MV2 inference. +### Setup FVP paths + +Set up FVP paths and macs used, this will also set `shutdown_on_eot` so the FVP auto stops after it has run the example. + +Config Zephyr Corstone300 FVP + +``` +export FVP_ROOT=$PWD/modules/lib/executorch/examples/arm/arm-scratch/FVP-corstone300 +export ARMFVP_BIN_PATH=${FVP_ROOT}/models/Linux64_GCC-9.3 +export ARMFVP_EXTRA_FLAGS="-C mps3_board.uart0.shutdown_on_eot=1 -C ethosu.num_macs=128" +``` + ### Export the model Export a quantized INT8 MobileNetV2 model with Ethos-U55 delegation: - + ``` python -m modules.lib.executorch.backends.arm.scripts.aot_arm_compiler --model_name=mv2_untrained --quantize --delegate --target=ethos-u55-128 --output=mv2_u55_128.pte ``` ### Build (link-check only) - + ``` west build -b mps3/corstone300/fvp modules/lib/executorch/zephyr/samples/mv2-ethosu -- -DET_PTE_FILE_PATH=mv2_u55_128.pte ``` ## Corstone-320 FVP (Ethos-U85) +### Setup FVP paths + +Set up FVP paths, libs and macs used, this will also set `shutdown_on_eot` so the FVP auto stops after it has run the example. + +These FVP command-line options are passed through the `ARMFVP_EXTRA_FLAGS` +environment variable. The sample does not set `ARMFVP_FLAGS` in its +`CMakeLists.txt`; the base `ARMFVP_FLAGS` come from the selected Zephyr board's +`board.cmake`. + +Config Zephyr Corstone320 FVP + +``` +export FVP_ROOT=$PWD/modules/lib/executorch/examples/arm/arm-scratch/FVP-corstone320 +export ARMFVP_BIN_PATH=${FVP_ROOT}/models/Linux64_GCC-9.3 +export LD_LIBRARY_PATH=${FVP_ROOT}/python/lib:${ARMFVP_BIN_PATH}:${LD_LIBRARY_PATH} +export ARMFVP_EXTRA_FLAGS="-C mps4_board.uart0.shutdown_on_eot=1 -C mps4_board.subsystem.ethosu.num_macs=256" +``` + ### Export the model Export a quantized INT8 MobileNetV2 model with Ethos-U85 delegation: - + ``` python -m modules.lib.executorch.backends.arm.scripts.aot_arm_compiler --model_name=mv2_untrained --quantize --delegate --target=ethos-u85-256 --output=mv2_u85_256.pte ``` ### Build - + ``` west build -b mps4/corstone320/fvp modules/lib/executorch/zephyr/samples/mv2-ethosu -- -DET_PTE_FILE_PATH=mv2_u85_256.pte ``` From fdd4f4318730e779a25b8e8b943a6b2df4023f05 Mon Sep 17 00:00:00 2001 From: Martin Pavella Date: Wed, 20 May 2026 20:30:28 +0200 Subject: [PATCH 81/91] NXP backend: Remove `max_pool2d` maximum kernel size restriction. (#19688) ### Summary Neutron SW 3.1.1 removes the restriction for maximum supported kernel size of the MaxPool2D operator. This PR reflects this change in the Neutron backend. ### Test plan Unit test provided. cc @robert-kalmar @JakeStevens @digantdesai @rascani --- .../max_pool2d_with_indices_converter.py | 4 ---- .../node_converter/test_max_pool_2d_converter.py | 12 +++--------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/backends/nxp/backend/ir/converter/node_converters/ops_converters/max_pool2d_with_indices_converter.py b/backends/nxp/backend/ir/converter/node_converters/ops_converters/max_pool2d_with_indices_converter.py index e300d6bbe9f..975aaf57625 100644 --- a/backends/nxp/backend/ir/converter/node_converters/ops_converters/max_pool2d_with_indices_converter.py +++ b/backends/nxp/backend/ir/converter/node_converters/ops_converters/max_pool2d_with_indices_converter.py @@ -83,14 +83,10 @@ def _is_supported_on_target( ): return False - maximum_supported_kernel_size = 4096 # If there is no padding, Neutron allows maximum stride of 4096. Otherwise, it's 32. But the converter # always inserts a `Pad` operator to add the padding, so the `MaxPool` never pads it's input itself, so # 4096 is always the limit. And similarly, the `MaxPool` input padding limitation does not apply either. maximum_supported_stride = 4096 - - if any(k > maximum_supported_kernel_size for k in kernel_size): - return False if any(s > maximum_supported_stride for s in stride): return False diff --git a/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py b/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py index 2299c13e83a..583dc2bfd04 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_max_pool_2d_converter.py @@ -302,18 +302,12 @@ def test__basic_nsys_inference_qat(self, mocker): use_qat=True, ) - def test__kernel_size_limit(self, mocker): - kernel_size = (1, 4096) + def test__large_kernel_size(self, mocker): + kernel_size = (1, 5000) input_shape = (1, 4) + kernel_size - model = MaxPool2dModule(kernel_size) + model = MaxPool2dModule(kernel_size, stride=1) self.assert_delegated(model, input_shape, mocker) - def test__kernel_size_limit_exceeded(self): - kernel_size = (1, 4097) # Exceeds the kernel size limit. - input_shape = (1, 4) + kernel_size - model = MaxPool2dModule(kernel_size) - self.assert_not_delegated(model, input_shape) - def test__stride_limit__no_padding(self, mocker): stride = 4096 input_shape = (1, 4, 1, 4096) From 6c74cdc3d725f9651361629b426505ceb30f97e5 Mon Sep 17 00:00:00 2001 From: Martin Pavella Date: Wed, 20 May 2026 20:33:52 +0200 Subject: [PATCH 82/91] NXP backend: Add support for `sigmoid` with the new Neutron flow. (#19687) ### Summary This PR adds support for the aten.sigmoid operator with the new Neutron MLIR flow. ### Test plan Unit tests provided. cc @robert-kalmar @JakeStevens @digantdesai @rascani --- .../ir/converter/builder/model_builder.py | 5 +- .../ops_converters/sigmoid_converter.py | 36 +++++++++- .../node_converter/test_sigmoid_converter.py | 69 ++++++++++++++++++- backends/nxp/tests/ops_aliases.py | 1 + 4 files changed, 108 insertions(+), 3 deletions(-) diff --git a/backends/nxp/backend/ir/converter/builder/model_builder.py b/backends/nxp/backend/ir/converter/builder/model_builder.py index d3547acb67f..f97a194ce87 100755 --- a/backends/nxp/backend/ir/converter/builder/model_builder.py +++ b/backends/nxp/backend/ir/converter/builder/model_builder.py @@ -742,7 +742,10 @@ def _validate_new_tensor_name(self, name: str) -> str: return new_name def op_code_index_for_op_type( - self, op_type: BuiltinOperator, version: int = 1, custom_code: str = None + self, + op_type: BuiltinOperator | int, + version: int = 1, + custom_code: str | None = None, ): """ Return the index to the 'operator_codes' vector in the TFLite model for the operator diff --git a/backends/nxp/backend/ir/converter/node_converters/ops_converters/sigmoid_converter.py b/backends/nxp/backend/ir/converter/node_converters/ops_converters/sigmoid_converter.py index 96e4655d011..7be2ce180c3 100644 --- a/backends/nxp/backend/ir/converter/node_converters/ops_converters/sigmoid_converter.py +++ b/backends/nxp/backend/ir/converter/node_converters/ops_converters/sigmoid_converter.py @@ -1,8 +1,10 @@ -# Copyright 2025 NXP +# Copyright 2025-2026 NXP # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. +import torch + from executorch.backends.nxp.backend.ir.converter.node_converter import ( CustomDelegationOptions, NodeConverter, @@ -10,6 +12,8 @@ from executorch.backends.nxp.backend.ir.lib.tflite.BuiltinOperator import ( BuiltinOperator, ) + +from executorch.backends.nxp.backend.neutron_target_spec import NeutronTargetSpec from torch.fx import Node from torch.nn import Parameter @@ -24,7 +28,37 @@ def _is_supported_in_IR( ) -> bool: return True + @staticmethod + def _is_supported_on_target( + node: Node, + neutron_target_spec: NeutronTargetSpec, + parameters_mapping: dict[str, Parameter], + custom_delegation_options: CustomDelegationOptions, + ) -> bool: + if custom_delegation_options.use_new_flow_neutron_c: + # Requirements specified by the new Neutron flow documentation. + + if not NodeConverter.uses_quantization_type_for_io( + node, + supported_types=[torch.int8, torch.uint8], + input_indices=[0], + output_indices=[0], + ): + return False + + return True + + else: + # Requirements of the old Neutron flow. + return True + def convert(self, node: Node): + """Convert the `aten.sigmoid.default` node to NeutronIR `Logistic` operator. + The ExecuTorch schema is: + sigmoid( + Tensor self + ) -> Tensor + """ self.assert_convertible(node) t_op = self._create_tflite_op_with_io_tensors(node) diff --git a/backends/nxp/tests/ir/converter/node_converter/test_sigmoid_converter.py b/backends/nxp/tests/ir/converter/node_converter/test_sigmoid_converter.py index ad03aa18ded..fd7f2ba6a9d 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_sigmoid_converter.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_sigmoid_converter.py @@ -1,23 +1,33 @@ -# Copyright 2025 NXP +# Copyright 2025-2026 NXP # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. import numpy as np + +# noinspection PyUnusedImports import pytest import torch from executorch.backends.nxp.backend.edge_program_converter import ( EdgeProgramToIRConverter, ) +from executorch.backends.nxp.neutron_partitioner import NeutronPartitioner +from executorch.backends.nxp.tests.dataset_creator import RandomDatasetCreator from executorch.backends.nxp.tests.executorch_pipeline import to_quantized_edge_program from executorch.backends.nxp.tests.executors import ( convert_run_compare, ToNCHWPreprocess, ToNHWCPreprocess, ) +from executorch.backends.nxp.tests.graph_verifier import DetailedGraphVerifier +from executorch.backends.nxp.tests.model_output_comparator import ( + AllCloseOutputComparator, +) from executorch.backends.nxp.tests.models import ConvWithSigmoid +from executorch.backends.nxp.tests.nsys_testing import lower_run_compare +from executorch.backends.nxp.tests.ops_aliases import DequantizePerTensor, Sigmoid from torch import nn from torch.export import ExportedProgram from executorch.backends.nxp.tests.use_qat import * # noqa F403 @@ -76,3 +86,60 @@ def test_sigmoid_only(mocker, use_qat, input_shape): convert_run_compare( exported_program, tfl_model=tflite_flatbuffers_model, input_data=input_data ) + + +class TestSigmoidNewNeutronFlow: + # noinspection PyMethodMayBeStatic + def assert_delegated(self, model, input_shape, mocker, use_qat=False, atol=None): + graph_verifier = DetailedGraphVerifier( + mocker, + expected_delegated_ops={Sigmoid: 1}, + expected_non_delegated_ops={}, + ) + + # Create a RandomDatasetCreator that covers also negative numbers to properly test the operator. + dataset_creator = RandomDatasetCreator(low=-2, high=2) + + kwargs = {"atol": atol} if atol is not None else {} + output_comparator = AllCloseOutputComparator(**kwargs) + + lower_run_compare( + model, + input_shape, + graph_verifier, + dataset_creator, + output_comparator, + use_qat=use_qat, + use_new_flow_neutron_c=True, # Use the new flow. + ) + + def test__basic_nsys_inference__qat(self, mocker, use_qat): + input_shape = (23,) + model = nn.Sigmoid() + self.assert_delegated(model, input_shape, mocker, use_qat=use_qat) + + @pytest.mark.parametrize( + "input_shape", + [ + (2,), + (2, 3), + (2, 3, 4), + (2, 3, 4, 5), + (2, 3, 4, 5, 6), + ], + ids=lambda shape: f"{len(shape)}D", + ) + def test__input_shapes(self, mocker, input_shape): + model = nn.Sigmoid() + + output_scale = 1.0 / 256.0 + lowering_spy = mocker.spy(NeutronPartitioner, "partition") + self.assert_delegated( + model, input_shape, mocker, atol=output_scale + ) # Allow single bit error. + + # Verify that the `atol` is indeed equal to the output scale. + # In the near future, we would like to add support for testing with int8 IO, where this check will be trivial. + nodes = list(lowering_spy.spy_return.tagged_exported_program.graph.nodes) + assert nodes[-2].target == DequantizePerTensor + assert nodes[-2].args[1] == output_scale diff --git a/backends/nxp/tests/ops_aliases.py b/backends/nxp/tests/ops_aliases.py index ce14cc16169..273844ac473 100644 --- a/backends/nxp/tests/ops_aliases.py +++ b/backends/nxp/tests/ops_aliases.py @@ -27,6 +27,7 @@ QuantizePerChannel = exir_ops.edge.quantized_decomposed.quantize_per_channel.default QuantizePerTensor = exir_ops.edge.quantized_decomposed.quantize_per_tensor.default Relu = exir_ops.edge.aten.relu.default +Sigmoid = exir_ops.edge.aten.sigmoid.default Slice = exir_ops.edge.aten.slice.Tensor SliceCopy = exir_ops.edge.aten.slice_copy.Tensor Softmax = exir_ops.edge.aten._softmax.default From a76d9cd6a0a2a49cac7fe7f2875720b6c7cb8225 Mon Sep 17 00:00:00 2001 From: Martin Pavella Date: Wed, 20 May 2026 20:35:38 +0200 Subject: [PATCH 83/91] NXP backend: Add support for `leaky_relu` with the new Neutron flow. (#19667) ### Summary This PR adds support for the `aten.leaky_relu` operator with the new Neutron MLIR flow. ### Test plan Unit tests provided. cc @robert-kalmar @JakeStevens @digantdesai @rascani --- .../ops_converters/leaky_relu_converter.py | 27 +++++++ .../test_leaky_relu_converter.py | 75 +++++++++++++++++-- backends/nxp/tests/ops_aliases.py | 1 + 3 files changed, 96 insertions(+), 7 deletions(-) diff --git a/backends/nxp/backend/ir/converter/node_converters/ops_converters/leaky_relu_converter.py b/backends/nxp/backend/ir/converter/node_converters/ops_converters/leaky_relu_converter.py index e6fcf0e5110..ab778631f74 100644 --- a/backends/nxp/backend/ir/converter/node_converters/ops_converters/leaky_relu_converter.py +++ b/backends/nxp/backend/ir/converter/node_converters/ops_converters/leaky_relu_converter.py @@ -3,6 +3,8 @@ # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. +import torch + from executorch.backends.nxp.backend.ir.converter.node_converter import ( CustomDelegationOptions, NodeConverter, @@ -10,6 +12,8 @@ from executorch.backends.nxp.backend.ir.tflite_generator.builtin_options.leaky_relu_options import ( LeakyRelu, ) + +from executorch.backends.nxp.backend.neutron_target_spec import NeutronTargetSpec from torch.fx import Node from torch.nn import Parameter @@ -24,6 +28,29 @@ def _is_supported_in_IR( ) -> bool: return True + @staticmethod + def _is_supported_on_target( + node: Node, + neutron_target_spec: NeutronTargetSpec, + parameters_mapping: dict[str, Parameter], + custom_delegation_options: CustomDelegationOptions, + ) -> bool: + if custom_delegation_options.use_new_flow_neutron_c: + # Requirements specified by the new Neutron flow documentation. + + if not NodeConverter.uses_quantization_type_for_io( + node, + supported_types=[torch.int8, torch.uint8], + input_indices=[0], + output_indices=[0], + ): + return False + + return True + else: + + return True + def convert(self, node: Node): """Convert the `aten.leaky_relu.default` operator to Neutron IR `LeakyRelu`. The schema is: diff --git a/backends/nxp/tests/ir/converter/node_converter/test_leaky_relu_converter.py b/backends/nxp/tests/ir/converter/node_converter/test_leaky_relu_converter.py index 35b58c88608..9adfe992d06 100644 --- a/backends/nxp/tests/ir/converter/node_converter/test_leaky_relu_converter.py +++ b/backends/nxp/tests/ir/converter/node_converter/test_leaky_relu_converter.py @@ -4,18 +4,24 @@ # LICENSE file in the root directory of this source tree. import numpy as np + +# noinspection PyUnusedImports import pytest import torch from executorch.backends.nxp.backend.edge_program_converter import ( EdgeProgramToIRConverter, ) +from executorch.backends.nxp.tests.dataset_creator import RandomDatasetCreator from executorch.backends.nxp.tests.executorch_pipeline import to_quantized_edge_program from executorch.backends.nxp.tests.executors import ( convert_run_compare, graph_contains_any_of_ops, ) -from executorch.exir.dialects._ops import ops as exir_ops +from executorch.backends.nxp.tests.graph_verifier import DetailedGraphVerifier +from executorch.backends.nxp.tests.nsys_testing import lower_run_compare +from executorch.backends.nxp.tests.ops_aliases import ExecutorchDelegateCall, LeakyRelu +from executorch.backends.nxp.tests.use_qat import * # noqa F403 @pytest.fixture(autouse=True) @@ -24,17 +30,13 @@ def reseed_model_per_test_run(): np.random.seed(23) -ExecutorchDelegateCall = torch.ops.higher_order.executorch_call_delegate -LeakyRelu2D = exir_ops.edge.aten.leaky_relu.default - - def _assert_successful_delegation(model, input_shape, mocker, atol=0): converter_spy = mocker.spy(EdgeProgramToIRConverter, "convert_program") delegated_ep = to_quantized_edge_program(model, input_shape).exported_program() # Make sure the `leaky_relu` was delegated. assert graph_contains_any_of_ops(delegated_ep.graph, [ExecutorchDelegateCall]) - assert not graph_contains_any_of_ops(delegated_ep.graph, [LeakyRelu2D]) + assert not graph_contains_any_of_ops(delegated_ep.graph, [LeakyRelu]) # Verify correct behavior of the converted NeutronIR model. intermediate_ep = converter_spy.call_args.args[1] @@ -45,7 +47,7 @@ def _assert_successful_delegation(model, input_shape, mocker, atol=0): ).astype(np.int8) # Make sure the tested program contains the `leaky_relu`. - assert graph_contains_any_of_ops(intermediate_ep.graph, [LeakyRelu2D]) + assert graph_contains_any_of_ops(intermediate_ep.graph, [LeakyRelu]) convert_run_compare( intermediate_ep, tfl_model=neutron_ir_model, input_data=input_data, atol=atol @@ -121,3 +123,62 @@ def test_convert_leaky_relu__ranks(mocker, input_shape: tuple[int, ...]): mocker, atol=1, # Common quantization rounding error. ) + + +class TestLeakyReluNewNeutronFlow: + # noinspection PyMethodMayBeStatic + def assert_delegated(self, model, input_shape, mocker, use_qat=False): + graph_verifier = DetailedGraphVerifier( + mocker, + expected_delegated_ops={LeakyRelu: 1}, + expected_non_delegated_ops={}, + ) + + # Create a RandomDatasetCreator that covers also negative numbers to properly test the operator. + dataset_creator = RandomDatasetCreator(low=-2, high=2) + + lower_run_compare( + model, + input_shape, + graph_verifier, + dataset_creator, + use_qat=use_qat, + use_new_flow_neutron_c=True, # Use the new flow. + ) + + @pytest.mark.parametrize( + "input_shape", + [ + (2,), + (2, 3), + (2, 3, 4), + (2, 3, 4, 5), + (2, 3, 4, 5, 6), + ], + ids=lambda shape: f"{len(shape)}D", + ) + def test__default_alpha__input_shapes(self, mocker, input_shape): + model = LeakyReluModule() + self.assert_delegated(model, input_shape, mocker) + + def test__default_alpha__qat(self, mocker, use_qat): + model = LeakyReluModule() + input_shape = (23,) + self.assert_delegated(model, input_shape, mocker, use_qat) + + @pytest.mark.parametrize( + "alpha", + [0.01, 3.14159, 0, 1, float("inf")], + ids=lambda alpha: f"alpha = {alpha}", + ) + def test__specific_alpha(self, mocker, alpha): + model = LeakyReluModule(negative_slope=alpha) + self.assert_delegated(model, (23,), mocker) + + def test__inplace(self, mocker): + model = LeakyReluModule(inplace=True) + self.assert_delegated( + model, + (23,), + mocker, + ) diff --git a/backends/nxp/tests/ops_aliases.py b/backends/nxp/tests/ops_aliases.py index 273844ac473..584ce1ea2e6 100644 --- a/backends/nxp/tests/ops_aliases.py +++ b/backends/nxp/tests/ops_aliases.py @@ -22,6 +22,7 @@ GetItem = operator.getitem HardTanh = exir_ops.edge.aten.hardtanh.default HardTanh_ = exir_ops.edge.aten.hardtanh_.default +LeakyRelu = exir_ops.edge.aten.leaky_relu.default MaxPool2DWithIndices = exir_ops.edge.aten.max_pool2d_with_indices.default MulTensor = exir_ops.edge.aten.mul.Tensor QuantizePerChannel = exir_ops.edge.quantized_decomposed.quantize_per_channel.default From 6ba868e2de666b6b3b3f7a2d5d4dd428e2e9e756 Mon Sep 17 00:00:00 2001 From: William Liu Date: Wed, 20 May 2026 14:43:29 -0400 Subject: [PATCH 84/91] Thread kernel_registry through Module::load_method (#19641) Differential Revision: D104433196 Pull Request resolved: https://github.com/pytorch/executorch/pull/19641 --- extension/module/module.cpp | 10 ++++++++-- extension/module/module.h | 14 +++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/extension/module/module.cpp b/extension/module/module.cpp index 459b062fd67..5422fb15b71 100644 --- a/extension/module/module.cpp +++ b/extension/module/module.cpp @@ -20,6 +20,7 @@ namespace extension { namespace ET_MODULE_NAMESPACE { using ET_MERGED_DATA_MAP_NAMESPACE::MergedDataMap; +using ET_RUNTIME_NAMESPACE::Kernel; using ET_RUNTIME_NAMESPACE::MethodMeta; using ET_RUNTIME_NAMESPACE::Program; @@ -406,7 +407,8 @@ runtime::Error Module::load_method( const std::string& method_name, runtime::HierarchicalAllocator* planned_memory, torch::executor::EventTracer* event_tracer, - const LoadBackendOptionsMap* backend_options) { + const LoadBackendOptionsMap* backend_options, + std::vector kernel_registry) { if (!is_method_loaded(method_name)) { ET_CHECK_OK_OR_RETURN_ERROR(load()); @@ -446,12 +448,16 @@ runtime::Error Module::load_method( method_holder.memory_manager = std::make_unique( memory_allocator_.get(), planned_memory, temp_allocator_.get()); + method_holder.kernel_registry = std::move(kernel_registry); auto res_method = program_->load_method( method_name.c_str(), method_holder.memory_manager.get(), event_tracer ? event_tracer : this->event_tracer(), merged_data_map_.get(), - effective_backend_options); + effective_backend_options, + runtime::Span( + method_holder.kernel_registry.data(), + method_holder.kernel_registry.size())); if (!res_method.ok()) { return res_method.error(); } diff --git a/extension/module/module.h b/extension/module/module.h index 2536fbc01ec..47ead23032e 100644 --- a/extension/module/module.h +++ b/extension/module/module.h @@ -27,6 +27,7 @@ namespace executorch { namespace extension { +using ET_RUNTIME_NAMESPACE::Kernel; using ET_RUNTIME_NAMESPACE::Method; using ET_RUNTIME_NAMESPACE::MethodMeta; using ET_RUNTIME_NAMESPACE::NamedDataMap; @@ -281,7 +282,8 @@ class Module { const std::string& method_name, runtime::HierarchicalAllocator* planned_memory = nullptr, torch::executor::EventTracer* event_tracer = nullptr, - const LoadBackendOptionsMap* backend_options = nullptr); + const LoadBackendOptionsMap* backend_options = nullptr, + std::vector kernel_registry = {}); ET_DEPRECATED ET_NODISCARD runtime::Error inline load_method( const std::string& method_name, @@ -329,9 +331,14 @@ class Module { ET_NODISCARD inline runtime::Error load_forward( runtime::HierarchicalAllocator* planned_memory = nullptr, torch::executor::EventTracer* event_tracer = nullptr, - const LoadBackendOptionsMap* backend_options = nullptr) { + const LoadBackendOptionsMap* backend_options = nullptr, + std::vector kernel_registry = {}) { return load_method( - "forward", planned_memory, event_tracer, backend_options); + "forward", + planned_memory, + event_tracer, + backend_options, + std::move(kernel_registry)); } ET_DEPRECATED ET_NODISCARD inline runtime::Error load_forward( @@ -724,6 +731,7 @@ class Module { std::unique_ptr planned_memory; std::unique_ptr memory_manager; std::unique_ptr method; + std::vector kernel_registry; }; std::string file_path_; From cca31292cfed59388173b0eda74fb4093e8b34cb Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 16 May 2026 13:03:28 +0200 Subject: [PATCH 85/91] Run RISC-V tests with multiple RVV QEMU configurations Given RISC-V allows different hardware implementations to have different vector length (similar to ARM SVE), we want to make sure that we test on different configurations. Luckily, QEMU allows us to simply set a vlen=<128,256,512,...> parameter on QEMU_CPU to emulate different vector length. --- .github/workflows/_test_riscv.yml | 11 +++++++++-- .github/workflows/riscv64.yml | 14 ++++++++++++++ examples/riscv/run.sh | 4 ++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_test_riscv.yml b/.github/workflows/_test_riscv.yml index da19dfc9bda..e7a93a36d10 100644 --- a/.github/workflows/_test_riscv.yml +++ b/.github/workflows/_test_riscv.yml @@ -27,6 +27,10 @@ on: required: false type: boolean default: false + qemu-cpu: + description: 'Configuration(s) for the CPU to emulate with QEMU, expecting a JSON array' + required: true + type: string gcc-version: description: 'The version of GCC to use' required: false @@ -52,5 +56,8 @@ jobs: source .ci/scripts/utils.sh install_executorch "--use-pt-pinned-commit" - export GCC_VERSION=${{ inputs.gcc-version }} - bash .ci/scripts/test_riscv_qemu.sh --model="${{ inputs.model }}" ${{ inputs.xnnpack && '--xnnpack' || '' }} ${{ inputs.quantize && '--quantize' || '' }} + echo '${{ inputs.qemu-cpu }}' | jq -r '.[]' | while IFS= read -r qemu_cpu; do + export QEMU_CPU="${qemu_cpu}" + export GCC_VERSION=${{ inputs.gcc-version }} + bash .ci/scripts/test_riscv_qemu.sh --model="${{ inputs.model }}" ${{ inputs.xnnpack && '--xnnpack' || '' }} ${{ inputs.quantize && '--quantize' || '' }} + done diff --git a/.github/workflows/riscv64.yml b/.github/workflows/riscv64.yml index 9823db09cc1..d7beae7dc8e 100644 --- a/.github/workflows/riscv64.yml +++ b/.github/workflows/riscv64.yml @@ -50,6 +50,20 @@ jobs: model: ${{ matrix.model }} xnnpack: ${{ matrix.xnnpack }} quantize: ${{ matrix.quantize }} + # If XNNPACK, test with multiple RVV length, disabled otherwise + qemu-cpu: >- + ${{ + case( + matrix.xnnpack, '[ + "rv64,zba=true,zbb=true,zbs=true,v=true,vlen=128,elen=64,vext_spec=v1.0", + "rv64,zba=true,zbb=true,zbs=true,v=true,vlen=256,elen=64,vext_spec=v1.0", + "rv64,zba=true,zbb=true,zbs=true,v=true,vlen=512,elen=64,vext_spec=v1.0" + ]', + '[ + "rv64,zba=true,zbb=true,zbs=true,v=false" + ]' + ) + }} # XNNPACK requires GCC 14+ gcc-version: ${{ matrix.xnnpack && 14 || 11 }} docker-image: ${{ matrix.xnnpack && 'ci-image:executorch-ubuntu-24.04-gcc14' || 'ci-image:executorch-ubuntu-22.04-gcc11' }} diff --git a/examples/riscv/run.sh b/examples/riscv/run.sh index 644944ab8a4..d6e86031ac9 100755 --- a/examples/riscv/run.sh +++ b/examples/riscv/run.sh @@ -111,6 +111,10 @@ hash "${qemu}" 2>/dev/null || { # linker (ld-linux-riscv64-lp64d.so.1) referenced in the ELF resolves. export QEMU_LD_PREFIX="${QEMU_LD_PREFIX:-/usr/riscv64-linux-gnu}" +if [[ -n "${QEMU_CPU+x}" ]]; then + echo "[run.sh] QEMU_CPU=${QEMU_CPU}" +fi + log_file=$(mktemp) trap 'rm -f "${log_file}"' EXIT From 7eba60a0d4d28ba95b7c6d818f39d20e17a3bb04 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 16 May 2026 13:29:15 +0200 Subject: [PATCH 86/91] Add XNNPACK coverage instrumentation for riscv64 --- .ci/scripts/test_riscv_qemu.sh | 15 +- .github/workflows/_test_riscv.yml | 28 ++- backends/xnnpack/CMakeLists.txt | 6 + examples/riscv/etdump_summary.py | 228 +++++++++++++++++++++++++ examples/riscv/run.sh | 25 ++- tools/cmake/preset/riscv64_linux.cmake | 12 ++ 6 files changed, 306 insertions(+), 8 deletions(-) create mode 100644 examples/riscv/etdump_summary.py diff --git a/.ci/scripts/test_riscv_qemu.sh b/.ci/scripts/test_riscv_qemu.sh index 0d8b2815f74..d1998561553 100755 --- a/.ci/scripts/test_riscv_qemu.sh +++ b/.ci/scripts/test_riscv_qemu.sh @@ -18,15 +18,18 @@ model="add" xnnpack=false quantize=false verbose=false +verbose_xnnpack=false usage() { cat < Which model to export and run (default: add) - --xnnpack Enable the XNNPACK backend (AOT partitioner + runtime) - --quantize Produce an 8-bit quantized model - -h, --help Show this help + --model= Which model to export and run (default: add) + --xnnpack Enable the XNNPACK backend (AOT partitioner + runtime) + --quantize Produce an 8-bit quantized model + --verbose Enable XNNPACK partitioner DEBUG logging and dump the lowered graph + --verbose-xnnpack Build XNNPACK with XNN_LOG_LEVEL=4 to log microkernel dispatch + -h, --help Show this help EOF } @@ -36,6 +39,7 @@ for arg in "$@"; do --xnnpack) xnnpack=true ;; --quantize) quantize=true ;; --verbose) verbose=true ;; + --verbose-xnnpack) verbose_xnnpack=true ;; -h|--help) usage; exit 0 ;; *) echo "Unknown option: $arg" >&2; usage; exit 1 ;; esac @@ -51,6 +55,9 @@ fi if ${verbose}; then run_extra_args+=(--verbose) fi +if ${verbose_xnnpack}; then + run_extra_args+=(--verbose-xnnpack) +fi bash "${et_root_dir}/examples/riscv/setup.sh" bash "${et_root_dir}/examples/riscv/run.sh" --model="${model}" "${run_extra_args[@]}" diff --git a/.github/workflows/_test_riscv.yml b/.github/workflows/_test_riscv.yml index e7a93a36d10..4be2732016e 100644 --- a/.github/workflows/_test_riscv.yml +++ b/.github/workflows/_test_riscv.yml @@ -59,5 +59,31 @@ jobs: echo '${{ inputs.qemu-cpu }}' | jq -r '.[]' | while IFS= read -r qemu_cpu; do export QEMU_CPU="${qemu_cpu}" export GCC_VERSION=${{ inputs.gcc-version }} - bash .ci/scripts/test_riscv_qemu.sh --model="${{ inputs.model }}" ${{ inputs.xnnpack && '--xnnpack' || '' }} ${{ inputs.quantize && '--quantize' || '' }} + bash .ci/scripts/test_riscv_qemu.sh \ + --model="${{ inputs.model }}" \ + ${{ inputs.xnnpack && '--xnnpack --verbose-xnnpack' || '' }} \ + ${{ inputs.quantize && '--quantize' || '' }} + + # Generate markdown table from riscv_test/${{ inputs.model }}_riscv.etdump.json, sorted by sum_ms + ( + etdump_json="riscv_test/${{ inputs.model }}_riscv.etdump.json" + echo "### Model=${{ inputs.model }} XNNPACK=${{ inputs.xnnpack }} Quantize=${{ inputs.quantize }} QEMU_CPU='${QEMU_CPU}'" + jq -r ' + def r3: (. * 1000 | round) / 1000; + ["Section","Op","Count","Sum (ms)","Avg (ms)","Max (ms)","Microkernels"], + ["---","---","---","---","---","---","---"], + ( [ (.ops[] | . + {section: "ops"}), + (.framework[] | . + {section: "framework"}) ] + | sort_by(-.sum_ms) | .[] + | [.section, .op, .count, (.sum_ms|r3), (.avg_ms|r3), (.max_ms|r3), ((.kernels // []) | join(", "))] ) + | "| " + (map(tostring) | join(" | ")) + " |" + ' "${etdump_json}" + echo + echo "
    Registered XNNPACK microkernels" + echo + jq -r '.registered_kernels[] | "- `" + . + "`"' "${etdump_json}" + echo + echo "
    " + echo + ) >> $GITHUB_STEP_SUMMARY done diff --git a/backends/xnnpack/CMakeLists.txt b/backends/xnnpack/CMakeLists.txt index 1b46c993b17..cd0d945a84f 100644 --- a/backends/xnnpack/CMakeLists.txt +++ b/backends/xnnpack/CMakeLists.txt @@ -169,6 +169,12 @@ install( EXPORT ExecuTorchTargets DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +if(DEFINED EXECUTORCH_XNNPACK_LOG_LEVEL) + target_compile_definitions( + xnnpack-logging PUBLIC XNN_LOG_LEVEL=${EXECUTORCH_XNNPACK_LOG_LEVEL} + ) +endif() + if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/examples/riscv/etdump_summary.py b/examples/riscv/etdump_summary.py new file mode 100644 index 00000000000..e4fc5a61d7e --- /dev/null +++ b/examples/riscv/etdump_summary.py @@ -0,0 +1,228 @@ +# Copyright 2026 The ExecuTorch Authors. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +"""Render a per-XNNPACK-op summary from an ETDump file.""" + +import argparse +import json +import re +import sys +from collections import defaultdict +from pathlib import Path + +from executorch.devtools import Inspector + + +# "Convolution (NHWC, F32) IGEMM #3" -> ("Convolution (NHWC, F32) IGEMM", 3) +_SEQ_RE = re.compile(r"^(.*?)\s+#(\d+)$") + +# Wrappers around per-op events; kept separate to avoid double-counting children. +FRAMEWORK_EVENTS = frozenset( + { + "Method::execute", + "Method::init", + "Program::load_method", + "DELEGATE_CALL", + "OPERATOR_CALL", + } +) + +_REG_LOG_RE = re.compile(r"Note \(XNNPACK\):.*microkernel '([^']+)'") + + +def parse_run_log(path: Path): + syms = set() + with open(path, errors="ignore") as f: + for line in f: + m = _REG_LOG_RE.search(line) + if m: + syms.add(m.group(1)) + return sorted(syms) + + +# Two-source mapping from an ETDump op name to a symbol-substring pattern. +# When the operator type uses xnn_microkernel_type_default, runtime.c does NOT +# append a category suffix, so we fall back to matching on the base op name. +_OP_NAME_RE = re.compile(r"^(.*?)\s*\(([^)]*)\)\s*(.*)$") +_DTYPE_TOKENS = frozenset( + { + "F32", + "F16", + "QS8", + "QU8", + "QC8", + "QC4", + "QD8", + "QC8W", + "QC4W", + "X8", + "X16", + "X24", + "X32", + "X64", + } +) +# Infix between the kind token and `_ukernel_`: zero or more `_` +# segments (e.g. `_gemm_ukernel_`, `_gemm_minmax_ukernel_`, +# `_gemm_minmax_fp32_ukernel_`, ...). +_INFIX = r"(?:[a-z0-9]+_)*" +_KIND_PATTERN = { + # Microkernel categories appended by runtime.c (xnn_microkernel_type_to_string). + "GEMM": r"_gemm_" + _INFIX + r"ukernel_", + "IGEMM": r"_igemm_" + _INFIX + r"ukernel_", + "DWConv": r"_dwconv_" + _INFIX + r"ukernel_", + "Transpose": r"_transposec?_" + _INFIX + r"ukernel_", + "Reduce": r"_(?:rsum|rmax|rminmax|rdmax|rdsum)_" + _INFIX + r"ukernel_", + "Reduce2": r"_(?:rdmax|rdsum)_" + _INFIX + r"ukernel_", + "VMulCAddC": r"_vmulcaddc_" + _INFIX + r"ukernel_", + "Average Pooling": r"_(?:avgpool|gavgpool)_" + _INFIX + r"ukernel_", + "Pixelwise Average Pooling": r"_pavgpool_" + _INFIX + r"ukernel_", + "Conv2D HWC2CHW": r"_conv_hwc2chw_" + _INFIX + r"ukernel_", + "SPMM": r"_spmm_" + _INFIX + r"ukernel_", + "Subconv2D": r"_subconv2d_" + _INFIX + r"ukernel_", + # Base op names (default microkernel type, no category suffix in the ETDump name). + "Add": r"_v(?:add|addc)_" + _INFIX + r"ukernel_", + "Subtract": r"_v(?:sub|subc|rsubc)_" + _INFIX + r"ukernel_", + "Multiply": r"_v(?:mul|mulc)_" + _INFIX + r"ukernel_", + "Divide": r"_v(?:div|divc|rdivc)_" + _INFIX + r"ukernel_", + "Maximum": r"_v(?:max|maxc)_" + _INFIX + r"ukernel_", + "Minimum": r"_v(?:min|minc)_" + _INFIX + r"ukernel_", + "Clamp": r"_vclamp_" + _INFIX + r"ukernel_", + "Sigmoid": r"_vsigmoid_" + _INFIX + r"ukernel_", + "Tanh": r"_vtanh_" + _INFIX + r"ukernel_", + "Negate": r"_vneg_" + _INFIX + r"ukernel_", + "Abs": r"_vabs_" + _INFIX + r"ukernel_", + "Square": r"_vsqr_" + _INFIX + r"ukernel_", + "Square Root": r"_vsqrt_" + _INFIX + r"ukernel_", + "Reciprocal Square Root": r"_vrsqrt_" + _INFIX + r"ukernel_", + "Convert": r"_vcvt_" + _INFIX + r"ukernel_", + "Copy": r"_(?:copy|memcpy)_" + _INFIX + r"ukernel_", + "Constant Pad": r"_xx_pad_" + _INFIX + r"ukernel_", + "Softmax": r"_(?:raddstoreexpminusmax|rmax)_" + _INFIX + r"ukernel_", + "Max Pooling": r"_maxpool_" + _INFIX + r"ukernel_", +} + + +def op_kernels(op_name, kernels): + m = _OP_NAME_RE.match(op_name) + if not m: + return [] + base, inside, tail = m.group(1).strip(), m.group(2), m.group(3).strip() + key = tail if tail in _KIND_PATTERN else (base if base in _KIND_PATTERN else None) + if key is None: + return [] + dtype_tokens = [ + s.strip().lower() for s in inside.split(",") if s.strip() in _DTYPE_TOKENS + ] + cat_re = re.compile(_KIND_PATTERN[key]) + return [ + sym + for sym in kernels + if cat_re.search(sym) and all(d in sym for d in dtype_tokens) + ] + + +def aggregate(etdump_path: Path): + insp = Inspector(etdump_path=str(etdump_path)) + per_op = defaultdict(lambda: {"count": 0, "raw": []}) + framework = defaultdict(lambda: {"count": 0, "raw": []}) + for block in insp.event_blocks: + for ev in block.events: + m = _SEQ_RE.match(ev.name or "") + base = m.group(1) if m else (ev.name or "") + bucket = framework if base in FRAMEWORK_EVENTS else per_op + bucket[base]["count"] += 1 + bucket[base]["raw"].extend(ev.perf_data.raw if ev.perf_data else []) + return per_op, framework + + +def render(per_op, framework, etdump_path, kernels): + def rows_of(d): + rows = [] + for name, v in d.items(): + raw = v["raw"] + s = sum(raw) + rows.append( + { + "op": name, + "count": v["count"], + "sum_ms": s, + "avg_ms": (s / len(raw)) if raw else 0.0, + "max_ms": max(raw) if raw else 0.0, + "kernels": op_kernels(name, kernels) if kernels else [], + } + ) + rows.sort(key=lambda r: r["sum_ms"], reverse=True) + return rows + + op_rows = rows_of(per_op) + fw_rows = rows_of(framework) + ops_total = sum(r["sum_ms"] for r in op_rows) + fw_total = sum(r["sum_ms"] for r in fw_rows) + + def fmt_table(label, rows, total): + print(f"\n[etdump_summary] {label} total={total:.3f} ms") + print( + f"{'%':>5} {'sum_ms':>10} {'count':>6} {'avg_ms':>10} {'max_ms':>10} op" + ) + for r in rows: + pct = (r["sum_ms"] / total * 100.0) if total else 0.0 + print( + f"{pct:5.1f} {r['sum_ms']:10.3f} {r['count']:6d} " + f"{r['avg_ms']:10.3f} {r['max_ms']:10.3f} {r['op']}" + ) + + print(f"[etdump_summary] {etdump_path}") + fmt_table(f"XNNPACK ops ({len(op_rows)} unique)", op_rows, ops_total) + fmt_table(f"Framework wrappers ({len(fw_rows)})", fw_rows, fw_total) + if kernels: + print(f"\n[etdump_summary] Registered XNNPACK microkernels ({len(kernels)}):") + for sym in kernels: + print(f" {sym}") + + return op_rows, fw_rows, ops_total + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("etdump", type=Path) + parser.add_argument("--run-log", type=Path, default=None) + parser.add_argument("--json", type=Path, default=None) + args = parser.parse_args() + + if not args.etdump.exists(): + print(f"[etdump_summary] missing {args.etdump}", file=sys.stderr) + sys.exit(1) + + kernels = [] + if args.run_log is not None: + if not args.run_log.exists(): + print(f"[etdump_summary] missing run log {args.run_log}", file=sys.stderr) + sys.exit(1) + kernels = parse_run_log(args.run_log) + + per_op, framework = aggregate(args.etdump) + op_rows, fw_rows, ops_total = render(per_op, framework, args.etdump, kernels) + + if args.json is not None: + args.json.parent.mkdir(parents=True, exist_ok=True) + args.json.write_text( + json.dumps( + { + "etdump": str(args.etdump), + "run_log": str(args.run_log) if args.run_log else None, + "ops_total_ms": ops_total, + "registered_kernels": kernels, + "ops": op_rows, + "framework": fw_rows, + }, + indent=2, + ) + ) + print(f"[etdump_summary] wrote {args.json}") + + +if __name__ == "__main__": + main() diff --git a/examples/riscv/run.sh b/examples/riscv/run.sh index d6e86031ac9..916284cb73c 100755 --- a/examples/riscv/run.sh +++ b/examples/riscv/run.sh @@ -24,6 +24,7 @@ model="add" xnnpack=false quantize=false verbose=false +verbose_xnnpack=false usage() { cat < CMake build directory (default: ${build_dir}) --output_dir= Directory for the exported .bpte (default: ${output_dir}) @@ -48,6 +50,7 @@ for arg in "$@"; do --xnnpack) xnnpack=true ;; --quantize) quantize=true ;; --verbose) verbose=true ;; + --verbose-xnnpack) verbose_xnnpack=true ;; --build_only) build_only=true ;; --build_dir=*) build_dir="${arg#*=}" ;; --output_dir=*) output_dir="${arg#*=}" ;; @@ -79,6 +82,9 @@ cmake_extra_args=() if ${xnnpack}; then cmake_extra_args+=(-DEXECUTORCH_BUILD_XNNPACK=ON) fi +if ${verbose_xnnpack}; then + cmake_extra_args+=(-DEXECUTORCH_XNNPACK_LOG_LEVEL=4 -DEXECUTORCH_BUILD_RISCV_ETDUMP=ON) +fi cmake -S "${et_root_dir}" -B "${build_dir}" \ --preset riscv64-linux \ "${cmake_extra_args[@]}" \ @@ -115,13 +121,20 @@ if [[ -n "${QEMU_CPU+x}" ]]; then echo "[run.sh] QEMU_CPU=${QEMU_CPU}" fi -log_file=$(mktemp) -trap 'rm -f "${log_file}"' EXIT - runner_extra_args=() if ${quantize}; then runner_extra_args+=(--bundleio_rtol=0.1 --bundleio_atol=0.25) fi +etdump_path="" +if ${verbose_xnnpack}; then + etdump_path="${output_dir}/${model}_riscv.etdump" + rm -f "${etdump_path}" + runner_extra_args+=(--etdump_path="${etdump_path}") +fi + +# etdump_summary.py reads the XNN_LOG_LEVEL=4 registrations. +log_file="${output_dir}/${model}_riscv.run.log" +rm -f "${log_file}" set +e timeout --signal=KILL "${qemu_timeout}" "${qemu}" "${runner}" \ @@ -133,6 +146,12 @@ set -e echo "[run.sh] qemu exit status: ${qemu_status}" +if [[ -n "${etdump_path}" && -f "${etdump_path}" ]]; then + python "${script_dir}/etdump_summary.py" "${etdump_path}" \ + --run-log "${log_file}" \ + --json "${etdump_path}.json" || true +fi + if grep -q "Test_result: PASS" "${log_file}"; then echo "[run.sh] Bundled I/O check PASSED" exit 0 diff --git a/tools/cmake/preset/riscv64_linux.cmake b/tools/cmake/preset/riscv64_linux.cmake index c094534b594..87894b63088 100644 --- a/tools/cmake/preset/riscv64_linux.cmake +++ b/tools/cmake/preset/riscv64_linux.cmake @@ -10,6 +10,18 @@ set_overridable_option(EXECUTORCH_BUILD_DEVTOOLS ON) set_overridable_option(EXECUTORCH_ENABLE_BUNDLE_IO ON) set_overridable_option(EXECUTORCH_ENABLE_LOGGING ON) +define_overridable_option( + EXECUTORCH_BUILD_RISCV_ETDUMP "Build etdump support for RISC-V" BOOL OFF +) + +if("${EXECUTORCH_BUILD_RISCV_ETDUMP}") + set(EXECUTORCH_BUILD_DEVTOOLS ON) + set(EXECUTORCH_ENABLE_EVENT_TRACER ON) + set(FLATCC_ALLOW_WERROR OFF) +else() + set(EXECUTORCH_ENABLE_EVENT_TRACER OFF) +endif() + if(EXECUTORCH_BUILD_XNNPACK) if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_LESS 14) message(FATAL_ERROR "XNNPACK requires GCC 14+ on riscv64") From 2c8507d44c542756fbc80f5b684c981710627d43 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 20 May 2026 20:49:21 +0200 Subject: [PATCH 87/91] Align RISC-V workflow display name to others --- .github/workflows/riscv64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/riscv64.yml b/.github/workflows/riscv64.yml index d7beae7dc8e..ddb1955ece2 100644 --- a/.github/workflows/riscv64.yml +++ b/.github/workflows/riscv64.yml @@ -1,4 +1,4 @@ -name: RISC-V +name: Test RISC-V Backend on: push: From 4e1355dfb0bd7df5e5d096aa979fd45589196a95 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 21 May 2026 09:33:08 +0200 Subject: [PATCH 88/91] Always use executorch-ubuntu-24.04-gcc14, newer QEMU is needed for RISC-V testing --- .github/workflows/_test_riscv.yml | 8 ++------ .github/workflows/riscv64.yml | 3 --- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/_test_riscv.yml b/.github/workflows/_test_riscv.yml index 4be2732016e..163ede72ab2 100644 --- a/.github/workflows/_test_riscv.yml +++ b/.github/workflows/_test_riscv.yml @@ -31,10 +31,6 @@ on: description: 'Configuration(s) for the CPU to emulate with QEMU, expecting a JSON array' required: true type: string - gcc-version: - description: 'The version of GCC to use' - required: false - type: number docker-image: description: 'The docker image to use for this job' required: false @@ -45,7 +41,7 @@ jobs: uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main with: runner: linux.2xlarge - docker-image: ${{ inputs.docker-image || 'ci-image:executorch-ubuntu-22.04-gcc11' }} + docker-image: ci-image:executorch-ubuntu-24.04-gcc14 submodules: 'recursive' ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} timeout: ${{ inputs.timeout }} @@ -58,7 +54,7 @@ jobs: echo '${{ inputs.qemu-cpu }}' | jq -r '.[]' | while IFS= read -r qemu_cpu; do export QEMU_CPU="${qemu_cpu}" - export GCC_VERSION=${{ inputs.gcc-version }} + export GCC_VERSION=14 bash .ci/scripts/test_riscv_qemu.sh \ --model="${{ inputs.model }}" \ ${{ inputs.xnnpack && '--xnnpack --verbose-xnnpack' || '' }} \ diff --git a/.github/workflows/riscv64.yml b/.github/workflows/riscv64.yml index ddb1955ece2..14b9ad62047 100644 --- a/.github/workflows/riscv64.yml +++ b/.github/workflows/riscv64.yml @@ -64,6 +64,3 @@ jobs: ]' ) }} - # XNNPACK requires GCC 14+ - gcc-version: ${{ matrix.xnnpack && 14 || 11 }} - docker-image: ${{ matrix.xnnpack && 'ci-image:executorch-ubuntu-24.04-gcc14' || 'ci-image:executorch-ubuntu-22.04-gcc11' }} From 239fe1b942a181aa8d0d057d68ab89b2ba2e6eb5 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 21 May 2026 09:36:19 +0200 Subject: [PATCH 89/91] Rename --verbose to --debug-xnnpack It's more aligned with the intent --- .ci/scripts/test_riscv_qemu.sh | 10 +++++----- examples/riscv/aot_riscv.py | 8 ++++---- examples/riscv/run.sh | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.ci/scripts/test_riscv_qemu.sh b/.ci/scripts/test_riscv_qemu.sh index d1998561553..2842542aa3a 100755 --- a/.ci/scripts/test_riscv_qemu.sh +++ b/.ci/scripts/test_riscv_qemu.sh @@ -17,8 +17,8 @@ et_root_dir=$(realpath "${script_dir}/../..") model="add" xnnpack=false quantize=false -verbose=false verbose_xnnpack=false +debug_xnnpack=false usage() { cat < Which model to export and run (default: add) --xnnpack Enable the XNNPACK backend (AOT partitioner + runtime) --quantize Produce an 8-bit quantized model - --verbose Enable XNNPACK partitioner DEBUG logging and dump the lowered graph --verbose-xnnpack Build XNNPACK with XNN_LOG_LEVEL=4 to log microkernel dispatch + --debug-xnnpack Enable XNNPACK partitioner DEBUG logging and dump the lowered graph -h, --help Show this help EOF } @@ -38,7 +38,7 @@ for arg in "$@"; do --model=*) model="${arg#*=}" ;; --xnnpack) xnnpack=true ;; --quantize) quantize=true ;; - --verbose) verbose=true ;; + --debug-xnnpack) debug_xnnpack=true ;; --verbose-xnnpack) verbose_xnnpack=true ;; -h|--help) usage; exit 0 ;; *) echo "Unknown option: $arg" >&2; usage; exit 1 ;; @@ -52,8 +52,8 @@ fi if ${quantize}; then run_extra_args+=(--quantize) fi -if ${verbose}; then - run_extra_args+=(--verbose) +if ${debug_xnnpack}; then + run_extra_args+=(--debug-xnnpack) fi if ${verbose_xnnpack}; then run_extra_args+=(--verbose-xnnpack) diff --git a/examples/riscv/aot_riscv.py b/examples/riscv/aot_riscv.py index 22e8b31df73..529e2b1e767 100644 --- a/examples/riscv/aot_riscv.py +++ b/examples/riscv/aot_riscv.py @@ -148,13 +148,13 @@ def main() -> None: help="Produce an 8-bit quantized model", ) parser.add_argument( - "--verbose", + "--debug-xnnpack", action="store_true", help="Enable XNNPACK partitioner DEBUG logging and dump the lowered graph", ) args = parser.parse_args() - if args.verbose: + if args.debug_xnnpack: logging.basicConfig(level=logging.DEBUG) if args.output is None: @@ -181,7 +181,7 @@ def main() -> None: XnnpackPartitioner, ) - partitioners.append(XnnpackPartitioner(verbose=args.verbose)) + partitioners.append(XnnpackPartitioner(verbose=args.debug_xnnpack)) compile_config = None if args.quantize: @@ -202,7 +202,7 @@ def main() -> None: f"quantize={args.quantize} delegated_nodes={delegated}" ) - if args.verbose: + if args.debug_xnnpack: from executorch.exir.backend.utils import print_delegated_graph print_delegated_graph(edge.exported_program().graph_module) diff --git a/examples/riscv/run.sh b/examples/riscv/run.sh index 916284cb73c..2c207816bfc 100755 --- a/examples/riscv/run.sh +++ b/examples/riscv/run.sh @@ -23,7 +23,7 @@ qemu_timeout="600" model="add" xnnpack=false quantize=false -verbose=false +debug_xnnpack=false verbose_xnnpack=false usage() { @@ -33,8 +33,8 @@ Options: --model= Which model to export and run (default: ${model}) --xnnpack Enable the XNNPACK backend (AOT partitioner + runtime) --quantize Produce an 8-bit quantized model - --verbose Enable XNNPACK partitioner DEBUG logging and dump the lowered graph --verbose-xnnpack Build XNNPACK with XNN_LOG_LEVEL=4 to log microkernel dispatch at runtime + --debug-xnnpack Enable XNNPACK partitioner DEBUG logging and dump the lowered graph --build_only Only export and cross-compile; do not invoke QEMU --build_dir= CMake build directory (default: ${build_dir}) --output_dir= Directory for the exported .bpte (default: ${output_dir}) @@ -49,7 +49,7 @@ for arg in "$@"; do --model=*) model="${arg#*=}" ;; --xnnpack) xnnpack=true ;; --quantize) quantize=true ;; - --verbose) verbose=true ;; + --debug-xnnpack) debug_xnnpack=true ;; --verbose-xnnpack) verbose_xnnpack=true ;; --build_only) build_only=true ;; --build_dir=*) build_dir="${arg#*=}" ;; @@ -72,8 +72,8 @@ fi if ${quantize}; then aot_extra_args+=(--quantize) fi -if ${verbose}; then - aot_extra_args+=(--verbose) +if ${debug_xnnpack}; then + aot_extra_args+=(--debug-xnnpack) fi python "${script_dir}/aot_riscv.py" --model "${model}" "${aot_extra_args[@]}" --output "${bpte_path}" From e17eca91aea1cbf1b6527b1fbfe73c1ee030c2b2 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 21 May 2026 10:39:37 +0200 Subject: [PATCH 90/91] Fix possible issues with 'echo | jq | while read' failure in pipes --- .github/workflows/_test_riscv.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/_test_riscv.yml b/.github/workflows/_test_riscv.yml index 163ede72ab2..e3b049bd614 100644 --- a/.github/workflows/_test_riscv.yml +++ b/.github/workflows/_test_riscv.yml @@ -52,6 +52,9 @@ jobs: source .ci/scripts/utils.sh install_executorch "--use-pt-pinned-commit" + # Allows failure in `echo | jq | while read` pipeline to bubble up and fail the workflow + set -o pipefail + echo '${{ inputs.qemu-cpu }}' | jq -r '.[]' | while IFS= read -r qemu_cpu; do export QEMU_CPU="${qemu_cpu}" export GCC_VERSION=14 From f43631b28c28786bf937ceac6e02afe698df0b8c Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 22 May 2026 10:28:37 +0200 Subject: [PATCH 91/91] Fix CI failure for xnnpack=false --- .github/workflows/_test_riscv.yml | 47 ++++++++++++++++--------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/.github/workflows/_test_riscv.yml b/.github/workflows/_test_riscv.yml index e3b049bd614..223a146e3d8 100644 --- a/.github/workflows/_test_riscv.yml +++ b/.github/workflows/_test_riscv.yml @@ -63,26 +63,29 @@ jobs: ${{ inputs.xnnpack && '--xnnpack --verbose-xnnpack' || '' }} \ ${{ inputs.quantize && '--quantize' || '' }} - # Generate markdown table from riscv_test/${{ inputs.model }}_riscv.etdump.json, sorted by sum_ms - ( - etdump_json="riscv_test/${{ inputs.model }}_riscv.etdump.json" - echo "### Model=${{ inputs.model }} XNNPACK=${{ inputs.xnnpack }} Quantize=${{ inputs.quantize }} QEMU_CPU='${QEMU_CPU}'" - jq -r ' - def r3: (. * 1000 | round) / 1000; - ["Section","Op","Count","Sum (ms)","Avg (ms)","Max (ms)","Microkernels"], - ["---","---","---","---","---","---","---"], - ( [ (.ops[] | . + {section: "ops"}), - (.framework[] | . + {section: "framework"}) ] - | sort_by(-.sum_ms) | .[] - | [.section, .op, .count, (.sum_ms|r3), (.avg_ms|r3), (.max_ms|r3), ((.kernels // []) | join(", "))] ) - | "| " + (map(tostring) | join(" | ")) + " |" - ' "${etdump_json}" - echo - echo "
    Registered XNNPACK microkernels" - echo - jq -r '.registered_kernels[] | "- `" + . + "`"' "${etdump_json}" - echo - echo "
    " - echo - ) >> $GITHUB_STEP_SUMMARY + # We only generate riscv_test/${{ inputs.model }}_riscv.etdump.json from `--verbose-xnnpack`. + if ${{ inputs.xnnpack }}; then + # Generate markdown table from riscv_test/${{ inputs.model }}_riscv.etdump.json, sorted by sum_ms + ( + etdump_json="riscv_test/${{ inputs.model }}_riscv.etdump.json" + echo "### Model=${{ inputs.model }} XNNPACK=${{ inputs.xnnpack }} Quantize=${{ inputs.quantize }} QEMU_CPU='${QEMU_CPU}'" + jq -r ' + def r3: (. * 1000 | round) / 1000; + ["Section","Op","Count","Sum (ms)","Avg (ms)","Max (ms)","Microkernels"], + ["---","---","---","---","---","---","---"], + ( [ (.ops[] | . + {section: "ops"}), + (.framework[] | . + {section: "framework"}) ] + | sort_by(-.sum_ms) | .[] + | [.section, .op, .count, (.sum_ms|r3), (.avg_ms|r3), (.max_ms|r3), ((.kernels // []) | join(", "))] ) + | "| " + (map(tostring) | join(" | ")) + " |" + ' "${etdump_json}" + echo + echo "
    Registered XNNPACK microkernels" + echo + jq -r '.registered_kernels[] | "- `" + . + "`"' "${etdump_json}" + echo + echo "
    " + echo + ) >> $GITHUB_STEP_SUMMARY + fi done

    ;#e%k9f1zBuQ^I^NmjT z`!_Z226`gJo}L;tL7DF&ABk!3_k&0{@|8roEgnpqnJ$gI>x7K7lu`xx>EC)FJ(=MX zl2F0i!C+%$pF2Lib$HRjN=HIRz4Lu}FU7 z@cxV`yU3Alb@R6_g;Uh`UW@&xH-0DJQo&MF3;~88i}!$3veHhsBanmoQ+cl0tu-^SPUSykv^)RUvD8J#+a`~D=y!J|>2Me${A%^zH5 z4)?TNhn!@dq1)cNOX9Lqsgl2|pxmLr2NzmGog-JBYO0a=Jf28ReUDuRF^A0weQL9} z{sU=VH0Bq9?|fjYznU40PIOoCq(WC0&UPnTk;;?XRs{NwX&9o5yN)$cBV4YBzk5DZ z8l;z)+u{D@j#^0C8|ycgyWIZZ;x7krgH75~801)|Idd;DdGuRy-%m)ux;Wj>ImKWh zbGh!uTjT#A*<*>M`!@7to|cYptA$>B<|}a5j1ABS`oI8C-=-zr<1p+=t{)xae9Ha`o)BG7 z(~?zE&?hUwd)cRr9@hg%ni_cwcI37sa*jEdLuQ4YWTH`n>w~gJaHaohRS4}-kSI}x zg+Hl@O3oCUO`G;@&AY!B=l$UJir|ZLc?nA$HJmV9mHo|_E0fczc6b+K@x9BeMVBp&0vEwpRgNcCO9`VZQ_YCNhAqB2H_ZFCIlz6e(sIm`PF|E(z{eW zvL;xXIHUrJM8MQ3ChZw1%R{;}RI61@(t!w-VEGe+;+f*}?-A~xlGYuta+px^$R&*Q zq3U(b5w~+A(&gV(+yG^}KngZtfCZ^Ehm%lA!}kbbLLs%EhN+u3PCksY$~uGc-Sa0c2NDwzf`{|V9}K#WQ~^WsjdJ{RgDhEuOsRb{?oPXZLMqNGyP#e z<7=h=j_j-9WraZ6zmZU4Ipd=iF$-}2eO?q3fC1*A!E}6cg7Y#-KddFs7taXRnkbVM zzaQqb@|L{GRRm$%X*r3r6K<6o1;4H0&~lWIjO~(D0yRsWmzqM+WYd9~-({omJP-1{ zd_h1N96p}AU;0e#s=el&m;WqwyUF?u(_Q6?P!6|WLDeXBw%uWtXWkGFar=4pJw^j= z^U*Z76O!DF&)8kp6@Xt4Gb>g288`lCoHiNqF`5WT3E}yxi&rB%o49BVPh;A{K;yPVCQqKZJ;` zS%HcJO0UD5RO1qkM6m<9fJ4#3FmYZ6GtP%h7qODZRimei%O*2!cXg+}!3f}a5S$vw z1^cTAAT~GJuApKQMh=zZ5wa z)x6epv*JY-MPL##B+`|rh=F2{3-LpP7^QIaRx*Rp3gESA>f5GxtcJ6TDRA7E?ujEE zCVwce$knFCqDE3say#WKA;4<$=5kQr1DqwrKro{sQ%dNHCs9&ODcUIk7E=SPNI347 zK}pxVh=G1y(veZ3FKO6UvWbQ7TltnAi8rm!n%f;xe7HZiG!(y7nE>{nd6gHWVGchK z;Y;RA4o(M1bwi`(9TrRDodK+Ox6=u?p5HPSzooevszA1MQ{iuHJ^@gw{mk1y{N1|7 zrCoC@%|8AX6T+fd0D6^{A(>ReQo)wsk+zG)RH9`hVdiEI(HBBArOK+g2V%8W#400) zf_X5d+Vf-ewv+Be$r#AvA}$I_Z2hW|sZmB@^QoBM-eB2pc~?={LPVguq7_S(^5A-o zUB^W~rBn^r$gR+~2NUodsgy95^nNelpP!uVluKBh2(ExDY$2GPC@=0etjOk=jsGoU z`I=|O+QNZbSWDv(^oc5c;L}&y?kwoCQLc9vnJD)$7f{LM*Qu z*7OFfhL!gc5$BQ(=JT?ROOj6L#Cb`B_1XyMS;_Zz_q8M@Yp5t|FI)BexCe zGX(U>ok!acMol*5xpzZmdB`{E(eh+cEp3`04K9-As?XL}ncbE;wZ{H|m{0&p6PD8KY`eyPW@StfPj0r(`{QKXesu3~t8&4R`YFvE5j&KBOZ11F)+W773irv1JHv0WumkfQN6 zCdOPWa|fLeZ~mh_`O}8mP`BJpA$haxKLSi|}Dpc#hNWC^%5#Cy6qGqrt#PYhuLdg{RUT zOe!W9nYCRq6w&*Puz^$S#U#VZ?6cT1`m)f`M+x>ZPKft7&ay@t({M^=;|$8PsU)k7 z6HxYV@8;!@H2Vz~si#qHP0BT?&fsCqUyb-PyYe6lmPR}oaLtGN8wn-MmN78eG;xm) zuW;8$xoK4xc2hVFR+n1CW&kn?fgP+*9~y5PHoU|pM-rl_cff`rrh3Y-nlLWKL1m!gPn?40AMy+)uv0VR3OVG!5H9Tw&SA7oY9%H zXx7;GZE#aJ1_oN)m>g+EDQ9U-@Lvh4c+hO-9udiw3T9~2CsG5e4X)tsH~Dl--`POT z?TwtEM}3SBL3@U${I)egQUve3>}LvSVWokjQ$QI)Cv2pNE6@o^^^f3}trrS#FV`Rm z+PvNIsD44e90zva8`EGh<~>3mHYsf30)AcJzvM*WOVqet&?G z$o7tg@p{EqTwi-Y6D3S*_g--FWX`c1cGiGy=_RwIkwHT9su7P7^v_ocr=?vJxM2Q| zj|}0rO?3U=o8|dAfguiHJf66Dui)Q;YRV9_ts&BB>+iTub7r5v*YTr8=+Eh3FEIj; zki`E=^+1DxVeR`3b@?1{gEshs(z6;MV#v@3lBMbq*5-`y38zLda>&h-aB*#}Iu`;M z`#@(WXKj9ml!KyaC$IS#4H^O(i7J{(C8+6OC^U)7#gbXWJhhHCAzu1x9&OS~-S1s6 zF+`X%wG#6d_!hbYEB=Z@x4Mo7gErP@kmhG~O_8UmhrQ#*1mc`ixAco=m$R;!1IHltXZ`HRL0$3Cy3QwhnQ52vkT+cVwFa~oSHRe@r3cKDk4VHT!8xi{0?TZ zNj)GvRWx`%EpE|elpq{6U;(+%Et}Vq%73QnlAE9lDtMM^b7!cl>rM(FG-drj5V0r- zTdU2HiHL4ouhGJSTI@!-g(D>@f9mP3oQ%gSG%zfXkrCy}K0dADjQ}Qn9}mBTvbWZ{0in6kO7rCqI%Ff0<$!P6ovW2WwOKEJHf0RQ4?tr@`Eu#L@E&i61{6`Ae{ZwDwHiGKoCSEWzfz zGOK)+W2@oUt+=~x_-#h5S?!N#gNbx;Nrpk7SIC#EAEkDQTDW;>q+gsZlyIVsZc~n| z%fV*Po@7NOl3?3WN)mE>*?5$q6Ox4lQ1n>UqZ1AfmPTTZ=S__Ft8 zHc>HZz1?G+^AW@rF8>B2A+zDj2Gs+n;>P5HO!q#rPNckzJ>8ykjC*MO( zNPr3!E7lT(#NUOUsG+-PPE=^Nf~4k0H--V;aXYwA6YsPQ4lL?Wa|G1ngy!_wPrbf9xwigTh)s`939>(j4JOVi`ik zp6<2%Dw9&0ld)Uk#i+D$jzyY|jP2-O?7Jf}-&K@5_9B+F9p1%u8Qt&k1N?E-aO;|j z!?3E~4#zlq_Ivxp4_dN#$!xN%-(`jSXSGCS%H&$Xe{=c<9Swtf*Ne+3l<0nIhN_&c ze2g0H%SB$i2oPN2&5LMv(6g@d3kClQBI%EJs(Dr0Kc`~u!760w>NcMpY@A>7q&^fa&(ic7ippR zQWrt<-HQ47!~u6zV}VEa&pg{xF_1hoQ+O%+@Cs9BrxX2(Spt5XnPsSp3gY+MRQ20l z!ZIq%^T!n@hL^oYmP*oX{18TEB`mAk5N4H z!8+)R2Wg|H*GiDdAvljVO&Lgyb$Esk6E2r)&xm|pz)hsf6q31Mr77>@NHk|3;L55^ zdW+T)zuFuH*NBJNXo|r&q*_BOH&>*c=gMyaQx7co1FBkEdRMa07thy-cbQgIXPdU4 zawo+(_Oi(hnxP5nRJP!1HcR}FV8T2YabFw3&nb4ny}#%+6VMczZqh)n`&%2p9)=zF z0gPn&p3|He_bNqO8b3`aWeh#6cqJ8kq1Ihb^=)5DG~|poT*!NXa|8AE*wXKHpGKKw z4AFZvvZ(zx<0aMiU}+|`L=FsduWC5!H}@ES z9T2f%RWl6xUdt$bM?Y%BdxPW0LX?!5MFl^cw3!`>mfjcwdr~;DieL%m5$`9MF{zTl zQ?R;mQ85!UR$HnxyE>6r;;nc`xLE*sLUp-!w`Z=_8FJm4n%IGI;%l{MfBdU>>bufQNPuFI7T8S3XBJfn6_ z>}f?C+$~Z)(<`rkBb73M6MtQDFo2$SF>o9>tw?l6{#&3M2u#}B7>m*G z3Rh{ad@+#CIbFA_fsdd++hm`H1cbX759J}B%r*iIF~>9r6N?KYzSgD|SD=yOXEYQ6 z>5dXAe?T2!{Y>^;oxEX$E&#B5^9*G%6=OJ3Mp{M$bv72?|M|Y+Jjl(!$i)< znG$wgo~oRohLd*1#2Jf=nSTF9Bne|HI%o@GPcO`vRiXUn@S-g5P8yAn7&EGcPwC)e zKcT8t=CPa;(+u~8`!d>)m@beFX%eR@1!$+%i+Gka#(j-HbhK>KG1LEk<$P+U*#xX! zvpb!??G610e>&11!rQ&S&?uJ>+y$n1wk-MdsciwUQ94cZC!Cmqq5uCRkB-CM0As!E zE;oG`dQcZ5$Zna)e}K>^Aet16?bP8&$4JeJH4=OCzC@R=%R0Q;!jzD$6{^53OBcOs zkI|yi!;Kw*FcaHR$wH>8ARE{g1AA1hR~QISYJ4*IXwEZ-Q%v!}7YG|yWZemtz-7cA zaHo3L*b?~SSeY2ECI1-zpSbS4ne%}eX{ni_ToP*VqdKiNZKM=02=Z~J30<)$(Y#1Q zLhTEOc&H+RrPD%Ro*+8%BRY@8$7;Qz>96w38R;z{gwX-kWqq;KPKmF>giEm4i1n8r zi2+2rVM=&#Lk6lkA}9~eW4YUFyr;*ihQ6lQEr_mDbqe4{V~tgCkFcQRx%Om>SUfRg z<~UaUJQNif$vD5s?vLE8l`xz~3bhXp8{kEAcy90Va9_=DLS%GnC5JK`NYa?1kDQtc z7Ng7Hh=xW7)D)HwMN<>ns!b$5|8bjY;a^~st+fj^+LDP+$y7I;WvNbK{)uKF+?7ni zT^oVq9P~(6lC>_D(={d}ioghAvwVrg3+P?{dzuLC^@4xxvHKlGcneMnK+YLD3&OF{ zqOCD0kJc#TiV8SC;=dlX|Nr%ej5g};jJgXI3V|~KdIDMC+bi3+2D(%R za>H4*>_n>(hrzh7X)}NDN}==5Ng`QZxSwIeM#yW{@W^p-o(sc;-a2i zthxnf4>ZH9G3RGL2cU`*+ zU~|6IcA@^~sdDZL#~gK{(57?$l9^>l1=)NQqpbL$(17}Kx-|wPYL~XU%t#@idL7z5 zco}B8hc0&)fa+0MMRqhEa#wH8b_*J?c`Jls34Ot&VuJ!+*U;GWb;=5l!6%3yJ)s6{ zQYj02$ZiHA;{jEk$;vuCrSKMtmz7W=%a0Xg>~bzif~ zJq&;a<~!}_>G<}a|1Qu|)(_Ath%te_sc8#(QZJujH ziTjNS!w6ppXck{?^z}Z|)7%Bk32#|B6VSa@G<${Y^r0TpM62zex%-bx`Om}3X<<=X z7CjSiIFb6i`#RvOFXMmTtkGBnF9Ru z!YRQdhx@$LAfl<)_7Z6GAJNE8>1}2@RgA=ncbEJc-n0H~fVc7R?pZ8Hsy>UFJ-aX2 zbt>sBhD|bc(*+=%-Fv-_c`<2sDYZ`f-AB-;j?mh;TO6sR2&@Va)_tBF8O2%6W07Ug z^XPhKoq>~L{G3F@y98TU7*=&d2W4{;{wydzSY{cW8YE*@=Ae;fI&C37?QW}I`{rSa zgnTTvX-|6oLrbw>b)+(Ii(3bTFo9m*9+>!j_mP`ZzT4WUQgCgbm$tg*G+QFvRUr$P z9EgK)Fp6fS*zA%qovxZ6tBk2qfBm~hn$F9TSY1W6nd|SrXBW7D-W3aQ6txXntq>*r zg6OEYlB=Z{%%JjzAoz&ii14mQbQs)qP-$lUndr(765( z5`Ul&lr1S`=i7J5Q8@23FFrN;%($oB9fa^rxlh`w4THTU7nvnNQ8i;|P&hl2;fG#X zUfmXEoy1nc5k^92u(Xw=EgoM?wYER%E?+&x1VGe2Q0>U9MPNQ@{&__$bO3aAo_PDq({yjRZP8F@q zzSsa2-xX~zq^qNu#0rYN{wz~^@er8tj*agL$4uoImeNNOq=W;xaac-DN!^S0sVPj5 zg!4=>jU4>l*6N@e!Er?Il3*AcT#%%G04kl7`>cH(z>n?7Y(3DM~ zvY%Yz`!S_j`O@9$iAyhet^UA~lm_aQP_ZHY&sf?mG@k&1erYl~)2lZ(h)Do4)ou9@ zNCx$k@M%)vwX>ojqsDoFk}^Fx#hr6}sRPY?Mbm@AoP9y#sd!EG1el}Wl)HF+dXsZoEjvoux-Cnih--CWexj|$qW%x|p5y-^DOEojaJ^wY z3~uu`wIh?_PFQu)Gf8*goa+ce>uU?bKF;{MD?E3Ex0gm?j{u83`VK@3m`*%`I;%v6 z9lC3~v~yKSEP?2V$f-en01Ok73F3s@L=J_QoL~c#_MJ$Ba<%>b(nNzo!>DkWyHhF| zJFB63uLI`T&4DRN${5y-OGjNi5MV?4cd#U6yVwwZ2QAbu-(SVi!MTh%quhGu^RgBY z7vQ=#CNXRG<|y4l)`I3O?_wEHr}9&5kmVdHFh6y))6o0mt|$fmvomC&kMO%+PG%uU zGlwH4epoLDpHb>2SoYX+*=kL0Py4Hn=Xs8U38B{LWr?}6aep_b3S#?Y+|mHT!S(p% zTIhd+8AOGdnUwFyhu8%9=Fo18BO``0h6!Z-@^*Qr#@(iHBp}`8BVh#8v77f4ZrV4` zC**1pz_LRbcEAd%fZA5hIq{(1QvN%B(fiH9eba+!q1|{|SD>kPkR)=!ZA=69(dmDo zKBHP+OZ?BvWH|-}NJ16`v?m*N2ryGai+HSk%z~BQ(pLK-?h3ZHI0g1|D)Hm}31UFl zK=iUC9!qO9l^18`8QUa4_aD{{pY9A(o0wfjhp#3ziw9HBwK+=qxqrs`MSmmmNWhJ9 z2*qhMdV|7icL`@SZbm#xP`@HRR z*?eqI^hE_NYFG&(gR6Ihmwf|-=K#47D`U?oXlxJ3LkxWAfYwivW)WmAb0__jLfhb~rA3o*H)T2^RPylFL{XjWmJw@6~80 z9mWt^e-T)jc0teV?%v9lnJBA~h&Z(!)=vI=41h->zbKzm+fS3PAsceebAB*_ePm&0 zXcRxbdb&bReH(RhPa9Btg^AK0LMyC)Kp%D08}sT1Cr19_Je{CGmx=P|(7sQ2AK8xDH$ zJ`B<`HdutASy)HzJ>af3;VK+d8KoFCU<1?3i4%2*g-|54rur1!k1pG6OU~BeR-zvS znabb=xM7TMPdrd-J7kY?p4=Mjn3&Z`v3oUvEBL{S@W*;V7&jlch$CcMxHjuSI;SCO=@{_LK9i~u6N@J9EtT8WQoMb2`4>7m(hvV%FN3fD{zcJYM(02} z#3Ug7B+wVZff_}K2;c&r+Ate~Jq64P`~(C4S%#nbr`G^k$03BPxy*(Rs-!@8@Eeh_ zx1A4x1a)CeHLX$4|MU;9{`5E6CJLv-AjPYwzo12Aw*1=;#`m z2#cJJz!;1#uC#M<_CdM>o4r^AKr!Fd$2)qF8f>{^5fyHLLkMb&h$lPaAAB%3G3lD; zL}0^#w038shK?)h6Yr!#3G$5m{wMY7x?z;WjGEG!>U=*Vn1~9MN|JnXD$Byl5au=Lw!g-RvQak0xsvvs_#99<>yU{4y`JO}X+r_Ny2i2Q?e&;OJf80KkGm zPp>oxMwA{G#O)w_syK0Pn*j7;3+;JuzcY4iENruN`NV_8r8)ny%uL7>Cr=B=!tkx| zqx}@u+ez>WZ`dlVVe3MVOS)op0%fc|trZa^cU_D9s#V``MgMKn(0_OR2(;t;S(DgX zUP(q?2o8n}LW-7jUY>{>i6!CKg_HJH}A}C|M%C|F=|{cBp5v?-ss!Q zIVYD7b%ZVuFO;1`KC2VA#zoMo1y8Klw(?tkNOQ=+>1fxR2YiRXlo+3@-;*~9$7*%H z@T$*vN(LtBAc}naUgmh?t^v7eZuSl@DVk3l#pl|NIT-7(_dB-Z#<_S27&QkKI~qbb z3cZIw-*LEe59b()MF_@jC1@*}L}vuoa_8sF59B3AJ8S2FqZCNm4*k;_NN2a2)-o)@ z3-VcVQn6|6BW=3ke{E%@gKIs6s(I1L)uQCKnlnB@)U9TwG+lOxVAlwR{ZET7O_0}{ zYMFd*jx$$rKW0GgG@K>h}h zjduEJ$wB~bZ3!|o55gu9mB0j4spsRE{6CUGCO8p-=r6{7{d7e(ny&yO&{9jEmIk;g zRCCgikvCntbMbgM3gn`TRTPGE+*ZrSe86sX>^ZQeFHE>Of8eS|yM%5}jB3Ty0|PTp z3vP~3P=F@wsBb@%273=&*$y zEe&S#US_}paBeMV5-D8#Cb%x;Gnr`hJ7UPfK;JkcJW-ws!m7BYF5}eWD2%4=F(OKC zfgJAQ-#P!#i$L+g2@-tY+dmvZ-*?ae011$5u)2$MpT61CDCJjH9|0Da>87FyY?4?n z;sKvbqCd8w#B$>!OA3Z(-U-O45;W4PV7K1XJm7(JjTA9caRn4eoRv?%)P2@e!sS$Q|l@FqyNqy6zP)+5`3IiVU}<=ufBlD~D64)!55H3Y%_z@GxnUq)45MWn=O`h5{LN6nPcU~mvH zHuKDOait5zMP$+(AtcPz{G5O*zv!f+-=+u478rvIZlaNp(m?$ifn`2~&XUZ_<-J+i zh$&#87gKXxy9 zv-@`YXvBbu>se>;&VD!-?Ei0z*B<9_&mO;angE!kmwd{WW!;zVh>Nmyz384y+iQ^0{jUInyP} z$&vvmoiRYE#JhK-%MtgzvD=JEAA?rV9a7BjaM9|YqF^~4E0JVZ(^DiKBEpPBFTSEY z_rv%NJ|ry=*^J3V-;$0Uc*8i7#QwaMCOT_nGgFdfbpm}e@I9vQqd@f^) zuCVI!K&yIdtyEqb0-89-q~!tLS)70JJbg*JPK#bWQtJZhshXp-jV#7Bf}gIFr~Sgj zR^Y76N&{%P{35hlt+J$h2F@xy3jF{-)dZE$=e^<r-YF(wI|aT~ACB{e!RRwbMvf8p{- zX2yN#cHTq1NZvDUvUtm)aa1tlljDjTDz>}8$NYlkcBsT5P*jfhj5bUVkkUJPRq3P z!s6g@>eMr_Jt0tfi{x)_=dRwO)$-rO)IF!wh&t4XV1Iriauq;EB!7twmNr6XcXi6p zFR-jYu>HSAeqw> zVHVL(vhVDHylhA8YeCZSe>u`ZibzeW ztO-7z`NrfBWAHlwJgD+#@vJG4Jb(ZGo5iO(;OMI9c!i&1ITlm<_E!y^v@@Coe&%(9 zN`GeEZuK)Uz_i7_53t93YXI4WT_4HxU4CqLNn_HnyK@fFzgfU6@Fegk8ulVuYZRd^ z_J?Co3I+Q5HRFltj?%K|0Yns~amCNV319F`gQT7q@f*3Un6>U-FhOo8!!W|$xARjY zY!lt_q%vY)W2PH)fG{BGQYuRaJHFu#cDEZua2QdmeW3}`b#v$wd7|cu@MRR8^sjg| zh}oXLth;>^hOqrQz|#s@%}urz#kfA4>l)rgk=Q5dM*;Sc`ufr2CVJZAkBg>oy6HUY z9vecEn$=PbuR6u>V$b9v?2H~2!)L%M#YhLm&UzlLF_&o!>R5 zoifm-U8s|E(ysPy_2=^8@PW2Ei@i-)PlZ!VC?9QMuFs4T>tanIeEmVVQqOVQ(`WAR z64~m%Va+(%2$>#we;+}P8K>a1v(9I9M~%pFC!M(YW^i$o!#nS39UGdSkb~{w)iZKU zM7pp{<22YA&H@5O?t}!+#P@q(fY>fo8$pJ1a`XB{{bV60(m<`Ko@@`38lx;&z$|ci z?wC7TXd3sO%03#a#N0ekf^#lt*#z ztJ)#@$Zn{cdRr5v;{CDKEH|*fXOr(GUz_U~+lIObU6j%ue1OFWbmv3T+*(=0`FYod z%9dIBrc|L(n9RAf6|%An3~D-lbHZ2|W|o~qn3_cWO-~3M1{QbMrV~$t9jkyYU?WYr zC^LhQtdpV9tzfT#MgGdKxN0OcC7=_ux0)QXzm-oQbV=j8v)i*%b^w_*toZ{{wPBCT z>1y#ktzbI$ca$tGYH`N4P!4%Iku2`)GRGIu{}q-=7_?^kYC`|#-GJM|lTPN(#q}qR zgLpcQONk?W726ravZ2BVM|b}DVk^llTeUt@#;OPJ;AtW!6zw-o1pT$SJd|Azrr`dQTlg{CNZ1KJUj zL7^%Eu=-pLRo*@Y>!pFUQS{k6j>h=4CkfZatl>$g{9i}>2O)@SZ=deZFCEDYG*iJy z4v^e~XS((gz;A9pFM>LXOh3fSpt&bi&8+au2=>a7C_3E_uirIxtUqX;;OtW%A8`Mv zY@W~X26OEyp2rV|K*hJ(GHpFID!gYF3p~sS*?diggZ(K8w7$wL+7aREpxK&U?Dra` zOnjwFjX%p42j1{lkyDV_NMtm1*K7P&DMvJ+><>$rWuctkZptIV-CR*=y_DW)J!!}U z$)Ds%Oa}}ibGy|?+T1{8t!$Z#LtU$CLKh4-^^Y1cLmvq~JIpre&EgDkQ&C#KRsvie zqi8 zAu#v(Clb>V4I-({YLG9hB2%yyB%1~<2I>kQ)P~yC(Xs6PW&%h^(hwo^mr z$o_KY|NBhL7{L$H$$@AhPuaDSYIU`3zSvxZ_{S!;#d_jt7@w1e?ud8)&yWr&A6y02 z%!SBwZ$D2E#tB4wRwZMo5@*LJ0!`wTn7yJ0(Sm=KMs4^|G;~=ha@Y-5VD&Wq%wd z@IX>zHk_q*|7ab8Ur~d<-K%l?YjBr!S^8ANxvW0ziz%V4E^_Quncb%h{vdzuckwkb zu-lj0B~38n*(Hi3H~oyPHv)u@#A&qdYao2^-*1ig6VjsjF9RR{|Hbeu5U5iI zdqgTRA~nl;(F*YDwvQ&2xmk>yXw&Qw9MfEy+J3|3&hag-EUXbIL(gLKe+gdcO3<%Y z#FNS;$y|u+7$dbKRD+3G1y=_!IG8khM>@?ahSNlo^DLA$eIMqM5uPvMs6A^#BuY35 zBn0eAgjScWzn4!r_-m_S%~u%a>TGDpE-ZI_VK~6lk6iv8eL^bKPRaAT{xE>NJSAEd zcc642R>?9*P|(*_B$@405J`0Y?0W-YIc{QMv!) zs_3KlGGK57t)9-P`<3ge@_TJ?fCxz%LfwH{|qHd7=X4;_O%fML`R$^%RpmK+#rj)sSy3$-xRK&9qQE75-RDAQct9W9V#G&TW;XL@1+Aa zImDTQi*jLKrU<1F=h(n%;tO2s1KdImmjITU`V- zF+H(m=6d8JXa5tR3F1nDU@(d~r&&6L&uxtiq#!0UOAR7B#(wV`X!;r(kiwY z$Zlo~)k5d-by_19@_BRMdoN#s)V5Op>k^w~HYep0Yxk423nzOx?rlkJHqS5iVEhKC zFa(^fQ37ub5bf|t7s(n$5+4&aOL}@ccGjkg&`JdDwH8Zrp&ANK4^rUr@d2=S2iT?X zTnj(mq+|5K7iEC#dd~8;lcgohi8&y4_QC_!x8fG;ip4?{CUKWV*;8ls6Riqt`ouy) zSC37I*Y|snnpB$PktrPQPz}T~0L@L#I5%b#{yOWClgcTM(k)dwhl4@7RFOhjx)dmsO2-)JfK* zeid1jx?cBR|Kp1z6RpQtDpx{&^g4a3?;&C?oI(E_suR93YTQ9~@MZbk8epmyR6v(o z%J`ieYgNBp5#4`jush@WXl`iewguj*dKEv#ok{#?cB*)ObC>||a@=&GulTmoj0(~K zAB4(N7&WBrup>v;DL9nM%xr4iUd#XP>JR@kWW3-E@~N*_EQJoo2_LIou{yuq6^urH zY$RwM&QG9HXJ+!Qrp!l#vw3kr4V-O#SZ?rYwS?2gRUf_LhiFyqowG_p6Q2V2H_OZ- zz|CQ@v=oQO4Kw+MWJ;lB{r7jbVXP4d#eAQN*6*;np%8r($R?c8@F&k9Ub)e$9N9E~ zDDNBFby5~Lfmx~2Q8=Br^r_I$K{nJKflfnYa78ORtZ8;9HPOf5-S>n~!x$=M#uWck zaL@F$<)8Ol3UwgUJ1QR=X!fA5iJBZK{;o{r3%^7D$>0zPX}Sj(+d1c;OC8~Cb$mNY(TjE$l@u5w%%#c*tzW; zJIO-*1Fs|SnCt9D>hy(aiPajeA5^4+3vWK2+-i^A9O0~Y3v$h{a!0_eGz3T8(&6GP(Czez4rJY^QasX8J~jS$N*nd)+XB6IdX5|-p196-&IkY= z?VM;KN-owy{kkpru~`fzK1?s7k%I_Z#vm!=Cnq*&E?~|wpgP7U$4+OBm~fs59mTkW zdpq;G1{dmt$hroczzrhr8`wi(5c|Rmw&qY_+JuUP{viH-tI8|MT(F%w@O5dQ7Sbam zj+W7s;={$K8NhZ1_qIG@X3ai;Hm2U;O6Nu)L-sxzG#*@nR>n~oX+3rq?RPOrN`^Mn z0&5na$l`)8K?uVO1z6C3j+gy0inZLLp%<04Xz*?H_vNUfOeeW0oz6e!2P@0mkK(W$ z!Xs!M@Aq(SJuX{aafox>^$8#%i|pe22M@aph!r9$8Om%7^*|S!I|t73Mqk34)>Y3- zR@nFFFh&(D6Ygv_$$Ak-pjqU&8`RW<1oVt1&xBzsKo3@UW0CVrt`ytYO#+nI^!u~H zq&z4PMroyv3fX?}o$484{%+4$oO1K6uKDyYFn*!-ANER6G>;Aey*NyoK=LovW5sZH zstNz~)V&3#3QQDb9}F67;%s>m7GEzd$lo+;qrcfp*S%xWr9Gfvw8I@IbeS>RLETvW<>v@z*c_X1sP=IFji9Jy zY^tGKxj08Lzo}uT7bwV?b-Mf=4A;mCube8VD1O5I_{n33*{*HbK{1?XY1kp{F)ajX5Vy;w z)(10?%;|9cz6NX;!T}{B82U5kYJtszwpG=2kv(tL<+A|D7g$sF9j@ImqUW5;q%d>b zuLNbBBZ!zzwM}5+h=a%iR%0BBnjrV_V*3ojtAv`&lsqJVid;)#nCNnU9kG!vuEfcUBRKYOElD@J!=A)Shy$!Rz z_CQhO_teGa@rl!cP}ZGM|A`lps=~hH=PdmyNj;5Mm@tx6#71JhR`~8;Mq21h=j^7svTXEUFI|4_1&&fXi*en>M*m8Cx z>%>h82}Ys*p)E3}bG=QrTv87y)zk^-1fvvL$qL-=XNZ-M7$deS*eH3EDF8T%JZ9^O z<|{ZUDvIN}``_T#pC=GST1L5vrGVS2+Rm+4g=0UyTmA(VP#GFGsTm9a;^Lp8G!t7; zqE|`Hc88uz^;k?CO~wP>nQHG3{JeQDr{}g-S?=d$%5Gw|yF6ujZCJP%ko8dB{6&5c zpl21o+=%Ptz5@sF0>q9(66J*m{`K4XO%MX*pmQY#$PhXx$^j(}pgj#qC`MwFa562! zOu2Tgx@n(wX>B=Z%=J%W2rhn8_NL=ByB`caJvIaX_p1dYg)wY+apEn?H?w4d&%=N5Mx?AQOa@ZjB#MS8-&%gy`On(WemfaD*WF?QC9u1%jKU5PyDLp8@| zI&i63GXO(CyuXPm4`NRe-~av8v>d5uP>C39ho_@T%bYxvwc??q>dx0YPH{F;mZbMS z!tx5yig%0FPR1l&E#R0V{rdbW=TIjF-5X-k0OTVGzRkb@N*}WjnoOq6&wmWh0V)Y= z3Kd(doEoxyr@`Pf4tV8Ik2L{Ys-o&jlC30wZ9^p%&CbEmaBcw%FIG(`qh7;Yb=);K z^J|0$=+KyaTl8x3Mjp1V{6}Z52MQ$d#MX=CL{7-w7M!HNWAi&tCj^R~dErIg{YpxN z-7V;B1gVCy&EN<^X@#{LBSAGVPqNb6Ta{e*7v_<8H?o(wURpKY_O})P+R3ymPOsSc zzN@oyeBSY9nV1KIROehY=09?)=u=KWc6~SbJTbwfQ0?-JCOb`ZxyCA21ypqG@)Dx{ ze7yshEd2pOs&XXR2S}JNhx!ZHhHf%Q5bsB8RTSAG8Oq$YEM&D=R%R`+i2M#kEvMxl zHwOI}^v3PKm()9^(#`+?4C|<-V{$XaQ^HC$#$jye3wE`6uVyE}^rUYkQ%3uHq(O!Z zwq{Tze!U?(m*5%w2I#3Bz$&Wwl%9Q0Zi(J0dLKC*l1A;wtO{@(;@$bQ0eaP?$dHvS z>i<6mRmnK;d}=5A$77sj35NFOgVwiXLW1b}rLN7WmK5RWJ9c*6CghDxKUUrO&PB9V z%AT(mcT64oJMP$cvr7E9JtFZlXe;xJFghDI9dnT1iRr9b*JkW-3b|e|VB>kQP)#=$ zi%0X8RMHA40kZPpY2<(f^4Kfq+?V2FFJ`s%4U0-o>NYJqyVJ)xCg}bZNbsVlduQIv z9ioA}rD!x)|Bp1DydofqR*4&RmvxED{m^M5oZ0tD+(Gt0?Jg+W$huk!^f2)15c*zf zx{;a2EHMDh)YwbX%3X^byd#FJHq<;@*)QS;b}Y1?Ey4q{!TM2X+CY!t-+RO*!vzz5 z0@k0IB>BsblZT4z)tBF}<*T5C{cIbtKyamblEQ@nu^Dl#0tF0;5W4s$L8&!?Am6j{ zq%|QB+C<->%x{&y`nK{2hQVlLdO%1e-zs2?THtdv!o4Sc!3VT>6DYcJvhMZT30wUy zha}CWJr@U&#MtAR;;x0<{h=UlNQP}iKLc_=d++lR7DUYGJL(H%W%xt5x<`HJRYA2p8R!&p5p)F7fbf)1qUSKsb(7d;iZCt+khCC>4i%X3L9dG3 zb6g{&zv=61qhai7Qa|*=#%KWJGWtT)cnVI4eh-=)`R;~Bz(x?}9me)=miL=av?x6!r4w!{67X(yoGz_&l!tC0*yhQ2qMpuzx&)eY#5 zBHzcat9u+V%n-RChcmcUf{+7aC``UyM*(Nx)c=(zXFRfETl_q1+&W;Lrb%+GGC3oH< z#c|AFX2kdO*H5|bE4bL!^&4h0R3illw0mj)H%@6l4jF4R0F4U`yIBqt1UOv{PH4`o z9dqV(6Q5sGqmJ&zN0OA)at%yEwQH107mURD$rLNza%qN7`^YX^J=_-u;wu_I23{EA z{T7p(Zm7jG=)=QCZLT3ZAY8h7{`L=#wS5_pZhY#)?(DVqe3nhY^&L?y2Q17~As_mG z3udCT`E)1)LKlc{tiem<)KT7PrgtVf^8QYpK||TNY|;eP`=eOu7&mD)L>ERJe3%wl z8?t7!{qH7t|CykXK^l4_DOX9BF*p;!Dx0iUw(dZY4MnO~^qWoJNb>nVI{Nj`h4NDs z6czvSpSw}tS*?dh2#Z8TyL^fn^W?9QO3W=b_D3**(0ijrRewaFX$lnA=CBa+@ zv1P26AJ%WLt1Dn=4I*wCJeIqV^5+4;kpHWI!ZOcS|9QK8zF-m{2TMF}m6sD9>ZKV} zLeHW#W@i7P%$;0%R$>uu^tbYPgNW?JvR7mk=8Jkk5_W|pQD(j#adhrT@S6W}G%qFdlY1nJp!J^95Q=u`tZU2^-|GI~=k$7rL}dS$7?E zS?HtmNVOWXsGbSIg&=A`&Tot8;acq#Pn5Whx|_ni0GSUtyCPcWCMqiJ10vzU>9ZQ? zY+FhDd?wvPT3**0t%aS_3&cjMMjN)xwyZK`@=SK)$wr5o5I2poY`6Q3oTjDOTE z&Zi~}i_h4<`R+r3sLnItqU3&8J5NW`Nn8 z(K^BeSw|TP{iQi5r1QJ;J83y>J2|^H3^P>_`U`L@H}O9D76xR);NsbBVSa#^?Bfkf zv{x2~HCPCG%if4r;y{AucbvM*71ApFMUcFpo}$}p<9VokWn^7VV7AVZ0ER0@KPD`B ztlh(x7;3D16HA-e6n()@Xl#bdxmNuj_Iug!+8qt6^j^*jP6Ob_lu-6qDK7GY`Xzcq zB;Wl|!pClpi(^GVdC*j6kbhbyc2>@D0U-E7-Vf@HlB_5G&(nH#yiQ3eTjPvKv}F*s zV0`Ud1e(aFj0v>0EbFzb1%2|W5G9c>)kVmeqz~3*b zMclD#Xrgb`nN>$xNt4VcRvo1bhck3o3HzUhX<|@!O4@PkW9IZKiwxuHOpRTlagQI) zfSF-WwT@8WMTSsLjqPaAk)zF8#)G-Pm zE-M;%j&j}SI>&bpX#=F|2o?o?noF>+4eb8>r|$UiaQXM?N$N8=dHK|Kk z&{@J7zr^wh=tFmx5tqMIXJY2t-vc7!3iJn*Lv4cLK(Bn1@ctpAA_HpZLtv&ol@5h< zrxpbC{{S?)Fk@T3Ds*haJ(q@1TT&7{(2CEHc$IvtrTX=s3jjrPx1++4rCX=7r?iN* zgMRrZ)&S|311hC0tkll1-x+#AWE{e!Fbx&XxRW$vV16vPPw%ZQ6{x4UZ1z1BPP#EOhf+@za& z+}$x!bwZNrOSs%x@bV(&fz^Kzii0mCSD+M)MqrYNo)YksN^IA;T8Zy6UCvde783k##-8T@Gx+OBh@5U4UzrdXaq@UZW}v< zI0ENyMOp$%-<+NAu1}a#dafhU1+D+{a}uh7ZkwU;WT)^#mPq=hfOIYtm&5%YgEc+& zQBFWfiUrnQ`O#jj%oiB9I>>MKq4?J@O})uuiw}kImMc-fBU>_R`5!0q*z2C$VVv8VT^Fnu@B=hNb<$;i{HZq?-(cw zyu!4S+L^k#*BTbD6$@rGMUkHVF65~Yv8L*j*s1l~h4@s;8%yT9A=f(_Af&49&;jRM zh%9_{X9#CdH`PCUoA`ev&XG_cWALM`d;Ys+sblwYv z*AfE&*q&?Z!anff^tBovU0YtBCc3LHmuFi#t5>puFfo{gZ)QH{&&B zBleOLbuX89@Okf7WXlu!Lh6Qtr0+o#PLhM&;Uke$5u9maKv5JmqB8lH@;*zKsVqJ} zhjZ7>PtZ-&8}0_7XJBD$nMlNw(0)M7Hitp=2CY(O>z!}B@~OVuwWV9Cgi`&9+*Xgju@piS_fRSj7&O_u{ZpA)>a)6k{3r% zA2ww3Yv!6Cd)RtiR0Q{ZWT{2PnR(ThCBa@D?YMyU{s;g5PFw{lNM^KmJ<2L_-#_qc zqGJ$A(e^;UYskD+dvetxDhLY+&bBpkDr z?w)enKSZ$e0==jU=e|%a)4mQn0UqQx-b4Bzdp&rKN6bmvaZ{*BFmVJ=+l%42tn5j5Q_LeC>)TqQz z8q$`w3KdLnvY2;0W6jTB@0}go)bvh;DvexQc9hn{z`q?YSyxfSTYlFhwxY%bNB{gj z6%gJ%ouo=clYyb!eCGts&|}xwC1L=plo_*_Vr`8~%;9qb&!{?!)QK^z{~S@l7c?iH z4#&QSy&0?>K#NBf=M6KZ={fa=#jX-GI}5o^2-lEc_u+l<=X@MSgIP?B`e2Py41{Mp zBa)T^#YCvWH!46?f`=wM70#f-rcfSTZdmB21W(IZoOxd0eQ-sstFwZPulyq|Imv|a z9E_s0GX-@amR&>7!ux;ajLlTFx9g3^u&_2msHW-$v(Vr1e>W&(Q@2$U8n&-0J+%G4 ztIbYtYo&6aslmmNgT!=(j=|SnT(_ut-l4-DPY03M36+Jbs`B zenKtW4zC-K6LSTIJd(0z1S06by1?mXC=_u7=OgzQb`md+(s2k}enERE zQ^9Nzv-RCH#nM-7I5_DRdzVb&$hpB41VNx|pUtoR^io~MwWIcTNU6iEUkz|7x4Tv` zM4tK3(L%&o^1+8cY>0Sp_(@zbGRIQGDKyMA29lBVlIolD}df43gDzMqt~WM(58A1(RI& z6!Dz{m8Q0F2`b;K0OTNQMFaA+K)&&{y|lMrcEjb?67Rr=z?oW~!xVqu9#Fi;67@wO zYoXk%J*Dmv;J zV?WZvc+<;YgHsvP%6HfN&md`WChSnZqJ+bP+Ma{L(_k3@YX!zi4ga{TM!;H&?uI^R zo^ZChxiBpEJTc{V>22($?@Aw21UQ!N!UhYnI@IXp;%Insm!;g_hM|q6ok%J=AyW$N zeLM&fK{L9ivu?%b2azU?n_PRHFQEfJc90dO{}p#%(mV7y%a5LjG>N}nm$ss;N-^}g zWRcwBVu%1UHs``0>Ixf^%x-W4&3atfr_YTQv2K)z&)XMR>e|W~xCsz3RnDN+yq?qGnq2 zmSyd&s5GMAfYzO_qFdykVAJvlm-183V$_5)-u8u4x?Ovz;fAwN@LsNS zk|D&`t2*@zXgS%mS?_UR6z2?ZY5XV7Gd@W=PLtv*d{inZdt;t2jiV`cKxMhOZ`-_C zWF$J%+(_0fRH@w`@77{P#I+Xdyt(z-HBb%At)c7hL((A4L*fwxvyMbnU-vnQ80K5x zOy7wl#$MF@GiR@u5zcEb=6v=2e-?ih-eqXku^4QfeFc|()G=BY&omiFB(Ae5zNg-+ zt+YJ+@;KrUZ#+IZgK^tiodz>r6YDD2z?nT7?p#41$$&Q3i}h zdC5$AG;D~9HJ-IUcq*I0q*KV()Su(|nLx6bjR<(9g8+2T*P+G9rsXW28%p5O0vjlVDTh|m*tYl- z@pczC7$Ey<(^oc{RdL6j?m_oask~np4G2ms-L2qH!)aN?ep6#7g+#=p>}yrsx(+jn z*aZ}p4CY*Kj+_t+o%X%?2n{ku4M%h~UaCQsp|9-4&} z9wq*|h)+LMR3ByHKLysUWT$ASJOye#2R!f|Q2x3Nsr%;||B&Ctv|%~#TQ6bx=z9zI zz7(=r=mp8WI|G;@X6NUf=+B~&%(k_O3~h&9SH>58G%-eKimJFORYJ1zhcuQc9Xl^} z-K%X8w&PO-xEB7NqN(d_u-}l^0Savf#fr&6o1xv>X+6JOQLJbPGwj_tb#jj6Xr_p` zZn|X)JYq66wC_=5JTGk@xR4RME`e$WMN3#RO$(G7hZa>+(L9Blm!czD zBVlRLT6y{UC`iKHdPp%7{Q5aRvvxNj`lCBcT$nWrzp&=|!e=<2-pr<_7?xo)j>y2W|32^{>?>wv0n8sak;g==O@BO&hcFi0F6 z!YRcdq-R}zd`DptSxwNtt2%jzB;ojxPv9D;qc6LL_6|GTRkvynOp)CBC#~}K-6;ck#Uq@6R(04{#ACv> zbpxi2O9`zSHPg5)Ewdt^93N8EZJKMC5t6EI=7X=ns>cLA>jG6gi8@)+bqc0l8>tsL zjbEHR&j8~(;_pcD{XQh6IvU?q$#3Vy+KKV@LvV81Jh++ERCdCXX4MDNF))6j(z?vJnU3&Hn0#X9eGg!8o>;3zz@A>YVQZcTXUy1EIc#&$6P*o?_ zdnv5$gBYhelQ!_@$D8i&!Xo!(aIk!sW8}z$;1RUJPAWY7N8ksrABWZJ%JJ+3#=cg%@%Qk*A&4Q=F%;xy`980Z0X~LqQ`2px+JUw4881{bt zVvy!Z3PN?w6n*e?`!l|NhI_M{ zn5LvQNa{=c?8cvo5wvJe&i*sbY?bRn(x#8=lMl@9?<18}`ZaKWw7_)!#K2!cLH3Ic zcW{o3%?d=NPq$cPIlvN!sQqfa+$vFcD2Ce;uF@E@7FaFTLReURbV%{=B7RkFp*@qJ zIy(^s&QH}YUQ=t7m(Cq1-qX=3Tr(uO-qnDr_=@Z->5{k)wBhZe|MV;3Q!kJ>Y&j8G zp1TA1>sGRasdZf1jmyw-vc+ubz|9_Lp82&k@sL? zvOXEP`3blX1H48Ovw`Ox{9}ieSq@XV|8!qxfhJ~2ZQh}e8|?4(3p@DmBAV zgUX6?3H8MC{cDxuCrz5CK9l||trW9nySy~qA<@!3U{<^4PW9TM)Va<6a84~Li9r$8 zO>+c!Ee*2Q`6k>eZ?yMz?UTiv^5javkB_7ZMp@Bfu%H7#2*ufRe&^PjcZwzT0B>O8 zIIo>AEu&TlTx-|`a2-BK4ubW_Z%`)bWd?mXt_R8^F=0)li;g)Qp3rl`agWgMG6gN+ zu2OT&OJe!g<*|MYQ1&UWv!mNCG_c6WA|W6K04Btl{^}QA0p@|Z zhu=K7Zd2m%9yve4u~yXB}xzt)#8>{H6^RuoE7OorvfV-WHX8Zr=$DMOEV6Mj&5s;8ir{q-KB ziV2&(v4qk{^Ws8qTYS{eq%^kt=A(gh7$?3{XizE?QbDxIr<@b+SfHe8sC(=M>x(Li z_*}l`xkz5c(8O(@q(74m8ie_VUwCyk?hXI-pc5-;EV<3M1B8+n+%&0}=>hLU)EAjO z*hzf-(=PnW(sD>DH06=j#o+U>cQe;P7%mrQ8RO&C(hoyJn7ki-_(OO5>y7SLm`r+y zKzSMui$@&cdPB{;)BK0N7wZ9l99L1ms&qeAAN-ROt9E~}D~1*}DX|fuGRTOyt>7sk zi;N)`ZvC@7kX@9(9h@ot$3mllPHYER@?mYkG*|JWdewF%iwi>uaK;!4WsO1f@A4%6 zu%87`J`KNOw1OgOQAmZ@WGFkbt~3fffy&kN`2A@{{B1S>POQqG({;agFd~>xcA@bVx$B2Rq?0FcLB|jqa0TBHx7wH%{(&E0#OlQU(qx{jlt1D!TZ`J7N?GJ3pgq%}mRN0xF{tWqPw zMyo6iX=XCbi6)%tZ*eF9oAGmA^$(hlO$ALK1GH^`A#9DM#-NkW>UADZKG~+D$1YKR z_#c-rxj5|a_HON$VB{ zA1Pdq7~c2%#PqSqB95zn#h~S^%UCp5pCt0!{PElbN@Hm%ENX=*o*@#gYFJMxo|@|5 zi+YTs?nX7Co!kHa?tN46lg^8oya%RMWRQ{$m(YGQWVzfmqB#2Bt#Sse8tnJjBwUpJkuFq(H9BOD7)O2Zzu;P7dX=qCi*FyW-lJ zcjIg&RmB(%Mh*-jUbnFZku6)RT0I)oKqu{T)mA`?L16Y;C#_89 zzVHw3>w@D9ukSly_PbKTHw&u-n)WxvYm+|@fsT51;f=$*okDFC*V;{EEi`r`e7&>% zE)|1$7OUcNWHp`cudE|@^%$kghH|tUBQz_|8sR!NzHnahm0r;lJ2uXNNy2oS01ja zVKL6h9{2GMS2-JorVh?J@3^t*_hB2bk9NB6MyC8Da%d}9RpM>9+-khn?Ph&BMtJ!) zILwztf@vk^Mpky>2wAQiD55Mm#DvGOA>c9ow;q{z6@gGjOTpyX9FRj07pMRr-zU+E zhAg*4`+yQ)4&BDpc9EEZv|UL_$5f4Xc7jNP)|@Z^k1nJjz>VYpigL_W+Bp|NSO?z0GW`3=|MM;q4s4IPHNY9pPv+aEH&C zrsQiVfQ(~;SMba6)IX(Hcl#B8uD!<50M3CC zM^=Z7A@ez;KxppXbT=rJH#cOh#yhLZx0z8vzPx53as8bifuH}!JALF+0S)&lv`MEm z8#T1^4z?h48+kfi>JkWN2P$!Zcs`V{+5&5=X~3cw+?KwRo?=4WD#8qRpiU%(-7Chp zZz7PF-_y(ewd!{|7z#ev@r)-d4-7nx*%R_2oSay^9kziWGh&hFb`%>wHxw~Ev-Mwl zF@P(I2U(NFi9iNX42a@~-?&tGz#Q@VAbgcnN_qCpwTEGQy=DhwmF>W4rW_pub{gOk zsi7^@58$ov96#h$o~ZqTJXv! zvY7WE%s>&kB%4E<9xL+S=!T*7F3*bC)L~!ZCdTON;fg&_YWc;tY1HFnr5L$ok^w^<)O;=pifYOVEPzYZ_|GAFYb z)FFZ0{%0%^gRv(s?Dr^-H>B;-)Ta$3UrDsSp(cb$81u8WY0~t|89wI`Do*7M)$!E} z_O}j=Udr zU#Ms9f@Xi?sD>F7iPuhHE+sv&b}kxoHcCJHKLJmPR(Yp5yiJ%*bgEf*dT;xnC8$_# zx9HWQyCUlHRP66lqf-4^QT$U`smC~smD!gS2>YEcqSWa}_f#+w!hJ6lY-`y$NM8l)M`Ab#?Z=OVm>@f>Vnk>(IqN( zr=1X6KK*`KZkjhCWU5(OBk1&!oBw%Ktw1nMBqHUXT!up%QhITL#~H;${@9+N4?3`* zzo0}#|1PanV{MeQyv%=UQsv3(_Mx`rvrE-4p+ziW7ImgyY!!nQ>Y46q$Nzc7hV{`!wD%7}sBCX#WvQc{bk zH7d=JD!k{8olM)6eu993&E?!66u2SCaZHeLie`dvN8r4vnu|vNpIaoP$>kJ#%<<02 z)qB2azzeISUn~iCLXe;)^~0Nz{MY1A-!j~IwIGHoIR`Mjzis`q zc4r;e1u|0`4wk29)dqvyf(RL2TLPwF01s&SwJED7sS$7jDUSBP71nN- zI>s?etkN0uT)@*#AOHW{{p=I}*k@&t*NnF^6@PprKzwnmNAmhD+Dzw4WuZZDi=n#Z z?mI~|6xD;nw>Oz35~_{ckz|e5aV}{|7Z-Sc9lo>~6-`C3B8l}V0TQ7q#fDtW*UF&; ziLvbM!(~L`@e86(6nA6KOT`m0D&OLGx$ziSp6^Rr2{hHB5ZB>Ui(2*^2fH6?6R1~& z0JP~aNOmMAu%IJ`ZXEqn?II6igH^Wkw{cpX@)pAa73T_Gq#^4@24 z1O&|*)uuG{tg6RVTm3hH-BXYbHRsm8q`YJjPwu@$ya6a&D6p~quu2u_Y-~AJ6ydJ8 zgT*;kA7;H6z&{Vn2;=O3|NT8BwUdzlAOG*W?qDLNRh z=?D5EHg<6<=88FWW7nR~`6wS_-`Ly!TjjKGKa}XjM$0#U<0yR%QrrVsHhFw2e>Q^h zFQfDpct#@A81GF&t%lL|y(Yu?DBogyjFYZBR{K`q0GY+#$BKc?PK zRii0U;{A9MqE;-sMX^oRsso~QR0kO40Hv0 z3)%jIx!eSp(iM;OkfXNZ=uXRX`(jROe=++yiojuaGQQfA-7FP{+h+AECcAE2Ke|v# zU3L}7>5Bw}W5ac8mgfFo9XHw~t0F+goxjh3=9JNM7Cvs5%y`_;9D)blb``kKs&}|X zl4XHEX&V9ZC7Tln$Z)T?)TNS~{>2>5DoX^7kDROnxG9-Em#-fd3syQ?l%LLYAW^(oCjnkgiku9B z4Fvko&xv|?tcZ9bhh(qT8zDc5&R>%-hQ1vxOU)t}XA6pzRN2#Z$7F^yXR{d^)R^+G z>>blr5bSK9H%fO-)12P4gPgyv{KT#nv+GxobwkzkLpi9tc;@{r5cBGjNr0_yAMrPa zomS+A(~zW&MEOC-M}e!U1wf z<#jT^Pc?i2rn?LCVcsY6l{vE#iuQm&&!kLlz;!S_#orMvfq*uliZ|e8Y96_=P!WHp zip}R)N<3RZmmskNJkB5al^N&`xb=hLJm;mKQ(VDil#~jY&o5!hhwRBL4dMdSeSPN& z=7ZA*3ZuQ%^_n}Y%IfHBc888w)U|`ky<1@qV$6yGTtrzYx2q*2>jI}0bDae1N+rcs zZ^^Jpok?G(0Z=?RkWoy_#Z-t`d&j z6KVYb2F6jP*0A@V6#uZkZSD0a(uW8Gzzg3PfAb5FTn|r6OpSj3Sb^A|H{Pm2C;=iL zl*dh3=o4EWpBF}{-J;+oQVRpTr&s3dFJ*l#800N(0qQCe6_DbXK|{N8)g;KK>9+4h zwm61?)b6!V_(Vj$P;OLr6H(U7Jnl{osac?FlZJnHv0WBMte$M}lqRY%%6It+oXrv0 zc6LolP*B%$faN~jhJ%`AGJ)1tb{D_EDG}r-5(55`pyeans*>eVxU!zI)kD_-PO4U9 zDgj5F7Lpb|R1mJl{FF_%XGZLlFEPZ1BI~qCdpz95QvjbNB43Hj*fb;h8YfV6mEK4t zaUJVj8qG_v#L(8+eKxAY_|U#oBs81)##-$nIP0UNtpmeEB#cU1Sz>G2CYP!;Swhr6 zE@{twf)xervQw*LOc}hQ2!&(qKe#3oQDhY{}3F!)@r<|(~)iBUDxC_ zSu*<$->DhTt$J9{ky?katm9v$Y(?d*>F_zk+t6rY{KwseJRZQEWs}y|hM)JcCd(Dy z!q$ImqeWAXsv6+Zq>8%jgbECn<86Tw!YtCE3c%kR=$2V*f!^xCN~rRUW&gud1dc?H zjp0Eoldrf=0KOa+8s;q4YuQRbzffhQ+77wI-iP_%xQ2ip1Q>LGR81Ma7h8Q#NN(SQRfB?qU- z@dt1lHohw3-}&&c2lnHz+I=tBwdsPFvqGePb;4{sGJvfLzLQEt)kJeJlP%axZn&w;NZvY*FJa zKNy%4PY26!u3l`)#L8369p;7-d7E4FJUKZN&oG z4n9y6d|QL$!*-+R6DL1;r$0o!9e|2NG#n8WY6huZvSuObc=4=7OH)^LIYLM zr4ju19iZC9`|`*yuVB<}hvbS1HB7l276Pf3F0&)G*{@)MpY3+tIn)wxI0w`o9cBtA zzF_RJAFwwP^0Z0Qz1j-U3r9lr=9nPi5O!Kh-0QjG(DcGAbgWQ5Z9#f$FOdH8^P?r^ z;^H(94VQo!j2Onbv2kP@)vi7OPiQDH+guV9_&)R?y0QnBwbV$~7Dnmh3%NJJn02y> zkL+$Zf8w)Viua|;tDfB@kUu;rsy+QG|S%1!_@N+~gU zI9?PjcyKr(7;_vS(zq(&V}IrE7<>>9%&~yz`j!@oN6gK29d@H4LJmtdOhKt$H`0-1 z4T6G~$t3)qmNm96)@4$b$4_ZsXpwpdrEYvMM?A`Ps)o!QQZ$Gx*qs|=M$g5JMy68P zdq?j+ZiBqx#tn7ozr2f6+Y)0)!ZdegU(cLrtJji7*#uqfQ2Am zn8T$v5yct!Gn&b4hDyBz3ACh1Uis5+_;FODxvaRkh^wz!2w9^byNT|jj3%Bpr#~D$ zg=;k7gjAVJ+W&xHVww|w@;qfBBtl~>%dE2G7J?B0Xuqq;HHHdg1W#0YEjlFNGot}^X!`WU{DJr#%Q9D|OW!NXQp2T#V4dMUa&!5(k7*(0DX!r>{y2Y`D#8zW_X&wbfa0~Z(A z%|C*0`N3_`yGXIuJn8K_tJMg9b*+L@0d3YS(GyjIS*(qvqSI);T6Sd^GAj}kn+gNE zCYs-$R-aozPX?AKhIK)H`|C+4iGsUi5V>RDfrmgXsH?yO!`JXdjZbV@x2rI3IjqEB zsV^H`hNkw^0Fn@-4bJC&Q`&mY(_-?_W;W6gi&WAgz(EX03)}tOhc*5a_-+=SwnCu_!=qo3_tT6tmM; zRvzTQ;ELw=i3g$9#u=NEG(OEFuSbiX8rZxsKEGx?e)+78ePcv8>XDs7HPD7yR=f;p z^bTcKbC}dAeCLH^Mxt6x7~+C&A=Y5>1ivG#Ee9! zQ`yEpW;jl6R-i6B<6vWff}=Cx4>l}?p>?NTx?{qQYJAuUXGvQpuf| zPEccPnt~HFXHXulo7Wefwh_c%*Lv&ZAIrC)Ghj7-U=3sv;E~fKL=BK58}I#hbq)0P zcK321H>db;bvlOFB;ZOMp@;=-2{C94+^I}fkmVPMx|`i#ICT){kxMJsynv%TJe!1^ zAK1F^{3-L|{4e3IL}V7en*h&HfBeR=;#N?tRDuQ+=&Im{Dle@N_+bfxtC;a-;5D}GcE?2jibZfQ z4_Vnh!!KgOm*)TO*~zE*y^XaTZbzY@mZaTzG9#EY}=3eIfA#p&Y zN(K&y5e|k&`0%pfXsR>01u*Z!G$5VOYvZ`>*KBEfttu*O^EbK=Qaswt^=e(JMk6;Z zwb#g06(OA8VZ_gyQW&-pzJO)bOxxMfBs0ozw$Fbvm}k!}C)nwd5WSu^E2^);ANOvb zfLbB%s31ZP8G}&+l?y5=&9z7u2=SDimV)M0PySl(W(Z-M`_@3s#y<5)!oM5a5d7mD zYvQx!*Vr7y3kL)D3BqcL)!dhQz*8(|v&_a1kygGZS%H0-|4h81V)GagrA~B6Pr3e<$VlGS8HmnP;_(Z3kY!?3Oocr~m((`{C5#uk+mICXp5w$jn&)QUa`xKbf{rZc4P^vL{hpqJ%5X|>MflzBhBLq=_hJhS(pZ@lu z7q``iKy=)EG*&kc^DolJzg63v!_TG(k3rE^o+A9zUB5^ddRqB_aaM6~WI96T!H2uc z3P=P@Pf^NeiIN5#NDWKmnHzI1p6?eI?+8Oc0E06 zo+!lr!3cXp&cMvy~a=7Jt=a#z8x#aS44KJbulP3)AVJ2n6+^$Q)n& zLC33Ccp&=5CrC<&XgM;25e!027&%bsvI+hsm^(bfy)4iI`m+P-#kPjXOV+AP*mgkW zfOR+}He~OAUC5w363IL17nixstj97hz-{vX_BX`Pta7hGDs}is843IMx_O-2X%a*| zkz*=T*09@^3y~rC@0KC{i|&t z;EnnstRGWDqssg|s?Vtv93=#>d&tZl?X25%iRSdBEucAZe>3BRv)0>qj&0xrlXvm# z1y|}H+3aMPzc4=9cBgE0pZ9ekCrJq>h@$e)P*ny5Fl5&{uJUb(LvAEfUifIN=>z>F zvlTcy%Z5Oc>JLv~Y@?plMq<2S9$RlGR%dX}l~tT0bCH$R>D98`g{uYGGEqewJMObU z1Jk)%B%jxQ4jN=ADxh3g#B~GIY5_yV>ON{{^`2;~YDZiqU9Jv_L%6l4LdO0(Nld@e zsW_oz-Fs1I$h4N7lNOqHg4=apc)<=~X}{$tEBMi&wiWXF@_uN3*M9k59eqUGK!P=p zP%Q*J=cG!8?t9YeX5%%qvR3BUEr11V$dz$QguT@F@gf=AL{QUr$A-q>!=OdS7#R*iPQFvtzR-NKb8YS3=rbJ2p$?dLX^AJl zGU(82hu6Z)_jXa50|JPdMn@WpN62ViNk1-jJWC&|br&;)G-BN`%QJv!0J zX3pPzZOjq0!Rqoz7Yv5Jf?9bkh$cIN|7Cu;C^X`qL=XLcf@OUi{>h<)BR{PwHia-Q`3*qgDWQjSqDee&I|oH@(iS`JOebwi~_$2kU{w z1z)Mil$&8;e(>x4p2|D_AT>w%j-#NAtOH`w2<tfNe3pZ z;C&{dH=MVjU#CUNxmn|`Ux1`}?$36@FZic?GV=J2;-UQH8b z*LfbSG?TWkdI;)@RlnwcNKu*OLyZ!F2@yd^85m#YEAmCA3yXni$qdN1I??s2sZ4i}CHegTk&T)u8pd|JbIB&lW_rn-!?})VrC0tKk4!PCq~nq>KPd&QMh? z05Z#*+K7(*2h9;dk}KP5F6%^};cjga|6>4bV^Jc4mTS$!OJi48aJssNCF}!&kRA=V zDdI4iZn^S}dQ8qiHBKT8Vhet?KkjaYHl}rvJ&MX=dUx$@N7hgh#7#MA38t;-T^^@N z87MbaQ!X*S;lbu&*3ufy?c-ceY*`GWPMf1gad!B&|6Ww<-E5h&(C^sU9WxGqMVN=M zMEt$6Chw@hdA7Oae>mT;*sp6&6YZ z9y?_$gsJ92Nj`w41w$H`k9eZJq!@3y(D?mWUGLO6V9KS;jy;W7{t6L8N5$Su)^A#( zwi`-Xno9$i{Vv}n_{$@nwn=GFux4id5rCl3(m5O8srpemk9R~?!@%;-3Y8N1`qwY} zf=#5m{@py3zlZYDh>7XKv72WRJg4;G`ZBS3wyp3j6YrZ~~raa}hsYq$o<^D~M%1(&iSWow8sBngxSF!kF&j4c$#n_N_u@5~1 zvmN|Y-Lip264b|7MzXNcjkPK^C@`oU@G!UIcVA!w-}@r!Hu_O?07w*cNJ52wlX`t% zp^a}ARZrFBBptpry5Bltl|ev3^sc=C%^!Xci|emr>!_g=LkIFLPl*|`{aw1io%JzH z1rGbv)Qe-Sh*$()auIKI>1TGCn>L`>;;ZqeJBhOiAXTW7Vurwq`h9C z8L$zf;r<05U?|o!EsG0q9)E+_f>xQX&LdrFB!z7X50b)1Xj9h3db%{IU9J-IAj;U9 zB`Z@X!h)!2W^-%IS~h2~Z}onx8|b+tvSaC*PCPXUrGt-&uh7oW(ctWp*FvA<-)3_6 z`wT$NVB!39#}|1(K8q>k&T)Uu;Z5aj_+;4N_^2XSiyvX=Dv;%pg@-1N{=*jF4pMp9 z?!!yVS>UjKmPZ6q!2B(cH#ud@GmLw5&Pth8ZLx+Fz>r1}ElHQ^c)AmFL{Q^mv$N5Z zTD|d`K|o13E#_t_6Tiq`VRRVTXerfQf)ml#|7st1I*>5xzCK8+-A@oHs_Vx;98K=# zh_DCgPMBW$M=F_=FBnY7|G()wtsfO*qXF zp_C@nCCpTuh|X{-0lLy}=&b({P>{;ne{7j^-FjA~n&*r$JHrviZVBm91@goR~H+<>XqG`{mp_`uIV^i{CGGzlc zKAxkCOA$xj;%E=pkjIPmCn@S@fbtah#m%lyMe5~6me{P>z5Py4i*9dxQM2)HE>5Uj z=7DIVw>mH%}k%w#vCo;0G@D|}(hg=M> zDr)&5M3~*7c0KvA^QvoB*jok1!V{S>IRgr|Nb2xo&_UTi2AVxFa=4v*Gr-R`rE~k6 z=X3)Uyy+)6cD51Z2C77opArpZb(y?8bsA3riW&`0?O?ceXbcnUz)U3KlN~(^se0hAF>h?K^2k=$t0Gl%p)}pwMxAN+; z%9{N(nK@1}OGdPgT!1q24Dx+=g7n#^e?|PgKFdR!{uZ0Qo)of?6ecN%$rsqqLNyrU zkZ-~vPw6Gl>|Iw6c^U(|DwC0mCi+Y~pl8oW(vG3D5aXU0*2=XgTAFTWa&=dmC=u<9 zXb3*!kaM~189 zLZxj>(7U%%-%$ylDUqz2DCJdt5&FlV)ehD1%Hf!QcsHnXcm+c_$-B+K5m7TMU+V=~ zVp)b|H4!=_0~&g7_+)_?ZQiaAhiV%#MmM`)Q~AYdObKhJ(C2j{pr7&Ou%io@uv?xo z`qN#cW`JfrR$I)$vvekI_ysdf=`W>%g3$8+xwgV!7X7~bx?(K<$KurWew&#{dfTrM zV3BNtHrSG606rkwtQ)x~4wKd|Xpbxt&jgN7cZf!K0lv0jS@#K2)DzFcJDCY6#18VY z{=JmZDtv57mXZir1Rz{>gV4lO76qlGyNKN{0Zfey@mMJf`{t`?a@mxx=FIjfL+6r& zIT8K{9RM{o+-{z#WuyE)ZGbV(T{x58lkuRiV3^oY34@xND+k{ekW?{9fnGpP0ucd0 z0SPMXSnjnB8czc}&twP3*r;6d9r|-YvrLzP7X{$1cFsl$hS%hisl0fl{7hZ)<`J89 zRsJj-73qp$nua46!}UNRt}~B!4THzRh9d(rS01*6?R!ip09wd8;AprO9u@C03d;Ql|4M?7H6b4z~iJ~4jvY(BiStz+{24}w^*q~Mp_2wdNBD&+i z=fDkQse0)W^M)ZDE*y#?us8k|ZA15dq-e@KjkPbafcXe5@ZM)58tJBfz%l~dTg+cv zZTv4k7|-%NlgL<=Hq+*1Fw+H81Gkm4yuh_PQhD8yPI|l(C~ewtvV$4-3duqEK`~%} z(l7-Oj08>F)@h3sY2}uJ1Q--ohABY2i2je z=J83H{nXL@DjCp2W~IMkmo0hEM&$9F0s5SfoPw%Vsua-rQL%XqYm}YzK_m{L)W0TR zuo)`!y8hE*JAq^pD3e4jr};Kbv^Zx__=nptZa3Q=S_ZItpUytZg*vhW&JG|zylBBBF?G03D|lok;qRjb_8)lTH?3IK&K)G6Z(am3G) zD^-T(K{&7TqJFH=sP-|gCkwFVI+>;s4l$fThmU|ll$3}!^x;DrI0htB_Y5Xfi# zLrCkSo@t^V(NemXa_$LKJ67#)%tcDP@3cRct@uEbGi%Qg1tK`-{r^?)W^=N*B>N+nWlAfnv#_-ZU>kHXE|#!YQ*~japMK!=p8ys3 zKA|>N?L4(YD8uL%NiXj`)VCmKf<0eaQp|jqfhVONqKhZ_(Y&7(D^(R+TU(fW0*&ye zmS}nS2xc){A!cX+juHjMxDa1vBn1%0#ByjH1KKoK$N9yXc3D-A_fdFrgXTMo%QCOZ zgJNeI;3UaylHsorZHMWdrac8mdF;tNa)wIlucSUg(QU>XK)p>B5JE8|n~7w;9Dg12 zByFLV&VKU`KC3SHFRMHLB%6DgBTpn$k@R9^uPABzqcnkRe9yVF0zO|S;?_Q+fv(=u z@99F|6#8V5EiU6k#3-P-_n&NObUzWE!7zeSmXw6xkC`rb)iiR7fZnMP>S6Oz$-LtwD)C2FL8F+Rgl z5^XYGcWHI%R3U)a)lmhQFk> zIG*61{#8di9mwLi!#Ad+sxD<95UZ(s|NM_AQ#Zb;fxK?^Z?Aw6&n0F;5i>!SIvhj2 z0xeYIk)Ivl$lE`pmAdU+eoe5BG1xfHgUG)Nh_;q}L}8FKdOiI0$X8>x(7v-{USnd`@B%iKoq*CSM zV#y>PnZW1uDtB_7KBH`9<)%UyNlEdyKGB(;!7s({;Z^$8a#rMK=P~A{>HQ^bok6 zg`yD<6cpYdqGibzu;iKHyg$T%czl?Q1{5F~rD$IRwiNM{hm}X-BMkS^rd{%j%3b9~ zF!a6Ymu~p(ac;SpkV)n}d!rx>6q;Ef7mW8lz_pF}KLgxSigmI_tuU1_7R83V1!y&c zs4hP4*O-ln5!B!&2YVt3aCq*%xJ1o23{5~f{Tewx`*3D^)}k9jD~ny)2)`g+w)jc+&>Z`?h?c0jmf zT5V%4%l8svUj%#yGY@^?jWN!&X=MNY6QN2O11_jsyD7JuwJD+AabVXv4m@on&Cfz* z8KD+qCSzC$W()0>IjXPeyhGe*$yvo)Mu%;**%y?M0JDag#!=X1tpESnUHEj7KL6nX zsUyVdW|1b*aMzt(F-Y84ne(E%w1;yWXTQ3-)Dc|2{{&?;7=D~7aPM%N0`NLr%5_rU z6#?@mQ*!Dm@)X`5n6Zj$qs=UuUrR8U=Qwye^l+Kbs;0lW$~_$!k{&BUhvLcISGLsB zyG14KlvoI8us)gvjXJU+(4yLE3$lRTgz+Zp9OYjdxisP$23({a zFLs*#s)*9v>=EF-NoY@Ju$x@1iz?^59!u;)p81nsT;9cceFwDj%bPq(zdBaQ@!oxs z&C=$BxvO-J*93Q2Etjmc|F$31Z&+#}x@v#Fvvz0Olu5}@T^y<20)YBA;Eg%i?4Im` z!SO1l3M+nm3lj8sIhq$;-tL+37M!sl^2O0dQi?Hr4Bku`aaIxiCq7CH@&S;NGAj(E z9|Qd#QbLstvckE&y58}Y=jMK~e=aJOZq2A>)|>MD+y$tw_uXE#ZN^1dsa3%kIsswX zDlBaG50iclj_JSs&0m4NHQQ$Xb)5fV6{1jr+iz8KW&|YAStdH5sEJqY@r>kyHS9;Y zSpKThi9tP!xYo>qPe}fX1@(OTADYK9;HduV@N3bTf5bS45Q>TJUJOXd;*8MJh;Fg} znfu0pQCP{!-V%-kxxC>pflE}9Ai{RVFOptBh>!C)%*j9>Npmlvj0RQ#N&RQcyrvBB zi4YUJ`oS%>DxObw%_E4}iPO&DhgNneX%Q*|J~A?cC4&B6=;#XunOQ7x}JkKXv- z9Pr>;fhi_JGcz4d`C`+HzL$PT*}J|2HYA17)?zmjBqLrrzyLQLMp7t{ti=(md5Y>I zegdpTTvA8TR|1miluCC(=LvrUBKJU0HG$-1MD#Yw%NoVU9SHR$3V~L3Y#-K{%ff241G$g{}YL^F5g@=e-Pgl4vBLGF3T; zbB1`Z3Krzu4I;pR>1zgBW9?(04WaiuTKx>H(HFVq>hGJ1N_JM0p+1JzfpBp3Kf!W3 z8u=o3<30dPWtKD#;Q`jCJyV`$e}zkM_W0Q#n}WQO24IigP-lu<9W4OMg>@Rx>A|kO zLM!D*e?@mmG=UE@mFR$2Bm5!?sE$kKsrQc$P>?;P2{`6VpOM}GMxR1$)kD`#)kuW< z(a@6P1dvS2YE1-*$NUw|k`dy^M9ady5b!1dH;zdMDIru-?b#h=b8|rPMdSDY00RL6 zfwhy<<fB)#nH~SI+En;C561r5_k_;)8n`V*=VQKS0 zdX7epXlDPCC6-kT2BH_d%|P08$=-)|wq(!7Ch;E3HN+8bT(;<Ek%=H@V}l6UluX;Os0lfBA8Z)9ndUOm}EY$6S)BY^sF|pFOsi@haeEjs0)cs?b!0geB1x9lv`hyA%6pwI2E#e`86k?)qE3 zGPHFLpj9DIdSbSrjgCw2P>IOh7=v&b0l{JnfWQ~>DqYqoA@xi^Cb_KpRmXP8yH!tY zU(l7kUpu(itv!Z4{PY-<-PYtBY#Sp4^*X8JKId>k8OSGj-ZW1pC4n3HE0y|Fgf9mH zNO}UN+D@xEZ~wf7<#%5gU4;j#Aa5@qlz@&TxSKq+zbq^*xXgU_E>{KR_RGSZ0xY*c z#BH~)Pz~R|NuH$uHL*AAy!aEn#$1s}#=NG=g*Nj=gK!)%1z1+@>{8)npywN87LL-L8zn;7W2lRCp%ENp_uzYZGQ}U@mcC;PH#* z-XW^}mxEJr=HW+0^p5}VgRh?yLpf2Ep31frQM*?%;?feXrF3YTOdk*djKJmXgX|NS z|GepNnz0@l@+n+G(PzFG^!35+iQ)G~k7HQ{(n=}2Sd*hUS-#N(jTZyt@RXpvHn1TP zU$7MuHadCgcg~|U8m4(Sic_q?B88+OHD3(03kuSJiHS@dXK=@%2lNVBZ?!(F#EgG6 zn%!h-SI?PFO4VjfAOGfRg#*(Ce% z=|F!+p05PmjkuQQYE=nqH(g^aGN+(oQMIq-=ue)(XlJS>)72vy2d`;TM?hE9J#)06 z{jsgLPfYxo`c0q_DW+OILtT%L(S1$DBWa9#3Eq@}Dkn5RdY z4t9zVRNTR7koVXWB?YFjpkmZ64D*;Gz7}Jr7=&bYiPya8`7Q2y<~p3LkLOR+z2*8M zqBj-FfU1Zi`s;yfy>??Va^{(cQyGo*{ z+0C{L@P)I?B*P@$L3fVGP6>q#m|tFfn^#`C+ZX6O-^$gm+q&H7NH6X%2VMz*|CEEN z=7lJpQ9|KUy76~6_2X3$UJ)v|rm~Wx+9a_J@RZnGpmI1R`%5O|vMS#>-_%c!I+c|{ ztUImNtQ4T-N|{MT$J}dGQL){;@_YFH?;;&%6O-@n2Uf`Q*m9xStInqt7Eqw&L1ORW z)Kl({)Ye5|&7C%boz?K791oT4IN&HM)KAK}WdM{vE9O=_AUZN3?1nLpTI&)OeQuGq z7evMOvf(7>`A>rhYqs}c{yYb*jbLxKhinx%(rBY%@Wo9#@nN@?Jj{FlfB*mg|3BjF zyP1C<-w<saTd9RUwjzJqpkzj24qtP*jL30e>>&N z=Z!zew^0A9wBh&Nf$7gxj9!($>B?-X8Zzk&Z7yWY)f5ZVlWIN>srhqs^9o7wF&EOG zRwk2uA0QlKs^yc%wTRiUy$1MnKZX*i@t1{r($X0ktPLIH;9G)IuBlK9f%{XmXETTx zEx!Jl`%%Nh)R+t zNN5TIXYC!?0O1=Hh5u(h5IckqR#y>`)u5NktJ0aE&{v<;F4`q z>0)%U^CJ8&%v#)K;rujvCmY=V^WMnZOcELZc)iu^8oUUNL?tKHr=lOhj! zWjiszzBT~0m1ia3SMm!KV{IFiJjZxf6+g|a0&_O?A+GyKcAwDTwochq>Lue*dIjAz zC7DGH+wF36_>o_Y5oo$hWF(b!+l5K+3ix(tqnnGH^zS88F%ZFrO%S7AuTE7(pI*Se z78!zHs5_5_?X0h8Nu4^z0LTiEvrUu#Q)YO`aqob_trrVb z`xsSnO)fD`52c7gKk}}5A=SL1U;u%GpP+T8c=%B^zZ)`hRtymM^cOcalSdC|Jc#Qf zZ_wvFvSzb8GyM_-GA8z?<@74K{_&5om*r*;u*2!YiLbj*PA4ajsjht(llik#oZqs3 z=u9y<8oT#5Z!Yh?V7R0-1r#gW17IodMq0M)icCe`}kMg2=JGkx5JY z3oowxh1jN^mO5i)g}FR+6fUAtBUvd&tKfiBNK?rYqt%!&f*UqLEa`u9 zyustZVlX1|DCFCPz+b)6-T&Go{gZcaVa{q8hc;c;bmCr<{V|`kFrT2Np>x=#XwRJr zI^%Y+E75sM-q|aBIZmO;L!k(sv#Zp!Yffw^{-Lmq(CzkI3;@n1i5ZhK4sEcl-MPXY z@mTVqR_OBRgIbczJ#R?a_drL$?>44YLQ-1=iz54qu7<(T!Mluyw7mv9-z)T{6~kZ= zUV^&gb5_pW*C`Xnxzzy4K>6#s8O*t!zOY0m);hrx0Wa2%Yg2sSx?`Rl zqiv2wC(_EvUas*Og`hZTS-H5jbPSjQ^q!#H98`1n%i_?eD~et|2j~3L5U1mdCK_Y4 z+{Hk(xjofEq+BI&UowAzUeniTI|IHDb6yH>ebjpBVQZ z8Pp6tAq}(^sTiTzkupu-1WVo^Vs1ya7RL?HUx|iVeYbtz}x_=WSKuX63oOC9fzQ@ZF1+tQrW`bQSW}HD~~i*wha! zmi}D5iGYwF%JB)DVtvB9e5QWGbDdh1)Y@RB>`=)L9fHX=7fJM4@dpne3wu`95XH)9 z%W7IWd+dVar^j(Bdv)ff40UF{(rh<&Wjfvoz5z7Y=U6H?1A8)Z<93Qp7A`%xwL%Hr zi=g{41&z{8&VguKP6>%Ku>yn?3SyC-068hj<>+jjeFEn9FbzJi@>kFP4IK}v`~wp- zpc@U!+piEzdUL3VvufPJ`+#(QX+ceq2S}CLEL4fhdwTn|1ABnR3ixfGkTQ`CT54oi z1POF@XBX%t86XLMB~9v|RO=EmR{)XRF|{ya^B=pm&uwSL|LSL}w0#c)AhgEJI?Rdd z{@dVm^xCnDlJY`w0$Ao4FoMwy02x}?t~R^I&2-vWoVkFtL=QNBMayD3to9m}g1%J> zR6ufpX3|@2AW9W+HmMc_I4*X_o0BVl>f0p$&)w~aj%`hw$dno-Yb`U*We*yC!{s(V zE#oA{>N4Q-<0KFC`vz%4@EI39OP%)L^i~h*Th*_OZ^B)V*DTHV$|^dHqM}iT>Qr!2 z%y_4PqqQ9HO5B?rGIcpNo0><=f&v3jeY#SrE%px$+@txp0 zaCH7JKJ(A4a0n#3Op#^-a9WJ!ks~t9EO0YrMK-DSK_4uqzD$0X=p1T-%n$Bx9=gT- z0Q=5n99d?_IuLju-DVN+sb=9+oU%uqzwZvddN*>D-1Xo0gowAazY>VcPES-zkm{=$ z4u5PDq(j1YK_yY_^{1;-oaek8Zq>cLK!&_fgoEoUTv7gUh`masGfq#Af_Sr}w&W^! z2{BqIG8x9<$9$&_MPC^-@;^G2KElOgFwJ>L5nN+Dab(ajXtAC>^K#Nfnt_53X-OIG zIJ90-oM>Ft8no(HYLk+i+4ase-YMo)0pj9Gx)n)yC8?ty>eTaVsXFYuO<^Xj?c{q* zEaw2{!MW>Q;I|<`mDq#%(lJj62Wg^3fZRolE<(D{+ zF=t5I4Ci*Rre1kB@25rQ_9-lQo?YZm7wPe!uxzCPDQtt=2gjrj0Sk@2dx>b)Vpbxe z3rSv;3d;7Zx!a~Ty_i9|eN(683G3n+D5QHWXb~E2dL$^@ZTfO$T>TH?VNiF4da!PjB za9GQo{@|TR0S1LyrDCbudxMGq&Kf#=tD(Rl(38)0y*uga9$RvoZ-BFlipF)T3++r# z%T0jO{x3sc1si&yY$Pq(DC8UW^wp!$xRe2F@ zdW|)09gH3rfF;y0a{vggboX4eV{uYMb~Y5#EY}F*YJQ~ZB$<%h1@hmf;f}JJ^HP8M z24h-WIHMX6@pLgF7yqdM)6ry9r76eb zOcfFYbT0(V{8#()(TsfH6!HEPY&%IK*phiS5m=wFC!UhuxiDQ>?DO}L>?JTH-Txum zjy7M3yKWCoDi|vXXRncZvaph_y|$Jr7T@HlIr17oc=i=PE;y&_=Z@k*YE+r4)5hua z!kdJUoc3Nm1X#_0at_WCw7zWCJZzaSK*OK)roK8QRRl#* zK)7B7jgvcm$)0d@);E%x(~h){FjVlj0h}4r9wL@x{yi*e4=#!TgZAkIDDj(Z(z%|D$5f7T=yH&f;J7yJ~7jl-qVO^#w$gyP*1 z!4El0fcC@}fuQaQ68;$bdYbi)3}04QodM{^|NDdB-}A6{@t9vt!MCP1Aq(au0(sYRpz;hg3r0AIXcmVGa@u} zDWmlae+p6+BAWiYF6d{(s~{n-t_e=@L0%NkF2=HM;%i9CF5FnQ4h3DF=ebq`z>=MA^W0m%S!T|eDLzm0 zMbz>En&Pfzw;1^5-e(?V{hhj_jw2cxG)APXcZn^S6W&dU%%9*`^+?8YI%HZw4gy1; zo1~`q*SU)wm1(Fz1GOVv0taZz-_7H_{Lo4G9}x0t@XaVnvt6SqL{7<#6cs_0@|xKd zr=7o>3R)QhyOwRC%+7~$Q9Me){fn+ia+pC`${!X8BR{v`;KMe?6`EhMc@-amRvJmE?X520yk)|Qt1Y3wI!)bpx6a{MdWWdk_x8e^kv?jDBS+lAYg9D|w;5GMA zCwB2@J-&w(FlsJf3gAs}j5RTh6%1sKkYRc33Al_{vYSAgu$%W=u7m4Gpcqb*)Np>N z5)Ha!(d|qzF=Z?`&RWObAV48PM@rpVHXjV(rZVa3`LXYG(YcwW)Hd3Vj2B=xsizsf zb=A`pXGrahu{r_;`Mb@RW3reI_%bkKhk>rr?2|LQ9J}IfzrSp^Vzwb5D%PCpgRTKz* zv`?HgNxhozzv*YP{xrpK_(={K>>J_8RSKVl^WyVGxzK`LqNva};;7K>LD; ziP4d`V=|PAf}XUu8;jnBMWFY-zkX>#EndX=)0w=5S5tKXlcCdd(Ii`*sYK~%LhgB? zEPCYN#gN2(VX@>B&h7fd#=Of&!!D{X+S*&L`%6AE)v3;M00gp?i?-MQB6_8$RecL| z(u%vFt`C=`YDyzKOconZ*+UcPVOr@Cm}%N@Hx%0m8+A;1jhDzSa%Wt5Cd0{o<5$c4 z_oRxzlr+q67ds}|fAJD^=h2r^e1FdSuonHN8ImJsICx0?^R$>j`8hHm4#cXOMRv$fL;E`Gra=9vGdCsPF zn=^ke(J~+dQGXRYgeO#h!3XEfVu&=ln{?j(I2F9B;?48`j(E&@#YR2nVxrGsl4bX0 zGl8t1?Yhw9JKPNWomIm$Ac_iYA~SEODc#w);JpH^UM-8U@6Br_skvq|3bSsbRwzDY z_S2N;KXiIMGv9Ndc!8GZ3sr^*;VQ13*oE=KNcJMpJi%#o@I>Wi^%ADKBg=-kG`+0? zzk#Ywl=hjM&PWvNJuItPykBy%oyQ?kmCDCiJbtw#eI@{f85naSO`ESn1$+Vz$J=Mg zswlZPMpAna!_(*8Qpf5jD?EWU0jSlz!Z!NP8QskdW~=YA7DsF)7UQ%=J967J zWgyc`E;f4MbV~8GwnOu${cM(pmU2VDI%Bbbr-^)`z+o}zru|HzYrONggz=KLY+)@9 z(|y6WPL`5*4_uta86;V*~Klwrvw;!)i8m!!xqp4{33hvEc(uuA} z-4^ppWVm$!a8hp%*oz_MqaNcGBY*|BKl)4TNMKXV%Dj{1G~+!}eO!spgOlT}gX$&j$j~D=m6!5y(SaSZ<1{x@cC*~|LCfAk z-K4;X1+sp2Xyr|X#Ym@TZnwr>xLwV?f5O}ff0Rmnk0fj#PXuq7;j6TGOzX1-lP&KH z&?oZ`MHzV(pCX?^BN83WQ1F%eh4CP;wDC~Sp))St%Opu}{-}qei!MGk`7q3wxsHz9G|QIe8Qm&{h9IBdKJT+ND65=t=erk-EE) zX$0$)JDxYy{hEIYmSc`n4Aswty_^B-$3VpcIEi=62)3DpzJk%OWSdpD&8vbKfXQ`h zI#MG0ICL>SAB^V)=@2Kv1k4lt+j~i4jVI=reR)4inmdf=st{}FqG-5r%db`GLe3|bO<}0F@HuN_!+T~xaP|9Z#%)rfP=(8cQc81S&$j|uN-#PxYpe;$` zI%WOYuw__Ma4x^`TAO9!_q@ z<#_Uqpg%TE(G4SkWQ15Go1I{ExXo6lTSdemYU%)iH6Boyc!_C;@HdFb_~xB9>p5J( zp;i$|^uEYk)GE3gowtXvR_Ou7qOlX#=+XO|sW|2ApM&dP*?4$**-Q=nN_?@}FLa2cO^>^{*~t z`pmmkL0-ooeTxxJ*TV*pw15Bntno@A)iQ%7K6hPMYP}NIdRAcVH0oSkIqF#-172_elrb@F84$T za|0h8xmLaAVUVZ=HhJT!;$UhbwYcKZCTn5IU^%Dk-I6{tsYmG*%JP6M?Tx?5z|$`iGD^>9>A|Hsw)${mpqcz z!r0{-C#zF2!$Mz(r8T}8XHb!WGYhlAe6*Fwt^~@=EVpeeV!i;rAt^If=CZehqUggg z7~o6h&+0+A^lifmegwBL&W}eVBR{*IdIyLqis;-jkma=U7CCwp!{}H^L*+||nC3Ik zL#ZygW0oq?B8--8kc8dZ|aGBTyL0^Q0=6(7(_O za*!r3BEO_Km?9>8V63t&5GeBYjADjhJ!TDnx5}|H$WipKhw&t;M}sCjF&Df%!})juqWhE`PO@gKP@1 zl{qVKlNCfDFE`D_hzkw>J>_ohzZ!~_Aj?}dldfgLO9voH14Y{~I1nh5eUqXz%@4}w z(tb5b9@eOfKiu@C(fzTyC8{_JZuzE#YqI}Ye^7ES{_x)snBsz(d~5ajF}=Mqca-8W zWW(^w2t8YD2nrC^Rc6?0p^EE<9nRD_@@5j!8DnpPoJ*AV39qdh-yLAz5-^ml+d(`) zyFAulEjBRdO2V%fQ&r_GaE|h;W(Bl_YNUCQ)8`AHe(B^!=um7JIYcq+U=ldCYM?dj z6x@kdEH|M3I=pT@NQ)il$dj%i_y!N2bg^{{l*`V$+fsl4GvZw4*ZnMJNn~GDfmd~( z-FR@8r?0p-%NH5p>^Ut;Cz%1Q3mE#i8uW9Ryt4$J8+g`2qt^53(%X4{Zc*p8@%$P) zjdnYj=c~MqXj_Fzp_(|;wjY$^y`L}#$9FfoRW@9Q4#Hn$gh_~|(g4L;R7zGcdI^OCB|J?S4_?cACV@aM~f$-K+ zF!W1(id>T)D^EN-!ccwSfBya0b*Ro5aY=SZ+^|rNimBM=ermVU1uV^Z)l1NdO*1gt zoNSVs4RR7qR(718m6Y&)z_iFLaY4@n-_x{L_-FD`CVSnP>o!5TjNT}FZtTVz6v^Yp z^E2W;dEH)RRR$6dl7VetQpAFczNi^siXSjMEmdidzpYXSjKgXvq6MVG|MxhdGo*jq?=DVW&Q|aL zlV9xe+c|sES63aMDVL)Qyb;7m7M>_cKdT@65L z7r-+1xg}YLvo*z|fMRPysAit;45XFUx}obAO(Ye;f~T|<&x{;!(&$U4Ob&9?U>5yq z#yr@dUbpKz|GjaR6r|9z3nE8XzkX#FQ^52?yvJqe$K74JWJWo$D2qY$cXE%O-bgbW zbp!z%FYxIoW_95AbBujsa3*22W^8L>XJR{<*tTukwr$(ClZkEHb}}))&E2Z4+PnAe z)^_!uuKw}9)z#H~o^u|U2`ww)5Zt_im91NadXHUc0HqukSdjIom#n2|`=7Hn-NA-Z zn(60}=GSj?CgiH8X+o98m2+7Ee+?}G0fC`*!YaH!ot$adXgO8|dYXKb{sSZZ=i>bt zl!rW&4I=3SNcQ&Nk(bVfc&_$s=G)#uta88k-9?h}L;IVHg+&*aO-}F{!h^tL2X2nx zw;ghrR5guDrxV`ute@XEKWhhaoHOjJN=%O89ZNq=zntfW3uJM&5YGfSaaFYO;N{ju z`5RRJ;hUqR9(w8kE}PE>R?g4o;|Dt14c_>b4ytYLex#cAB5MWDs!?T*GO7n|^O-rS z;cj{zyFoutbHKjdzODKq41>|^XNQpIS@^D=p6>!Ar&lJ?!i&o7_b-J<_>b=RS21uD z{-*9ea+dGeBe72+-`!E z*S`G$JEop~{PF!V(qm&i8u7ku`SX+pZ{zYXoG+rBsM^6{FCKNnd@eETzQY7(9lBD|%Pi~%9Jy{o*WZ5DC z4i08*VkGdKCbeC&wPNqcHRSi{!cYD{Ky@xOTL?GR8*_TmIUd>3luSqs4nW&{EkGEX z%owN}&nk|?Xv~zSDX4L4RZUVq!A1(KYzFLa$ju+?1{IB;P>i0!_$P?h2QT9S=PL$^ z9~CUfpsJLa*lWPlola5bA-WdHsz|tPE^c6bwcYfi=2-*M;Q6Nz5TWcNq47Q#B+e@! zmT|o1Z_ou(#Rahg+%O^Vw}d+&UR`U$f*SxRf{MdX&YVEFslsxhhoTAM9UG$$iQnFRQ>H5&>c2L67s-IP6v z_2L^)1;>t7X4Nm9?7x+j)ls(M94oScehuGX0BKcKBGbX{h6KA*FZYj8NC=`;=h?U!4YjH@^cW4M`E;o~~PYQ?Q)%&=2kvtulS{fjbMf-#DtLb|Jl_!#M~SJYp&<7au(}J+ zc;FV%~qeP{W{7pjH!UpRPA=>hPuzHP*39=yG4VLBjEBf4{b6h9G9-c^^vVss0fj}+G$t5_L2Q^wkJi>db# zf-0xyzqV{6A8T*vCUe?DN{#_{t(I-nHNil=jnGk?q(eKH zug`gmly&+{-DY{u87Q>?D7{kgsi5D@fadJ(`ZaFCc(;w%Dy?QPcyr72Y_6zEGu7JN zx+j@u7`5t!gijPC#clT$N9UK7k`9WPVPyIO>r!JaCek{Zf=!xJ1LZ8_*h4Xb8 zs@G%A&{CoU2LdtJ_cpv8z|iVbqqC#&K(VuhehaJNhg|&7M*waBzK3M!q63p`F|oLk z>`D=Oiul`^{@KUgD&W%y-n3t=PpW;I@)E%EV?zAMFJ6qEEnbG@O%;k%ZWr9a9Nq4u zgS23?D+V1t|)jRdlRFV)P0JK`l#_ShTV$plMhnaK| z75XVCFGLxJ5(t}2p>P(#&RGU0K)iEq7>quN@r%%c2k8IJj|!BrpyU;#ah5|zAH;2I zt3I6jYQ`~HsQfVcsQWVGlA8RDBByz0n5i^FS9G35(fs?UE30kx z4--Au8@(4Euh$d1eOLbz=@c*bg{RVm>Nxe6_O|mhRPzbr=z_{GQI=dH?wDv*=j9s z6la(9`?3{Dun_m6v+B*ite*rd?lJ2mz3D@;5@e^*Ig~IpR7ZpO<77&C@kIeH03ofN z)c$*v?j!w^m_M9x6+JX>1hgWnldGU-g zcqr`8fR$d$n}^9B2+gJ042=rc({}?|$%B&+K2B81zPB_5904H#({CHq$ui`M1#_vF z(BwSZ7;F;hD``)oYORoIboTgbwE$Uf3m0>S8feFx5qEu{9c^e4C?Y2N`u%LcZffHC za`A$Qb+O`M(O+eHfi`ZcLU1t?ECD2WEMve4-$(?P5Mo{AX2d?B_g|H5*7Ek|Ub=Fg z9go0kJ|hzPYq!V491f;Wp)V*E=U(*sH^W2lXxr=JcPFUEzR@VVSBe}OH+J_+3)(FP zarHSBhnLnrg~6Bhvr+Luq*Rz(Db!DFv~gwckB9q#%%gYIIydtIxrziz+^&+N^FpV( zuq!JrO$}mgMGx>tR?_H?9{4HP&?lO{1`EnxZNY|e`{53TZ2Jc)d4CO+?4RxM@J-;8 z`bX|eoXjh1ATYkuXpAFEP^#;PN-M6ZP{Z6BW_N_`QEZ!G6q?zCe|Ott=p}mCCr}v* z?V3RDfU({QUXv^kL;nI51?vAI<-b00e|0{9S2MU;$;lNL4E?LojJw&)02&K!5C6|@ z)6j-du4?3h^DX~93teZl2!DLKmavDMHS2;iGnjgm2+nSOSF(3wT1jB;idiW!D#JdJ z^+)~>EGV9LXJI(Hlv=Tjxm&O+apDqze6OfiuV=rXJciwE6&G8T2%x~XHCPqzZ!|5V zDDruu>UwG%0%A`vzYyA$(~`K6(h^7Vo(x@v)~WXPX~9nSrjWfEg0sFTnOw0054 z2ljVJYX|YS;7zG+t7Ja^CZ7aqLfrGpc^Rr_Px?({d5(oE=_sDHDM(KBgD}8`!`7d~ zybMV+zBjd_oqFJ70Zb!4pn1ib!tJ7ut2Q!@$D~&Tr*P zQp7U4P*z)OH(f6=)}veN{qhIOH2eA~*#m#eKx4dfmH}&%Jl90^dfS^R_{JJ)c}6-e z?4vY96E?WQkhp8ldGj7`tfyz)LxF(eDGYDeD_?J_4qmvq@bpvSn3Iyg&k0 zT?h1@69zWG{b(z+lv-$@0OF_9W<`%`_R+lanSa3wO(^RHH~Hh_qs(DW!q8UzLfzum za=HY;1&1wcbyYH5K`y!0vo~99%cVa8@*MW?F`jr;T_EsU9iZA)dZ!HJzv+pe3;R~7D{mfN3)HN>m0cRgh}+QH+sq!jNp8yxT-;;VWpV~1T(t8>4oP;BMDM~p;u}IeX9^)Wys(!E}QWuiT(h7XV7&MELSCt@Z z8jPSpDAf~64qsw3%qnQWPt8-_PsnLAt$+Lrar525jqn=dS2h)&?#ctLm}n>{>NbH* z0snD)Y&fmpBBJ$V<;j*6kn+-Y?mqfkU!M~&7)1pycMK}>z48G(LZBJFLQIrI?tSt` z==>dlm+kIf>;Y%`P01XzVZ|@onSUmqYDv9-`P?oKa=IA`;P6Vwx|yQfQggUA?L;pzPV`v{>wd)hwI9AFNpXxsRWkfpe$+6r?R1+(xWJxngN;VGN+ntl& z?t*7CFNoN@z4NS;h$}LGfwF zsjtP4b!+%*j(X2?j4#QwJtjpzTa*@#c7klIWxY14S++|D>qyCm-*=(sMPFu zihwDuFuZi}-6xl-ivHlL&LfUF6{0tw@q=qUZf6tqDeh)#l-C=>O*r`D=SyvLKvgvq zg}z;%RL7LWwcOU7fXjBl^ z09k>ES&t7DN{`Y-^mQdF<219WFc`*y;oeloTMzn|7;oACJHU)rAa#xyS(Je;+`9@j zJ^0(%LnX=a#nY8X59#Y4c6kf4?OU(hPkH3QDE3uPU20BXsZ%V~H_Yz!wbygG2Y61I ztJS#);5^hqiGVGL3JE?s4nHVZoED;v89d>J`#g`UDv2>X%hwdUV|_N0ulx*x&`)kuL+?fp_%P+e?#*@hfN>? zqfx((4tf&*eEDz6kz0wdfLu>d>)?C<91*X0X91sl<3HXSKnWBicX^p~pp<7FPwG$&fWRcISKORZas zVjJg_zVkl@cas;x_|VkhTjG=Td-vk%x^@AZ?$|GAP`C9%J`!~KRv1ZsW&*bT32v%S z5bq4U7rL@$U&~wf7_sJ$KtPbTMCF0O>;Rx~S4{AJ!Ir$5rR|#zT#f>l8r4}|Ce{{C zBN|}zG{kn%43$9s)xpA95v7*P!DpTe{O1Btf4eDP@5qL;o)h9t>{jotdEYVKGb2tl zaP(5HN{qGg@9K%Pkr&GK@PU0i%E{jHHb4-*7pbF?hySg38`~KL)He#8jqe9Ho0gK}2jsG*}BO8FB5~9p$_T z7N)Hl7sR;eE)lx~NoO=4Q>sX9h_}aidHROWEUl&>3%0E(2tF}r;O)z*FdtCtyxv+6 zVWuIo6p3dlM%cW$OWie%<%q0$cOSP@i2^rG+}f-57cGL!oc7O$@OKx8cdcb;g9JhI z)Wy&&h8o`StZ=VbqC40n741**b4typo_h^t60|rfQkykNZ^jcMdq(|R1P*caH+S-5 zROS(cQ{^NDyQyaR>W?k{kom6fk6;@xK)&-V@&a#`;K6dIgH&s>HWHuMN7>B zgUeq?=xvy>1Ue_VJA)DsM)5cJFf_>`>_7>sDIuFK{A@3Y^uWg8n(zQP_~eam6`A64 zTgF6{(%IQ7@Z5S=p_l%ovs3(I`*&Q@Z_}HWxlFfT*Wq6r*2PM4Gxx`i^hB;2bixOj z1^4kF?~4)6r%<|V$LGgsmN~NkopJ3rk`=XrG%$&F-$JEw?(Rh;ltkH7>U($zH1ZZ< z!CHVe+lL|svEiEqrx_RuG8604H^7C-2s9Jy>hM4bRru2= zw+{gi9}E6Zp#j9n=8;>heD5d5RYj%I==%w(({zX~EnI=^ySZmso##p;@RtktUky>u zY{M?ATOoYOwbIJ7NmvImJH2)!_g+$Eka+4|V?(cpqE$lZeP#^Xg4t-W+0kw^GP~;O z&(&aL|K_iL3fV+PWQDD7JLy9@zQkX*RLE(;QrG)B5qp*<_iRc*>d@TWw~dF7hrFy^ zqvVJ8CaM639w(v_X{`EmL2C;GoCV;jTnVfT$S`6mH{>2gA^W@8N{!_c{5>kwSmM-( z!zhcvD6dWcSbiHpj6x>)Wf%tfP>(EZxLf1m%1Qvt6iCc!)P~o0>IR#HD=UKJui87s zwi@#KIA;H#?qUAC%-HFGR?N}6d?v<<3L$)f5h$)v!TP7zIsyk2)uY}g$z-2LMY+8f z@c73>0$EvZ0K9tKKTPLUeLO zka$XbbQaq}2Fud{L^pa%cKKp@U9dDA$)Z0FR|~8`DFv6#B<&2t{Fr&*0Fba#gi?}9jNm?iUV>Mm!(&CuJ=bL zIjq-x5R%~0CgLjFj>4Le;2nxbfrqq3m6JTmf4<%$ZEjuKe?4Pq0t;hFWOi(DIw5yp z)NQsah%&~nqGZ=exC%rx8k9R=imD&~VQ;<_ye6E?|B`6DyBjk1=098YQFnV;p|f#- z{)JEip26E>66V4R4=@T?CvsBaTu6{GVh3)*C$bF7ibvq^-kO=L`DVw-L5oL6feooQ zOut~XJmvc#zU9x9z*{(_@vT#v&7OX*-$NA<|d?Ibyc29H)r zzo1N^B_F~kgDz3*Gw@Xv=ZP=L@VwGSRR|<+A<0ZE8M@ zwx@Bfa)%Q1LJMJ*uvZ~oY(LeN^|Fzb--c-jP^TayRl%%{VnGrhS~50b$N| z0bx|tfK6E!MhI~vC`d_3qe97kd6#=lwJGKL<2_{btn+u+ra>wv;-$(kN_q}*lkc>k zFsZ;{2)V_EmR_N6SBAprC!#(oT%Gk7o3N-4*+m1Gnr*E-VM8)rS;ueN z_I#1U6TDx=n4Z|zF@*+=7lDqY&W8j!-0z0<^q9t*cK5{^f)CEW$Y_AYI37ShN^8|n z_2SAXH!Cd^%tdMM7pjwqQ9Le&qe-?lM@&`YFSXMCcKvWn32Pt0scP|6!R|jfv{D0hjpZKF?5*W#< z#qv3!mf_G${WHpYFDAaZHD4T^0dbM;w33XBF#GYzH-bPjjkJP%*M_WE@LEjoRq$>>g#%Uu6aeRh)19 zp(bzRv~hvIs01F0|1k1#J%=>;=-lt8&|aB9Nssw8AGc(8?T3|1OBYQNVYK!a0|5bB z0hjlO%K<&C^?ChbwqPkPW8e5-(AMWb{j&)&aXWv27JR zd9e72yF#|^IS$_?R|I($w)`EPuUGkz<&taLOxsy4w8}BoVU3H@aHDnbBN?qd!M}t+ zKtLV9<%9q0abpe)`wx8zTr+!a+v@GUPjytD?H^^IIgpR3`pbkOS6uh_LMG_)O>=l1vmp=l=) zjX%S+ONpV#2WaZkom1Yl^y!C_%pkAR4?Mz9?KGr;fFSyb4v7khdjE4nZDLI>%IJ^TSi&KC zZ2>8c709w~nMN0yAT@t!yQjdh<@ap9YXTyD0g|O!jJfd__22c5@C^6g#vw=|{+?44 zVl!eKNO^X$f6D7@FIjBBR0FuekbAyvykU=zY>G1O;DoKfUqop#%9V*lSk!#pm8kXF9(o+cKUL`@S?V*ZeFfJOel$hrbNVE2H*_$+`mo(zp8k#=5Eh2q z*LI{6H-+~krYSXNz{-PQ1fHrE5ZMZN2YUe)%AEMK?s4Z1Jj5tEN=aEeEVQh*3R1j6s(l@)M--* z!VrgERv|k?N21V~6*Yt8^<#>uhca(b$tmF3T9uSfmxC#^^L6Z4hJ5lyM10(Fs;Np$ zd@?fRq7QWnc&%)G`?Y1)Yj3eLx@n%^w$cJ`o;kVM=(nZxYZv6sK<*NYwY@)%^~w{* zPr`UJopPXWLeub^TdjNc(qEOSa%GvfC4cSXs{iI@J*l{|t|%#b5JOxjO@w-hzWoEd zq0mnM9w5txj-LVl%G|n#;B!`w_3@LrD7Y@-mr*%(&kj?rdS(R9sE%s}e$`Z*C1oUe zBpV%=8>nsVC2<24PU()oY7b!eRhh#zxSv`EW$b}y&Qh~=tgOS!LOH$_4ztGu3?8ds z)zxH2rnBvS-akH?m!eve1`udb6oZs;B54B+--iBH{P5U@XLq1YeL*Z6we00j7|^ z-dp5ljSMq6Qa{hwpDYHen=C5^R?Cy61%z%?mS|M> z*zJm0sG2Dsgf75^A>5eH;pj*j;#|0;Y>=z190sv;7s}jkpJPzbR=AEJVr1@=R3Ndw z8(Rn%M&oY`7iOP)H#I#z@oGjT9PI20bRVcgmLd1$KloLTM7N-x4YIc0#$>GpnlMC> zQ9^n3)cB`FE<_J*L!A(G!JdhePgFe*ZEl^EnUwkgpfFyXsr|sc^v-E$)(JrC8w(6 z^Ugn4z6Shd6HT8sCQnR1j$CXP8+qYqm}!26=!q(c4L;n4Mb~q1nzCI}>*wLcWfLfL zE0=YjT^MShd)9RVevvGvNlhSwW*t`LuJ+3SBDQ|h&9m3`~54oHvNATgh%CH z|LB5c)MB@!$Vh^lynHN;(jO?plDvOJkauAY_XQ67C%Z}g?uBn5Il^XJ%Nd=${6HRV z+yRMMpVba>@CyDwZ0VlgsNA?@;zC3*h}3k{;UgsANX0s>zls(|=UEru1ogTDu1 zG<#wx=Ehb@&kxDe?bOa+3F+R(fPzRYdIfPh$c$8+U2LS06LA9yO1RpCL%LZC<4On% zln{$3EwkJ=ze%fe>EK&rcAG%qgxvP~&6_k$6{Nrk*qL_d?xqZtUJU~ebmjpj6 zkuskOUO0gxTZLH;T?w#S+POh5)0x#%$YS6{v-@T;f1mEL#mY2LEg~oJ$^;oSIsOtX z6Z;-XZB#1uh8i~V= zQuda86ZbR8G1L|EIORyx96J=pGf|^SMv=$&G-j$V;cQg6ydn;BLG}Bk`)Xy`BC9{x z6g2-GT0(Wapi6($Iu`X*TG?xg1T$nZr{3rx&wE^)C>B7%r6y!DIrJT$4W)&yP}2?v zSwPh{Y!k@ir3>98_JZtyzWq|};Hj8e24otePraW&MvmHo8e{-fZ8AxR{QfOROP1w3 zSS+d1z2&~tZamSlt7ltqh^Q)Gmbw-jx0$NydLSVKK{xksXq1};xX089dbS32%f!x< zhl$ruyOox%6SjL38XOYHTPCa)3AS_{(JYgj4?^r{K-neje^=hP*=EH$JoyG=@1r_Q zQi2Xd%*wIJ1K-UMz-Xt|z(KyG+c&YGv44NdKRKiTSxFHqpO3=lXR3}N5T#=|j+sdDNfO1tUBNE~A- zKKStFnB~*S*{yBM-~M1BD{9JkIPB`>U`hrZm(}0Q;Q>4~SyOcPA0KF@*bmPr`FiJg z$o7q7FvrtBzUxnJYb_S;`KF`E-!g1=C<$lowI)|AVZC?q0Oh#(>>FOJ5$!xTz zV7qok$zqECVM-EP7AG~Xx!!C8v;ovM0}xwbL|{Shp5i{2R$~J!B1?6BY-Ud(2@QDq z^C#50<+ANYt_3WgkCl~rd3r?N$1{4l7~unkdU>uo-TMCaVZ)Af8~i@F=7T4Q-EWnq zipjy`QswZI${l=&j7Ic50cGzah6`{pjxux{w~?K`Q=Gy~1rtCRsc5>F3R_U7^hv&Hy`(H9S#l6ly}D`e)?BAp1{WJC-%MT@(EVJQI^d>y zq%l8o21>9)V$Gb^bof*U)`g(M^l~#EpWA($fH3vEbd%0Fyq4pZtM(H~;!n)d5M!L4 za&Q~y^dRzD^V>hEtxB)cIrBd9L<3{_iPw_6015O9AZu-ruL3Mo;>z|^jT}WW8~-6n ze7Wo8pRyDQFPeH}8|t;Ido7PkBU1XitG;b`e~}38xn}rhHAR^HVLA%jPk#GoFaO*p z-7<*u4@E{?4)gU|wI4182wAXx_RG#3T2Qd9(ObEiLvppCLgM@y=KbI+ZTaM|Wzz3~ zl~K)SyoI|f`z}r24|pH9-63`C`d3q${`Ks9>Lxj${t@B;UizEohF1~fOL4sA=^kXAB$H)M11(Ep-sY(CmKJvyC#-y^vnAK z0iWER#*FW$9s)jp%X~1of0-Q|7hhF-n@vpl13}m$l`1zK$;^6X;Tjz1|7<4=xI*l| z*$zr5EutKfd?_-`qnQc+QIspQO<{Cl^ByZg0-zW)dX{IoKn;Uod$t(UZ0*^SiyUh% z+1PzwQm8Zv-#0TWDRZM`_4RC9YCxi3CeDGHyE(LITTx}_I%+$EgT!eQlfhNn6=9NH zF%jSGD!HS)j#BvtxakrdGycDUoB5*`n@&RBb2=44s|;MajmaQegSZ9sEObPaewWZD zJR6NDw_7G2Q>USCh;nzx(;pRn5AU}ia;#q$*=D(z6F7VQ65q9)JGmbC z(2jyY3iB^_(Msa~yasXxO%oWk#7h zZWJ}%f|=jaGAs_ak>MA(mEIeaR|+qtDqTuwK`Ghe(O=xbjOJ6LjTpfu2yq2TxIcW_aamA!X~ zj8W|d1oDFJZpbeGC>2hV@Ndk_uzvY-V^<%Op&=UH48=YbyFkE%PT|Rca?{4w_@X4)+5@&EtXswx2&!9{+ zS@9!`Or|kU9?bb~e6xG>J(8?avG_mbR|5@876XhT7xG{cNj_=g^G=Qq>4!D#yJ=G( zdvIB~=cMXK&;@#u_g4wl^;W$OVYI2B1e-lrW>mOUmj)I&!=pgH6GVIkA z6Tk;GK>60e zO~H_xNTl*|d-SGIFe8{CPuiUjU~O zc-h)%fUgL^>y(Ooeg&tOrHk}>GnuvCkCbZL4={-dc_OmJyAx_02T#|#Je9uCn*qNDRhuXWFCqk34{J%jIU@B83B~*wtE? zvj|GSW3*FpS+Lke5`$e8!S$aTA%?6C6*HgU-un*a2ae%Jjy&dTDDoS#8~umJ5Pw9{SYs2dbdUuE!$QalM-&Nr3wqogEShd&X(D!*wcDR$x$IQ*HLcK(ezHQdS~NVTj|&XiM)w5tK-4%^k|bc^Z>LUN>!Y>g7wO z7)k0fG7%jGvKT!DGx!Bp(iE_+$SnCw%w%_h0KBhe;ns#{M0dpG3+b{#n^pjX9N)q; zXhB?L-fO;ZTq6((c&p9s{9;^WH(&5=DQ7HJ@LQ>$XGKAp7DVSggYg#9RtsKfe#3J$ zZuusj;6g~Tea5(vCDaWmFgMx3sI|7>p4T&G6FeC)1wq3E2^DF99tME2TsT7V6$oDuAp8i$B{3y`D?XR+>^$MEV>9|3#iG*&Nmy* z*Y3sY&VffrG!S*wl{Ff{?+(+iXljS?Bb`L@C-~%cqZcN4 zH~X&5p(w!>a!}O-ij0|0F}7N|oeWkZ7xt_AkmnDnPx<*u)b|;zO$K9AZF35Hewu$g z?>kI$05F!93!+1tQO*L_>c~HE4vt_Nx=!X_NW%$s@EGd^ITH)c;k5iPXt0HeGg5!D zb|4fN`Aau3YH1i{o+7bd{ZoogDpZY0L2FCcN;hHu#W@+g3GJQo^S2^w-`awq`^t623|2A5 z*1AO2K>TY@Z!%4NPnvTav)Oj|n#QsVF6*?>{p1q`kv+!z-oXX;CSJYUN>xPkv6gN^ zcK&p^^w9_EG4OWum@y)coia#NPk8&ap7) zRA8rPim&$Cy*j{QB?`2AI&xjF>}#@krO)ke)P0&tOWPm3Y@x_O;(vxAACaYlk+jlH zUryp`s5CdZ)L<0C5JFc*g0;5j^LFUy2V^)`zG>Y^&49kc`bFQ#0fyy#xLvO75z^%z zy5@bHl-b#E6a}4>N+ zJGJR~%V5fhv7o5@P!L@s986-F{n;^re&OE}WnU$1bN$oHPZk9vJg_HLlV~QVo9vyvh2)40v@XFNB7;lgNz z>g@xTed$G3Uq_atXrHSU*%1Jm-w;H_ZP4W-L$sY}Zks~u2hjM@1IZ@2}> z;pMpUBb~`^NDOF=q7%JQ(*r}RJz8ru#DLT7b2j9dDhMNb0Jr8{Me`DKaJQhFYr+uw z<5;JGzoBhq(@mgJJfS`yta(r}%r}Z^If+S)aTSln3Q^`l5p$$2CTD?Fy!W%RCve5& zf4A~qholBc^Kt&oDc2nAxo|=P)43n2`9>!Q)vO{%9XR&u<12TI9}@CW$yuR;$v?uwFAen4zOfuKGW} zo4wI9aN8_8Ohd;~Avi;z$}yWMe;N zzfMca_tD4@*@sso-)dPM+Z?u0Ilg}YRHy6?>-^R>xhue54EmRIgwf-n9EcC)f%71? z97c3u=AxV2jYJ|%Re^Y`Xdh!lU$A+}n>KxXi_S77Q9;JGs=e;f$tik1B~(NWm+3h1 zGtpsohWE46oNm5oBT?yEt+@x&X{uytLP5HuJaxkI)U#ys{I_wF#Gv=Ij=~rc5gBgG z-moPn<^5rDqTTmu^;w@IeNsS0%X)P45yfA5j+UTU;3S$*q^UHj26Zum_ z7fYHT>%&(Wt!;Bx8{MGKNbuI>P@D9B+1vXII4VV+r76iO&rI%ksq&KP)$wamwg<9fT?YoC*tr# zguGMz%$FjaZ9>bzUmg=URmvUKKCau#J9g1>Oxfo1oD5Wr&5xUiGg%g^tbf1K(fEX4 z`wgv$?nJZASIE)W@R^QBPfTXhejSfS0eoK~W+J#l$$Cqh#`9**(DxQSjqUQo{EG}! zGsbV>oj%UX%Smh_7JdsD2p^SC%zD?1Q|q+G*?DW?DVqg6$K~ZmIX&3{UiMLj2fKR9 zg&sg7TyB2tV^gu|xuEClKu;t|Wc4x(_s?j$i^z#GzH&<0k}@Cl~yDv_b1@U8Kn}ViM7tn;E$TPkjm1F z-n`^~!zELab^VOXq^f_$3j^~8x?Z^rq$E8XjhC4t_Ov(c4Qi>34g}}d2hBNdQ6mA2 zkBBemQfj~EYTgX=)Cf59dVggrW8QYTbKSdtH0k{0?l99+LLu_`VRS9!YM00EV%Z`@ zoA5dxM!XNZ9xy}LGcgB!!0^j9kegI-_L%O!I)DOmNpwX*3m2zDyCl+A{Jm_rNS8*z z0SU=%+m&{FJ|!Q|ZG72l<98XopD=e-pNA}S*-6EPUS4~CfiyHHoJxR~q>!bN2(>S7 zHtMOG;{h`q405&X#2oI>mzmJ7YtPE65X;Z_xU*{x+W6HJqyE+A5`u1d4+%@k!|@jF zBwH6Ic|TcbqVH7l@UGzJta--E81}qzk?@Le7z&M1^Or4nq=h_9Lkn;Ft2UxZ!jznGm;-S?ur@d znfP+XCj5M3nmmP))Zf=bd-X&=nkEMx!}*V|Z~{>!!v7rr=;Jid>gEtmxAZ~0z^)&` zrDyEl@e~d594DF0tc!1^f7;#OeW;$n#m3XrBxbZ^2fv1pfXn(3RM{OK4kjW2F+Hp+ z2i36V07@a76Xdzo5a44O%a3KÐ=!>Gm)%B&6>jHpxDF3QY>8o#BB+s!#?Iq2Wqv zF-tDq>J2Gv`e9q1Gk(lF`;KGO^IXgB8$KjNL~_$oysqb2;vz3wMjto~B9A zmm9GYo8(lcJ_SGOLoy^X1rsN`;P)N~eXE5-9JJsVBaR;zoVemO$ROg@nXi!R#TQ0& zAQ2S^SN3S>n2vx%C5qo6Ox{r+D^rQV@l7wgIU)Ho=*(r-zd-2x$mIQj`^c=EKe6CC zU%wk@b2sMlNxh`YDz0Hih#^`LbyV&~qau|DcsD577r}p__Qd^T@~8EszpX43eU~8O zW_rr1pDoqP@EqvjwYlo;+HxrM45lH5hNo7fB(RO2pfMoSI)klpGP`k&b^qmK%}PAf zf4_K`FHz;0DS6q!AP~4R%6N!h@yRGA;s+l-hrMl4Efr;JcmNHNoQhb(C1)PT1*ym@ zq2jOo+pc9u|2p+Pp^#s{+6}soj}F2HBrhkN0C*vPANsM*PEzY&EVdzLCT#KZU#c8! z@>)d0;RX>9f83}^8p3bL__4gyE@rtz-zU*AlrsBqnAAo&r!NEal1zlYN@OkXfj!IY zzZe6J%;$c5GBdSx6e4lO|B7n1&A)hVCe=`0)L|^P$6mr-qbARe(bAPl|Ja}l2b^y3 zmoeqMUR8fuKntE4DZR%TA(%%2gOMrz{ssyq(N#;o!g9NTjwN(wXFO!c(XGGSBBQ>N zo}FQbni@I}0iju|0q?%OvrOnvM3%(Y;U65FKcXIb7%;V$J{eDfk*UdFw6Ulv2!7-Z z5cGfbdmBB8!x9cEr*^*%1bRG{=G99$Oby4GW?nS2&Ova{idhnF3P%?;=HA->gKNUA zAaI2I$;my9OvF@+Z47?Jq&GivJAcMwb!ABlzBJ^QG)87H&IOXm-*kR!HB#S!5Va%b z23Ciqj(7sbzsJBBf2WjYvM5c+rJI-QS;#?n)n zrbS;~b+(biqPb}{qtIY?Eh)6I^)aCGv>$#JH!Fcyv{cmaCNfABHg>a7stng&CJ zc&nnqc|2>1;}LVLYSNo%Pe%+PD>$f2qsI-S-DcIfWOFBPewWYRQ;M=u4c{(sbO&W! z#UFs5vX7mX&i^4~7XzH!2)g)yub^gtHz~r^_{aXIFn0p3l=-iPd36(>m~Ao<$l+=d zjm`}M^oW&qvXWL)SlGhP>|ki5FvXt(>tRK^+SV1^NB$A$MXUL^l)Sn>6?X#D3++#^ z>`7T1dNv?ES<%fZ_kU3K4MCzt&5~`~wvF4iZQr(S+tzK{wr$(CZM*w*%*^7Cn0XU3 zi?crUExwAAS(#a;$6v7n%_k+w=A&P+LLggLy}#Ew0G7-B=e0wWIH#aC!kW%ruDCzL zfplgHQWp!~EX$J`JbE>isOrqC%+wGjo5E}@vorH4#tm;n;b7VQ9!WRrU}g8xq;0WM zeD>tvD`Nes>wK9r2rlTEN=G;~3*bX@H|!THE+JJi;s5~9VuWW3|1UToGY1T(#@u0V z#KF3brA2&Nft({vgKK(pBw;;I(Q2wVeG>1l*NL%!2Bh4F8|t;v&TtA4=q=77m|r0} z;?zz{4`u0dHA2uX2YA6W#ZNwA>>dP(y*GPnOg7d#S4l!;+ffE3Z}$>H-A*XZF3i3%nT$`u4soDMmKel*>fA*GL?-`J^=i&hR(j_UjidzG72@9`;VR?}?^Q6{^AAM!Cp z;Wjw$-*K?{m>1&qn45+y7QW*BcQ!37?JJHmqLbb=w6$~EqFGYd%Wh(>X3OOI!kE^-q4|(gHoASOAtvi#qIM zB8e9^c=pJ~w_^=HvvjcMbfL2LsaX_00AzGT%-xa9T6A-Z!1~d#8>=J}EyA(*GgA-R z%o7c)8Qw@|K9$UcG{&gcl6-~=Wf$Yu-Us85HYQCJ3OyefdkuYrLI*j<#@!!b(avI$ zvxV81j9|jd!o0Z0CIVBOS)uuT6|ghCP>fTp1x1?mv~2e4n=U(}R%SVgt=}XrqfwQU zGp4cZ1b7AR?DlLJ)^GcCE)y5aX8-er)sHMRyswdifIWWQ{ zUAkUer6laar9(N?X~EPQ$-7=j8C@ap%CIwD=6iYDNv9^Lf(xGVQz-sww9Ay2)?#{V zLu!#RDiTEYGdlb^5RdM%SHYRMqfyc@q@ydFVCa<02At^M1{xsDtT-P1*Z84j0C(zu z2SzsSAc-(D1~4j$`LA39%XxPm93pZuV0S^p-mDH288p^7&tC2FVOEXolQQ8$EW=>r z7UiNJPQ=a$Ml97=>6KNNe_&}1?Py^r2AgenRvac+mAg{?c_4>DTH|ksP0E4M?c0DnbJD)2w-m8XHvhE1pP#rd0?4TDIXd)DGT+}(gVOJrH4bj! zG@^={a2kpp?;HF}{Qj%nTK@U@Oouysv^xHSfe#pH_49N8@%KnIjK%r(pJ z^MK$9Cz?X-w(=N*UiYU%_c%+4T7Re%_2=8>A4Cc-RqRh|20zmI9~=-kRaVn5XfFJn zW|!`5KHyzirJ$|FRL zdG8tpElFbqt%K2(!gxIxwf>lmi2e6mmrNC2kcjIbH+~U;{)+aCcDem))#!ggY}Bf& zx@j@<-YUwV+*S@ekuq3(B|OM=nI95^1X=x(sA!<&$n6cSj<+U(`h}i)0U#&6(~0Ug z1s>gV#C|$AB7z}|DI*L$mo<95Y1dXds9z}9GV6l@Odx^dRr}r&seZEH4(zgK^Z*Ov zO+%oZTeMEvHUqfSf~CaWj#;7vy_pP}tV>8#Enfn0e`Z)7WqRDs0RZ!(tyg$sH)4|M+Ni;np>}hq+0*2|K2+Cs0@nEG1iLvc> z1iSQ5mV*oc0)hr?IZR?6m_Fttst_xEJ2DM44-)F7Dnk5gL zIa0p59$RF{b8TVAh&k2QX?50>=Nw(hH;BFeRKgNl2-ZYlve>XGBL>p7}l zmL5EFT0vXVI+lo9UlunNKdIpPD0{}RWV$Osii^as;CVrOZB*rjDewvqXgo~&_hppf z#XZ9%2L%{0!+dOZYAo4N`S}VwL%kG6f#(yI*^;`adZ4Zw9R-pj3KHgrK)_#Ew)h%$ zF3EMTG=t3T5ZXrS0$&@!?|j!4xpFidJ`QPw-j`DBcg(|2>6WHMnld1>coYOyeyL-Q zm~|KS7bMTfVT9Qn_l9#2?*)i_kV;K->3SSN6?l|$k$WsfOhzhfqvYx&y(V`huiv^& ze&g8piP7IDz$A$&$-0ma3=c;F5lVPz5L}+V6yR>;^y|CA?O3(MT}270Rg3;#1I5hw zZGrqK2q997%BkFFvy*?P5QP)vE9tXUHZ@**malma=KT+Mka+eUu)a_Zr)vQWX&6r; zIX)0v?Bcis!MKX~IV!=i?>3Mf+A4fSoK&>#yq(O;BXJCwF4ko^fX7NW|5`+Gf9_l7 zAS~;8n|EeRx)L}8s^gPb*{x@|fyBlimTcOU1DWB*&jFN3L(-G+x#K|QW@u6TJ3LaF z&9I+rF!)9tUVrp*p9rQa6VAGXByf1cr5{K0vzqCj^i?#0L8ro)8)@2%QfZS=trN_7CY`u?5m$U)U+vw})JKSvvoM{tadiL{ zlBNDA0YDn0{#I7V5~kOv{asM4Fg%i($z7Tq)mLZ~v0CAeYET#6W}<$CefOj;BM*-^ zKR-8Hxfd1^agUrQKOf912F*RsCnE%v=#0$5Wq-brNjN26{A3H_kY>)SAQ+ec-$0^h zXcAX}AJsec;eQ^haROCzKA?nD(nwCj9IgwbpPGr1U<0aMe}10!Z#eygN`71X-?!t1 zu&H<75lcHAOv?Zc%GiGlK;f$02jD+1;)R=HA-(K&_}|^6@IPa}4>+MSSMYKaRNV_a za!bQ_stq>0x&W$wq2v*Nt=|MkrPh_KAsD-ix*>h!fAvDRgyr%7J(-j6zoxl=z2syK zEic$Tr&w3wPQ}}{%lD6v?l#A12rgjN&oY;|)i$%_bQ+2{wQ|ZrZ;smll+%Sul-lBj z$tW460$+qwrODa&ioFepp3^U|Vn|D=Ti9URKHSoSD8>#uL6ta~**++Uy?uAeP&A|y z{oS-o8hLj~ST-o>cafohLwqQB!>5*tXu4|`?`iyoia9eDC*hXhdO#|-2d+YwJqDG7 ztu_q48b9Zp4ODJH+ayroZ9YKrV-}(Cl5q5((wd(&rX|`-y}T)M*-5KV zG^X0jDrSzngj6eeRDq)JiA~<444QFZ&on2hL=|J@9_ke{)?UlJYGQC~akZLTlZS%< z{GMPjl~FZ^LRN3PfM0j(UqnERJUHT{t!>JcL?)0d;;Qrc1`me}LQpcE!@TOy>N%;) zME>V?BMg1zbeQ*x)F`uHvrigO+$G8X9>#BW*dd_jeD3S+>zZ1l- zmF-y=4Hu9A4)w@P)FJQ%ThuCQRgQ>zTQ!;UjZL%*5=z3qg5Q5Rn0OIxrOICr9|B#^Y^y;2d{e;kE8nr>$%< z-dQ1s(@`dg%#ytib6x4xhWlE{X$mjh_@uJsUO1*teY+<&o69p4yk5Bi5#Hz;7XdeE&_c?i-BiPi%lYGzf|x=CRIglH z;my8dZuDq2`0T-rv?GD7*IMT?@1Q@pTeMVtZnx9(a1St<5P5SdC+>7$hUSHVEbsQ3 zXNKGeH{}>|wo3pk#QGuAs2T(}6Z;=GLx&TnzS0uE2VApu6)l}`q52i_4&6Lw-Ei4d zWLfGQlE`PoMFQ5D}_Vqdo<(Ng(Y1z8cZ zgQ&1b*{Kaq{#t^HyRMw{vB?&vVP}~BWD35}r}mqW;9g{;OcmtcMu0Y(MU!foW>7Q< z(u_8;o`ZaaYUwDd13R6tGezxwm3+B_^ywWhGEv4sfRA~U&jBdkm79D!maT%o#v@qy zP>$i*^9+19v5c^P52f_)j2(UxvJMuGM`>+3-xSn!eEx ziSM6=Fn5^td{H@cV5WUoek-oIFj_dSdLbFYLRc`{=He8ic&lzq4jeJ<6}i%-s-d#p zi{$D-%uZ!dz}X){;@Zf^G1LpRcMWbt97sc+v?Xu8s6)pV*QO&;S~8lA&E01!#*KO9 zPo5z2kRQ}SX~~*-q>l6sU^zP?Oe~R=7*Xan%Yi|~GR+Gu_?;a+pkH>uA1F|Qs5L!d zSe~asV6&TG$x}5b`gf}ZuLxCE9f%?M3lSK;F8G`lsC7gZtr4ZyI=@+dYV#-PICubR zBb73TX%i2Z9dVjj&M$84a`=uJyAb6(arJUd?(zfC@@$7_8k{+XbwRZna3Y$tmqU_xXhQZ({5knlimCR{p|9=t?= zCPC>C3s10$|I7v~Yw$FqaeN?DT&F6sLbLsPatP!lAV)qxIE+S3S0Q}A-(QA__GDPh z9tQW+!pK<#%Ft!xrcCdKlPmrpxMC;rQQcj%Lv>!)-)&*a0F`7pQ!wWrZwtopq@%_S z_UjNZdZ;Z^JE)uh^=d)vFT>*lSU&fk49~BP@mFf==@4frA=od|KL@uPS~kHY_*CT$ z3S?N4BLf!=3#(M}xdu=>eZFUQoQ&pbHZ;)wMsHtrL9#t~I!3`uI;!T3&U@TU@E&O_ zI>Y=n@PM!%cBSU7qiKfjLB8DO&^~MxMxWAZ)n8at@>@X^VEMxTxdQ2W&#L~}!qM~T zJT*A4s{XqD){1lC9hUHUw@cqF#A_T5GH$qht7A7;-Y)JwwE^p*4gkrl&V?;#6tem* zYu^~EZ`Y5BTIaEjIpKx=|DApMAKpmI7mhk9J|xHA08}m2i-lrr=4Gw?usoeh*+Hd^>wvrLUG*K| z;&<{dyEM}AyT80es-GYEolPf5JpnNg{z87NX$lUla^F0b^$$tibW%#ba4 zX)1pWHh04som3G$<|i+HT9|oJ@>lqdxp&r1`1=KfUOaOFr#L>KTU#8% z9o5c~bXL0m%jQU3Z?iHgh;qcyBkmmC$n<5Zu5#2f+9|BYZTbVNK2?JB<$&n2lsK|7 zp=^2ANs&tY2k4lcSrL5`@!Sku(Q-E!>ZIiiH6F_GhF=t2J7tIDJy*C)x~ZVRNGwiU zd-e5c9t38XT3nYpW42~G>WH7qA9yXRu1nS{TotM!TWYP*2JJSGH|(op8eIwuY!^Vm zJ!6lBB#YLB|)1TH(dq5J()Q(`WdCsgkTwX6axIIl60#|D@?|{CVtRmFrMKROk~4Y6=*+awp4vAh_(D? z+Bj+lMTR{&6VkpJA??42S{)?F;#F7^L!`l0k7~>NFLC*-WU#~p1EaQ=a_Z$Iwd6G> zq5{8)LaGZh7m1s`#}W-NN7S?UF9qH`feMYw^?(BX)Ld#)|>&QNp8jL+z998C;mtAIA z^K>+dziYxbi5YCESAHyeAb#h)7MX$|Q4KFgIBCc%ZMF{~D8iaFiqP4PT&agc3K2Y6 zQk;qW+N#3$EQp>=^9Ta&rJUXrslKwn5f|7=O#D#|t5J@#0H zUn35~b;aJH=bhTh>3eqPeSgE;dcBQ#eciOuVRO|D$pQ?IL3%{=?r63U2KLpItPAe` z+4)IuEp$YXJCfP*)E&qZ0vC|tl?oGxOW+rDVvBr@n{Q9RH_YJEw7s)3FaZpxVZk+s z+~JY8c)fmq3qO(~Ol2`e4hK1t(%?S*oQ zbEJ7=23~igsEp-|1Vm6ae*CUN+Cw0&M$T^b1Kc$_J>~A?!cpfz;>DZAZ7zVGnS2^J zOtNa6{BZm?$*j%p2-!CFXuNJbp)F;sdo#v9>f2!LcRPy1XDU_^6q;1uQ?YzG=C$Wj zbvHq0OVkDtjjdJ!_k9~c-*US=?rzyn9YTsDs5)hJtuY3!Bp`)Bk}smv4uhuifj##7eU4`{4LhgHlrm!50`~= z-L(Ksv#=2TV2YiJRto8C99bb(-KQgu$6=<9VA)PhN9P)Q2po9unq?09Gn+_cuV#TB zR-q9xC@8h2E?@YnZ#0=&Ah2mW|EN(=p)&T4(Vz{H9247oD#Ln8Ct$9Fv6BPxMDkDm zgoj+Z1JD7lYvXn*XX7`pqHk^?a=u%<;hP1G>(_ZEL)?L% z!wO`8iiix-yJSqiUwnd2Sb_HchfmC@k^z8DH-|DZt|3KOk8P`NT_m@1g7STTa$3B5 zlXE_ZBeH5|tKEnsoxAln?kw}1o;C)ilEk;S7QX(1ovA55g_jYihkm;-r?NVPiNQQK zp$roTIRQ_K^u^6YLrVks0j%>vX8LC$?mdJixn{ILu&SKj57c+L>2a!DUI_JSlT54F zw)w}7+lOI);>N)LE}*GkvH_ZDxCjJZLXTO9@hH~?x3)_yOU@ui@xK8hiv%tcVwc9o zx^xpa!K#6W4Q}+Sz!JXenj$GgRxsVvtznQMYocD;ZOlWOO4==a*VAqks(Z?u3=%!a zyu`#`_;=rgoCCsAd3V|8VXeNrQal<4G*u`S$dQQJd0NeR*jHzsA#|-c6FSLUm7k=d z7bE+F%~4G88V3mJBj#4oGC7g^Y4QPQ-H9iOJ8tIdfsva#O#Mda4EVJH6nW5<(fLQO zb7hXEKKWy2FS>N#e*YdbL0oo%T}bX!c#L{7TpGgCnb-_TSZ6Yk4) zWZiv8?00{y-$**;yUw%TQ(b62MQwL4Gwk?S$l8T1WdUD%i5Uh=?>rHeY>4eFF#(}E zN5;FhRZ)x3vMX0VR*v>u%EHdMFmAx3p)X_lP(;TXtNC8@_-HwKx2oxBhPsf91V`8d zy)4=6X~ZWdC-r)-R`nlSuv_;Q$GSX`3tIE)O)!{HTD_kAVlJ*wAh5}ln?YH@PNsit zQ)X~5IDLFh2puVT@HY`rVt4eSR{9t${~Q^Ir!E1S--C!9c7@>)$y6+i14xLKFFg(? z$<&;gk?{J!8e4{y>GFJEt;#SZWoJPO01f{*+^Zx zm$T;0!Yv183P|~PnEQo6vDwW41Rnz1`IFBxqb!xC_8qd?c<=)0OJFgyR=CE@u3u(F z4xlh(z9>&&-8&Sy7;D+N0>99iEpN-8kLotu~6HpD?s=_ozh78h*o=zEOGO z{b5@XzL4F#{xA{jv3>Klc14NE;}W}4RmzW~m^ntzp-C*#qGkoA)*kfx=GbHuW5z4- z3_&)U??Ss2Y_%%Jfk+KpPIbWAN& zFSg+L7v!_;DJ-3dTXe2J4_B>JVCDhVK*)}0g=nR!9T^}#A@KaZ-cy%YUeQpI=?$QW z6WD0jYg-G%4>d{er;u%ee38rHlI_1*RgzRe7Y!XimMevBZ{fC~{|G;VL!(Ok7laa` zmnjh3HtdfemE&~(#bCu`O|&f-wj3rW0~+`7_Wj#Mq*xpMR-JP4q(N{lY^d}C*p8s; zNmuFp)!k3En4BlmuHQC(zrwFqX71Utv1>RYvOoPwU}Z zLo7cxM>7MbuCg2 zcb88ul`2*0qDQCzSrX3xT>7?2^vn$Pl7BQz5y*}hj0&M)8Z%HD=YemLCc=gwdY7~FX=GcKb^hjkF=8CwHz6yJES2?df*||U zCnwN+A^~XjwLk#hW?v8oo$sF&6g%X?ZWCQp+-u{Mp;AxcB^*@t@Y5EmmZry7B0=qz z8MZpIIljcx2$9lYd$xdWEcp}s5xm0L$KGFD;0;)z^1tJP|2gs|C?NNWFjDPNFc@k* z&eDcxnRopm8=TJ0tu(^|Ue+poJyl=n97#|O2au_zm4MmoGC^7WD21F!Ej3}#okkDx zk|t^uzzm_8K`M3 zt;*q7);NuaFR^C7fs7TQ3b1QBqv2534pFVp{`yYCMWN7E*|-{X4y_Tu;kq)DT3~$o zmt!QvioekN1W2TaBGs6pucu|~?Z4)s@ju0> zK>nj}Br*-W4?zICt+yJE41%4&(uSL0am@sJNuKsj#rbT%6mfTiyEf;u8;}ycL5zSB zi%HJjqN2A1=z5)*^XFRWpm_3Zdo#<%CH@!#+TJZ3!I+ZS-2rdnk1pF`)@?qJ!j5ka zZT&vKY!hs>?vad}C^LIlU8MnPYm_zaa|&HCgrHr{Y80AacouwW$x*$sp7Eb~Kl#~& zx!&h_pcDYgy4RY+-)nV1*q#41xrl}669g^#maa&jMw65q)C`JWE+d z_gI053|Zh)<-3s~k_h4MP2E-{5n868F_EOzYje()pFM!3ZK9^1fBbsSNWt~Tql1rs zlTz790e9X?!hl%J$I~aI8ay%gmnA{2oJNjxH#2#59Z1`<5>qmpFmrqZYvcAu8@U#= z?FUv;{}m#!!lx&@9yEZQ4i*d8$w@_x&7y4A!>xMxAWs=w3V0#2gV z!FCFJv2_g=Ky&?DMO3TUlJ`n5iw6d`Y`HuGBYU6+%!@Qy_75BDIj2Rn;js>1vBM-% zgK}dlCbOTOG8ZGQ%sgV~f+@CTs9yD1uX?}Os-Keygzxw(h|p!D$U;c1#9Du&p}82Rewuak-Vasrb`JTrv~14*Hlq8a-Iv-qoYIlx9U3 zmCBIAS)!r*VnfiAQ&i`lEr)bWxnIYq-%yMbJagncD{g&rQYaF4@x}F<4rCn1Le>yZ zPk14Vud*5oDOss%KwjQhl%Une#A_cI_PHE9B?p)k|&02(w_Qt%4} z0C3#$bAFm=TuY$$#tihv`}X`%IKUv1_QbRZ5SE`Jg%! z_$v!eGYp5->~wggf^A0w8DBU9`#WNBm`ub}ThOyFw2S4i)Q+9~7(zqWR_AS8% zYP#q}lM;EMBx04|ZUc+q72p_MbO>pZo@)o?B)GI96@^lcp*DKpp{v+aJCL%}Ii!~0 z-4}$KLvWjgOE4>$Wq=g#S%v_hkem`vl#V!k!P+@L9E6qtSL(@HuD~ODvq$3*IgCh+ zJvzF&?-EksOXeyc+sxYe>f!Jrp zCXPN8ap-0Q=-0^)Bhe@vgA(`k7Ow-gA2CC^br2L~S}BbzAFj~FjB&RmlF$*G_B_$M zv1%VrK$OWS_OAst8C0k%wA&fFw>T-|c+QtPu50vHDv$3d?93*e1x@3b{pl|Flb_DL ze4HfM3o99i+=F~67V**R&G#obHSnM#*EwtFz6ueb=tqK$LHhlGTg1?K26HL2o=aW~ z08rV$32Ixc$RpTdkw8G`Xx%YPPm&d&p`CVNJl{Ej{={yV-j-Ju1`<OlYv_xNSjJhij{VS-xyCP}v$3Nn#)}lVpkJsDb0VYZsv! zA$|zzjJvQ4glH1YN|$B$gEpvy<Y; z_rVZmoGf{2+n(X!z&M6uM^W_akD<$qz@OZD*}9kLi_uV1YG6KTb($d48=O%>Rk9kT zEe|pfSo%wqNCY8?{GhfUcA$Aw2-<*SGxUY_@{Xk(ynNIRd}#o{63pP3C4n*R>OWhy z$rNRD0tj}Tc#s%f=zq9GF%78lGo5t*LjOJgj86znd8k{xwBp1PHt%>B7QF%N(3W8l zhXXeIdU(}N{&0E=2AoB3S#5s9GmZ2TvGK5D$^`3@`&XoJ-DJEwfD`8Gm)Y1IC}hdN zAtA^42;nS5?_(s%aEcKfW; z80FOKZkW=(G+AY5^}}K-+Dre z*uIt-p*#=~X3wAd3X$Nv8-nYfXpfY2xFQV|b$6(tOcdaJDy&fX%s)CX(P4IpTpOUJ zQ=Ih4mMrQ7gux*#gA-+2o{Vv`#T;B^#qu0X4w!0WF01l25>8{mnu`qBT}W8m1wj0U zl+hG(pFwZS0q4lP!u5;HonwOe6Da|;cJ|Rs$xNaX0h1%|FaT;dcyoDHGG;)F%+ji~ zi2}e?3|fc{cZDId#${Akcu8=9t+=ghmL7eV@f4z6dr^Sn8Nnv0QhQ=JoOB_U|M*3- zZY?|9#Vb_Thsa&E2OluZrdAKb3CO$-d{XKhZ-FADZ!iE(%)*G>?j?L#B7EL-<(R%! zS9Qwba-^g(WM;0b>L?2O;@-WqT5Zbn*-AK<{Wnu`4~s~qG7r(xZ~9sp-B=x;GjuGd zEU&UgW!h3&vXR+7zngwQzd{Key2m2Tq3By?1*jrQ>El@$Fnh-Uuk!@N0#gf_ek!}u zha5%&Vgmk32GBoVX!RmycK3H&EY$pPICt)Yo#CYKE4`zS)r>4fEN!EW6BWX?Nz6nt2TMT-Q1<03lu#BelsLKqD)+R~5=#u7lXn_sP@E zd0&>~_jOK>2+v>+T!*vs&Vf&M>P3vH3=3eGyL*9}c{Cz3N#$aco$oB;9ULl%^z+zR zd{+Q?f>Y7o$KjVc|cql!(l1ymG-az08Y8iVBz z=aBwgryT6%NlJH=qs^hnB!(eY6( zZmb3a1u9Y3SS*p&$&Ou@g>4OLHsN5`);j`7Ow3|~dUNh_h@!O@3mC1Z#;JwR^;uYW zk#R`(uZ&}fxy#R^W@s-Hw~#bzlWW|gd|OY}242Pih)q0xb48YVj_!TF{{cfUV z+|TQouTy#ph_3b*ubzT!pINBiCfp#Mfnia?;LdXRZstsn;eBd%rQ6+?xuZHA>Uqe_ zVM30o|6P##^QK|kCf=C0{ZyG`^_L_?)!t}UJa9FHz*Rs)D?v4Y45oIw@97D$!d#{3 zP^l#4KZg_Y3XnI5N5Cva0M2=d_Fa@GmKRDDGD|twmhYM$0ULi;oQTK#B%X;o!2nnzZ=qu8YqJa>sL&6RPzk$4*>7 z2DoE|&prHxnVj?%2_y4;p_j!Y=#L>uoYJxF4_wZw1UdK&6*0lUR5}oCv7ahKTg`j< zmdIdtl2g?q!Ja}uQ1h?L=XH`%hV=T@<%cJco`-)$Gnrqi!P%Jg8`M?dr;ey+O?XZH z%nj#{#>KNtg-LNUnxK;d!zHOKRKGX$OcJ9kjb=v#1n1$8bwsP18HGe&x5 zPN!Ve=7Wy~RH?Zg^mR!61E4@ZgA%fT6JEMhmC})TSmcYyiXSJBf%Mxa$(#H*we&_m zDJ0Qw+Kp3u;gJWY(}c6=fkfytkKQE$%uS5oLY2;49GKsU%tGp*(FZ{JRWLMnCwCIz zl_Cz#|u%bj){~ntbd2Y*&+Q{ zoIT5!q0wkfz!@TIWr_p9Yem86%6Cn*jSZ~DHC}??2eoP>wr5KrjR_`9N$oR5^5eIH z{ji;Ti186zmzU)JqQhXf%*=U^4n$CXY0(;HWVniL`a?^!4)5#p_60>HyM?*&!(;at z#Zn}13-#HW)1l<>YV6SY7em&x-F}Lt96l8ifaoM-9ux}ulpOq#RWu7_F7f)NiGa5^ zQ4tXk!A6kwhh2aRtbMkZ3qZXa1|15XK`n+<| z&iz%O63d~$>Dk6|4==et`O3C7V)-sT?;`{KQKvw)&Ol?%ketYUcL_|A<$p;3sI#H0 zl6>9zH>E%)HCx&~`5; z_hz^d$IM=3()#0wch))yh5^28AQF8V)L{YUT8G4A_?dToqX|G#Ff_P0@b*t_h|LI8 zC2$TDo~_mL#x!%xgIrOll`Q)vy5dL383I#pKgFcF4$kHp{vH{QiVfo{(^94B$;gTM z0IB62YFd-n(+MgGm1=;+W<1Wu5RtbUWSteKa-*|ZxXj7(}#G0DZL7lK372u*uy@!S#=N-nMpYaTK}G08tb!A%Oz3Q;iaOSh135 zufm@lhE5_MYNLRFpQBOg=58xcA08v#&$Yj^!X zO|^>|W+#_1hF<@nc#*w9b+86XRPsi%bRI5qP}Fm2J%9rF2UuZv`bbCCOw+1|HFx(0 z{v2*A+4NCyCe%M@^;@VMk5K7I$hCfaOD69z1tS-=_G6Uh68Q4M5_$RXA82r9wKG?Y z!1unaeWKrx?Y>aG^(Moa)i6b$asD-#bqJv(Ns6)ac`;-Em?Msd68!N?DtR|5GqfMhGB?~#H#t=YLKCg~&t{N6tmSh{& z4TM?dX}aeu&>M~THn4M=?LRjTS+d$)7epqCt>Tc8OF%-s!VJAyg=KOFpk$`Q)W1_m z*V6;MNovM_HC`mt)9?SJ3CTTM#(;BTHNVHD{d-ELWf#2c0bh>Kz=oO6P^-2e30)6FNh&KGH z<+@Z0+c*Qz?HPdkrV!L5kYnG;=I+hQafaQ}pgt*H>~aGiuG8hyPUm|Nc%iWy#hTc8 zO~aMRmgGj9Zl`0E46}(x>CcSd?+ZUJCwFM=Toy}?K#e8sO|Tf>I^$C&_%d`R5g3J4 znl$x!cjCc8Q5c}qki}^k8pJsqOLXG6WTLmJo5gIp`ctPkf+y{t^FrudCh0Cmr!K}} zcAixEQPVT8{Y`XLtXyZjEhVLDJRDIT&JSB)U?Psg06=6|IkQhiD`&S-8v3loGH@v$ zAtP9gfJV@uXF^DYBkvOvi$Sfx?Re`rekvwCo88^sv14Umn=O$79%BF}QnYWg;Y&Ag zZrf`$(8=XFoV>m076E`UV#IcB3Qh}=xDdWbjvEir7fH@+O6$^RH4ReDW%+L4{Eh>4 z5_ldG73w@6N$#|pih$d))URwN8kofwAlWM3j9j|2*u2YujzB%pNf}HBi2uALK!?C` z2X;RD9t+=nj%e>|CB^yVl79h((Fg@%u=ub?xA}q;FgS+w0<3$^<`Ae_*~5yoRn~Qx z^vE_nC)*#l#^Q6bhi_ctjweu;jTLui+RYL#elmDq8kGJgty zBZ;hh`7DXW2h2BM~6 z;ck|#Hxkskr(G$jeI5G&6QsH@9)D)q?9{hH19^{iIOO~p>96UF8j_E&HSCJPMHfdsPo5$q1YO?!hsjssXjKgdJBF@Jg>d@qzDA%QokV~w28cb^ zR*w_rM7^MPq-28NDPsNm2~R+GoM7(?MT}s8$%`IEcRkVDvBJ8YC_KdAwIntMc@{Z` zjP9MjvEI?lTi1)AG1h{yW9h7gMFT@5+oESjcY?8AH(Ze z2;e{=RS&9|;3NSGIYfKi4>>Kxc4W!SGV}xc)zK>)ijpc(zXfCUuqVf6)?mo{DTZ5_ zX)}vhFcDd%=HJ&=D|haXr9&dMTBUCy$M#t~Gv=xeeT?p~Yn^>@syZLG!Sql{L*;RD z^$iZ^<3cLOfGvFG2@((xY)hh{kp%JgeX z`da@-1BC~X=k;Pok|uu6P;WDfeU7%@D9m zdU%k0du%lsm5^WHfY)wskRnspw=A$NtsPUc_jocc0B69~A)8V3C^6E=^7zK3wIJL> z*^JASqK1ju$?$WNA30~Dd)$!E8LLWzg>pr?S5J!@xQkb9*QI7HxSzOx!_if@_MQPn zBOt|VPJ=+bp#2SapV2h*g$K|)1NJ01()k*on`IE;S@p(ztmG~lQm703as#N%#C2fB zt=?3=06l9AgJ4DGaAp@K`2jfD11g-IN-DD3KMQzu^D5Qce*{el`429qeWfi32|MjS ze?axZePu<(vBXhN_Nm5;$2hsItbA=pCb%aK&rfP2lHE1#$*TCkL*47EU#+m|^nS_j zeB9%|fMWL#Uw(ikqEmI~pisq7jNNmTys^=YMnuf^sKQSqJMYj?h2m^~3N}XHQ3|im zjk6&}-4u4k@|1ipfY2Z=>&Z8wsvCu3WL&hO{{mVOps|9xXWR-J7qc&}5*#yR`Hkiw z7u$kEF+yWo&H5FT@;vs*meHpnY*EB~6f7GbyXSWC1G>r*)*oCSF7U*#>37WmCzIo{#K z7(`L-W28hqgBtwiw|>UaGuA=BCTs9vm*R@)<0b(3HsD3V;_Afy!5$=0G&0LNP&z=S zCROh&dmMkv7>kDruewML!7x_5zAL-)CW{G>QAWIRpsy$<{AV_-4E?w+9N;f5cwBGj z)ypi?6WESZwh~Ek(-!Y+pU{adRh_AksNZFC2f7??WY+4qU!d{}2tlz{mkp`>NjpLo zAV9uM3@fT$K32xA6p1GrD`#bY`fuTM7Fq$Dfpx%xa@^pDhRY+K!zxL+O*%MB0Hi>S zq6iO$dzUN@a?!p$rqeEMXPD4RaujWQUG54Q0s(WJXP9HtKfONMS-)LJ*E-OEp>|fL zMa{)igasClZNR{<(|Q^VBr^zBjH{I0aET=0`vN-()SiV)y_f&BDqO}id!(OtaK@TP zENo$RfcgaEq!gUj0@SprwQ2ozvWoEx49I)o)0Y75yxvC!%f?Nu=gykQ7=?hFr)k1b z3yz>*13ZYTFb`P^_wGH-hBt4ejI>3o_ok^1SOt1Ex!aVPm%v6As}1xP>d!uKQNsAcT>zjZ9(i&sgZoq*N7+`=^-?_O@Mw6gR#_fnLsw;`(|zObOV zzDD~dkgndx7U(kIKB*u{pfjv1qX<7jwKCw0Salpyg|0T|k9~T@P|-ovoJzl1!?sH4-l9+jeUL5Vp~Z#p)g%Ra;Wn6uJbG7IPsA`mfU>vypz|c= zyL>x3%)kjpzLqCm3;5IvUtL zdsymFDstc>b!5hdKY$Hwcv+w+0mChbcG40+59409>#wF) zIR)}M2PnqFo<`gUBOkZx+%prt3Ew2DK{NCJLNdY3(Yu%Brxv*rC8a!(rVqUw2&KLCyYE z9VhdJ5ku^y6N1PXc!aNlj0qvnoKIu7&Rs#DU@CRWL@Yzj;5vJI+}g1dB*>JKwljn(u9NHl8iIamJ>{~+5EfzQVcAP zmzynk4bM1LlHHZBr&Ox|Ij@e&1F~pdOg!5*HFF}VE2S10Y=kzvzw=Oc-!D^&|CZC6 z_u}+`eD8RWLVT29pnG_}YYrK8OmxZc^(`uGA|^4~3$Nv0I1FNXr?#EOBH-`^MmCfm z8M%9}kvuUJ##m_vT^XW?dBJ(GirhMUf8WcNtQ*#EFNTp5npF8yi$cig8ps#7FR3#=pz&5<>tulq9evo;$ z5pm|#)=%!m!VX}m=i{R^(NM{b#dp9YaiDyVYD|2UkHb;Cp}5JbJ9%6ElbSn&&pE9Z zqal3|(<3M|px?dGOPPoOG>BG@k0)KjOP3q^)ekw5gE3##?uo}xr~*D`<-oYH+61up z0`szwgp^a z0+Bm6#+3ea5{1ySNI0|C=Gz=`CymKc*^;h_)m&8BO%Xi;~1u~8U;%<|OLWAn@z%6~kH zw}@J%jE~ZqBj*1x5H-z$SZ+5BPCtr)LSn~-P$(6BHo2XXxu0FXd$ zzqxO`X_K3jgjl;Ml+DJA*T*Q~pu?A9?jiF` zyg8kxpju%BNqwo-^2Bp8s84}tQII^+YI`RISdcBF$8g?P(_;x7*(IFUJ^t^5rK@9R zb;&g9|7>Xznn{Up5PF#>D|dhtW2;J*NEyR}M8{2pevP z`!;Hl8XKR+f&r)KkPKWObOfomrtZ5Rs%la+$oz?n+p&nMa8>Qfz9C z&rA%v=9ohZ0CbK*AmNx_*1mv0MY2h1_)g6Bqb0ob>L7UkNSCo#fgr0|)}*v9&Ee@; z7QngL_+#Cby{J;W`rSY`?T`Q&m;eQ(Q)>Q+rl~y+&HkTd_KofrPdla##vfP>_|d3r ze5A)6#atl&p92x~p{qk!Bns~2-SSUal4&Pm8TrEfRgZp?F1MEph{Nd*#A2{=?#54<_}%ziLe%?8QGrmsl)5gK*QN0Ehq}`7T+W3X!Ir zF{(fV=m6M)UEoPy8>j1fPHvn6oB)MuiE%Kj&|Va+qSC%nOobp95CbX?+5WXv>K4U< z8N+uxo$h>?eJammJSRKtqcDHu02xpKW<94lk0Fj+s!)+} zQr+M26iEN#fCZ68MLHv;zOk`%8pj1NjoB`ujWnRibI>jJhuQS-~)41Hc{*kA_rp{7|A`t!yJBT zhK+S^eLxYH015~IOc!ZNljY8d>ar=k;-U^d6x}5da?G0cIXlV(`nX>kSFA-hYN+ zcK$#XZ~{56@(_?L?1OD6I=N!E{)N-(h0QtJKc7^|>Gp5*I7WKigM(GgFZ8G$>_-{+sUgsjGsgpJtAOr{iBK}ge5M|JR-h>cVUeA)g zK_jk>f-6XmIMclYFJb1-wpU9;S46KyP}CRV2S^Tew31uLz<>Z>I7V2$Ww3ak zsTe?&OhM;5i3k1jK#@we31LaASb@LT*rY{>S9+bT5*GJs1@1Tm} z$65X|h@_}L-;lWeJ?F5c$9=z@A;o{t_LO2hYq$cR>WDJG1Q!ULa`8r}=2c*^t|dUO z*b5N|%r3<{nb;$JZN>79?z^j*xB3%v%UYRsM&W6?g2z=Uu{4D8bT1)my5WXo=G3tB ze*8z?hwSNt-L7+G@5^nUybj8sWtL6yD5bB>w-gD1_aiVbi6qdN8Lgb_|Q+rP8*$YR;W^aw4dV<)sPA%B}t{P znbQQZmwCwtNo5LS?z!3rE8+cC^0Vxy6@g$|+(W1y8euzOkuY25UgmN@LpwF;5Zhw( zC_Y0TKShK5j{rUVvZC08x;ZFw#?Cs(Vgt4I@8Y{?7C#&c&;dGqhv1$lPsSgXJ8?;3 zoY`g&Pi41_oJqrm$IAcXU!*{2HilFDqKrtic2LN*P33C~N@~hMnH4yHQtG6zl?%x- zEFC{FI4aQ4Hx^IF8^Rdrq{g6RyBPduNa!0kw@zOGNqZp(sy0x|bKq|GbL7DwHUI~F z5ChehO4jC&hUSt%N%+w}fXKlawXJ3>fsVH7lh_t?+Bg=*f+x(5O{#W)$UC}y-&Tr^Kwy}r`82k$xM9Rp8u|Hp(mLcg^EzTn7W$V{iwdM~ zqfxFK`jE~21MtSGGx2~6l)$6e?uR>!c$?tmiND~BjR-Ri9DtZDW*b8(Ujj~gedR1Xe<8}*pb7eL;z2{?G;_5M>Y1ImmUY8)`PjmRt6D51zgUe!Q7XBOV^vo6SPzPpO$N#On5J`m?*n^ zek2QNK$^Fg(VedK*k@?P>xh7>2mkz~MUf|>Dc=JM@Av>h{r2=?7H3<`VWj(+c`Hzj z)_W0CSLOI@ZN?Lo#Wzua4+NaU)}G{U#T8}^4#A6TG8SjcluIP+Ym`X1$$}EcR5QDkRH=Si0A z*Uc!5?5`2`45xKNszEOQQ0U`eQ(k`%yG%DZW$pAu-DzoTYz^$`_L%&1UkGCZ%lM4a zi&u2TRlt$Poh!fOWVT$%NpRB$vNoW{FkAekJhvlp!k=Xb<4e>n7$1`!jPI^-sswTeH|jq&(Ami83j00|e*XgxL74grD{GP7QsV z!b}N}ycy1ZP*hKgvS0y8M=_|#xYI)H*TU{v@OnwiKm^Ma4+(1ScR%a!_~gc;pU9sT z1tot&eq)4yxW=^|GN^l6Y%8j)%z;;O-%cb%F)=*K08@y&5RPzj5Zz(LdyhP7Q!~2L zS-GM2fC%&fH9((1FGdbaSy1BdQ_tk}5>TCKl?EFs#f47w)25uQS14q$wPRuRcRecB z@UILNgC6B}yQ^1^r!dL!O$1c}+u(Hznj-rnsEIbAt9YNcw>Uxj|1?L$F$p}lPZ5>5 zUeQ+f7j>{&20A@*`)*qYrkuEhnD1Xe#otT$tN!=EHD2$DW_3dQdwl*=UiKaz8F?X| zPe3V|u7p1E;)8HTC62-8TGxlp@Is+qBZs#ZgsE^%!rkl+;W%$-BxlsPFr4Ax(yXFg zZVLNqY8chyy#`F~vvA)40CmTQDpaM-otcjZvo8$%1oG#98eM<}kP`uCpEAZ{Dtqjq zLoIcK0XNj=tkD2VVwF`9EV>HBi=szt2;iwsrcUFA1gOlqSK?Hx92^p;Uu92`Q>@<0 z002A<;=lyDl4EuzJH1M|4Fx|x;@Isd*`NDX;%(hZQ$8j<^qH&Dy5XstU>MBPY?PK-NJ+e6F$O3-rOqKz2}6<9)`R3H%t*QuH%QPjd{1xJABRe?};MqbTZnmV2b2rAs0Mmom1KyB!a zyA_5m-pdvWXln-_ZrqDBF>Evrn(=D-YZk0M#F7Zeqgs`I@qB^|a@#-QEd@Z6+Vavs z$d*9ve2Kxp#QlE#jS5)SG!=8>SM%qUs9w&F)dqr8_nr6Q_(vZ8dNKkvg+^!nDS~)Z zI4-MVz@Hv)7?0e&a(E6zC1!Lv;!bZ-uK$v<&u<@dYfv{b3&E3#m5$>n@tp8k>(xws zxu5CIbvJA(9e+d}taVpjI`n}QZ0$bW#~913G+*oOv%a?48bc+1Bm|~|loIrZO{sv7 zM|>A&*83cG*~X=EDY97%K>k&iMo_m!B0>*U`2aSwt#P|(%bQ+8*~63LqB+QGwIo@l zn=Z~qTp^kamL?#_(z?9aXs9`C>YR&Z=bLGWFULy z;R6#b&I}1@NkPnxrWkGx2vob`6;PonskX zNS%Qje2bjvObAB=oU~kCf@N^C(bP5lAfYsC|EL@XjNI+^2wwV3hm8nuIt1 z0LgY31;F(yS^C{vH0X}Ez;ZAE00RI30{{R601@mH>PCOjJ1F-ybHF?Rmmw_{`?0#K z*->6c$w;}BAF5^?NDbiY`EA*RToFgBQx{W(^3|_`XywSyP3IKGV(s7nkrb`$v2XD zV-hU#Jw^l+%hr5AhRH8vmQEFGf(SGWtm9h{R)< zvVm4Awly9D+Sp(V@>gv3elBsfRQ*Bq03IZkaBA|dii*~)`g9!KsiIIz0@ZPPm3JA! zqW392!Uy^@f@5dA=KNhAsDxuZ2$VrL6O;tGio-oGXN#{0<7lwe^gDFHR2D+z#+<J2MAl$BMLK0V`GT8}(COh{&-s<`iJ*f%EuW9ShyhH?Y!~$ZOX@>*R#1mHE zwd%Cd(w60r96!5rQYNS}z#X;Hdu-AYK!h78pkRx5iAGXle*demC3LIanm-jH{x(PnM``vz;#gBNEY$NN9~^=77LJL5 zyQ?B)f%vwIi+TMT{Ll~?Q7UmMH6Jbze+cn>lG*r2TpH$VOY=@XuF86f&}%Yh8h@)8 zzf+cKpv$2FtG!N_YSStUBqEo`#cv>xbI6MNO(xK&`W=XjlDnbwF*~LJM`AFL$4n!C z8_w&8%wqHC2VP2qju>@|c6RMK*{3nX6Q}2Z@aE$5`c4R$VEJ?Grv#m)ZSHdX;##+_ z%S&`;C?g5}ad2aV5%&T>o|dNS5#M3OCAXTo5fk)av{2myDG>zJwjBV;=$gC}@`zpl zJ=sr?3u8BVZmYrweK>5I%S+_rc638F&VK%{Xn17yR$N1gaBA|u7UI&h+R{3&gz$c9 z7JHm=@*CH0oiq*QV;~RidLEk1)+c$kDdhtL5VTkOEAiw(m6jA5=g^LNq{q2|A2JGo zo5e>nqcuhN&kqw3nFwn%cCBfCUXkE(C2D0JC+}`qm5SBs963RAEns$ zTF00O6#WLK9QPDfO-I9qMx-+`cKyPQ1e91=P`F^c>6*&Ie7bI=)#O^6j8#f_?xQZg z8~^Oo3XDl+bTCI--Lxsc0m5akD-1?(06YIi0KGZLWoNs$7{TpNJ`}}KqNbg8>Fe9e zRkJ%&YQP9iw#bIU17{N=)kIuo-yb=Zb5Vx_=k}cQy1SU!DIbVytM^|K5AQ|CMem+( z!>SSm72hn-&j#A5B2;umSY*ZyF43|vN}4KfWbt1oWTiGc)vXL~*QheLSI(K&K3GN4 z9WYH(aMv~0UrVup+?}xG6b1jhwBexKQxBP$5vnj4H-*DWjePBkJl3(|`vxGTn0Y*ns~z{G0#)0DA$e*@#d7 z0%_^s78t@K)k9f$LVo%0-;4^jl7)nb7-AkVOMG*DLiMeF95`dApG~a){M3WT(^WdV z-fsm*A#B9B6`3dOd6(uht)N-Z1QGh&gE8H*mv2NJ` z&)Gx64gPkxRP}J|zyJUMxB;u%h)@3lY3bk=!F6?DgP4r~00RI30{{R600Ex72ea5L zppM&8s3AM*`=Ib&O8`D<+DNas|o zeD!83U?U^z$O=;PT^Z||VTwGH8G;%IV4Exc>h>mU$!8{fbEqMY<{CL0SUUTg;qM?= zOMK!LmJG5i9_?$_9t);2nM`2!PhbLR71k=7g-}h~cnt4t{!>z)#xxgDjsO4v8U_Uw zM^;MQTuehhl<&n6Jkdj_0{{R600V#k0PCwIxDWtu|N3B3fAtH(VMFtNf4u4Y-L0IV z53)1jHy|E{6aWAN0009300RI30{{SJPABc^O%kIboBkhM8$)+Cbds*oz|RPdk!--y z|8qKX>|d z4or1+brvxZoVUW&QxB&-<;xjdb-B*X+25UInomw+fSO3?hj9ci8Y{l#)rA|X2OTW3 zNIs6f(;t8N5l6;FRIx;WW_R57QNl2|1>aNMF=OfpgDD zp6H!k#SlRRbM1bNbRmc+Tx*E+v3qO38`MKWx(79Cs#&V~kn^F{%#P^#V<>DDzj-zA z>!p-LZCuzc9v@}5nSDnz7=2b$z@KsVY*^O(03tC=Y&pV^f18*R(S(*<^yJp08vb@M z0e|^~P9`6Co6S2mC@##--3l`3w9IkG(b#};%-Uo!o)}GV4@SU9PsxlFX8(XCz?dCL z-#So(x|ua{_=C_Bf(fr@jC*+ZNiH2JnX%VfmK+*Jjf(6P|L?5;;+(I(s)cqE4^TZ5 zdvA!yAVKiAyePx-hM@1+%c7wwOd;yvdL9q7K7XU^#`?q#$B9xRc_X;2D(nCQ0BORB zs&fdIFoaIPilv5&QVW_Ys(KPH9i+AfhpOW#I`qqd*F0`N`S>B|d`9}%IO)*?+RU=u z>?m0-lG5S+3ksN31i5xg!gisV#W^yxd;u))Ty8cu6JDq@-^gH~JMYC;e5kuhGDtaD z)H51C*@KPMb7Vd4)Gw}@s>q_SDCnb)#%0am{%trE_ohpZO87mZi;sRZor_2LUkmHz zD337OI$HFCRJASc^Ok4qt^av{vbpVNVij4Uu%fSg#=~1++A@!M4A#(TqmfMex(8ej z)qR~FYt*-BQxaOuHUxpx@0gyDv;Vi1td_^oQag>xXtgDvP*V3`I@xxw-RZ89fok3c z5a=Ef?=*YtX*}n(iM{SN4@#024ZCw+;s=9qOYne%Mi7sF>sbQp02xt=cJg2c+PbJA zXw7|&;5GMfV&+mPd^z73Ut~}|b{MDhE8+e=^tL<5vrJ0*QaKYu#ZV?(#Wk*h$fN+V zY{X)wY&k0Ib1dfOv>JGOzo6r;7H@l2fswB=WwVFJ;iYAsry^g>V(aDR0kHpUV^c-y zyJN~2w2(t2!k6i+bDi7DqAljlJ+=JBjQ3p{RX^=tI3%+)=daLaCP2kz$2dz@pYP=v zrSOcy7{OiBj*UHe$yh(CtQmdk)?h=uju~HbixjO+zA+4@Neo4aR;{3ixus_zzdMac zE#>qI3b0FElCh{|($Uj(finG+*{IikZ_{3A9>fZXV4Y%JV&4T@0L!2yto8@3Ezb;I zVx84eNFQoVlLp?%hKREyQAK*jN&^iNeQcQ_^K^`1&FRqIww6E}R+=qExwDg8fHw!a z7&CYxr$#%I6J8SjcV~)4l0*uC)_IBYq76GD*Mlk(q|3c|q9f$EXZULxU#bC0ga*zo zE}}^44;rCJIz6~CI-OC90gAF*`!Ve#=5tV@tq$>3oaaI7Hj!Qj&s-IlwbyjN4Fszs zNxe8|m?_zL??cVr{i;+oA*kIen9$Si>Sn$Pn7|}vmlSwo9R#2_)o(ALI6>CE>k}Nr z)R*B$=46wM8RfcY%3+PYi)V%zqns^I`0>j$blQWJqL2VK&5SJQZQVO4$JJTqXyV_ln^(Z^LBw$);wjufbHw` zFQoeBGz#zW2*KZ_3m5a99sdGmr;5IPt7K_6s4!yNA8{C}9FBfkTX7S82q`k*y^Tb~bZ>7E8|=b5y*4MTT2fC$KBQ5?a{5C7<|IV&@?zWP?Y< zcHbs)SM>>1@lui|grbtEPHPD!>P!J;jDjJIQlDj@{Gtrv%vj^mpJT=~DQfPe69eM_ zF-?(v%+@99YdS4{TW7UExvdF}g4YLPBIwJgw6O(BbvizHvAhzn8erExIsa;+MlM(d zFq46))*BtRJ6X|N{E$RZDE;IC?IU!h6@D=^eHWGZf(UalKEhB;F~XFf({HGlaZ5(r zo(1(B^3B2mw_xf>iBHH3+WrZ=u$Yv@54bmisb?#S&}To7kVrZOAbYQ+&tW1GCR{-> z$FqECZHi(~Aj{1hil%eW#613gGK*_%e0A>b=+{ah*23iK7MU6OWb zG!1X~;AG;g4IlSS(>+deUyB(e;F5J=`x)5cWD~OfRUv#1kVRMIb2p|1+mjK|q7Y}S zE_I5+PY@&nT7;gLIJnZ8&Qr%kkw{xJnQUxW;!ojBK1GPT;X3L?6#0=XI&Lp{p`nFQ zd#KM?&Y8X2;Nm~9(N4f`V)E%#QtGj}B3OcC*IjbCra8R8alSKF7IlNG_b4bzs5-Fs zwB~G%fv>o;e{;zcmARqA$^nSt{pS)pBYWyB*&w|*f&uYL!8bcJq1gJU3c!_oSFesv zvcA-n7PeyVf1}|!R_#)#@@7)QSq0R0oV2puGH?PxfqR60f(o{Ozd=w zg0jR-`;<)4^vuSppX)$WKl%$!qhe`vGb(si4)MG9d#svYmjrs3`Tpf|S<(hjnrI%I zE3c9le9wb;^@uFJJ%l&LJ`0qs9c5dK1D!rHeLWc(|1;2+BVq_BbO)pxiRt6hR$`Se zAMWBDw=%o?@2ncxOh0M)`+a7ltHebpwP(=x0Qw1x+L4TI%+omnMe}4FF-50DB#h${ zeMuF-9Ro#{eRCFs{y4~uzxmi2!q@wrw8mAgmB%d`kG|@0%1Gw>FCt2SH4wRPo1LewqO!@z@;0}Ma`haW{b|FvMOT{-gTPMS$fDJwwR z;bI;YA6>K!`tIv3I$mX=)*bAp59siLKM96HZ@p0~!iYCGtoU<3#ltn=^7eph!AvE6 zwt-|FkiH%sU_k?^yg4UC3By~T>i0nr!XBLQFE}!lNPqpM5ntDLCBFi2dJ9ySqTk~L z?Pt_)(jt`N2`u^TIU6v^DyDor6!3Y~wpAb^zKV9R#{muvBvn0s)a~8?5#sT!c+=RE zO*d(QPwl7po??jj*(&+_w01dzal1fh1UO7^07;_k+Qi?|&vs@8%-Hqtq^5$}{bJtz zR)bPXjlx}W7$K>q2WO&41EEJf|GUIJ=A&pWjTsA#(+K9_g+Vs6MqvD4tA$KD8>>i3 zuDP``XgCH4gO^kz75V&LVZCj4{NuoGu#7jTLso{?5K@NsjUj4afFX&aHO;A{)@$q9 zX$8hITCg>r9?8syGZ4G(s2suX=__T0^@HtW@&GSGEuSzcJk6Rd)2mAB{wR4a6xY{Q za0?{vpTdz&uRP!lwU{z7|2|#Nlk(Z`ljDQU1r}RLmf9_dG=a#qP(+g;4{$He{ z$-l(?b?WEZw%`+oNYyqnBYJg)x>1TOX4)T%wh7lNxOYRfPr^T~4bnuU=7I0*HL8O~YYKjpa7abLWxx^6aIyL} zVGps$8tK*A0U;qn0}oW@i#$DXxw!M8H(mCB(ZrfuwP zvS{!w+38j@0l+5_XIES!)xsr*Zt@~Rkx67?V3`R9k6WVwDO5teJh<9*1S`T(kGU_e z{{b&LdcgAsDq?41l6&L=zos#_N{}%-kiu)D6VLpgNJ7E(b8vpx)T!CfgraGzDX3&l z#O%Uzah7IY|4Qko>wXQ{0Fe(CycGXeDzpVx^Q9T4wi5g4p;(Y9-Ukks`c%i~YGC`Y z<9n3~o|I-h9vaN@L-)Q{2mq8wZ{0b@zLHE44223eW(aobp5Z&L3TC zRYy~eP`7@)Ofga@2}MvgDr~v9t>LY<;kbJo9NRhP1;U~9VYvk=5Z#0De`x{OeUx{t zSCdWWhQ*Dvmh#LR3xmJcoim5`Sae)Pqz%xz+m@>N+oEn&_j2a-;t-VI__k;IUO(31$Er8VKeAcFxda#n``^}XrW}zJbP&GX9Bg%ab^Y}5 zsLkr|JsDb)K#fkgT3Xny(y}%!(}X-xja>HeE=fEm-rl9KB~gR&%S(v0V&cJqcXOwa z^AgjxuI3as$3@YKyZ`$cwbp^~Pi&x@pnbHb$an0FU(^nkY$f|WhnQN`xy!jOfZ=7J z)&*34IC`mvP5DHmn)_HE_tEGlSv+|E#J6wq?Yq=H6!fQ86VT)#@#!q0VYW`p#2MR} zcQ#0z2>L}pnf01$!m|6IqY&_BXRcCF!i?88am3 z$lxa>$2U3ZTyF)|tPv`|FUKmw+#cpcpP(hYU*FqZ{n>+v1I#WUM2VQ!Enq$l)0m`Z zEr-@|N6}_pA4~Qip@Y#8|LS(iiR*|yyRcnI;QOa_Tl(m{7Fp%TuAb>hPF9*I9Yrz} zkJE!^RG7Lq0Y3)@lzTrF}Z~p}M6e<%h&vp97SU`-)!- zGU1-^2JFGTch2SQA5sv@^6!2GzdQ5hC2oG3>HJ-~kraJ8ZukR<+-?CQj~bL(2jwXP zG|_zCX7IQyGU`$>uo1&m7Z>ZgzwXmfc?`g}SqOFfk=Yt`z8#?>e-NXGEX6(%3l zEv&TyOnjjo)#}PkP)FXELkJa;}L- z=G{RI(@n&^tG7jSBX`4#i+gPVRDrRP| z+442&%OPH0H0-$*+g^AERePZ9z=!jtbyzx# z_JR8aDo_Nc@$gVtACwdbONF^UZN|ME0WaJklq-x+>DbVD+j|WPEU5EW0!R4L< zaa{1Kzw|tOl{1Z95|9`TKq{UR3r!5UpTs94?QzT0uGMWW z!-lvFUiIj7uX>TI!yB7`VW0d|&DQMm`G6qcWBB71<@O+Doflr=`~FzfSM= z$6o|Dmky=ha|&PaN^f2P1}iRzcR7u6&w=VYXS?f6YVc!ZzLxa!6+y4(aU*mdkR+tw zX8!UQsUV_Mh((ZWWA0`JZ~4Tnl1hgm~ap z!XX=B$nPkx0Gn6-xpZff_Uivvfl@3NfQWS1{BM zr>O1iD&A`;)tu(2z9R9E>bn^lbU&{%=iur0)sKVJ9u^!9l{_6R*;sz3IKx$q%|*A1 z6)6V4R#Bwe=N~De5}+U9xJdRc??N!|Y?326zCTkNX2}-c5?Lo54Me>vxLvX&5f9e50Z~I5Thx{E#HL$Z0vn8CN$>o$hQR_k4GWZb z6=;8IuREw?=#UxEDhA7nFh&6T!BUzXMnr@CA0a|dj39r1!UzU2hlVUOBU7Ki_2b>7 z1%1AN;+&wSn4+$==g72tYW-nzD%7$g_>seTJNiJV+v$w;a0e5MJAH+tryKyMw)K^c z{f$d`)uCMHe}rK&xB-k%>$0X&7)yzBSxNsa)sCr&Ye61$K$$Q0Q`GO2JAL8x3V z;5rczyNG7NeYbGWme&SF_-eNPSl&67U?>*swkK#b}JwE ziC6;n5W<51j^Wo)0!%7U8rrVMb6T6y3l{k7BSC}@Shw0W25=W_+Y;c`ZJJc+`uzAN*sn~NV*z+2ZSSr&4TQ&SO z&r%OguSqqHkuq#ozjc=g;g+46ZZf&3n89`lPV=+~VE=ulWmqMm>@B9W^wTn3k zCMM`s@pd1=5Sb@bB8u)zPE{%KcV)+2--e!OhN>v(ISi_WMjW|?wJ-TbmRE}7bN1L4 zYwH0U_i2xj`bV`~*<&Y#Yw@B~M#gpxf#|V}62n~NSt-LO>*8)O1A`#7^WGz6M74{R zl*@&Ezwvw;%MTuTWWEs$ryQ^RvR&F6hgaiM!y>vP%yK!&A#D#My9SaTB4Px(3>3!$ z+xf-jnY(NS6+`W|SWznopH6@KF>E&sM06cS<=Ow8!?ks!5>-%4=quGHf4GR<&^V-shPN7qKyA%*>?2!NN9|F-v3CL?^^*Y#XHqu{TUgW zg}(l>{3f|6(s9vm@(hm}?VWv{t8`662s;{p4lFwJ-yh{e@}+#kxnKej2TFjBaMP3_Ro{Bp2j0g*H-gd|#%()|9{S%7hL5}lLj z&KvDQFkJH%v`r7`a?c#B(!U;%4M%$bA@BXbe>>v`{a$x4h zbhS;wKM;3a7O$WO6C`=r|Nq~15#$Zv^c`j2{j@0$Isu2Q!+Ist3Xr*>~U zQfc7|A1!--wAnkw1hpzP6eCgj4%;LB$NLAfvX&O8$thTQO_Ww_vTNn77sT{CTAmd_ zUnZB0?d$}}c1ioc>5+s+aB7~bK$%n*0QvwYfl_G(Oerl0AKN+yG7gtj#9$c$$?3r- zb|6%8xKe+yZ6J`NYwxjE4{rKF1W7Vf48hyoFRi+;!)aG$ee>!93rLo(y{)vcG_&rO zC|v&B-(B^+2D#zpaP-myQ+9WmG^rYR&dE$&FW%QCzTkohg_ggZ;L$ zKOX~k$oqVyM;<3GO`Ty9>VW39xa>M(H$F;GptKIT^e*G<-5>x0o1)PKm6iow{=Vwq z6ZAF9s88-*{m{_aRgOImQV?pdlmMX9wqAW}PVi{U$75V$@4En4QdCvcF@Hcc#VDWr zOqt{~n6QKrVyV{;@#^aXK%8)N5(vCe0S;XIG^r*toh){OXMWi&0)-O`vmV_u%GdOqhk3cfJl z6PjRQpVYM8jJe{?LVWrIaf=v1o=m%)R}vkFb9oy_a|nJiDojo>aow4cHa>(iFgiF8 zDOp<`=TbHz;e#j5c_okzGFA3mwnblWAFdY*irhh1p6HE_TyNRy`pI@aUMf=at3P`^ zXasx?YGEvUv1oomLGFae0BTKN&)7g!p|D23cc*#;^yjC0U&dtZm&3}90jV&|PzbT& zn@$;cHpHor)ukf8-@}IZVuRN3V^T~z_ut*Rn&Qa2&{)w!y=+TdA$XgbCHLWdwva@9 zW!9s=Ns|+_3N%hT;sd6Ss~kloc5pC+=n=Cr^U-y0zkBG82tlX-B#r;@zTW@Q3H`|?_$u0n_^wIgJL|90j!w@9_ zpg>P*lIOOUGmEUkOHgHh%}=@%qf(k8E_^E)yYzLtIyoVe^t@q%>j(U2g~se1!F5eet&kN;e1+VT?Uxi z2BQm3wx#ZV&|+D5M15?(M(J%IY4UP>_Syuua2@4eqDm%(d(ZMoeVX6Whs{t*282vS z3Iaai=%&ze7a7k_u7TN&bLb}$=W4MMZKxC#pEVZY9fW(BG4y!`R=xFxg{Ff*^9%Iy z53J=EOKpUU*MKU`r)}zz9O0l>}<3>f5~#0Z4-~CvVV7W zJ<`<8=|bvNpEN@80qd?B$+%Cw^yPqr%Ikmko&iz1*F>wO%Zsm2VR&ocI%>j1X%XHU zZhQOk^dFV6>ds+N)dm!nv zmDkS1NyETosP3g$X)6{xP2Z|*lo0wsfy9^Cnw_uxg|0i>H2kr-+@5RUv@8M-R{9*%b-#1 zb*AyHV!5d6CWr7cxtYWEaS;LRSI1~<>4J8i?daHbkQZ%_(=9BO)uE9R^ zb+-KqMTFgeTU!4d^^loI3lj~{UUOU-uIv$lvwc~Y=|<3iX3d9ue4i? z>qSfiDOActe0B#&Qn)rKp<4S^X*IQ68!yZopQJmgle{WeTUhrg!ygQitt*F=3Z159 zR`PrlXB;@LQ;K)y%m=$f$^r>1Jgrs3M`0FDN&i+g4;8C{?&E%V_3UwbkZx20T!yOw zcJ&L~7Y1!3RAfIh7%uB}WfbQ1oWCF*GR~TJq<1JX>$gR`nwBacfZyzEzpp%UcWQYS zB=P*8I_a&0|G00omztD0hYfJy%E;2iRw1N;Ei;WImfK)N2(lIX!mh2dhATY8NL;o& zF}DFCrlkK^E^^g*c3Ml-E{`s?9@8u1(K zGa&d(Pbi+W+TutaxXhIfCIkdW_8p~^=o#w+_O%(4pxr8r68skKvU4R`@gGUAI=mjC zR5mc8hr61&@E0&sY&e9lzhi86s=?Hh;qocH80Z^rBa{O&bhFy_P~yxX_#+y)Q~`<$09eL z{iZcK>M+0zD(!=)5JIi~kk2qmEA;dpynKNHnBe{HyP;4>cf(x8I}o8Jjck$YdG0WV z$iK3K(@N^fI2|56hi$?QSs@ zGGh!vZ-@LF&Y;-AsmWI&klDK>4ao>&5||LYNB{VY-9xDqA+mtW%aMaw zED}mHIhLll&=;=rksPse3+)HZVa6rpmt~@m0Q&?G%U#83`8rwf$XXyr44nEf(c~m$pGMT7lfgg9mcoFbym8nKyDpi{<6wyZk7? zffkSkOrk+bXG!FGx~|eV7C-5KB%PPg>sAHg+!W{F#Y_2PMF0#I_2}s>z5QeiUP~*;;zKm2iwDw`m`?OWWG0&yx&8MJW+>}$%a;*t$vukHQ;1m z4xtaZZV8-}U>_^h)&`(h!#w7Vf&BYGUxZ4@^QZQHNv``hdcMQFoB>b(c?|TiXXT#c zKoW_&iE(4AmzOXKBlNQUzSmSzSsa6RdIEX{pSUZhWA)N+qWMROo%%?#cpVjsbrZEF=GbEiMQd6Ww?X&k*+%joLkUPS>j2RfWKdJR z(()gs1*k+cA}tp=3!1ri_}S4Ht2a4Yp_9|XzD!8VB$W+pu1LoST8d@%6YHq=71D}+ zUuQsP#F57;#*_K@y2I!jf%u{CGf{^9MN@7Jl;2bR8v{Vt?&+l`SygN!`!R#;~K>yUN|+8jyO4Z?10E zSiJkThK1>?h@#@!pw|TP7HKq3RMschOEx~vSGg%e_fSuZftt+duZr|NdeG}r9enmYJ-H(Wj8pSYZ{i=oHj8gfgdb%X##l)F)+ERzisZj9)TscT z_q2uZG*Wd)vKspqN-fm22YrI0(exe|z$R2pY8-}xEwOaMhdy1&qB zGNwL<5dGz-kL}a_R$mE zAe7f~ruFP0)C7tJ=$9HL1rQh$2ST5$+tR^dPh0%6{P#ET2DRXi$z2lV24kU64W-2` z@0cl8{clgrJIn5S$F{Qg)ftx`b>ct!e_KGB6(Wjy8$?{qXj_9MaZ%8Qx7vEng`yy&XN|hyE6J zzXd_KN_p`rzUBkugRqEesOK}h;>YFjKmJ1tQRP<{1Yz;k!c17b^Ns_9NMGJy`YJFk z!q-#QE`|V?ajsYS%Igycb2_UJFQNz@ULA|56)qW0yl}`u=QaXgzJrFRJ1mdC5g%X- z!4GI$Sg%6`WPY)=N2Onk05T~I!G3tD5EpQ!pF&XaFew&&_xpe$NcR`wyb(kQu6&>z zW%{N|uP}M5@Y)Vu zGsgG1{!gR$A53XdYN)f3%||^w!y+-%(v4>B37rYG%`fTbOh)x=R*b3d390&$e%0n3 z^PEo{^A%K58dDr6J$PT@^$U|TL=Q5U8`a=M+X_qzPozV!9)CupU;=utqCsWj&T#hG zp`v+s8Tgo$AK13%&oUa zej*R5Va=c3OMW-Z_jeQSbC#pE@C+BsKMCnSuoeTmqQ5QIW>)vst9>M;`wVup?}7Yc`19#Y z!*?0NmGBWl1fTaG2-_w_C2j4_)QR_?aIgZR9PSv~P6stMHs zsXO@~I>nJBl>0O+kMc4WWa09wfW#-b$unf8yE53oc8a6**OVgTpQap}ILM=*)x;X0*~qta!t+l8MFP z2D~l$FLlUvxmUI9c_*j5=X2dgh&6^8Y_%bO^hb1yw7pZCUs$vRAZgX*Fs9R#MQTQX zuMcvYmbET7=7@!VQ@QUEdS@4RUvn)W%6#5qOakqm#JKHyO zJqZ+?Hnv1xq_K7-g1alz*J*kf?Yf4>AUZEmCq|Xvof|6{HErYT3V&X7eaT>gD;u1fc-dJv+BiVW(G3_6UT*p1)Qp4eAS?3YCKmt?AsD^blb@iQ|Up&gFD* z?KXtDx7oap6hwH3X{dxZf%$$Jp|J+A#M$j!kga66WLJ(tP26&CCeiBlvNhi8Qfc(# z8`UfAtBsMCAME04ftB{r@TW7~xYs>r+UD{xSbZh2Q|&&!=r&x_|00JBWWy#iFrYDl z(PK;0ot!^|huP!wLP~p(*mbs}XfL@p<983;tEhU5w~;b9SUpdbe|S|@-HtAEW)M4G z{&t8Op^_npgfR1?ZDR>v{m(bQ*7FzW7d-j@w1YU!y5tm`Ktg@WJ7-htRE6~w67&L+ z(P*Y121K!&g1BGHq^I4yLYUyCDm+t$GFf6!5mz#+x??hso)94j=?bRFL9gA00wjtRxXaMviI)0^N$?H3POchliTC7g=`V|kJ%MK2XUn0B z5%l#2!|VFxR)|B8+XgWVPk^pcuiYx={HfHm(jI-T}3d7a79V8LJ8;{1Gcvj4w ziohp(Mm>?3?!;U%m7y1pO0e;OuvlZ>W<;SGE#jV`BBH2+XB`jBBXm>-=gEN)pocN< z`mhOwg-bebk3(=Te8b%clKA1Bmm~N7oiu4AWTd=$`}&b0 zTEWefl*M-O7J-24?67hfauJ2m#O(@_d^v{x=qjbZ5m;jDT(T^-`hRjmqSHwv#AiU8 zk7`&sf;1lKf(sMTiX_3rR=Mrr;c-^Yi1&M}r7CF^kV5=oH47}htBjbZ@VSK4xp@EEq#q`yyOP*SVX}IO4&3)}Jo6o!S zI_iwl6%XdTZzu-(=OgdPV|JXl>#~FR5R$+4arvR2$xQy3Qct%IXjOmbX=9v*QOC8! ziwvcTT(i5EXzM!lyKXD#8={b+xl`|M+%8i@<4G8zxgu^;kl|aBwCr;Gcg;U3T#OTf zTE{=d&`01*UB7(@U-PctdeSl=K%`=h zfJBEsOB2nWnDryPpMDVh3P7f#n~gG&$WtdF$HD# z%8c&&gT-ItN>4B$$o8ea7N7suHe;nmVoul^DbQlP69(?S)ZRx&Vz;Pbj;5-TYgExaybK79WM>a*e) zoW->g3CQVr8Ng2_+HJ}8`P;RtA^?~}zc#<@zpt1n+GIPdvDS4YWtmg~vtvG&orWA> zC*MKZLXjYDLF0u!yTz*_YokW?P=p%UDiBGdu>mi2`JPo}%o)9v1b*1*+%u#DKCI-% zhWV5rkQC=DMzTG*JG%!%jzo(pi!9GNt0*)0{$6 zR#q9@>13TmPB%$bV3rz({wum}efpm7HpLh1eS&K%mOK8xzJ?vZE%U$|Ysc_wv`3gl z9K^T?5B%kYB<)4Dr;53RlT8e!JWwu=L{?NH)Xj*qfD^PF{e92f-}KB)Dn-Q}UNT6E z9PnPtKKv4Y5hF>i8$D%BXpqG`4*>siUrnG%Je{DCf`@{IFfp>*&x9>dQ<48Eh1wlSABL+@@I~fIfy0C(d6Q+@W0Ms zXI0$MdbIHxu%fgnI5q_0t`9D8Wq_1V=tEOtoNC=PL%(J_4#f)UbQ^>&r@z?*65?6e zlrRd|o=IU^l$CI2s|Xzi0{c)VcZ3J2CxUb-d}s0sK(xc;l}=bF=B~%mCt4)3zPmTJ3`ts?2jcgC909QcE8_c zKAI;TG4B@-Gylfx2mWrue&&n6Yajonyx2GY`?Y`g-G837(=wv51pA#h+$Gibd;V-) zTP$lQ>1xOO(Iuf4{DiV10B&sPOj9bg@LuW7R}ytPAowvTX#@w?x|Q!TF$PbMQ%uxw2rK6FSfIlA-{FUFfM|Tg>;$8~-u-rU4_v{ok)c zGFc0((=bo;C1zN^#OKXyBiH3)esUb*G*;AKHF)6@llLlM>@k&9?&Q1Th87o-!J7ETauh~3j324NREwIpmubdU~ z)-L-jXhF2WiuUC920v|(mfa+$e7Z96CaEiLByOUIq<~nQXrl2eyey*3^5GI266~m( z$Sd!P$Tn75Rz;>9Xl^*tJk!SjFA@}1a!z0s|;CR!G-d7GrC2hj8FVqI#F-@ zKmY&o%b;EXljt04oeJ;kP5)SUfMRukbF92_kLlY9A)VN4ZJg6jtQ!i=x+rm!0ysj; z_b5+84Ngk2!Hj1zV5fjacHAckRSm$J$Hzph>55-Os&Xp$T=6QkwpP|=S4%-?w= zWy7Wx+@w2;!C4?(*m=~x)1t_Qt$|iuBo%D3R&}N@5uPclj!MyT=5u0Aj{p*0{l@rU z3G7h}NM^R}G?YA^V8%)Cm4lgNY8F#BV-0MecGbY|&+y#5Ux8Aoz7IdD(@v=~Z7;Ir zK!#&l*|ISofd713P;d73n$ zREd#HbB1!n~BOyD)jB<$Ty1C;{(d*RW?JSC{!EnRY$y`d&z#|UeImeCG)>SySt=B+VohR zz2J-e1AgSIa zCbdi;bgDLV>ie6;=WRi?yV5i0W>-UI8R|WxfQSSu*!RK$$XSLBBT3zj#f~RpwX=oF zeW6#_Oc67%fVsLv>@u2Dnu0VST8}Y7!vqa{x9%fVX>1i0(nB3z)gosIv2PO0NxnmM zCpMP#&)$FU+^>yP+aZjIaeNKi{?M_j@$tM%LP)JrHLBZQsV1V;i>4c;_Y%Bt~t zclNI@#4*BMPS?&_cYql0cjhs%5%qH2(i2o6WGHwjIge@_77= zRQC}8jbBN_+R$_V&rUN`s;w)bGRw+%z`$~+`A;MMG5f1MzwdiPTU77z00(81&P7(i*Yx;#;JhbeILtrcSq-1|J z$Msq;C^QIk6X&NLl}%1DeUu*fAY~M}2Lzq}NRaka!gk;%#oYr}*jL@f1%}`PtX*(q z&)B8b-7)LCCBDt>_hkQ&|NpN{Uihm-(yC0bUr2<0u}2(0)tdhw_?OTB|Ijq(m!PT1 zQZll>L=1y8hlvoeXPY9@E3hMp)FrQCC2!u}n#%_vc)9``37sgoBf)V>oE&(AR@NhU zk#iHvvQYFk*;F3(CSwN`6zwTx&?`83rX6P>;b0K+gM?R;FQB7 z>R_s?JcZ+^_V0HJGci4l$J6D3$f)C+CW;-CqNAusIMjjDG^eJPabH z;)7D%Bpg~Zhfvn{_?e6_;vM?DR!6;5!?~!ht-qDBqC`kqQ!E31lEgvjwo+q|ne^V# zTpv;a!TO|6X}t2evh9WuL@!9L*HIf<=hpHIO|2C4CntPGRlw(viK=SS@A=m z0rcf`vJ6JmFKu<0kV8Q9JG6T6GR<`jyzVan)S|MA>}WjXuHT&O7Byh|n_YyVcUCCKRS_{dRQTM}`^2-`@JIU|hnHuYFfv_rnJEj2@KYO!Q)RPLi zItv3IK3w!y5KHtiIrk!CgPRj=)3~x~*!@XYFmu)G-;^5j%}&i+XxH?6_@ulfoaoeB z?BR2!xMV$w8!~F`8)O{YJl2U37a9|W5WW!5EWX{|GNhkxorFJWCwxdKL%G0lI~}Po z6H~aWv|fJa?maK(KMyITg+*e9?IDO;b`L?XTmV*ozB|s;`W?ORBec22W$EdEx^uD3 z0{Eo~dK8zDC%tNczPxEwV3HvGZE65%z!N- zq}~GEVCgyB@Sv!Lp{Ia;ihl9+*!as{O)_=U1t6W>d%cZ$F==-xwNCrpN6@E^(Av0L z9I2!TtO^j;eV!Z5IR=emk!8>G=z3?Jfseq%v@eTL*+Ra=odDnD~A7k(*P# z+uEp7aBYv5wz}ptTO!<5Aq$rrh=Xx3hr{s{c1Kjs*G&)A##E_4{@tXryOfjK8<5J{ zzGGzrtE^Vl`kuH7T86Dwh!XxmbW~hPRnm-RP**!^V;Dfi;38Bqc6^=03-Dh@B{?YrctoOhZRpBnvUTvP6j!gwa!r|ngS z!QPUK%#w_#nz6Je_`sO%Rim6JOr{wMau&i7MnXui?a5juMVD_pv|<`1eAq4ylHchO zTbnbLwL)3bC1z{f!k_X4EKkXZ?+~KVvUF;Mgw?QWPv9Q!4zr|T4r%KG!XYqDqjW&f zM@zv<%!udqxVSL>JvyvT6|K#_*Z>vZ6>Tu2tD~933W~k{EK_>%5Sa0fjqeG^OywAs z(nk`cg9o{BSV~Sw-HZ3BDNK-r^Gq>~9QoU<;Eeq75t#1nB|z~XB#pV`iU@Jz(h8rp z_@mSgVC7@BHW*L`aCoHoamz$Z1x2pexy)>L=CJoNxIK_frp9Uk;~L}O+Rq86^G&D_o3yr5ibxu3j%ZG)QJ5nH6j@CeEdZdmp4r4N+!_RPp)zOn9{9$>2CEzrI)A~Sn zKA`rv-9R0+;g^;R0Vi{Iy3c-dki>;{h~XXi@R4O@rkcbBE0XnzxCF2TsjJ}!!~x3AVbj z%nq!+>+6Vc88PJIFSrJwPp(TgB z0aVCJvdTe(KnR3_0#~1~Il2JR!X%ZT%*d~Z^B%Qf&t#b-Rdwu>8BW=6?IL7Cq|ZTe znA>XjbAMeaXKbeX_=|UU1Giy73E=j+p2_UMGZM3drfu$2G5Q%`s$a6AoDe=37*xK)3EF-L!9>Psr3F14B#%u0-BGm_HM$=+AfvFItr&{RAjLvw7&z_=k1j zXH zi?}M<*x(o0%&W(b^d*S{VFS|0ka;bv(o|iam}hK}1KfXDI)At^PHtg!8Xmlu)+`-Q zKGfwa>gE3%=@tBs$tGihy(YXzN2oj|w{VtoM&x6}r3>VC7=xpKL0t(ihrmv<^=H|k z2QSvCGX2XNoC0kimY{54r1)d(4^?R8%}#2ltN7RF_%Gl!j@}3x4I!`Pg&hs|fgWtY zspRUR4{bRrfemO9-}G7k`C6=Hc~w@Oj6x~7T|vsg8j`iW3x^gcC5Cvd4wcIzTfXGW z+-H~vr}uX2ZTN&PgaJ~wge~pbGQS~m3@zuR9;PAwm-a+|z7O{>c}2JGueqH{=vq?D8SOi`;tG5+vk*H zYbey7%}cf4(lS|!L-Mk#w8d9bK;&1kX3phoNpPrfa4o;8RtQ2?@HK9{R>xnE(XQpWKCtj9yiS};l$Fl*li|p{J)oVz z0{Ur#`DWz3*#UFh44b=wB_WJS0?>ACp+{&*@OTkKRAbVQdgkH*fu~j_fmC@heBkC_)$7h{Xlmh6YjP_#q znzdn$c=F>Hh3Y@V?_DkbDXakDzF<$XL-oKh>y@y-Rqb9jK>7I8-qWfw$+ri3f{LZO zSx3$5?K;9kN9p~M2t_ifSyO1p;Xg|W(e-RKy_sFHKJl)H<=7%4T&;O0{DD;vKuP5O z%PEO~%8H|UaEt<4iW;U2%5W*jxUqX{?2kNZ!BGg?`!c?Yw~Eeq+5n7;1wkk@P_iaB zV6YTNARd76ajRM9P_gjd--3+otUDIOpsl*}<%&b|!tWViCo zGuEMxz8D*r^;G^S5%Xf{=@hWFKvWc5oIW`7MA5*DiVQy=bV3bMVL*^6W&ACqLF|LSwYN`rB{C7 z7JC88bk$~bF7N=Mt0mbbln6$Y9O8jZg&bVyuh+(8A-*`#GJPpSB;d+}KewFNRNbR5FTi6&l6#+Us-z1b zm0mLa#V@}+9a<2wtZ2r#^0% z&ifF`u-T$s&@-;{9GYrl3lDFQKhC_b58NZ-1@52RGGRmWw zu7z^;PA^zd4u_Dz!?RGu^ zy6Ea7$6-*gT{gx}=QkqksstR&j{aZ&ASI+?gw%2~%@-7+yjQi5VxOG`uO|xlWoFwl z-4}i`NRp?4+atrJ3Pwi}Ej>a-PtQT0RiEAO7%}6f^KcQVMcdr>5hOV_+jzM!f)o}Z z;3?MW;7bmk`lmDHKf%jE2nKg3`X)+zIb07^>s{19LgajYp;xjFwMPsA_IaFF5)=8$ zCKe=qjH^DD@HCfdKdZ!s*yod`caX&#;aMLBWhk57U)$}U+1O*mpBozKoxvOh5?6ur z9QS0jn!D`NfLfCxJPlb+!u)MGKTOrSs}Oi$Ht7BgQIV000JI zW$fGqTT&wvNQe#8{4N0EO?Dj&Cc+#^%U~TzY)1CW0ODR2m%V#wiq@eX8%-h&OJ`jb zEQ{Ddvk6X4TRooP$0F->ysS}YgKCp3$p!jC32`TvI5%)do`95S0(%R+~IH00-i*XQ#b?#hZ>4`H#0|0}L zH!$jfdj%imB+vIgpl+o4tG$~q^mpi+UVYb^y z+D88=5My|=RIE)QniLiDhfVsM?cVt`H3F+Qe5O=14Gt4vdLnl#Dxvx;7uCco>>0cW z#O%MZI3Tqvee62o@JT)y6S}fs;r-v zXzU%#;aR7e;_ye$-{?@!v)tpZrIeN}{p-?DI)M&#NoEz+x}kXKC&RL7^RM*54qTC} zzu|Rt^~-rTydR9q3+st!Nlip(=r}BWhb%Owy-&fdDFto2JDl7Fz*f%r*#~;QOk(Dt zrzh`C2-vm!P(~#{{sVnVfMl762 z0uY*OI$~}lkwpKqI%tl9z9_h2Ipy z&$3d-0`}i-=)%w%z*>rV?Ck^SiqUSbra-iK;Y~uhGvxUfhu{+z{pwwfshbd{u_?&H zK3#j}|B5C6s=LOK_~ZrXQnCgvE}DY)j$upD!Ca^B|FAd5o5562LH4S+dCUJ27||Ss zxO*S@-;;_X_iLuCDplm{1C!U?0hMzTi(n)eqTUa&=!9#n^1-H@Gg-)87687(E(yMI zu7uIa8L3MA*VK`#q7hybwylsVktj%C7 zUsA*rEmEhoAC$_yY|$SXqxU*8@-S?UuR{*(OeXG(M<84Zd{&j``1#08we3O&N3WIr z0KcKiydYrQS#}E9Jcfr^dN4v$dYkxm*X2L_9zkhlj|QMjEIjM9bX6 zXQEmjvP^$PDIGf&FB2vuRd!bo%(Ndzfyio-0+pL|F}G@#pYBMb)E-*K*HzU1_F@W@ z$(-Jtl?kZOi8Q{rkzoGT&!Ys4JkCtv%LTT$ye`!ha!d#R^x1=6X4{IW8`874?Z9Rq zcA!}qeLULVmL2pc0SN%Fzv-<|MhGYK3g^)8K70qcbZ1Lxwz)7d((b!aRA8b!!s+T$ zn)-ddt)9)O_~08rW$q4lrF$^hi&og15ZhWDkrRgYCOvn3`8rD0&MSY&-xo z*GF$<-w4zZG9$%M#(x4@YoYmrj|P*z#}J|W_IOfZ1xmjY&&QDrcaw~XRxV+N8bz5; zgZ$1^@Up_l_t5$Yb+IOpzJ8$GDPhD9SkPv}6UvA3O@f07}zyN$^j3#Oc^Httl9mFEY*5kt@3mOk&PJd{0h zM#d|1sZ6C0k>$W1=fvx&8sZ+H43KQhEI)&k!gPUjCH z@C;-iLkqiq(aczj0C4l>Yd(4F<)UFru140T!azBWk9`cz;;#JB{N(cNJ$IW7fCmZy zlhBnu1aGW>K~d#PGOY!6g?$$#vL7uOl~TkZsezU;#}!SUH}EHXm}0FTDMdc#Q}#%A zJ${n$gps^`Ap}?FQq%;~()Dc(myn;X&}rwUs%1+EIgIL_`HL$cz{aDs9F=mAfNZxO zI4Pu0)YR~S`+vR|H-)75G1|AiKq?P(B?fSE6_Rv1H6SV0^%g%G9HlmB$HgYw@yNmyg@`dYqTvBsLh4RbU+DQt24AqPC2NSu#(;6wHl zf5l~zMlBh>n`GjJ1^QN5FCj6&Fyvd~VBQX+lM=QlTQ2q8lNm1K@WVQ{m>x0Xm+Tdm%v6{$tuiE8TtZpvY&ryyp|a6pZsJvIfRirWUOF3 z1$Ua4t6j%&PDDRvt^GXb%tVk2aivkW_YB&ZE3r@M<#?^qdwM_lQ8^{qC&w@B)~g(@ z^W&9c%42CPEP*k{GI1@jAF`F?si&X+X!0XW6!8%YO5xzqs{gr;j~QjmBwy!;SO?MD zeUI=>;Ty~7fQ#Y_SuvEpF>IXTo+yU5OdB_{OZI9QKxUM={2kBPdUaCEhu!2}9Ew<{ z)|~wGzZw5D!xL?b@NO6WuiX_Nndurgi%ir(ITh%T{u_p1!+e|W3QfbrAkTz>M6VKF zdRfsTXuu9}Rf4JG2zB*5dWeQ5K9T5tW1%S$b30mWav%@8aH)wFq~SXF z)-R9nV_fX=39|!ELZkiJ<>R>_hKhJ80n!_gZ1>{QKn?B3v- zfgagXMKs**GPtG->S2$>7rKM9lD5#TrjsDh-yv(2Ph*F}pkmx+Uo{^%1sE2IwM@(i z*?digga4@rw7$wL+7a4%$yu6S?Dra`Onk{pjX%p42j1<%%cmi-n}mD>>hCUK}Z5Y;?$ccWlYuRM7#ps72Tr1uFmN?HO$N4GcHdeVshMcF@oetSB2=l#6 z|CW2PZ#5%?*`7qk!T>(aJ4#C$AJqB8xSVv?DypK{q@lokxg1|p9mW87tJfmODd5^=o@yNg`j?Vb9dRdsR^J@l0m~Lozq)*Nic>TX{jN>?2#dAHb#4 ziXGB(%YA+tNecaCV@c1eCvaLnfIHFFi~C@-G31tYO7IfT*95+!2Yp1y0fk8&}1jcuV+AOH~LhsNp%LrG^(5+wQ$9vw-wP`WE=vlV{HK$2qxo z13EY6193m{L(yfG9nEwacdrBBxg$1Zt!I_+AjJyS4lXm=*W0xs=N_NMw^(ik2_J~l zP1E*3`Qg6b92Vl_zNPj$KmY$3^6SE(Od0JE&KIQDE$c)p!|nfnez>gxLZ5*E^KAJY za}+|dC16s&%44q&#DMz(h9>?JvmjEwvKTRUESDv6i!Vy&N=B&yYdg&OVErQ-qWAnq zu-D$P9;x}BN*g|p^F*NF$yVq+YeOVSt}P@4>`H`Im$~1UPdWH&t6|Pb80PA1Xvi)t z?_*&&z|@aj0;6jRMJbI@6MOzsfX93#T7F+3bRbsAGGlPi*H$E%?Nkys$)wQhQ#a>r zvO7L9p--Jo=Lv9x#zVNc1pdZ}Px6yI;8@#AkI^ zU2}7)$-inm&Y5hcNIV`p26+I(s2`LDw#Zq8rwz;LDdj}phI6TQNat{ZFs`IS_ji0! zx_j5FQ&32&rY`EKCL=djzoR;L1^<008N*Gp!4zAEn#|lqB#Pgq>+d{T=U68HfONR_ zd!L#~E~Y(*k}%o~<6tcdUX95Nhazj{;2ELqt)b1}@Q__LO_jata;;y+2U^nJ!yciQ z1CcfeDpNwdW!HVg`F@zfseO7(SjL7ojrW7?k6ct(z)~NvJvGp!43pc*`qAen2B589 zPx-RlUCTf=S^mgr` z(sPV9*$4_Omggcg6r3KV!R6smjwBV1mSQYC4|yeYmDUQ-DRXT@*A-YtNLUw$H{X+-47gSG>I<$zvQTZ~AATusi^7(GG~U z$3tjgZ7g|Gkd#gU2D!J>zc(}$138wPG;~`6w~qV@ zpW@D>{xmynT>m-D0C+iWIN;a(TWLlGT8=OTP)3FO$a>IZyTdi+%Of2>f}=(w^}JQ? z@Ng!kCnV3m!4DJ7@Hj%>ldUL5b>44?$U6<5lh5VuTe0UmEx_*G;i)$x4YX%ZAv2z) zej>FfUd;z=@MqVXXQ2TnM(H-bX3xU9l@>zD4a%h*-Ua2~p6r)?8rPg2{N&S3I9`HJ zUN7$Xg*>uK_UN+Oah~zIdTK2jS<)oCKs-yc-9YJF%{!4MsIT#@(J3$BaR+B0v|^`> zG4$+3MmE5K9OpT}iFyx4r~j%;leeH~23q+3gk=f*!LozkQp*h+|8(N$>27;M`#cP!ah8lBSw!8M^ggs*^ zhX+wg8y4HmB=VH#n8+aHAHqL<+3Y4Gb$Pio#OjSzVgKYPUgfDPwNXp*)`l_`%q#Oz z51*nLou(z&y36j^ThGu|kXt~bcI&17zl*S1R5God{sa6zl33~o%q~c!hx{%Ju)0b~ za5v5o7Ea5m#=2T6z%N0GBGLp64K8EUZ!qZf8_5V5ZJZCLh`pII*Si!?sAAJJ`<%oI zu+kM=quSgoGRJolB}9!)np!L>L?Lrpb;J7okh}l-Z29j)q4vcuOCO~P9BZdLi8D+< zU<99%RzciMzmF=BU5eEy2?(~eY%}YhONWTFL$|JcIg@swk=)UdJ~jS$N*nd)+XB6I zdX2y|#@Nnw&IkY=?VM;8OKFJ&M^+4K+iXYEb7Nj16u{vqvO&Y_ov zR3X>`FFo7T&20X2x|^=wx(UXZ&t{uj!CW`h2Q;UFHJ3cGso-|-F$)m@k(lQvo0s-- zfk~$~FugbGDX4tsFVVxN0NT$7?s9<6cnk^!=16vBbIx@`hweh4F8sD6!h0Z!DAB86 z<#~IN{8kBeP3lze9bLA+;$W$^+}MczD`*Pcz)h2=*cm@RPlys;Yu3qK_-8{pj|ROr z3FBs;%3aY|tI~pL>U0$?TtpkCuFQ7I%2%W-O=*80a&EO65`=^-Ad(#agnD0@sm_HO z$_3YtPrEpO7G5Z{s!y;56=Uj?neCj5%slbOj)1q?Jdv%;AEd-4Pi*n`6soe8xNZ|pKmlkJHzb4s&-*f*(VNiDurz*$7XoCa|WIm*wH$& z@*h~?HP|B$%%9{e?K^5Bxa6lIN5@hiVeRR0(&h6WOnCka)pX4Iwhi-P8#E=u`uG{f=o$AmUG_{} zJ5&#NOeZ&3!~Wv0gy^V;0_zHX#8i&>>IXZSbcPOqx{MJ&8^>@I4+$&yKZ9a`m6*pO zrifYCnf8`$O?eJP^Go&t1PPPy7ndtrRib+wrV$s7(hkCVNh3R=>u9-S5TEx%RQ9wM zJ^?=OliV0T$KF@SmWkO3H84yu+H>oO4Z46 zrM+0D*Xd&$9p=||JSfRDCW*C^+m$~4*en>LsB(5B>&rUgyssPcjUqXJ{#cMbgG6zP zsf65>M57d0$qL-=XegDC7$deS*wbS*5&&@&c+J-lw}@VQHeJSmK<(kN_f_2O0Vjwf z!-C!rs?M!fg=0UyV`c>vP%Oq9(66J*l z;TqRx@(2NP&^glh08Tc#TX)!SSK!4RV8CtC1d(3QMMzs#gFFY^sdL$59cXiDhNC|z z`%`h6U4){-GQIZy{NVzH;Q~O)J!7LEC>^;S)O3dXxliA|&IE5l+#mfyiTN+FC0}j% zNYj|hrSCDD>u-P_h6vqCdHneg;s|B8AVIrEiHUtiW#jGdDD*6k)R+`HY zYUvaMv9g3a%K4y3K0tw&t0t#Weir@UZW^EYx1s~|W>6kl0XegKcBRM{5!vg3!ihXF zL*Rn(6S6y^vZue;{La(K!6K)gcwWVWY<>p~8{Em-u{IHA@B|?=!rFD1AVz zj01}Tdf?J3_W4E=9j3Zm<4zH6DKqm#7^^GDO(YTii^1*}U?vt>eb>9>%5C-$g!xl@ z3+H9j-dpTPjV-Kyh-X&R=T#&-8r_e4bns=c#fB*mk000b0{&3BeZz=_XUP`8o z_V-AG3>j?9pi2FELo$xv;teZHvtj^YJ?2t*^*y>Lc%|rkk?(z3OyS&K;)#!R2t|yNo9+>;FcZm;@+HAWcH}UzqMQgu(V=c}) z*}XcN5}t|W_JNB_YJR?Aj5ebP0W`J!%J>Q8^AED>{SHlgcl8?3j5mkW0Q#{ag?Sbm>uoZvBD}X)VrCbme8; z>o%4T^u8e-2KMM+&JjPh0Yc-R0DdSW-5-ze%>v#WIt`mgc{__l-9kvIOe*=)6j!9> z647fF_Y5gEcG#mKoc2M@#S*J0Dcj0f^6d(huoW~`M?ERRWOfOGm3GX!5z(OLWNE$<+Q{%)hU7j?~ z-=tGMJhUr4o`GxkzUX_IWdKAb;*CN8Im39D$lyt$wzv0P3}H4cC#G#0>E39w}2>Y4Yt9%(VFnt}=d07-j% zj7HMVsR;dgRRZqP+Udj5HhGcOK{15six&ywe!Sz0Vx2fZULuu+B~vMbyRoseAN~d* z_$UL|;NBLXJfHM?g)^${Wj&xdcv=1~VGu za-DulwyaM;h_)tHc4t`w;#E!*%LTf!hGLpS_;rqPIx!3$D|UMt5n*@ooRCZVj20g9 z6Ek50R);SH8goFOX+uo3ZBe!nswpp@yt=h;a-8xxX#Y;G;CgT;|736`Igd=(p8lHY z_dUgTABfMw6mKkoj^ZsI+IH8|m&It8T$+>ffM1;7bw(i?cSBQ|Xe$R?`JII4>Y-TU zyRoT-@y9Xve;QX(mStSR^HcG~J3Qi5Ij8;P7cHM70fX~qnJNX35xNwj%RR7}p@}<> z4oM;$Q+LR@w#u>ItX`n{s+ROt{-q^%0GBqMuX>8OiZz#h%%2dBmQh37PxA?iFL~ekV@iV{_raENXoO{$#K0#DZ={ zl==~7rEfkVpv)4cO#4W!^=o>-@~_*PbqI=pJc8}Wp5dH zPr`j$e#W+FDA0}|%i}!XIlzcy%Et^{iZi#pBWxhZCX9L?&ZxtCi4F;X9a-uuQtB|X z{vq-AD+#e~f?>mUVWfzj0QAR7YUU+GX>b4+gQnx_#Go0YuiljADdg66=!XDHj$K%?T= zk(Xi6Gua#6{kok_G(DYj-|iOn)~|9J5)8b7w+b6lSEJPB-z2dSOtuHQuv2yqCNuaB1odNB#QN~KtqnzFR(0=yxM`q9n>kwg|$4ohOz0A3<&fhY*|geO|hm3h%D9hBQAGa{aE(LC?#3RkHxd$?) ziay|{v^GO!+^c?%`#tRWBMyeu`Y&e%rvdO|$|!q8gcUormVOUWHNhDo0os4^A5epn zsVC?FYxSacW&VHWj(S`JKyuxA49D8fBc|NaI)BS9LS4@W)brO*t_rTgK&PuHxNgEn z?Yv0W zhl??YpA7_xm)KQtJx35Uu_!yR0yOqCN<+ePJO#vbPsN?oloY1EUWen`M<{Ooz?VB~ z;KV2GZ=cCLQp=5IL!CR1Ul7CYpKzi^8!gdX?)fGs_&%pr1(CfnA}_w6_lfIDM(c4J zBJBV7NF+qQI|hL3IlusWKZv03_8V=3PZ7@1{Dx>mWIXnbN5Cy`ejI~IDfvnhG`Li^L3(Exivieaa={Ie(vQUJ@#e z!&zldKpO=y?8b4M{u$?BXd+~Wuot=nsxIrMU}@->_*&A3h4r)^LE>1OEMNI}QNaL3 z6St$nkfmFvw;h`%RZDHoJt~EbIVL|FzgPl9c7tdm~xrO87U;xBGxe< zf`Le9iat~&3r!YqR!-n1ZnKZrq`$L>i@uYs<6CLPsfw)-?}227=8cAm@$@F4U|O6L z*ZHQ%$@Z>ZAl67G!H8FTS_ApT)X4^oxij<>Dk`H;lEl0iB(&)m##-8T@HP2hlwD)D z&SCr~bg4;ckq>Q8oprZwMOpvQ*^piDu1}5YQCGI|D{aIi)ySEk;(T@aa#Q#rOC)_# z);bpoOX2>HL7JG2uZyVZ`Vi|!6MmSPa|hBXkbBCh3>nQq)+8}fd1c7x2+4H>2-eJ+ zzDLUK`F`amy_+su!^_VBXIP2=?T-t*s*>$Fc-6|C8xjLl!mP5{Ma7V8^k}fKTBNW{s-s#t~U6( z$aT)evI#1?v;cY6A`2faS;86A4duWpt9b-$It#Vu=2e*Ca04_3OU+?T zhxs4=IO2XU9XEpEb;Q8HHYb|;u#bZ?eJw_Z*H+iHs_sa)ff7{V$D&OpVhm$?Jfn zNetGG=eb2rTj%}_bWCCiIzGr3?Rgi9uWnkTML_{!mbMx5t1!_lxOu972Ib0DmmZ^Q zL_*9aSt$7`goB&*yVK5FXXut5U{|#PeD}%)x_80HU?bdy`^bMp4`;6tsQHOIZYp&N z1`Z&J`*D0X6}iO)cOHBrM1&w78Rfk#tI`qt%GE=5n`*|hxLKyBc-TohT-zZIyuT~| z07~F#k~k--`F~v)16oqn!9u6b7E=!Atp5fb3ZtXDnx2W!rBSPkZql0Am>1)v>niFv zi*MTGmeg3lsQ>?m!lE0;v$Tmwl5jLTkDTC{x(s^z1gt<6a)UN=3{A1AnVc?QdG!ZT zdXXkIzvGHHBIbni!PxiE_oFp~s1a!4n&GB;eJ4J!*uTO?hhcXq!5Z-~G^Pw*o_E2- zXf>3`&!z~~Fvv!8vN_pcEL2L2BXXn#SSWI1v0Um5DrEuX*5!_ha76sIna7px2iF8z z+PgR?%KySL)0~)35y;9bLoioT8D-Qw{4cluSj^Q+TYk9QdkX_(I*M+fYdsDB1M_l* zMLTs}Go-Q1NWZOr{7a`qIkH#Onql%ycXY*J;m7>C^5wVOgc#i*!(WHmf1y3ta1y>t z{d3U3de69vJ39^ga5Z_~BVjjdN;;kID)Y)U;_z2181Jly_t00d0Ac!AXf!Jja5<`0q};YqegQ2MqIKXCKJ|wkv#`aZ4xEv7<(jH^gr|FRB7gw zb)ztC&Ps{5vI)tqdy06@A6H}!-Gr5IfA7EOp$(4mwK;^-9PPBXV0Odh)adWPhrpRy zpU#2S8WH_IgTeWvC~KkItUaaf5y1V^`K2;-IfOX+PrC54n#g>dIpNI+6g$%XE5n_J zb6g|Tj+k$pr1`VO%+!COVZ3SOut*WS`vW{*t^FY`B;AS^^iY^^dsonST5JO#4Pdy* zV1M$|rHNLe`=O7S=bSCLE=&tO&kT88x?Ql_<;dR7m0U}AVFLx(9cpxP@iV+ROVaLd z!%)VulB5+K5UGWBz0n-3lS@+J*|%czgUFLc&8|Jpm(YRFyG6>=e~P~zFalrj0xa~@ zcQ}}$01VB!@Q3<>hUG#h`IvY%i=S%u`mMnDUrcZc3~Rk}4KJlxv`}xJ&))O)tl5tBX6VaQ0u~!b2el8^OPLko@(G%$1m_5??~{VU319p&eOmIX zKbU7S1%%%gKQSOq=eA&-K}>W+{U^KkAlyGT-nlIV*hVqF`Ru(BAD^(urutn%WBAFW zqauTm>D{DDJzCV%!eJ}N=R5vy^G`*^yv$*iJY6oMA)fcNDxK2n-A@a6w1zVuQe4Aed$5KB1ZMX`5y+(_>Qz69g= zl1ydoPt!Jf`F$Mbvi@h!U)S+yF>U5njcY-Trq|F}ckM$Jp?~v1lyXYzGMnmtG{(&n z`_CheAqPXlxGx3j9s595>z8+be~w=f%6-lg^Rib=Rvoc8&;b5s&de7atGqzjet2PbbA&9> z=V)RGd*c#27HM@%H&Vi%pl6fOj$UKWd-imzkc{x5`Sq1gQL8s;X~^;lRn0^iF&*cH zG3e2ucPOWjxletx|UE=@eTM8237-AUh|WDV-S z+C-=^-ySz?^ebkO&c3vwy<2x{t}<~_P)EMCy<_UTG_oQmQx};fiXluoww}eez~_r! z#)3^mJCCs4bTOZl)OT|4x{XcZ_`qmFQFiTb0)87x&MWRa0_-X#B`0HAuJAB%oL0jq zq_Af)?nB(an4m^vivtF#0bwZw^q_Y98|ljYl=PH+ZBe?4b~>s) zLEF$!u>uwfMis40cgD*W00><#=qn@6mHWcZkM?=&ixN}JGMvu zKDX9ncy=r|9iAzzy1aZqu;t|-%&ixyruP z`i9y*gB=;Sb8a6E+@{OYp~h#6o3XhM)fw7iyDGR{{f9T!6FEfw_GL9V#Ip(LMBl5`VEr$0Yh{c1(fnNS~> za2I9G3Rbg;2`q8VH}z}s)|@kD64tL`?xbY4Mr%iZNo`vcA@llNdZkTEs3Awm z`)-2f@j<1VzhaJBWoqZ1Y>oGN;AA1VI2Wqv2L?cvYHa>rDk zUF@c_vP*|ipB`@+KpRoKv*E0lv|Upo6M#n31Qw{_=AQr@B6>d*^W2x!LMT|~ zuYQnUviusjOkz-u2i4uk(n}QvnSV`RH|P0gRMuKIKrco48MbE!<@XU81=yRGmOVoQ zGunZgDQH195dTKbB-3ulv&_xs!#kPO8)A9uyv}cqp#}C5H7^wv2T%_~5#j3jc*nEE z^Av|NNKzB7<6=5pJjh0t5VTboM3DAgMGRUM+7Md-59Nrky6{~xxTEibr`ese)HB_j z+{HB^vPZaI=VmngNR6XHEd^V-=jJ)O9+fhGT$p}mcbcN|fqfddJtu`Se@P{Xb=6Ix z!(H4XqaPXm`z1X4>Iqj$xkSu<+Qiv9E33)R>|jw;gRLce69CG1fVw=s9WZoY9RB&j zbb31w@I}ocJL41aX)l~QQNEzZGPq_*bG@q_Q|Udz)K_SospQzrQ6j$d%$qNeIBYo) zS)RKOLD}MA99H2g&Go=|1h~n~AaclJzxVH`F30X4=_*bs#$ZE%$y)E9j(hT!)g$h} z#bkUlbMj7LAPLCNvid4JXMQom%B+VY9sjy7v%r%x#~kla$BoM6&)&XZhy~av>y=^y zJtti(h6~I^U~g4A1h6DE$Mp@yro$C%o_;n~mVD_H6GP?f zn&uM<7Q??uo$0QIk2tI?v5wSh699j(pO2((=Pie>2~mu{B}?&WVMtbqtg;KQA$dge zG&ptF$i)dSHwkix(ewL>x(nAJ-BK4yyz}YBa63&X+-`+jTye_e_Jf`ijDCl4z$tGH za+98;2~6JLi;{>T-Su~JW0pMsEsOAChp|n3y&lkl;e`#0?+#z_ZnY>8HEtZ85%8bcqSH` zEbXxqD??@oF>}~8wPMdLqtDO|eTanTXd(hdPdRmm4J(+b{WJG|xJQ^VISx|j33GDf z^YQKgmiaveo+kvl|5{wXu}>$pSWziSG8>dz+(XDfXvji1r3^vfP5D9Ms-A*(_tbij z7%6W0-V;e9&xr}aZSzw?kkZ@pnvMm~V5E6Xp+KlnNe0sS-!jZ7si`) z1*HZC7GQNVgqP7G?%lz^{i5GaVp3=z4+nAKLy8zsm)il^L=@ zQKv6$mE$VuHA$Y@rP&?ROOfCRCE7(!<%yQiGweqr|B>!$FNg@DXDQg;xz_pH%1aVO zT?+CJvx8o7#~yxMu%;BUyA*`EL*->KgZX;G9_((LMHG7;buR8-a`JbViBk@H#`#Ojum*)y@H}vrb=z#B;{r9f)4K8xFjTCnF@{3Q5w{}x zw3IL-&edyKuV(5Z1+Q5_$pVyZ5F-wv*WdSuT9+3^VZML-KYFI_OUCUz2avd2cH2RP zq3)5hL)s;(T$dCbcKJL@m=11M8KC3z+&2&?-nprOdIF>F%?lV<0dIt^+qRP&HDibg zXOiG>`&G_%^?I2^a40-g9&GQr8qwF#vk;P67I>5gRaK3t;!Ooe?+|EY^`l!1LG z}X(Iez40S{c`W z|MMEi{GxNB=5GP*Og&>DIaqyj9m~%{II>;`-TK!cYQec^dd_uKeYBfYjTf$!q5(F$ zWu0S(|F8Zy`FN6BF@LKh?_7zmtiCw*-e&>-b7#=%;C#_89zQ;T6>w@D9ukSly zLbWGV=L@R@AD}sU1<3=4z?9K2O|rprI)vMDEc-_coU;Z#F6q?Y$}xR^E-q7tJ(@1v=8pLh+8ubW3<606!Ghi2K&9J6QmFkOG6QY^B>*&DwpY6v;Q z`+vJ#uKSA~uWJ#z2={BQ^lERe(7*zrh_0~1N zrPjCm6@RY1#?cA4`A(b-7Jh@@V1Mz`S0s9t1QF=v>FZi&XZ7duxv&n(zJ~SV zl(RI}OOg8dJJK;1@Q_Exoi~xp`4UpF9x-wVp=qIjZ z&-X*Y5g{y!8>BwzE?YzD@)nW+hw0=QTE4Z44(K*yoi|$S58_F&y@iKcYjK{Cg!9-4A9>dND`#FVI{dHwbQr5z1d1sYe1mE<&^ za1%dt^L-M0f+5_~)ex{?-Vauk%Wv`Xn|jn&w=T);R)Oph+ZZ7$a21CGVMGz+THZGzmZn?pJEA{k7C97o@}d^p zxq<{x>;^bZL3lSnvlAZXheq(A9QWo-hQ_lt+%8U76r32wqkwmLV+%VIgLTg2hJvR zp&HC_Wt?2s1`A~u4w7HX--h8OGsfQ(=S2xrmf0F`R)Jqw1Q2Kl;xM;gY5!M$tI$DB zx8TS1+ZLUs>?^4#>h@~PmwD5mnsbZ9*@WAKekTbeK~NIZEH_*9bo^*gjB`_RP%@98 z$1x(`v{H$ohCespj-F@_;6LtHs^Ob|^os}lIjeelR<3*iSm``d5sIPv@l-*73kMbp zcJO@G^X$HJ_C{j9uZ)s~qCY2afHSb6R=EA4Q&F*Uu6f6g{Z$H(KxfatUry6)UfpE$ z|J|v&gRgLZ+Kae`X0GhnhqS+5FRMok_ zC6KEi$XtDIim2hwEbbC(8M!m&0%S7f@5|i}=R%7xGtsPk6j9BK5f*cENc_S7UMFM} zvV-x8VAM%diDG$6T_dxN*~QaGlHD-L*Sjhr2Y{MM#@o2KE}+z_HbAP{#sNJ);DXlY zg;Sf$xIigzLy+Q`86yOIx5VYmZ)NM!rkSxqWIHabgnduFP3{ELErJ7uD%yj_BU*gS&Hglfp#ZwA88TK% z^S@A=>B+ZGLd{5#jU*)W_QaX-Vm;XD&6nSYq$N(}N2ZJLs8IcgOS<5uN@HQt)$ID9 z(0h=eA4e-w@e4Od`At-iF+QU-? zc$IZ*xMv-s5p&2elq1=(nes69z;ekS2W|&b64?YeJh66*c8C%!5o+B| zJPralHVD@6cP&6WhHX`w$NcXa~8#e)2yU#Vbg}+WA6kN{mam486Q6 ziqrg-NaV;#s@_>&E&CTiq0xZ3qKTOdn`+xD>P|BOQEKs;&y5)%UdZFS#)V4&Y0<|M zSJ?#}IWLQ}DueWZ6kYJ3ODzBc+CFVcYRT$ETmXt=y_dyxo2AaNj8f|~hJ6<>G}DKF z|Mx$81poFK*bA-WFrOt~-w6;W+-nj1zKeE~IntSEP+Q{YWH>#1qKaqfX(41?wh7g_ zouN2GYq*h4G$If{Jc4@Y)HYWk)Of}Y#C)x*j~st((y>Deb@pmaWW8=x15KD8=E=g2 z?0M;R2IMDZ2#=l@k&4Hk=u0Kml#puHRC*=G1gr^D3~KbjD!d>dAh%&G10W~C*2wbfpN%yrQ@(^JK-?Dl;@4zc_zm;{C>?sW#tBl9j7a$79(7TzPblb6d zR=T^ADz7RKR!ujQtN{CpbH2jn-5mIBvR+!V(TM*{TruoA*ENKlb=JeqHY0}&!WNO$P}|NAe7 zZw=`oKmYkK$)1WB!R=ClT~=u*-I$8qJQHiQaNmuMijaTGV|F`}WZC8;E&cin$iCR6RRI`_Ok=${JdM$38kw~} z-+(4)u9Y;n@n!P4H0nT+dci4OXn0LN=JWgv-q1MuHKgAig=hRTPd0Mq#1%0OI#ol& z5F{N+b6Q^0FIg0^Gj600tty5#m5G46l`hx0re7bsK?j{HA88^OdVTl(7uXOo%pEH# zRNBzgrcAbVUS*>Qimp0wNrZ(4cxAT8@is6J#jKC9vURJ;X?T|hX|k3+AyWg@rp=)~ih+%E>8 zR@_O=Z^=9g004xWXOFdFG^XWk%DZ2?IR1kuujPV9Oy9h@2I7P`Ul+F^!Auh6(DH#2 zSIlBLY3;ax5K>6nA4+g=trFB8O z2%-xAhb&j7sU*1af<$H^tT!c>*cVpDIbhq_9ZX z`N)7fgC933i+K33TSnd0hHPp5v>vL-I12J~RN!Ph=qJ{Od`r{CWJAJKJ0*Uw*$Mmp za{mHx4cRpaYo{U@XA6pzRN3QwdU-Ny5W)x7=&t|fF7AkRSQavZrrbqnx4QtU0!dP`rk5FQISU}bwgNjmb5Sh-%>prw zH3;7`xxS)qKd>grMPYkm17|x(N!i09aN=0@bnddAPvwA}!0<9pB5?RBqjyk3(rfub zk2~A*DDG0w591Z&OLXb_yh9uj>#$hGH;ctEdSQI>sxcHI7q=5H%QD3+E%C+;j#y$* zKW_*Rt@S$vKn8|}cUCQ&#w@UkGY=@Up;dDeM#afFqdfuF z9+p?V=`aweL9kh6B?6{%%h+0t{bMt6CdVcSy*l0;rOb$o#TuWSZLJWl10{+#EnGh(Zl|W;B>7eX8rKf z(Dac3E5e8BY3Sp60;(Ko7+wL|^9eV5G{|WzF_9KVtDI}MV^O8nu=k%7@36jbhc#g3 z4iE=`7rrqL<`*Ei9-fw&8vOp5!NERny;bf|0z^M4j+(R3CU!kOE)7$=MZip?76*Aw zug%t8%Uc=2$XeW^)KnxZA;mC)i?Qu7C-rG-^e<-l_=bVh?zK?;#6-SOZd7*^f#3nV zl;$}8=6BjT?2vrf;V4a1W0ddm6*-zCvh3`E8^>{LJaYp+-G+mjWio-*S9TY_z$p>r zC=!s4lAz@y+^Ul0QMj_6veiS^0ZlV_sbW1pB+eBA;y-=tr8u9w zeic1YrnCfHwyV^Lti0bP2vQj+n-TxErJ6TZtHXN@j^Tl?NI+} zPoj$4PMn7e^8XMVyw+;Gsq>L-;$7F|HCZzI4&SL6&#ih`+mTv_u&m=@)y?lhP&2>6 zqFc~tV*JP5g*+a>ooJKR*M^_>vL?$F-@?{^Y@+CNPAa=+KE4dZn?cvw zL4_qhW(TlKTdnMtcx7p@$SHs)oRH1qb*wI`ZSNKs1nYJN*vp9*+voZF-Ee+i3<1w& zx9!VEs*7${w|64kWXu+qSF(s-*4PI#s@VS`~#RT z0J)UpTQq7c`d9pzY$9s!Bi+lmFW9DJZC__qhihU}QmCQg3yPb^H@<&h1Gf`R(3 zkXgGH$)D2R-TvRm=@#9#EmZq-ga*r@N+bF1J3+OJ_vMgZX2Gc456Ki1YMF94ECo|6 zU1mpXv!1~tKiciObEqWXa1W?FI?NPLe8JgbKVWVpY4Hnxef3y2ZVcWGyGOO)S_gI};KB95tod*K2LG z(6rqc8afO)`Mg~Zn=I+gzGGjcn#>=di(k2KJ&3@W&(L@q#?RjR;S13PGwPCSz~x`} z*cmx=%(BeOy#O6|;tDKmg$pu;rsy+QG|S%1!_@N+~jVI9?PjcyKr(7;_vS(zr_DV}IrE7<>>9%&~yz z`j!@oNzBc49d@H4LJmtdOhKt$H`0-gErO-Pzu>9fmNm96;$>2n$4_ZsXpwpdrEYvM zM?A`Pr8LYOQZ$Gx*qs|=M$g5JMy68QJ4f$6ZiBqx)(v&&zr2f6+Y)0)!ZdegU(cM0 ztJji7*$D|fQ2Amn8T$v5yct!Gn&b4hDyB<3ACh1Uis5+_;FOD zxvaTKh^wz!2w9^byNT|jj3%Bpr#~D$g=;k7gjAfw$j&xHVww|w@; zql{uYl~>%c+M~sO?B0XuMUj@AZXwC=C9G8o3C>&!5(kF znIoVs!r>{y2Y`D#8zW_X&wbfa0~Z(A%|C*0`N3_`yGXIuJn8K_tJMg9b*+L@0d3YS z(GyjIS*(qvqSI);T6Sd^GAj}kn+hAcCYs-$R-aozPX?AKhIK)H`|C+4iGsUi5V>RD zfrmgXsH?yO!`JXdjZbV@x2rI3IjqEBsV^H`hNkw^0Fn@-4bJC&Q`&mY(_-?_V^-1- zi&WAgz(11@L&=!{*F>|eE@9Pbq1tm?r{cGv+xO%@GbRG;gIk2)|Y&J^yRCrD1)Bit50 z0$pFG6fLGph#H5;mcA!%`nlzq@H8;gzFnE2`(O&txlk`%2zK%RWPn&1YDJ+c)-W7b zWA(;;bKoOt4fO31)9T7aoriJx_UNr3{0)aS1@v-s!QBQ~1d=fhg%6%>F|$+k>Tf(; z4t}rBTL&l+OqaXngy#6nZ+{&xTj z%&r#9I9MUQBwNy$|F#4^LLSd-T_Ka?8>1n1m0OKLaSAVS+`V8#%~VH=;#a~A-;ejr zOuzqa^1RjqJo>}o;OLVFV<()z#IG%6;pK`EdLHwNyg^wH?kefuZSb-$0|YgZ#3Bzn zBT(Ev>d5Nmy3rikc|Q=fitW35Uk85mFM(iXP- z0|s?hSzvtGcJmSg*w#X&>(=<$1+01zdSLw__#j#pFNHfo)TFO;{@~t)ZGhGJfHjay zf=5h^EcQT*Z@=~6OaY9v!|zZU-k<74mrs+3cYu^RLkJ4m5@OI9xl=%`A<8cibvL@e zlRNc>zX%c{d3-Ke2V;{z)M(aKDDR5s-x1Yy&+(|MMGHiCIFmQV+23Cjn4b zWVk>qGWf6Jg_WUfk&4Sekm}7d_byc~fscp^S0L?`$Pr!l-)>PYQ7nyy-GFUSU$6xW z=H=46P3aR=r{$UFw$cM6-Z7)C^gAAHnVdO`a1?-UL(pZ&wOYZEb;Fqt^{qXk>**z< zCA>?w#I!)h-f)PrXYc4v_jf4ck24SzI}Wr}Mt}Y(KcX%(`F6PA1PLOG{Vde+kJY!&x^o2ZyEORWIyNYt`si8Rg!MEIC+r7o z7#Cy6imM7elp~ApwH;vpG{&Ls`Vl_ zO(is%(4)%=6T*FmzPq@MXc#&mL^>HC!PPl8w{q7wMu*Iyw}REBeXhZ6p6NMhJZ`T>_!GmmE-5YH*X+eB*)oX&a&lhcwvMLlQRlvN?R4k~gHq{_pCB{;AS__#~K>1k>m?4I5 z?^y$P82i;H3jA+uW8frluZqu`-(YhPEF2HqCkg5&S8`qJ0Zp-<&odZ4MOyfsW(D?V z{X+7Ii_Bm~l{wKNKIkP_{H^&%(N%ph{GXTH%RW+OWuDeCwHp)19(^!OdJc-T@fYTz?fF2v z($~xbinEJ@A<`E%3_adoBdnO_ro;{~Qa~bNdX7^(Opq|@Kx*tKw~UyiyNWMx%i|6_ zxiAGtC)tG&)`{sOvFYnn@kS^12t-4_oY4UunF@fmN#J^8S<|2Xi#9OcKKqvgxuYEx zd?)wCS*{YA#24oZb7zLn|8v?_iy>DqpKuoX_%;T6M3TF8oT$$@v;M0dG6~%?h)d|< z1Kcz z)tDbvEwna5UbRwY!?Fkjd#S-GvnPA{?nMFMmTBKeyuHqCW;v0518TF>>CHz9B;k%?p-PdNB@Gd@KAj;G z`VsM&+R5MGDR^eE6)8NWJ2;ZVA!SyscJg>vbtoo5r!ca>Gyo|x_+Re9Eo^MK0+5?vt z^FBCBJ#Dv$=H37~H-8?$RequUp2kUw^8@XtYIet2|94UnbdZvGiZ3k%1yEo^22FFS z?AE zom(x~TCiP{B@|J^zUwpqJv)`MN&R==;if`@ss+W2M^HURpcFh_qvocMS>}qyq;XWi%DtOF=?lGEw@$oj1cA)oBmRQzl|CjVP7w= zC+3Ikckh+)*VIk42qReq0?(>%eBE;F_u|lA6;jy?d=n-+o21AgOuaxz#v>#1{ za81<=a0oG0S0J*f8XiN~M(IMUu>tnn?OxLMZ#c2(zqaHQ`WT36p&#%180uClI({&x zK_D@T4H&|aVNCx`F4+4!zVhWNf-nL$SKhbc@=LQzVc<^Szu8}|N)0%txc+}%;G{l_ zpV>4pglF}((3D?Up80(^RgCklL*)uY87*Nhoo|W)+q|fUxMhG2v7zyt&)g}74)?j$ zzca?Qmcv%M1`|uzpsV#jE=eU|o5qicOm(-faTI|3nNCri7=7KMYT-B@oVZUCBYJb) z=o{loe981vEND9}`LI0NIylb|@?$5=w9f+@11`Rump~MXH_mN@lGP~Mc)(({cXZR8 zVgjjS{N~~|j;65;?k2yfij2*ZB2qz`0X~nY zg1}O%$)at4S{1d1l6KYaK^sv@xBSoP3Nt*2aiUNmA}A>wkwsovFiKjuJ!DGTF|=>! zUk+<~`ko!2X%BYIiS}L``~baWMOGcWySNDAO@d_!i6V%J@fl2lmypD|*q>7-^Y+w| ztKi`yY2O{_1mVC$)a*)&NY+7;01_lN=&k0x1sU=O>H)dQF^a$#OIhHVo9zn}RIh4dQ(TvXK=sX2 z4ykS2oG5?)zsfw1`(-6jem%F4cvZz3v>vx#`xMc6;>eb>VznPSmvb-`d>{*H$LImn zk$?$#$_k~R23d2PQ4!yu`JyN?MSE>!-Ds2iEzP1o>|hOyY9vrn&3U+KY-;N67gtck zy?}611HrciJVp~u*FI6NNtwtdsl-97L2uTl{msy()XuUeu~|${PW`Q@`pN=WiKi_g zG}XN;qtxjmB?jusWyUw$I6TZ+-Ffg)XH4(8gnEh1Cd@sdyX7|jUR3MdY=yLHd*b$` zG@-UV9~c=UlpfTRY{61kMVd}h&qOa=U$@y+BSpct$|A?|eizN@7M^UlsBbBAKtPw* zIWxD4izNY%9jroO8pX$yt^)9!h1 zNy`Dvb50(8fdtDhBUzPNACIM}k2!7XLb`Rif0JXflc87E6aCsM93iIC?0y)tz!<}E zb|eUY8skvx$A1+!Y@ks@wuaUatgJL+Z7Pj~re`?$#9Q`qZIc=={#49+FX?muNEb2` zLWO^mdYn(8jc*oJPu1ll1HLu7-#TKIK|nITq&5p>e|`{)>#t+$k%CtkN%~!J;PXw9 z61XP?d>p9)hkfd5MX}bzBLXkE2)DX)v$Rajn^0_VRru4OI+CK|PA)3n9~25avNO}# zWMqUD3yP@B(6u6PHUws2j>kd=>$}C5OXCrP3U~TPhLWNMt~Q{{2O|aX|AoEka1ptZ zX}}qWzS9HKv_H2m;iewE`6ppes7-6PrDR_Rm!9dw;FSb=q3qdS^ zTI*sC@aBodO#z27SaJ|vyQOCGur3RVl$kt*fZNc)6aub{*t82oC;BJEp*pTuo`s-? zNdiV8+#4bpuo0u-{sjL9K=hm;JnAz5P2C@b6E}P@b#uT_684Qr3Jl&rx7?XMVyFAF z-<7B*N~bDGTB`g=2mt(lOo-)LZM}tMYTD^;V$S?BA6a#B0eU+Lpwu9fih2B z3V)M*nKs|-F#|b+hw;-KUF87!ET?}tz%=FsYZbTN-n)YUELYo`^*CpJOjLNRLO4S zzrL9cY}1e^Gk(Q1gu|7?nFh(WukYFV4;3c)qd~}|cdGeD0I#=xi$BR%{K!8)8aD`( z8!=yWkJW~{Z`#c<@z>SM2EyNv=}PVVP*XiO$KZT_7O#q%N}@cg`M6R%KuYPOa5$~M zY%uI#0%&b8iTVH9ynT}X#0yzPEPHdq#!KBpGvb$Lr(gK=UXk9G&)`xvca~tHfUvZ# zGjrSwcH#bhO!HG?>FPMMhix^6C`HH^kjI+dCn&z(C#eZF9MyF@l=V^4Z0M|8FyoK~ zVs*`%dX`#%{+{#Jl8gCJ%qbYmwbtyzf_9aKe)mat&JEU|!u~JH#V)>(Xih?k$iZ=l zs7_eonHRey@A*s%-_n}I^ktko*fBUqRK?1(JNm> zCpndschI*A)H>j0fm2t>w@k+E3=wb5kDXImw!+vhJ`kMAiOEbGh~*i%9-_zeMUWOY zJKAP-@XrH0-jtfE)-3b%nP_%A;o8_3sv|aL-KXvpAnP-DcL*;c`J>+N(?5%P}ESu>t@`0j2BT71k&_j-Rf%7WV zp=xQloypZ+Y@kQBF{OE9zA@F@kJFjQ)k&hnuAN6NadWmKe}ad(abRb$ip@aHYe+#T zc;ZWNm~jH}(rCTN`X%I{B>+4N+k(vRR^;vH-2F=i!yWkYfH>AFn3JXKa{^r{WfLr$a^67}P z{~wD})%tE_A?t3uL4rlH4BKK!kO26DZm@3TpgK=jy`ns@PdpMiJ>DT1;0F5Hg=gF) zOHfZg4DMtkqYyjF$NKhDM5*zyCR#`#WDtRI)(=AwP*@h0lI|mPyah5eGsR$}FYlVI zq044czne4Ir4OD;5adVrAanrK*KxXfsg{rM`L+PZIdtMrdQZlJ!GdF9Kqd}qXsjQ6 zT0v07A_aK?I0!@q1Oz0jv17W_IB7f#^F5FsA7Y_%%y;R{2F)^F1Y8$_x!XAyDjQ#t zPNwnVm+>)o%a}%O)mQkia95@&hH4m$Uk}v)hPci>+%^v%3K)zG&0Kog6SeIypaE+j z>yerd^MjDSz%h@;7X4M3+=K()zQjM8!SDB7ST!Pf$WR$)f+mP~;>vzDg=C`TtQnsC zhhl+PJJ*xz5+$$vq;RMBk14zIWLNF0GeK)0GIzo!{d?GCigX#Xh8pO-~%XXQxiIdi00fmJj zh`)9L<|R$s-YGLbx|%?{l)VJ(X<*zyD+@3RlKU0zukX1^xLYf~+HZLKqa+AJ@ zB!SdAm*mVA10`OUU)pR(a4dpF5@?0A|0c<{hYac;5c_5g#`|N-K-Ld)`N!FCr&d6D z!Ndp`jT*XD*-pRfRA#4TITVZ1g2E(fwR@VHsob5RKoF(+ zg*;)7IGOTgYPT&#j7FLiC5IAYJac!N+RqGgmj0(a-L9Z^Ii{Xb6EMf%;|H&b`;_v- zU7`o4_kjQ$150UJzyA6ev*JA^>S@!v{ku@Mpu!}bfN=qt6qF<^3#MN|jL4fj5TG*< z`QPrs84Ul(X&rQv%``*$DpykOUBN1cYTd2*h^bed_J{KIzX%d$ZF%A#q(>b8zv`JK zelR#~@_D#1EJppZ?Lt2ZKM9vej{jUKo@-Ohq1uVU)VcAI=iL|Nm36Dl!lnbR_;{Xp zp@7>+8`a~nNU(S%tqZ=X4tb+cugWtl&URM>pJa0ksYP{mb{3&518#;T($)&Mss( ze8+K_W>xu6Y)s=^1eqCW%$DpY1J((wtP|00&^oPh=Ex5yI7pbD62u386 zaV(d^kK?{%jkGe^&)#9@)n(rW^=E&?lW%h;dAnw^^}Cz`=+RfrxqknbKW7-4Wv{Vx zqP?uoHV&99n5^miYVgT>0o*Kpb9ds3rDLA{vedF^RYf^jZN)Lz%x@JadR@@f!K^ZE z2EIXg9Y~CL1YQ_Hd}GvVF6GE?PVYRYe{#=tkG!SNpw8UV{C$)@b@y$zrlIz@eR${b zPbZp=z&|5JJS>TGpX%{Df)2do9LX+@r1dspj)^|&a}PkqQ(xL?eOqb%=EBEybG8>V01qB#wxPr10WkWQj9cvj9MV4 ztekx^h@i$dZ^b7Uc=8%6Z5qVXl|{8T=v3Hu|NrB1i|{B8MaCq*zyu3{}3{SE^!p-`fUZ((Bu*K5?yF4Ss4IzXj zG7hGk#j-rPY}=zHdj-GsDdDh@Bd{j>x*~tI8hbLaU)6l{dbF>eKfwO9RMg*?;l*o2 zJ=p@S)IzHayD!@29j%_zU(S1$dpc+3%ttz-?hAYC!-6U1-nLfdHevqw;ZFlXEjI(34zr=-UKK|K?9K$;QaOFZaAh;E>z| z?D7>Z0Z<<@Wi~VsU1FQV^A<5w>~!VHrS!82kul?86p_MbLaF0a_WYS13!gs6vK;L^ zTi~l^(&RKv_XA4pKTKk+b){bTL!POE%IN*-lCL@TafMLpBjUM}*?Cw+i|J{#96-3R zZB^gE3$2Cx)XPaYT!l`6a#=r=uX^pl;Pm8Eq%m6JO2}wn0Rr<>7TGp6#r{MCbe)Mq z$sB6)&Xdytd&u$v?F%#j5r?@>2r%FOj{~wy^m{+G#?-Yv8(xmXVa+wEN^Z zd_R;-v(tbG`{V~{Uz0-1jRPwB07FB{#)C7lMl*cZw!Ys?H%XOjw~N7FZpsTfC6xvg zYp6{n7{q?>A{zk^taKp4A5HtcO6|@yfjf_!O#6=w>H2Ns!cN44I#9E2sK7oPVPT+oC^PoH-~Hy2`L!B)X19}im=JIDec?A&3JpPnYmghKSm6bOP1r)_%WsAht%{OoydI3L3u~H9U*Y$W*FHzv0VU^AmVe!=$u=#Q!F$H# zs-A$^;yMqLXBIu{EkEst^;^~&hA zQw0^jJ`I?iyiR6?*LS<7dv_|a}@YD0wKQO;3j_ex>`jOqu1=7`m&d;~WyWcX| zcE>8F(TPE)-hSD$R;VS+YXHf7LydT&7yIo7Azgii>3|iIIR@<)v2VRh(*|V#zv(F} z?=JSN@vPx??#n2J5bB&N0z?>2*roDI$Pp3Rd$Tf72hv>2=%WG!EG9Dz^DilbJR*Dq z?*6b#ZHlMUXhxqDbSb-3Vb!pkz)05B`uP(+IoXcF@a~^6s!714CC^{9OSKNF+G&Jq zAj=D0C4*jl#Zg#28om|+z@!+z=Jo7*kSlHadnuHVV4=81?yP-WsA?mnH$E;gM{SvjQvpiuxEPtk*dmuNWs7g6-wvF{PFjwjEM>LfEqTVB7~7 zR#2{vR{hlHPmJ$Dt;IN&_WRn0Gj5 zivXc;LG(LDck;hE)TTbxIsn}g^lV>bYT3jnod@2Z}ErzyJUR%?_-$ zFoi#l{v+LO&|Yy{mk@#T!)UmZ(j*%02oCT@nm_-uEHGIxFE5S{ivMZTxuUoq$_JWylVX5D} zrxyHuX4N`P5%ML^H)c>Dpt6&=J}tV=^q^*Dpa0ab%o~IOk;`SK)39Hxd+M*)a;`;m ztUf0FGtW1?il%6=|I7HXkFmM=b+OG$bH>l(Y;qcQ$S$Q7sHHh5t!Usr>dC8cIv z0+%J8z5^axZ#V8f7ua+Osj9t2XGdFrGvogwTV^oSW)ft!Yx!YyffLOu zKrCDP!YgyQQf7fS08wh0k2G?tQjb{n76S=Cr~mNNiYK5R$7bloLhCTfB7?j=DB^!VnBLww2r`apaWyQ4M&nNUlql1d0#k%92LVf( z0;k$hYdLTKyoLpLUl?752t6QgFCdhFjwHC7Jh#6rGcCC3;@jk|3~WFkWjX)?ueRRt z`F&^RlRZiRYhrKLdGIH57WFGmummQ{wg0sPIkhx2|J-IX2APz+B?P!Q&UrxzdAE zHHvG6c_JXX5l#Q$2#P)^hH|4TJ(X-J^LDOf#iS)&OBm5Km_8r^wJF=hPYqhtFM7en zT9hw2PLxgtMibl*S#(9CNBkzqUj;xc9o%EOkuIBZlYM>w8ZHNk;VD6SZD2wozhEjR zY;^OK-;%~?HD7SA6sK8&MGGuIAs(!9IG1KZ;QddTNjmEC(a_GlJsvcPkTLw$%XN{d zUp{3yD^-~^fB%`P6c1E%eh`d5>D%^)YsN=#*QUks{KRwn((6XEwCE}4RQ59=I`yaq zae)2FSR|0zj@3q<)exDV-neHez08P_N+MhNCAYSLkgS2hr=Uae#!&%n>u65+O#Do; zv$^L$bxJVXttEI372%?U?jMFqXxj#M{Z+?B z_>|>G7>*i)Z|qa;c6}&kp1Y!Im5-Fo{821^%Dl(vlsElXniXr(d2ab*uRvg5qGItL zdb|^MHsV{IsZ=Gb-K!k@1|wiUDOpaZ(M>BEGL?49&r8udt7Hoivet> zi1MxFqjWHe_U;iY!gR=cz{8gk0{)$Rk!+DByd7$TLp#@FM z7MTxLfkIGPYFdU1xzjx@C}2z4Z*p`Dj?p^zoj)bL&wR&Im681E`j@=FL{vuNxlk2R z1bqTA};ZQ1+~E)K78S=CEQ}7dQO=5ImPx7T^)-n4|i!)RU0|B!JZJd zd4!l`o5(Kl*$Kfgp|cC?&$DXl*IQ!!2b=X;wflEloe2f~#sKTVFhBB;bv)39$I2*N zD0f~i=Kj2DqAS8BR}|J#RGUPWA-)ou3zQB=1ixuy+?GXK=R5j|@#j*qs5OUmy48Y| z9H~<&D7gELYN|Fnx1LXbAKm0btm1Ng{ov}yLiKS2+2xI(;iipiKPF_>jJR*Z(&r0A zO6<3PM2BtT(W>lAC>bf9uOTF5cWeD$1Qb<3cj~U+Y6#%`&n?3 zbNr{lgtgmyu>T$d*2b_m+e5YroM|*sv3O#po%pcZ%N}Mu|G)qL|No!yc3sTBkMD>$ zanh<(c=0j)4oVLiPC7PZc`~Xf;HRN=iinuCir#^W1YlxJgXcV;ipO7EA<=o@Zpca< zeMRoQqZWYJ0&*9rl}#!>pQjDR8aRtw!Y{rIWYO0F>w_{WgKR6}g+q`ha!mFxv|#jj zeO;#yzU&W9daPpft^ZC_Wl+(f168xYGT2SE3^_-oi>3Q|4b1Ujw>S8Y7I&^Xi7gDF zejXUbji;_rH=fluA+rG?O6?L?k6oyUOqTd*q*%cWL3d5*;2_iUZ%D>x5HMVH=wy;^ zcx+i+PYMn&A3m!{w%%247uRp&UWh6Z`1Ag0E)b}`R&D+<*ZA4OP@gg%(_*|D9MfmG z@YArOaa(}Su4Jg_6~cn~7!yNY&ZbSaTx9u2B>R7Lrc^Q4)C@`ysl>Bi+Wcdo~BebbA5QBKhSPB!0gGzXud zG$5>9!WFT(KCOzaa3b<&^gJ6jhDjM%cjak{Ay?WXQ~&`(cPDW|`p9`@T^xyrZ+Ej{ zFb9M1K)RRAZTLi67!I8KC6Axkz~9{LUAvw0qR0*!a?63D>)%`@h+ajTVXO*SG~}_l zPw^eK^lD7AVHrH!69K@UALrBP5vO0>>&>lgzdDniXRPyJ1q;~~es0}8ZUEm!PeRmn8C#W+5e zAqfAJEN^)>}H@vAvauI~fI`}_Xb_El3$%2aLLYbmL&eHergP@qjeWc|>XD^fLg?rz>) z-*!~&7d20sd#v)z^n(vncB?8 zSEmUhqid(2QCQ9Ns3ywsI~6k!rUQLU-rCnat0V%?;}8~?rJmRO;pW(egL(IAhjZ9* z#;o2aiqQZka>=Nd6zmFeGf(rERMM}40Zk!KBubA~V8RG&*#xtt{m%0Tj{%6li^!v< zM2)IYWIff#)@SUSyMqu7RM9;zm`e`#glT^RTvWDxZ4`%!iim6Xj-?{r^Wp-cl&$TO zx5Jep9F#f`iR(JOOGdQj!jS442;C0fWx&7;;%JeXGcM-a3fS2`Div;zE|=i= z41aA`nB_#-0>AG5bBfR*%p{j{{z~ZRY#j_6xX6397`XiT&vokl06Cw&CTgKTW9Y$$ zTWyfi`_3+Qtmx9Ae*N4I7r|xNvlIlsT0moMFQ_zP{_~BI%GCN)*9PkS!R+;m-3r+N z8bymhaMH7Lact-pa0R#kGbFBN3Y}oG?R@a|oOlTdx+9Jr!&mX?XS0H_M6hO7LNY@4fW0DV+vRNs0=nc#c6rGE_;A6a z9Bt{MQI55D1^B5M!*(uOuxKM$&{xZB)t~}9V^BP@TlsSKCIY~J zE5s&oiT4Wa@|pV$&-H3oQ)z;iu|p&{b_*n(&7@5H^TJWLjdp0;D)}_+Q<~>IoS%xY zN-yv0D6NOlb{$$<7>m+3lCU1e&C7EO?g7#Hr3E%b9U@m~y&hWG9U8djImn#Z)7J!$b+wu&p>a+LyX>TenDU|C zQxfltmvLMsWrbY}C;`WC#?--!%x~Un-Nf-v|2H;1d6Jsa)>$OM!Zaor53Rw3DC&b8 zM|Fo*UkiaM^wM#Eg{8;}<7>QZ*GMG^HgKdDQRffnxok&Op2JeBcY2{phz?LJ+DdJx z=|Zk1)g(u{1drpRo=;8Ad6i8r+tq2+_?Yf!qL9HU0A0uq1OQt< z0gDj10Sm(9vwZuI5AleB|HH>8En->#Sl*3!?iYn^gJgFZghm=ZGrR{*4xh#6-g)(o z0R)$6k}SY(3sIcXBxYHKjs|R~rqw>kBjuF$$&b?g1C3Bwf&I<{*I2)xA9>8fi!9j( zLJtHRtinDOEZi!SmPqrr{o&WoM($F3p1c0=krwus;!zoC$?A!69aUo?&+UG3NViXK zE-8ROqKEhJf}7$EkPk)Gp=MdcaBh0Rf` zPNjCKIVruLT;omRo@G!TE+m_wRF{HUnlb*ZPd2)fuFJ&M5^CPwN3_Dua1MMMp0(Z! zaugX|h(Dbp6!3s{nj}~a#8|@QHrZAri{m8%XgDOSGjThOYtkE!sQBeG343YT7plUY z==g1$|4ph~soCT|vm5Dhn*TA`zF)Xqxf-a_y$XiScOU=gu{34d*RKB3{__V$z*OMF zPhh2V+O-r>_&5MS_SVdZw!CZ_0ekxz#Xsh;luqNcj1q#6>3Z@1`DsZkKjaL8-o||o z?+fy};b?}yCq$E2tGzE=^J63?$#8` z&nEr!o~#l5lSm%LT^T%^@&L29x&;#hT91J##1 zeCgGD2PrpVTB_Alb^FN)Y5h8!-&7l^$0&m?`X9D8j{VvFgC@&tI_F=Wn>Zgp9+xY( za7*U|={>5x3BQT!WYEFt*LBz;h^` z5b4T>B3-w*IG_ySqoGoO8n>IsxEE{FzMiq=ZvRDs_<0y9&8r%q+G2N8?39o3dHDY9 z+tm)qkWie@;|BV`zlJL;)SF0b@J%LrgvXsQNDtPz$z0g9|ew*bTk`VcGo^ z;)C;9p7^AW_f8nVCg*Y$ZKx!-_RmmcW$3-_7$HyNt0l*5Jm`~7u^8#Fa>eDZVyf> z7%K^9qmg>Du#&F5ww5Xu;S8xc@)|*S_7y)aIH&8!f{0eKRErbJ6NQWi(65BMIdeV) zSaRLj1E&dEUo-0-<;|d31ppqK8=+8F;Lss|#0s(gHVU`##o)D#z@N*y+VHV0XIgt< z%+Pe!HzO1o21JQH;^>J%|+w(*N>0to%uTg86%FFS#`7 zI*6yUAyug!&rw}jJ2A@ymCpGezdA0-t>fRG-0fWRwSoJ(E<)mdS*y@0y#LVpOcw(~ zW8DTP2kE&wU2^)kq0%yovlcCbfmdg_?p1*BB&S=v_ZIKgS+k}}Pm}!7bv%G(xT~41 z#y&Z>na5dwhi<6jh{lGE5veO3;uU5D_mg6CC-@dUR!x4763!iOcA)3$hu6}#VEEW! zngkFh;;Dbhm=ybf;Qt)46cT<1!n~TiGfEPy*J#R-6S8AP1yE&trnW_C=Wpi1mWDv? z<(p`8Gojp+PZF?yV(XGzrVv(ghsA;j&+Yg)FwL=rW|!<kyfFaFF{i4C2kL}ODCj&PB9Z0!SWpyvxW|eZNlY$ z2`kU<+?^E}ifUlY5ebx263ZWI6IPA@u z&2RJZK~?GQ08tx4Hc1>4{6+g;*m)*kqu>~tA`_6-2n5=}fzsS?8vCe|yLhx7-$RO+ zH5V`ia3;7$8n$y_lrl$1Fue8z+(s-}O`uKKP5Z6aLG`21fG0`nI6qVg2Hi31|7{XQ z1v(IE7$j@mpbsQ=l*PY>&?x%yMf$aT*yTOm`HXJC&3>dhym!%xTS{L#>cNUGea^#Q zIO)`ppdRd{M-0o}bJxyF2EU5GzihW+x5b;Mug&xd6fV{HFk27fJy+#q z;;fKRglTcXt`U<0o(%HB$C3h;fH5RaU0Xg;qUs3>IL5l$U{5$1hEIp9_RX>djG<3c zm01TfU?44yq9WX4Vb0q_>3p6OmoobkToMw5$ zR5i+rgKA_so!Rq4bR^s~u=4TGXi}0G3j*cG~~sPgJ!Euc2<5Q6HHBiSqQVNsa^w@&4*c z@Pp^+3ykaZ8g`rw#Wuo5-BTW8W$~FXEbU)tO<$tb>p%QJ%wR+r!gm_+SXYoHJLd^ZYG<4`NWrHn0?`>v6<1MuH)JJHL}bbf3_fxHK(vns^OXt zO7eKRFxPX#=Hc6UVnGl>8q*G|S%BVwK;~+417(2^=#8{K9<=B`bb38A-*cdNfxw;s zpCr86u|FV*5A8Co$2-Ja!D)5yMCE4n5~jK%%Z9i#y{!VjfvQfF_L-Z`NEGWmEUQ_( zUvjdY$01Uc%Ewtd0yQLkCIE#Q7;_>`o3BF!i2@JD+h@tDD7iOAQhN}?(du1N$Lc66 zJb^U7I1$o7Pe^D$3z{##aWT#UUNn@#TLf4zgS7wrLYx^q6URsg z3jpn*mrk{BsbV^02yTR~iX2tJdBO64BiSU4qJG#m7t`~y)_HamO?ayhMvpA=t8L+) z-1laieThPrw!zpq0?d@26Ylt1?y5(#DQcpN4!Z(VjgxJpexyt4P0(LquN|-{)0r`d zkJw!yq}pI4Az7s&8*|uK2P-QqUllI%mXS52B44EA47MI}!TU|nBr`fS`3wuWs!(a^ z>N`8J*yXpBgCqz#Ms#uG=kBD+ss$uFO4JMMkHrE3Xn+~BjRgl}Sm$t@BB*agZw5M` zgr&ytEn{Ke*yB!fVNFzDPZY@h8{ddjm7k7Zyx3O$J^Xcss1J&`|3iQq=8r{{Xp}Tc z(~Rc!>IN8knW6la0S4{D@pk%5)sCBEcwE#NdYS7^@tvU1yq>%m5`0WVFYSTcrvZ|K z6*=iK2oEmHW3Jf;Z^$ z=prlmYA_Dg_t5S^s5uMdXoThn3;&ws$C#+|UpVvelWgq>am1x%^96oI+I!)Ke+}GX zy%U)z(+lBM6%Ql-lp#BE9*sw^Tdhkv%&?M72!G3w&3luZO^}_2Aj)bB5$BHNZpn}N zpUxr}?PcoYln*WcL?yg!Fp?j$bO}M5$+Qrg40?oJaqmI;r72PdpKKtoeSQU1_ye zbZOQO@U};%GH3?(4Z7u_N(!!H8ytcmhmsuvg7d#4=Y58T!SYTomt`%BvgsUljHb5 z#J)!}GX)1TeJ8f|X4AQjL_HeDhg0`F`vany=SA_+J&|4mEe6IWH~oGlE-ThzgTJE&Uhb`W?D3oIRZEOumI zTKv>1+2rb>W(Fx#>DBNGvNr`EP(+;8NMMm*%87$mIlvFM&`Cy(Q=6@TX~325^pejv z&Ro=kaWt(6Y>TXm=@UFvv~njLr7-+b0vsR$78DAyuL!gpZYS^#jXEh)U{zg!3zoAc zjCAy6&;pfphXvmWA9bwv$t?VW<-K1A_+~0T#a0<>swANNLxr0S$$sR9)C&~{8OM6F zc_b;mRBXc#eX%hL2&RA3GF5GXs#dW$X5Au|dVY+xRg9A^B1%>n?4{D+0asw>ExyE4 zeCDJoQej?9VeRgr#}lk$^o=-C9R)*1=(k)fo&=}>%iIo<3DvOPa^`!0BP14`Qv-D~m|_OStvF#Bp&yeyxi)3&43vBs+#09uvL`{{$Z+ zu2YZanxTC^p^)O)oQAB;a8A!6TlyEOqW4RRO^GMV|~We#rbxl{zM zNF(R2JreXcia)CRIVMW*?R?JQE^3D zO;0qF`YSH}N7-+S#7%SFlJjcfhV0mp;hc>~7D1b+d$q}gmVI|>HnE!H4TK5f^ElLj zR{O~!ZLZ;+Azh66p=LiKO0o-`9O}FTZ2c_GT-X>IgNoVm@TCYnx{5*D)OkSYgi2#f z)Vt@VaAj`Uw^BrQoiC{FTGT`-f(PoPmlHaShwT9Rpss--SmLI268^OfXoTA+%l@ig zL2zNq870Kb3#~$^oK{dBw9L&=y98Gk0PwlzG9(l=Cq(By!NBT~M1j6}dF??(%N@Oe+${DBMnap~XXNjn_b?p_0L1t3d3b9Ss!-9V^f zf{A*BylVU6Q#F>y{}@CY0Mtg`1b2IxgSynk8WYpQQuk3bnOJ_xEO{d*Ot1%GF+^Bk;i@}jnyqk{Yr0uw4pO`WC1Di<@<_OJ z!y}6&(|O8fQK#7a!o8rBWf|hOYDT^obc+D#EOYeG;3xxC9B3f-XN(rmsH)olNuuyG z4-yTN90B`Wm)1Pc!LonI1F5o=eIuG}a#1Dw4qHs{d^lA`Brv7oe9^&V`c0x83P)~Z zIy}{)=ix?DNFv?KG)<&<{f<4FLC3tHd*Cf*I5^sK36c$ToUMX0~Bl)2i74mClUmcKjs109qA!h>|IhV znoX!%0lJz6M`4)VVabosu`6$BNQ0$=A&-6tZJ8 zo-)Q-g?cGoWD_%_`2XP6;zvV;cz2wUxe=NZH60f3l(7rW2YU*f;0B}VPrQOTuR2jp zY{o2ELDLquj)=(jEOb$@U%ES0i|M_4E+WN&Hx)pt+-*1)JvfSrU%|C$bha(5{)6eY zBr3Mzf8;w;xBvhBo5X0X_`=T?>PT-9gtu6DZSgft%+<#%zAKFYZ zE(L(q@A>V-l}#e2|NdM-owmj3kGhsW4LM1n(qWsRQjAZKEeUU3^#P1a<~UX)#A4v; z(+$7r6y<^LTs=pq5UEUn@oLM>6m>my#~#r*f8Ona!6feJoN_K3t!Ze` zoaeQVH-A(YynD~_D@MAZY~wuZoSQm(z``)lLSgbG2{#IU=duCvgJ&qX)PLA{RAncI zLq-tY-hg;AHq*LSr~Xu7!S3%>9@;n@?#>KgYbsSdsie2`VXb^uKKNeUD-Ll=rG~s!7Qh^~1g;ilz6wx}AxA6ZutpE))COJIuK>y=pu0Hd5B3u< z3n8Lf2gcv;527L%rnp()6`@~lRP)hh`77tVu%_uCqs*-cvKAf*JFM1EtR-#TBgrI@ z|NpeJCoFXP!>@8)R1MM)>O9_(oFeTJ6`>(vp?xMeNaBEUSPlgo^whFzQPdbHs9ArI z*GKIz9-)8V`QKQM08CX@1ANx8oz=%0KMw5x4tGk@Ap7T+iyCpIm`=sO0MwwVfCFb*Knrz`fIC_S5l%3G znJ_n|t2J!`Sh<9ZKeyA;&L4I9L^DRg-}d1hHl}f{X#(>oPa+wg<3c_PuZkss%W8)` zFx4!E-(N0MJ_U{UEwPa+m?n$T0bcVtJa&Fy)SAiJa~s+qdIiGX#r|TOO@5wU*HD#m zZEE&V8cTgxhv+r+9%O27XnPVa=3!T0S#OWAtjB#X6$7M-`{bTEHf5>0qxUHfj zo&+r1a9B&PI_vB4@aCX;iZ?U!;!{sU0&cDwY#K{O|JYJ8&4z2lCw+-E$guSrL&W^? zh+3{aK43JoO?r-QBA9{E+(v%e>tIXaTNvkLKYFaAMt+dHn@b-v40Llqcj!LW?%v3hnJTMOsBmcX~;AV)9u zUQh@C+MWi~dxCfu@$T*lzlRI;KmYt&qlZ%Vcn z0diZ?1Fnt}-V1BRrFP5qUB}Fi8F`MInKd6-HoI>*+73T|y!)q$S_3XXT_9bsc%Q?{ zW?M?eMIkkPm;t{rVHbDBeFEeB0Cbnx>l0GF_{U8rc{7J+OgaV!h8O<(xUrBCg-k{< zq0Z_l1QHZKzA>%Jc);@Kq&JT4hgDs5R)1bLwft!tfluS@rN;kYj-=L)YT5DI|4@QJ z5d|tuw)XUen)hE{SRTAl=#=%VJ$~+@p*_5{Qw%MiLd|! zNFf%l3}6Fbv+`l64u)9=0;q9EgU0bw4kyeCgjdC(owR2(JrNPvQF7iAri+gh@t)_N z&x5_Rr2zEbxTUZXJyVp&Tq8NjzU42GkTtuv2o6ea9f?)S%p8w=EO!{ul>*hVK=V#| zf`nSsE&V^$qG8{g(2d**4O$3<&W|#3Di+gN8wupoh($*p%-T>)Y`yK(iccL-z<3mA z>ne|G!(NByb*@w$7*Ww{wXw%b*AzGqOu=ZMPw0Oy)^KRerP#!ngYixvv z%TzyEk-r9i~pu;`;~UBYmQ9%RCF1A zrQej<;i>0RYOL<(7MaAULstPYZ&g-+8@A?QmqB%}JIV*b*{a=x|MrRfkW5+0FQtlR z*3;%ANW>2bG3WogK*zcLV&K4PBm2#Lwi?aDsptcTuou)lNtgLoG*&C@dYgj5mltn@ zy}A5iz~LBMsWGgiXva|k_ImkakVOLRhTi2MXPyuf%iULN2mWt z=k`ceHlcSR+87d=71*xkS+I)up@K951x!U}FO4Rjc+$b9I zLUO2(a>Mz>N+a)&yZ`tiPCDVHn%pu}ckw@{luToOw$Y5u+%y7Izrv_t3Yz-`ZY?k( zz5fmFP!bn&gw0GGJbj*KYlx+jV&k#J8STqGb~?;RcO*DR4>!pzi+)|hQZiM4f=vio zz1#JiRYoTl^gAdc z{Z}29wzx-Zm(y{ll6^;gkJNY%)xAebNNC}dNHEt52K|#(g zdVS-tfNm|%ZqKC8Z)r@|bNE!|?k_JA1Ne{__Kd7*d!25bMFezxQ;;ZOv*g&eZQHhO z+qUP7=ZtOJwr$(CZS2{N*njVh-Hqs%eyaGoBf7G)GP8OC$UC%J5dA+uQNtOkrNaOK z3uSU-gg1#!nUTwmb!~^EcYld{XU{*gCZfyIpqq<|L808p{rY$iMOIy3f;?w-Et__F z@rRm7)x|iGNBuO%VS*EN@&5ZpYR)OIQgledcEm0{m+6`)UqbD zrL}Lx=?*3UIG(m97-tm^o21tQ@%ln+*`_`& zCxZD-qA+l4>8yBs5~lfU+3}kTZYie>k#U#ky1I7|zD5Q5gZ;@pv7tsM5vK%xo&X1e zuYw@>*J`>z@4D@7%e)VLKvsfsD;|xLt}kh#1GMy*GU9?`(NgY+!em+7M+XggN6{-6 z4o!f79v;u+Vk+k9E0`xfiT?JSMNb6uj@W|L%f-#XwikXn%Y}F!y8}p(z5d+S^f#)k zKBE+30!baoiYb*XWjI(xMNjvz`p*n>E`Y=_^^8wj>8?PGxIMSmU;C%L#^On0(p3+e)voD_cehJ;$Ut5KJO&?hGV~e;r_Y+q0Am* zRhbFHYrC5vP+Bz$l1UzED0D*Fq_lLVAw73P0X$0&ZMY4VG3$gz?%mmA&9WR2wAMf} zs9FktS89MoqL<_Yf!Nkr;$k5bel8P9-Np1wQjVHk1Nz7L$e%fMY~c99-CqNCRNyzf zD#Q~qu*RXFy`;LZGd)#qc7v+z;1^iPGBT=@pL*`aO4rLtbeZj>OQz|VcMAy*eCOKX zo-|N*t2Wax3Y~@iX5%VXmUSo6DC4WFZeiNr^u}JSfeNkppCX?|%b^$0>_U!8mR7L1 zpjBq0#IZx|rD`w&qY5sq1qa7PcacDbYak8fTm;4IQD0sQ+&?#&=5Y1P{Bz817)on< z8W#5Fz*q$DbC3=P|MrSV+S#AmvOw86LIQo& zlxAXBkE_809=fA}FO<#(M#!TYg@I{G`E086qy{k?{Ii$ZK-tog%PyQ*>}fUHIq znps4n*76Z`J_1jWwFPz6hqsJR z&Ri#6r+GhE~P1*x?n>FUp~y=+&~Bk2f5=wN|;o6M^eH$F!RlIum>Po5X|9G*rE z7)DQ}M3*^GWfA#_;xiO7F5~?2j>1#=%d(*WlCABC*M)A}hg2@qd#zDN*VCbCj_8i= z$`yT`xk;0{(V;e8No%jOSa$v+z# zSRy8Vvn2Qj^cz~E=lQiuDrsECi%QWL%2N2es?#rozAG&htJH9ix}lvSr7({%1cKZk z!N3$?OJZ7(`!yNAFwFs1OqwJ}_0ugdHQy-+X6s^NO?NxF&@{{jHjA!k zW#$`aCWdm;0Ei;~VFM1Hk%ky{58A=m`#aFrY|f&w%M(k@hUCjGvev(!d#%O=(y{V2 znqjf~CCcGMp#_S@-TkE3$i*+9p1$h5rnQ?&qe7WD)DM8|sNhPU=K^kUg4uBdXazt` zRrFk5Q_%~Pt|ml7+F}GAX{x_@Zh;!7caa5)h2WV#7ip;lf3O5ke-P>X78_SPuF-X1 zBcA5N*8;Dlp8_dl)?cjJ z-yLGuClPe|tct#-QyE?o>o;D7p)}RWrd0Md%WbQ9@`2_?G2^IJrB3@Yte#ZIdJ2+t z=htfYwT{sO;o4E|bV+9*O??R|7{;$jjW1&UmU7xX$MPYj?$FfLg1Jf_Sh_tFi>zC- zz~klD`b+y+P^ktHEWnWpj;|Fsrq~BU>hJ54AVIP0#TujOk8*K{N`qX;%_H_}7HZgH zf)!hwp0Z30-gP*slt$fjpu^>X@z+ONA97|l|LF_grc_t9rzHa!I&{IX9MMrv;h}=h z&uJM?Mft&?Vh{ZLlr`6J0unaQtfM;c%Yk2iM4wLpp+$F1-!C4ZGK*l2PB{*F$Dj*{ zZK+@PMw@@T&`x|8PS1sBDxPl4iIC+;3(L)4P{s|N6~@u#ha zy?%TyLyl4g9+@t~$Mli)P{ZacYifyg+Yg_+!Rack{WEg>4V!q@@xjtss}6)Q&;wFB z$ZWv3IX8qdd12f10c@S3`=$Rp4lJFgW+%~$hqZiPU5_5yH$pRW$K@fJYCII4n^Z0m zO6H5j%*9KdF}owfh%-Q68kaN;;JLKOvrWV)4UIl9pH|z+tICkU)%xZ#2Oh-&#w zw!wdTFD>bDkf+)Z*F^)n(=-6~2j+|R@pF2o?-Y?dyj+qaoxQ1GyJhJLqFJFoSL&2b zmraxDP-nXXzzz)oo2>5JhO_YVb2VwD^Ml`$-Om1^R86KL&v)-epd~sf^2$*!mPykl zx5pPmK$-52+ew)9MWPvxLecaov9n73u$CC1d6{WvzR`F?Uwol}GiGz6$TO7YMzR(d zzM>h6a0bHS=LEu~{td%yp~ACzliWNv`%O-658n=mBQ9GK15H?1=&y`Z0ssKhBs@U) zZy?U;V4_-cV^B3YPVPpIR1!ezx^SrCeHlyoQg+Ox)gR?4<&7T>plIc%6HqNG*V9St zMCeoAA%T0!QxB_Tx6aX($ddBO~ zm3sMndiy5p+d^2!wNw=nbfi;PLIm^!+E!;uBpCR@d0yZ$(Zy6VDZ9+5YMfVbkDf>Z zv2cxp+yR7$NqtAS3&}M?Ns!@fVEmxDl<18ydv)b_^0IJ^ru9H2=F!uS;}=0O`e&|K z!IM|^YBVCVc`FRH`V0a^H9FaPmrD`4aYBuNbcsLB2@E%AM<&lNF{cI)p0=$KZ4@k! zvoQKq6Q`a6i&on34I-l~$XM3mlgQV(whbS3rMA^0N7*&w7PZt!1V3TXRU5@`AKx^h?1xcVl=11qf~`Zavy*M;Lc zIv`)5&lk)T8eUQLXuox5qG<#OVc#u)s`g{l!Y0S=^P&Fdu`3+`n^K_x4nIw^nEhD^ z%&RKwb)W>e>RUj&l5Ev10R5G7P6JTYNfpA~_i10&84NYcegvd1$M7eA`_to&3rEt_ z<9}jO5{->o{gUl=#e$XWS2V+esIZykL3U3AyS`3L#A!vNwzUipgcR zZT$;0Owwt5WHp>%iu^XcVAeVCd(gK%okx^ZJw<(T=clVzi-x#$Qrle56vx5`jZ#Of zHd24@HP-Cc7-jXU=S33Ne3c3+tMXYdgqLl{b$!s3>@kqy<|2i7(7HLK{<8c=(dB$< zu|Oz`slx!&AE+!rsT+AKYiL}#@emA~tyUy89WfOyDGQv$rbz2~d1(f>FRPt=M|6(A z5?Wpz?`X4wjqWD|!O%!m+*%YtPD#^X&RQ+Q18RPcW$w z`u=%`#*?Ue^>%I*iR8d?&l{iH@no}K{UU*pN=6eFQB}!)ZaxeAAZG;^$kv8J$CpoO z)0J#b8Ar9LoG{baZ3Mr#HQaO}h}mL7#~3U9kZ>zLqIAoPZ+@jW48Ze_`U^5S;UC^! z{5wdLsAENK)H&dy2J*hA-p)(ndmKPC^F`NB^>nggnBiCksR7!YN^ALI^K^Ti`*sb)?l$&i}zvcsOrXK#(Sgang8ef;X z$irI+o=Uuin@((uBjVq@3%d$^8)`shw5P(~Bi};0aRNjiBP^?}X3h5~&3K{$!Y<)X zF?pG(X`g~Aw|^Cu3%MP$8G+x3xUhm?nwxCH3E^9Seoxl?ekiMMk3|?YXs;r zz3xt=OsYbL1vJKRWS$brZyims)(6 z8tU9zcyB$AX!b~JXeyFYr}>U4HMhD5DkWC@>suO|u?$$nLpe9V|RXn4$?x5i(Ye2Lu0U&>*MlkOy)jcSLCWIjSrubPU}l z<1rGss~VE+pUfMVbAU`dx1F?9Ry?=<>?+^f>;j&xvw18GPVhKPb1Wh|#jWvl9dj{0 zcs+jy(YRNqQGE|HE92J4Do7^e1o-Pe*YjuMg4UcG9rM}ip|s^!Qx)KC#7wz23Q3?r zGv%5cDI3`#mFcV`3?I;gY$AI2NR`v6Dnr>6*Yk`<;gr72ioc57He$Wc(1M{OBrCVk+a-cf}54E!b0jX$ylMdwtv}*vQ3s~j@bm!ai9%I z;~UGGn+MXMe-Q!-RyJvfjk@(~Wz|+v4xtSOMn2yC;k$gH&w{YEhJaYyl^1P%^W+jv zrBa2Sv0Z(VOuEB6-bMg@f`PK)#dasCROZ)G+;h|o64VusH|Q@q$#pRo0DV0Y*WfR9 z21PQccv{D=quh+~#j!|A8WQ4xQ#Dm^T7%G75KyKnJv&0}>u<77EW>Ol&O~fkuJ-ev z13>!(=7wRt)GR_0WHbSB!_#=NKt06-Id))>jDO|kwbzYC; zpXmdFrCe*ppnx*vO>ED`3VQ~hM?}{g;A%)wtWH&~7Rbwx8YT6eJ|~!>4&2dEgUR5} zV?K{?WmK*(u+@3phqib0qFR#EBXkq=0Q%<_)|LqBZI==cbYBsi#NZ?s3qg}|gIwE6F_}occ3yVwpRcx8J;!UiTp$`Ohf|oP! zl=S*>BaGXM!Z0A5>(yPgd@9Gpfm3vS{X~OBCCHP^)nmGlbw^aQskB7aVJ}y2?pWZz z$KnW*F+alE@goW6Hk0Cq$wkCcQi8B9#j*9gzvqc$yWEQv#KW(@<6+QwIa@t1dN~=7 zU*hzzraK;Nbpo zrS}*O5YrBg`I(1=v(50vE&+sgL(JxSMkd09&)CdMmbyw;>Vc8F^yBKBFHTAUY_=@N zp+5KX3n-0aA~YMROI7n*9da~MoSa6P|Hd!e-hxZckJ!X4X3(!4xYQCI0A3`g6p1Z| z>+D13Eki)BwIAwAVr9?Xzz&hEnqR+)n9hMiG2Nhuk`(VSwY32qJ~##;O5-o2s5gmz zNzbr;GsM|BfayYkx+t{*LdJ$v31FN+LWSMEhZM8yFlEH1!nMfO-XwV%JS_1`U*Uc| zF5Ch(qp?*@4O%){Fa-9{`du0@=6$NwKE{JZ?4uzjTmUho>!G9F`JtP;ZE0uxFhl~H zSgivUOh{0dYg}lcC>2hx#B|qtvZeGhF9MGJYZr1Vjej=3tE!D0&j0rFo0}#%TM7@* zQlqXr>*$D6((7ZH|05f3RPX|#x4e2;IIoX=fWHH{45l-&OBLs}_yr0B5x)`#mY1C~ ze+O@1>E#tv5YuEQC`8So9l_h^R|G`~`SY5mn<54(BIpVrQ+$y^>Ru(9&8cj7lru0m z!)T3c;U>J;PsVV6*63GG^R#zCeh-cJ6D9p7f(U@+3Ru!LuhxQQp(8m7=sWWvR-^9L z^s;Z^dAL2)&|%HmArbuG?5hYZ3352jVSxQ&@BtHBUx?2n#oz%0K1UIg>hFq}7y(uh z^Hz`&)^#yi0ppx+zwy^TE`O^<2p~B(T$DN@)OLLo!r)&gmL!wm;WPGZ@jfMkbs@|b zuCvjg$R-mAG-VZMupXHo7SDpSmfuOKl8Xbu!P=OXH-pr$8dux)cWE4%eh1SMEEV4w zoi#8D)vE*6H0j^KgC#`U-N6iSsME79?XvP4;Jp1&E#@gj7}QuN6_Hzv)WUnldK4=6 zuHgCTy_5UZGoiG;H&ZS4N?w$j>+<4{V(C_nG`QTrJ5gEgdG4zu_(?ybw=O z1+hXO8N|i_sdH*jbbkV&6>FMS4_!IBlc~Nm6iXIM^wja4{bQjW2+P5OnSTL(UR6Rm zQ_?qdqf>0>g1F{oH2*vr~GBKH52@MC@tfRg{?zX z&*YJ@45nPCNObb7Z7V(?AuU=2DuT`#H*#BqG~6M8HL|hgd+WAxizd;Xaf$753t1FP zPKWA?`RqEE4}8fO{WGFWxyoX;!r*tWA9}CR0c)xwgm5!HHJE_K8Yx2n$6OG^vHxWs zTC(ABh$BhJhv}joC91#5S#0rJnx@lcfVrGI*x{#4I!g0T8Yn)j&H;>(U5M{48m-PL zJ8n2n8mwkunwY(U(ApQ@?z`?*x&z)OgD8_UrV<+-;l+69K!@ZEo^ks@zT-`X!KNT>dupF>i;-KRIDp3n` zS&l(>)ZoUGauy#pIX7MQC|8SZp37IoxT^B(>WOVy-&k#6SD`c}Hy1uYA0DEa%u2g~ zZ$h~c9{e(|3uf=;)%2niX1ar<29J*}hpB}#KnYzOQnqhHOuhR}d`-macqrDJq}9*9 z6?Tdl&|10V@c336P!S2ca2BM3)W)!A^Xk4dg@F8IkJb`{Pe4QQM^ktcu$+i;>~rLT znG>i8Weh}^l1w?fPVa1RPN1@^1|)a#_*4SxM%y=qh-gde0cODl-q*(#t(grc z=Mp-2(!FK{IWmGkaMn#xZ3{hZ7o=MToiqDGHI&Sr|K@-?{~!2QzlwdqgjM0OKhdiS zQ}pj3Rc58~HA$KM0VyzS<-*1j(2uOJ^)tma5_Ci!8;qC@O<8Cg+avr>hl%+JH^qnz0E)On;ux;%+4Ah09CH?6Q|z3L zQvcYw10O~lem%VIU}BE1xry-S-t?mRM1Z=Oz}C>Y4_|eUnpq4gwf;Oh*+;>*uE>9- z!vM?0|5JKErtF!VZBg`ySiqLm0Jx8B4-fLm~prmcJ=9220i$Wduta+SDws`AEfr zuf63i0N%n27b8%+uq36QSnPcax_EydBjq196e2ukEFkRtFB7l-LYDkLz#;aY%@Q@# z4BDTBSQ+;WbJp~223f<4R-Jda?8c3gfcY}dIw}0&PO}&cxxKyCps4aaEDOp!UzPZ{ zvyj3A;=i1x5nE1hC()H7%fC|D#PU}K-oWyKdQw(kaZFa{=MCKex+hti%NHON1{!KX zZrswb#KcYIR~zsM!U^*CA^=?rb*{V*I%YLnf8lpYqa^c-o?|_lr zK(0Ad48Xt76onSm+S+TsA1J6#==X(9RBz? z`5-Wd;sKST8!RJbdhB-s+6a3%)MB3{P0v=K;LI?;0NXd1zLzVpQC zVJ`;|#{mSe$KO*+Z!m~8WfJFPDvkQ? zBGFMv$IUCDThG=Gv6KTGikUiL-PqhrBhz;kuFYnXgslbkh}Q;ZB6@_pTj2i2o!;nUmaVi)z&|+cLz$YLN)gW zQY6fD;WIH_k}&pj-{=A+BK`>3Mk;Ry4X<-DalP!N+pc%hxl3rjYFGsis-_VTPx;yf zpqkDjg4)c2!0#b$pme_!qgH>Q@h;+(l_Mv^7Lm zS4)14;X&ei4=<~g)|vUUoBCL97%T-~#@S+ITKtCkje(bZ?W5HEi$Tk}9O3vz^?TsX z$*PSg7V-7>KlrJMocmvyAY>)-+6$%(m$1dHMXG?QwU0k6n`6nEQdn4k`Pg2;QmssS z-Qi*yIvL4ZdlCTJaZig;?{8E$Yp?AmVqVoI&`sl|f~O*H?@_!^Us-8N}-TZPQCYm&dotpl9sd#Sv-V@>U{D~7>o<%0U3%y0to&RQlP$8S$U7(UN*?e0Ht-8?Rb4k z=vc*9k`#Phu*6E^A%_uK1?f&G71dsKaZP3ye|OzGOd;t%k`5O9OeXAQ?X$19K-(E# z?0#?1fzoA_?~clOQ;pA8QHYf(J>k}UXB%*xdtZ7eZA-=oF~A@!f2E;Y#iT%surWDb zxLgXej*(X?)j8jI?O)i-1CCmMIgVG;jsdQ0{pLW_QzgxetsGfh{bD0nKQ9nNTG*Y> z+}30-S%YZ6O3$_(R>=**1QC0rm5EI$oH&fre^eNv%%?nIXj8kauo!8<&y!st?BKiw zfdZPA(3zFB>CM|!4NMQWsG<~Mc|5rKpqAI>r5eoje1YO>>n8qRr|B^EtS%X zDTSkprnh1}sRmhHqW}qYzDq2|Ze+!@bF|GY+WPLwU_KnTKKE9Usa=B+ux^m$V;zu3m-P12!sDEjgS*Qap{b zw$JbttTlApPaUd@Hhk5@Do&VvVi6UwIgD#s75b?QT%V(`RHpf84-23>0G_IuRfd?0 zz#F&QPVq_!lFOyJ(-0&!!~-yCmYqde3TQ7ol&BfjU?Ui45`lSuBf%}O0!7U9lmRDn zn^Ts`Kdj+;7wS^NIAkHkbM9$!$Z>a5kh6CKRb1)>VGAn~2V>d5C7Z)vi_O{!g5kLF1;>YJ;AB}L2NXT8OAlD!|hY#Pm!Qo})50LQ~Z7A_Q4h*mU zO;8&@LMV&slqGgAeZVODQgKs{Rk(9_W(LyynFD~iRcdNxiU!QUYulNW8|V#`yyDi% z`rDeHx@-m0d{t&RCS3F6h7go}x>e1VB5=-cV+6LojKoJ_YQv&F`E-`Aod1@{r>3C8 zi%Gto0z;zES6n1din0GH)N>AIV%eLHL~dAnCv|xXQ$HCuMN!F2ePcuUZ~OM(=v7Qhb3FN5_QOgaI~7BEmLs`52uO9(8>ISt z@ca^5Sp2PlS<1XzJZKmGjPtanc?EDdkbf4u*J`;7jr;_a>X}p8%`%PL-60EWY5?mx z=bl|&dIx=+_MU+sYx{i&E4Q``xind304!vOx&w4>8dABw9{<@F1S*UHa!k*LsE6h9 zhP?fP(e(sbq?0_J1k~5Y9&VL<-W6ebz>RuuhKiA3bA>L7@WM zQOxz@+cqz$%uW#_1ZocfqaLOQ&}T2%BC}n5?q`ZNeWI6w=BFL7Q9QY_ z(1df9#gD%?+#cv;KC);aGl_8k#IwQYQ|vuNSb+wKfgci|03_Pu`H&Vzi^@bk^)ZV^ z8x}2EEMknQ=hCf--fw zm0P!K8W8axesX32)&cE zDUO-70XN^~^L^pwr*#P(9`ml;H3A(zfftJT_vb<4!DgI#!Q}QZMa#6^WqH4?r3!x| zsK`s_HSGQahnj)pQ5gMu!h%WXEkSvon%FD2c|w`ZlR4%j!>@*$}B~Gs7WwAVi`>_Wspz04$&U zzw6L)^}%ej?fLbn68a$AmVmgl~jdur#XrA%1#pt}yGgu5& zfDTUjlHqQ0LE$}OHF{H1TKvEae4(0|5^7!-Sw?V~Y3zVs3IG5=XAzzX{&(nX z52x?llpVrOagn?)7(HA>Eo*VfKi#NE$l*Jx7L_UIQ2 zOGN;A0U&N&Fk+!{U-klKr=}X_Az+nIgupcEYgf`PW~Mz%wWi+O)6{d-HHyLgH%-q+ z^{7!s?IO{HaB#KfoSsW<$%r)$4hI>?&iY*Aso2rSL z@n{&|P(Fm0>0`GOqBDYvDhl%Nm+|J!6|!K;YxACHh2HiMw@(XSnWXCU&y_;it6G;UJmX9a#QziKjDYKmlYQaF`^2a3KT9=^jFB;O&V+;SBC$frPs< zmR7*X0O-U{-Qa^LH=Rq@3Dl{5{b+3esl#g%)b?V7NkaboRl-ov!o65?)LS)Ahd~J` z!NOL0YclXUPWc42h(Y&87x>`g@0@ixoe+VK1{JWQysK{L`)*sF;)R(H)>dTt^EZ#5 zJoe()VP@B`^BfAZga9j~Dd-wc3A#2|$bk=*D3w(d#Lo^c6r4Ihbu%~Xp7Vt)HLY7D zQW}~4#B?%Iv$2J(fZ5NN)MOyHFj5zn%~n=K<$I^8o_;W}VtA}{9`a8%)ci?=KzJ9+>by7%{b_ZD%ca$OAsc6|oW}g|D}sCm{RI~g4v1T{_o$M~h_}Db4YRVi zd%QX+ITklLK{BRqy@{&dWU!uLm*Wu}TE28JN(<9P2Gsqav`!_mLXNLGHfs#0(9nVC z%j;*y;3CQkMaP~)Y@_YUKPk6s`SUUN;I1^`;dgAG#(&C9k$1%Rq#hwk>HRe64qaSi z3L;6yEXc)>O9zcVZ+r|_&71zhNs=ZWkFWzysUh8Bl79HkT!~T-HRbSR6Q_OAz@4%D zRV8}$uT)?vMOrH<5}B&(I(SndPAF7mq_U7eRxlDp(55e7b?L`3OAVf*!?~`!&pRZV z&YUNz=7$BXKmRLU<4*T#ALgAlWFw!<2csAFuT>b1y7%a7Z(#889d$cEvQA}&a3y0R ztnlLJ*n{)_VB37wYoHCMM&cqn*Pl-vrD4Eo%cVYcFqo=(agCibQq8~>N_HI^4=&Us zSEm7D)R@nMDfr(~VNILvirA!8TfRXhXqv?2Ia@lf*1b_hlDwN{xiZJakQeOg!)n4d z)=co)Px~+_w`9gbBCZcI8e^vEb0M6033z!!cp8y($+%I~_wHJ|CG8E>#!EvCZ?LtI z_LUQfu)q94T`Bc#tL6g+v0rERG(>*MTX7CUKFyyuZ6XJ@J12;DW+*vuapeoh41AFp zyn5@Q_x+cnEe}hw5Bo}2PW)XN-DHfqZB(#W*BFNhLF}!~LgT-fJS*0Lza88eq=;Kk zO1CR6T$OTI(Q7UQdoY%|@7^g`J?0(SY?l$?8>Jt5Sj12Ww&)r)hV$8jb~bgi4+b)g z&pyvq#IKP2^322P3fsaQ`)zJ{%$TtDMb8seM2!j3OhTcym5PU6DLGoQ&k-YC5piqi z&bIy3(oNMiXZ^lc`s#}qU^47f1N)h=;!xw!_$tUd`;{l3BdZDT=&u;{la2vMcGw5u zCjoJX^Ss?6_Em2idre-u5?mkaLo}SNPn)|PnyG5W9g4w!pf%c`p%Y(lg^Aa&riJCt zHe!`DkSf}!iDx*j8|p_@0pUiJZ>G7X{W`jDXfXx=9Ta<=ozQ^@x4VY|L`fI{niL`9 zEc|MiB+w(ak@*y;pR%epfe=o$jskBkrg+mj4RaYYeKJP!f6yT%xcypx>~tsLSWVlwE$>YRf-CWbIU$TV$~yem zcj8~ZgY*$)@2Ce~xWlo5v@V=Sd~~LGA%Bl-9T+Y#6?|zWI^y=+NUFlaF)@Y0#0D~2 zlk@72sqP;df$}N#V3|AClM%?E&=Jdb772ym9xIW@aLd*hgx9<9ic|1J4a(~gFLYyo zq^ctPb7!r_dgaUl<~Lb+Tv&)UCy|6|L01per7u`LFO!7NZDdf)YQs}453EkI?^74e zVZ_;mXiI~hf$+p8_BKo)i3jtPzPvtwmn$u-}=ZRy8it$=sFXt>7EuMROh*-Qw?}dJDbgp_tUs$n!cE0uRGCT>cTu& zzyN8w=if?Uk@>d*ccW_V2+t7B8Yh{jag9p&b=Ha!KUjNQmcM!64<6Pf<8PvtbmqKO zbyoZUbr##NF)Nf5k~d=Ff&KM1vS0oiV>;6XLuf_sXHO=0_~nOwfrfeyi(HJYh$Tn+ zK4*sqZH9Pm<&EwbSnplypfeY@!RGD$v{&UVCM)x7?4KVLdf{0X>TKQC#Xl@BoW^{Y zpaLRiHYfWHn7h106?(1p-QRn-LRwN08^TpcA*Q6G!KIgtB&Y`aKhs z_POwz+;fs}GAC&g!HN=^sBbN9WFWq!KMG#-o0sTukqFoAy9}Wg@|L@({f$-~3gP4! z>rJP_aGT+pZ!ow0Y_PdJMXbqic9hZw$dW3{v~wL>COw*$2GQX{jNgh$z*mbw-BL{hXzua&8CcV@~5qUxu?tA>&D!6RU`tc@!NNC zQHV_S?(2HJnBV{*IOgvIQ6<6w*`@F3k@Yh^>8$DIJiA92ZQE>= zaoX85%)uuJHJiRpN4|=ynoLwX5bLk`?rBFKDqgt&(X9J5AY$~s?{vkRi4_(aAD+SE=S2ev#J$@R8Gmf;$oM?R+-qYvJUjx4!~?O&Qp9wmW(*r zp)pJP=5RM+90ciE`W~z_KFxUcphnxcI;GF!dOR2?0IcoN0&~_z4hcai#s`(m!@P^? z01ytZ;bUc}m&2~e^2er&ZyvBBIqo|J*TKB|CDZR~&r%E@lan!~bWYq`E$`LY1S11+ zdmw_WiOTYWsH{^cUag__9Z%Pt^hE!ij}d3?)bL>pl9Rul0~&mOTIOy34HI{wf^q?R zTVuRD{qVLV1u}qqtNH8^4-+sPxK^S!?9Qn_LE}n9wr56vWohyoO2`jNs@f=+=Oj%O zwPPdVLKyky{O!9j;9jgEDMIZgloBF?)B7c%X_a^IAs4mxgXZklw|+0tVZ!#OAT}<2kfK8 zwE*eCz%WwzpU_$hOH(6B&9YdBHd$Rn-)Co~sjf{D9KiZ<+$i1QC0W;>Vs4*()&WBI z;f>*ZjBTen9h2@>5 z^qx8{(;djM=;Qn; zHMQoM6@Y4ZqG5MTaFhMw4PU(91FLXCbQjND_ZLxqQAYhTs2%q333$q~400}=uDV7q zI_8>77|nUAi6Kw-Rq_%o6#jG~FvxQ0^NlXvxQYHm@C^-Y7bsbiqmvWbS~;^QdXtXp zWZ&MLyQJNv$(JXu<1VB0-wg(8*3m`S zo%F3s1*dOBE1Q62Q^F<0dk{il5QyKpNJ7%y`(Fqa8qasdFu+S8cAQ^278Za9Gu#Hv zU+2mk>me1KbRur({`jK{Q7Sejt2QUBtt@wmB_kO!!;S2yg^Ng1SH@!$INeQX$L+Ua zGN=&Sg+rxqFNU}D!c_fGs_4y!y=fNA=huZU2heflVk`%fNYn#kLO3UP^>myjuKcu4 zsbyMoo04>K$}LSv38p$pJV_r7Mq`eVUPM#`TXlzDUD`7|!mIxyGK%WJ?P`jXRBP!~ z&jee;(-ZzBT=f_AA3^Qx?mY!O!axLsPC$8II&pNiOBbGRp0_v;=!bnd;1Mbc-F?W9 z`%Ckmxj0RF0{p3g4G2Vm`9oV^J!Go37NJh>@^z|E_dA08 zcTj5_d%VxMDxvk-rn^StPsSMF_G&|z zz_Gm&6g>J?nb46&d(jYWZ_5S8oLB;Ra7W-YkVStAvCBrp>%=|%D^EIDR54bXl6j?z{Vg_3Gy3%OR-14dE01hE4^b>X%CfM$1^m+cL$v*nX0$3{t}bsBjc%cbor`Pu7jLc3jEZ5XGvy@c91#GY$Xx{rfq z1m~mmsGFS_#%bCd0w(7yv+f+uSelitzF(wtGG)}^1)m4$3CYtC{Ii;{chM2;JW@jn zjV%^x#6G-}IGUuK9bsG(CG1HJuTH&jsh|;{vr}ey0*I_Q-5_-@9^an8wx(Ok4q8+E zTHDK?bdF@WY742@W)JxO>;hfPs-G9lq1fE^O--VCVnjW_kVC3DNeTehryh4t^g}m! z1pHvz!~>WI9UB%S*Y%C))LBXF;F`%h!N1cm_U|FuCKxYV%R(~>2Y>UTeKyODWcR0_ z#=h|(&^Rm5)$pfLtu&F_QBSH2RQO#8lcS2@nF;e35WLPH7^D3%{-+h`+Z~oNzxTop z*uyJ!_22#b?~bUops#4p0I6O1=O$#W+)BIU@9#zDS5_dc9t?C9K>cW!Bz5fc)sc&e zq>%_T{_hSOTCw$vZk90!#nirb`K zr~PjT?(q)*LvvfHcK0krKnfAGrxg{EnPzA;8}6*khCI~mcz)*GTAl5NB$e)SS+6{K z;95Wkdz$p&6e}P&i;lk0-^37#Ji{^_-m!-qn!AWs<;?4HU`A0xBAmB>EbTpDh3tP= z+5tt1hZ_NRUv=xPGU9Yil$-{-5x#EU`Dke-_g9lcNq67oBWw)3iBh6_Bp*(IWqBk@ za2nqI9t}rcvpx{>pg+pJV8^l;-ac{)-yjJk3^B+tkY;YsQ`nHu81RGRQ0bv0GIox{ zAme11OjLTO!CM+j%q1_addZuXS?q{%83>Ev{!UImmCRueS9)nezyQDs`Tu?BK4Zmz+`zMg{uf4CKddJ}x0QDDDNjt%$eQFMAqvxs?k)l?;sx(4#%rdGf z?x8(57*0VfKyMxf59^Sn$$4-=0tDl2y!cYUVptN(PJKCYGR}S>YJI5)3VRI}O}Uu+ zp3ggll=aw+AJ$D+`y}^ox0o@ux^DrtLJL;x8R25N_^GEjdPstPkLG7^6OLKqsesvJ z-j^f3`UJAHAed?0ep+0Vfxpwd1t)gI%vBx4Ua(ite~hIpns_T1*2cM&%??=7sXnZ8 zT}sy|*?wpo?q?gCuw&oNdEehW&95$Kgr8_-{dah+2IVE%RBsQ>VcpsjD7qMM7<2tX zQq|1_5QHofO3esiHc;@?8YrdGAe)q_%s(bSMq`yp?yEx-Ao+4=W$7tH)sx>5Z1)J2 zu>a*P`aa^_je#zp33+jYNZ;eq%P0B`quBSrpx8ynMUm@!enKGU9shd?;F*NyivOLf z|6j sx1s>W54cFn<9|Yb$vwHX!=HH~KIx@ec4F7u_!JYY4+Slc0T?$i-9@GOR3e zvhOT~fVS>NBbTy@eSZEnzNN;ge7lC}Dl>lP`u{qeZo^zGu1H-xi~gY(FO?i^@(?yQ z6y!VZGWzHs-w*=KtB%6pbViY685?zAnS94=*io$Ag}6&10n`wV)f*+`6TU7g{WGN) z=Mb1P5KG%-)uq^LPNRjm>!jnc&AE553ReGk8}q>DJBZYl^MY&kL963m8d57jG&tu0 z5M29|TQC@BPub)JR>cp&V3h)~PFQ0|F3rCZeNJ{Xs?8&|4+x4{YvlA2CW%TBkl!2M ztVr#KEm;jFkr?6_+jGKcImKlET;e>;A*2MgcT;=V+D%-Yh5_*4+Pjh{OT)mMEN#Zn zSoq3pK;NSgjmLZi#vBmu+)k>vjn*F|f_V*ZFU>adsVeZZf`C4p^d7jW_;~j$ve+Nh zZ5%jDuaHEPA@k7#>ds zQ`_mZy*H&;%A@ToBCDK0kbOvH4~xG3mb6xASZGFU|=pSvJr_KeR=dDQ#%; zNd@K%xNa=4+@f!XjFBlRqD7P40`)YCgra*aFQW%EisW@$J)3}$9Q0x02X9&(Bx>1E zl6OCvt`opd9d04|AC!GlaAg6sWp2{3I<{@wPDdTvcE?sH9ox2T+qP}n&V6}PHE(L_ zz4@5W^L46rojQB3wf9=9HjK3&$$AIsAS*~U?5F&(a9WAM928N?QoycrFs&}1zAD`| zK7z>|VWVyEavTSWOx-RndC!pn2ONX~@+R7gye)9^@URJ*{czYJVQ3ezb$gcy?osSL zzy_x%$&WOqJPE>mg$hCs?r-u3YLD`Olx99A`(Kn%w9XB1mZ-Iph@&jWXu1n8cVT~bms+6#TM#djyLGYn=K;m7E4x1w2 zCTXi=_#LRpbwqr_zkCfAWlPBOls!70>3E0zt!^B?!UjykUtcdRD8hPZH= z$Oi!mW^tL-A)OLjNxOM8@7DDlh|lr8Q|D`rue^h3Yn47l#0Y3EGg%&9iYwM5xY*F*4O0*(;jMTs1 zOP}PkmRTbEEB-ku)a*qI&`!1pv+toI-Vu^mJS zmddE9tyS@rzX|d*G~K|yk6daImn(DO-Qr-d9`Z`)algCuydk!X@ySH&7pxVB8}6#O zAk2Pxb^p}3il*YwAW+UWe&v}pH2wfgXs1RfW1rkjqQyG+YzA?K3>iRRnDHZu`_hriW!VG4;AgHK>QS6&579x-uI)Ss1KGv z(>-C%Oze&gFm2FeF2Ci3m7ry^ymKBFH{rBFpI513m&O6o$F|*~rU+elK}5~fj}>Yx zpQ%Y|$#5v}K{uJiBo&o-xRlqF$!R0~>6*e@ zZ|fXlU*R=J0veR=EIhw+J2t0H=>!4sQ zlb<3aJ?2|y)rze!1{=6o(c=rG0De6B9{o9bjA}I=JopU^%HEm!Hdl%U0^_(ZVAYD) z-sG}=Vt8@CZDZ1+OE!Q`0&L<^rh{^unL3(3{rN|C#j&kB zA6^w4EqKl50~!BknEpQKGLmn_fNtY8Bwzx+52pd1(bBxwGb;Gmz_>YUhQoG6pXcP0 z(!1EudBr#8cBBI*^7{!Z>6 zcIxwy&(x&E4W7)qAkDxlpT+c$hDJ}CcGl7Y$6#`0U7%o&ixuHq4PXjbd@9wnM@e^W z3i9bRE=zc+3e%xB)oQ3Wcv3yxrETT;SvCc*`Y{A!*|+j~T(lB$##ttb-GKbfNp6d) zl!I%2+VtgLj4eSM!<@rfnt z0ylygzp#}hi`LHd(on(wza4WhER|3=k`h>|efD*&GCp^TC9>V-)A@pf<_4_Em7Rb>;q$Sj0W zhAup!jng;}#GHm>m6MRoKLN*(&QU5hK|O<{rYw3a^W?s80@-$j>JI*!W{uQ$n}_S6 zn5a)PZDcfJ?Ztw~rA0EjTNVy$n{KhCJI6RqplM|mX{22R_yJbvC+-B&r&o<(=oSIZ z3D1~Pu-(l;_J}KJotdY!1AlM)m+##Fj7xFkzS)9Rx1E-DZwC7Qo@-q?778`Cvc!5O zJ`E<8#HY>n_Hlzxb>uLKP@KlAjFprRE>2TJAk&n&xid;9KK#3y7JSyYwrq$I_jkSm z^M@`F{_*!#8XE<?m>(i~T&Si) z6ofm~cXoN&S_GmX^+=HBW@;$iFeX3LB_5C7JimS|{YHj|Rc{jt*{duJ@;jyRatD3a zx9hV-er?pk|M1}={^#ztG#tp-%}IN~UJ{2M=X$>u*o%RUzbgnOCV${~JthHtUYbMQ zapOOVyV;bHn{|TYihF<{cBhe8UF!nD^cLL(_<)9mx6O23>`q?UReAbri%{XUQ4WFZ zD$1l$*OUNxo&|$H-5v*1FTOv`l7} z7bo4}pJp8Z)X8N6g@5eVwVdgPqXKbcLk9~B?DHTN^?7e>dy*gI#TInX>9mH2o9+>M zB-*a|&IU|TUMd$eTx8QC(6e8qK-A@1?_ zh7(WY?3y%5?HEc1*qI((j_UUz5>J9h8E1dh^*bCe9vT60FwKEBMdN9D1AC_$U5hqH zW}hwdlOcXqc@5%yLRMrP+w)$%QaDmiUS52hr0*%zM0mM^C11UB`-`^!o>P9dG%e+E zW2^o%-<18r1Zz$z4cF;P>;O~eQ8lCKLVxDy)u=v4cbazA$wU6-PmD6u2LBKl zgPW6o7i3tGi;Bz1M6*a5o_>EcaFH#RbR#B7(QQq724}e?CHSqbdN%QHSO|U>^^(wt zmG$#o(7DlwH<#)AB;`u<#qh!Y-L7I2_#nKE7^}|CUj+kxZ7YSAXUM%`#Snt3vaJJV zJ272`cx0o-M?M^v^_5o4;so;A>Jn8c{{7~Cq6c*1hBLRmVN@F-NOIhuthO5|W$<`$ zo;LanRyF}v&J#90H9FhGvEZIO<3%F%*&@x z5k4o^iqx`Hqfln}(MG;kR6KyW!lg^hhdSPNjzWf&>DxFYEEQSJbrt+ne32yK@6@NNltP!(H!YZmBoI9eT4hXqc20N7%oA(@( z%N|>_6 zz%K5)S^*c-dZ@k#W?(-e)PS!K!$4=vPy1U_#cWj34>g zfnD(w%z+4#Jz_@xj@swPu}`^t9e{FAusbLtN*a@eCp-SZ)%dBlo{HukL8EX60f3`) z#ZEcuMrUDn?O!EZ=?PhM7CY&Z>s0;HH0hgzQq7=(^5zcQFd;0OJ1?OxHO1;woe1zF zq)OVMy{3Pob9em)P|SbBV|d?!Agf=|fKA)NU<>e45a@WT@cNvOyzLw6vkfe^KyG z8=7tlI8d}mtznOe%`J;<*;rv`zmSI>S#o{N#)k1N?%%*ecwin4AL*Q1`EB*K1_64l zs|>9hPGFTDq7Nx;Bgntzhs2^GkHaMANO;UQd1lv75b>ue3LG1az+??*j}uFcZd!k- zh@NJig^~6p3~Z@6K@*9jsUQrT-V+G3MT&G~K1c^C5ey=ap6f|IV($j7iFxV=IN!(H z>H5vWtCFqeGXOG|g8dGgEwI7ws`%ix0FaLrfd1t5EA-0B{fG=F`(3ok+PZ>8L7!?f z;7svCnD3zr=zJEcul%QsP}YbGF3iXt)Yrg(AanPn-dKS!R6x9N2_zuDWOOBn5Dg+z~%H&a~KU5(vAGHdbui_XH5UFivs;-%I@DZ{vw4(~-v8<_xX7IBVuE z7?d1@{YFstP&8Dx1o9Wq!J*w>qh={KO^5;f2bwv6{JN~vC9XS~0am76hL|C#oxQ;) zLdKZc2yi>@bfAWM3T5$~&zDw%@^im4^GWX<#uzAVO{eqh4yT&c>T#w=(<2Q}OM_N| z9LS>xZ|f@X$^|hq)K=T$Yuy~PBi^eBq=d}p>JCoswIrrvBl39*tM;FAJ{KI7ZD&h; zMM~}=hM6(_n<8J}ma&ch5Y(LN%UINIq#JAti-c{~PGDPj-4)=i_FPQId<(7*-XHPn zHt%>He4Yxd-d=;>E(hPH4q=M7jX=*ufY-GzV$;VsFYwI9smMiGIw`YMW7wXKG-HQqOlOC0nji978gAev@^BUB!6iXkT34KG(_B!ig^#&san zWyC}&0^*rc^#vGz=t0PV`JQ)UBt3Wd zgl;BO3A$a~4Ly=*Ga(32_&NOCads)(-2H z^^vjBH+qSc-1w9eok*%8Sa=*wP`%PLXw=l@M9du}dlnOkq}m+}#Fdw!nf&7E-BAaf zTo+ggEsqK2cwRtAb50p*XS_c0gpzUi)nU?gM$QxarUXWD+Gl{V$7(9UiE*{+70pZ_ z1v|5cG~LQ?646i@8u5Ub!N4;js+2O0sjPx0Ww1reb5jepKV(ITcp0prz$YMTN>uKU zNvy@7!YXz)5D)S=nemQ0d;FPfJ+@cJ6Hc~kZ{hZ3>I?h|00Jexf}X1EI5|J$e%q6RS?M&Q389Q$zr4!K~UKQDWRbzz?AVU*P4N?Z;P@cH6%`k#lZi ziyfYwW8fPB@P$>}t~#gh46i0l&10uq&VUfP8VCv8im|JB1Lvc_o$2mA!QF^%{A*4Z zN4R?E%^0(B?$u;{cxWPE`K-tZAp+V1-CqOJT_zQ1kE|jFSI{3!?hnQU%e1VPuRB=% zoy0E2qUmLUQiE?h0_HPea+KmXWo=NvEsv?TU$qq@R%0&uh2a~0NCxwR#H@hkM|dC| zbl|ofbC~DJ;YDkupjki!2H7wLpjb=s#!9ANQrTAh+m6w#S}gRU%umeZC+$|HDH`6> zkh_S{0TQ;?zZN3(KuTj`(0vU=B6bK5@U@V8N#<6%%)Bsxq`^07BVS57{8%BiOPBqO^`iKu-iUrUx(piFP!$%oqsP7&FMO2Rd-@rR> zx`T|u(jBF}2(2H@Rcc40T&0{lM;|>np6V6$bzw*F02bWwp1Qr5hK5T{7Z)*DJ~U(R z%jPa6+*)k6JEzYLi8vo1$b2E~)X9eYxHSOWhxkp z>FE3su?bixZdDvb?o4ZDnGISp?n zm$K+CO^A|oXSo7ixSYfUbq({!`zxB|t~3(klo=xQ>KOh8Jg^51r(J{K#C2G1PPsGo z7jZ5TAbckx)p$bV-Fr0o^1gnpA;8|~YPPU{HI6rkSzH->F z=Xd}`Y#+i3dzxXZ)`3A$o@GxAVkDRMzIW_B8`g8iNXGg{N%aLT3NaLI^J#~?tP|T8 z4iUPHe?d$1-YtUFXS*J(MqlXHzp;(9mh8STI@QJY;p{mwMgzLyQq~->9q_ReJK8V* z1(l6k(BRU4VRLVAK%8+(bN8wV1LE{VRd0Qf7;~|j(}1PUYgP-7%=IQ>SNXn9*v;B2Z;1w z7)0cL{^;eQQbtQrA3xf+(lONRi<3lW{3yhF*T#uwr}czm5!cp6Gu@&^eHWiX@S zSxU06ps9oFb+x@98NW5LemYinD20nOP0#O)!`eXC*Q9AAm%&c|*7!%&c57mlgAjHI z8ekJXcJevf!O9&y4qdnK!lH0apmtA~t2#<8DN4=d*C8mU7bWp=BB$mrj*fBvf4jdX zkRjyG{K?CuL8!zzN>NYqS|8cwP#Jtd4ed>$1f8Por(#3LNIKXhiBeNNkIOwq8#mo_ zDHU~UiV6%*8=krn`k#j}%~ zj8u=X*IJKpsDs(g|5^@B^9#kQZar5NOH_Fb(Bj*k!w-;)FI2%(P_@r`;s_QBLB{Uv zCZ;&CsEy_7)Ix81tD~+&>mnrVF@yO2+zlmrH&;BNqKT}t^0s-Y^Fr96BLUAS>_OZlIyg~gPPHotNZf3ihtZ7 z0KRH{2(sla@qz0haZ8H z8`8iq@h#;!oSL3lpcRnj>T3N1o{M2|^R=C#>I68;bD;t}R z!=Bo6o<_HO=v0UZV)}X0)2MJ*^u&ole7i#7nZe&b5nv%ursX=yPngbIe(&w-1#e%^ zA~+3h4g|zfP*1cW1*O@WvB^k}lvIh<%siDM>k4Ri9X%Fq5#$fyypK#-OnovNaH(%9 z(lNBFlRS6D&gbZUQ~}~vD!bX~v9KSpsR*Q7tg`so{hSS4IgS%;>IYn3#DmS(4#p3- zWeM)OH2Rp2ZpEFUX)Pn0Y^HzS510!h{p+J^&vO~+Br4G;M0dRg|3mpT!-;T4Gx z+(-LZ+is-~r1Z^z(p8m=1=07Ru>f?(QhsHP!O5j5)MK}F*2BgZ6GdR3A88z>xJJJ zbw(N#lo3+fSIjQ>CVA1rH-e*1cfdEB%}=UiyQs1NNuG1{E8Ll!SNOsiFp7a*k^%h! zRkyL-tKo~`6o>O1+fhGPmPb7%7eqyd<6WN0Ebs-(F!0}Y9IuuQ?oVS#nhWRCwb)wn zD3xp|>QbY6+`NMNARr(>K)Kp~FP%?#S)YiQlFed(3&DDG&^uUGrOn~|Lbg9FSPM@Y zJzHaL>1m0kaA5@I*aJGOd2sl=iN2BNG?)rKppNw6dLcZ$Hjsu0goJY zFpou?mqqO~!gIzk?&doTmNbOjXID>1N;`g4cZ5<9_A%B-d)%lPa-HY*_<9LmU52;# z7U%M92kKIZwJGpDnyh$t*H_0}8K_`$@FP$uWL4Mpg9fmK!L`bPzB%F#g9@?lujhM9 ze`)_eqE#{Uh!pr{=vJ+G+)X1eo}xd@Cu-NH2is5_zaeP;~qio=Y9|0_OvlNu}E)#UB;OtM0~YG4Nh zv*i3=S8WJciOca%pNR5VS#a6S%z_#!vFi=5+7Fo)(F7`4g~~GN zbVVL=d|ozvM;D36*TIG#3LVssfr{ox|2TVLGV$myO4vYF;&@XjX%@>kl;hxuX?M4> zV~f$?z+RLJv&m{v9e%s(^%kvO8YcInhw*QT0W?-h2>y+-6h-habQ+;Cm2*-*WJjL& z|Hs{G88i`st2@2sh|_B*MpN=vs5LV+xK@U^sV*9_a6%;cD)4sWUu^vZZs)WnQAW4c zHR2p`u40_>4kGE#T*i%G11Wu3e9=3?NZQJ)q+c|HeTb;Nj>i&!AIIW35fE40o|w`E zZdaf*83amqDhN;*)KD|wBJS{+%Eu|huWBi-1f%5F|IUt^x{7sP-a0;HRt`;aLWO#u z%~4)GFAA7XC5m!QJ878yt_U)0$n7%mG?j*AL<)HNVL>y*8)5b-1YS@!Ww|x>AEO&BBs5(*mdfy` ze4`1HM0g+`Q3v1x$Z0Z%jLNso8uS^+k;)YKl`O8BmFnt{;6vZYaH(C#aRCnTn<0yc z$i4c#uv}YZ3%#$!-1rVQhk;RbaceMaX2KWzA*_<~ptAe-NyxS+Hv~xS9eTL7|8uwoterp+8xSt!r~PgdDs26JnBjN z?7~|VOE~vsSnU0zpc^Jct&(8!rkE*-98DPcuLtKkc!20FFgqHow1z)-gm5X1Dcoom zeH6l2Z-4TuZIBAD)g&LJ%jqDjdcd561}3}Nun;sUE5HDo*?S-;JA0;fD)*eR=u>7= zsjPu8@w(NqRw}It!PP*3M_s$V?u*4yvS z27VY|5fT<;v)gJyVFhko&|GSL=hz7Vfp55YC59q4WydW#iZA299l5^ulyoxSw?j~r zz|z1CG>@KFntTIw`n>+7`+E*tGM<{qiagULVYIaoflss^={K^~0s;rlx?`8%c09DD zLHUd46p(;l=fE#+(td^SQ0`2mGlmnOSKI9mZ0TD}PfMcbCnDf^0(MycMe`w)p{O*h z9PmZp>q|v%5*<|MCLYsC7!7Ijjn@yqdta}}_F{P6`QT<4c%Oaw`3qiJZ`=SX1cDKh zW*bQGzTYgXl_Gl2GQK&V;IaVYAxUDu!p_#kZmgUedbs`c z)?u_@pC^0})X4#_?i@U+xFu{=2n3_LaMh3NT8=A;nA*eSl6rDrr?Uwp7XH;yHwdb) z(%RM@+#qI6C2??LIQgVe(Ck&gv8nL4i|l5_o+Hph@rV}+xk4z>a64x#+RjA5{Nuud z^)zk)0p(B)mk|Eh75z*+^x=;cr3pv@rn9_9gQ@p!PF7_$!%;0d7~2XdRhfjOmH}d1Kg*jPQ{jmC7MSZ#Mjn#fyFmzF{=8S{ zT-@Xwrc4p>MGNt2(wY6KJi9HPc$GBg%uzA#m;JA(XP#qtv|+4MakB2wzh@S;YlX%` zB!YkbF-l0X-eMNWFRh^wUrhvb1ag#*VMb__yb9nnV3svo`09aJAhcCrsc_lebckX=f=cBR{ecegcCoKleg8}>;}9xOYp-Fv!^G`uXD~v2kRe_6}ZkYvc*~QTJ;CO z%tp9;pKn4a6P2g^e*t}X7g?OmkS`UYI4e6e%lrxu_zSwm!no7`gls54Q-y0K9_9NR zPyQY`12)ajnjEvt!#wif+C;f9m~t3hrD5I=<2x+4A@1d30luJx{T&eUv>O_~Cll5^)hSkDj^! zzYCk#W?F+Ua!;nR+PrzE#@pqo7TE^Hm2=f$dq-0A+w-_aYWvj(f=l7&F)!wlWy4#F z`PMTi4!MYJW4j}PqUQ_r6|NJA%1oou{l9}}JV2|*u<<`a0cMwOCd6*7R9}ot|MOak z(|1lofibi>L~MnaH`+3n;TeSt^qc@|6p45*U068@IP(-JVPbVfU58bg|xeGUimrJ-f;#$?b$C?dzsqCkx)gv`hE~ z4$G8@xi*>dM0r33j}*3Hb{eoPy5c0+)WYV{-}ss>$Fqhx%10nVcJf@r58{&=ptJ?| zK3yJW5b%d}x6#w6k%f}S!Icyx=;qQ-EFo7~I2YY4ypX{yk%&*R!Xb6lj$W3CiItWA z!W7IOqz(BAye)6L*Ai(toEB9GeF`dX3}#tX;p8l2{a3zUj+%8Ec-OexHi4mHl93Ws22TF|H_=X zdu#QASPb2w4Zvfb0{4IKxeTrt(9QuUx?`&po}8k%CA5fKjE1*=4x2}{I#~TSbI1*F zm~Qb3*k)zbWDcuNik0}8VepwtE3JPv@5h&(d5DTl6xIxNULgp2kWL|QRCt0C&{i_a zd-Ch^eH%*uK76?&^SF#Nq161ha54I-?Bb4o|^(7Rw-ou*X0U%8Bf@=9o*gxavQ zd@a7?V_0E3GRXo{n=E$T%boUe0AhMfHrYPrDH5xF zpEMyt#c$|ED{%_Fn>U59>LBK}P*PlCbfh`e+9;}5oK?sB1RA6@hv|n{F2aG`8SLX7 znzoHt-*X8G`q}(c^L90AZEIPOnfQtCPRh33D#~V^pmYcOG~xkW*mMes4<`0Zjb!om ziIIEuCVB8!;d=YxqpZ5;DEgxe@s`ZdCM^$oW4%tGwNsk{eTL#H2k(#9QCbwt5}>sp z!!iJd%2M7}DyNNxm2b2y-M%MB2^yA;MO+?QZ=OZv`h-uS%Z;YQ!C|OI4pYle* z7dWahPpwy`p=&EMdlrq?T;4*A^hv*#AFoP{7ys)PjctIZPZ@;;lk*yJ<(P+ChphNr z$_P;~+h~{ZQKb0r9ie21Jdq!*w8OCXvHOc98wghxI@{64Xb%r}=GP2-`SUmo1Yf*0 zn!q=&WQf)uxS*wrSBJkmBJ_GA=2bU;QuS+xNeAxn-X>Kcc89xQqkk zg{X-M^wt}`R1VwT%ZH%^w-y*MYKhrY3&Ibe zf8|1ybL3;Lg~9AHKQh!b%Vu&b1Sld+*vKa$&&HWv;r^QBijBuGq{CuPciW-t*cDG3 z^@r&Ki!y_o_6@O^ep&$M|FT?46z|J_SG(wQyv`i&Pd$Lo;EUo4Y0Cha7SM&$a5F^x zf|T?@x5Z)+^77k4KR>S24H}VsEr8~_%c9FXY;@&=P>234^bc*al|~2MMN%M98Dlr`!`yt|{){@6#`YJjEN<4$3zx zDOkxQ2EG3bfT0%n7cZ+(9baXiX&`8XurXl&unHqb3qlrV_RQ6+hhsyJcuxuJ|B}}I zM^3K_90dyiy6Wj|&-&vg5ZREaV32=l? zQ`X6E*6r1LrRaSDi&Jq^P&qXwG~GP&pa>0QTS%XNQ-U5@IS6U6XqUCZjB6}iNWP!H z(C3nt3SG>Fn*BMArtha+uQz&J#PUMrx-@hC=H-hshRPDj6Co+}hEO4YbWr=a8tEJqB{M9&J6Qjb z!2^9IiDu{cy7(GC)&4_z%S|QMHIUbiZ{9MDanmwvUigsPLG6a=(Oq__HB77MlNC< z%N_?Ieh}*al`jWkB1ds~CX1X;oc<`@!aq9^$gJ=?RVfq&Afu83g*n{RjbNB_BB|3; zEB)T(DdOwe+VdSps+JZlQ6rMUUC}ZILRrj>;$|fLUSfBnE_GKYjOEJ?dRNmA9=EJG z&|BEde)Bgq5u=$v32Z*O1m3V2jz5 z;t5^i=->a-CTr>NoUJBjSAR9OUGL2?@%4ah0$V&I6(xu{&wyARp)VT0f0%52EmWgv zhUbX6W+L}IaxKuBuFsSu?RsxAe@mz2Xbe7S_7~sDpD%LCCtWbY?fNrA1RCQfFU7Y_ zN21nsM`&w0K7FlrEMb z|5)f*r`9V*ckoq_Ht&9IyUE3s9^4qA?r=kusC9FA%h~>_c#4_m4PTM&o)9@Wgw*4m z*V2k5H-8Y(SbJC?^$%g1-3fQQ{a*?t3#v?mc{u21y!7*nGr#$sBEm{{2a)vNPueCl z7fYLTOEQnf^hzx!odb&Wzff~X=X{ZsOTft^r`@d}@(t&fz`F}eM6svoX<6DNn0B>& z>w3MQUt!HPw4UyT^%6+P{IXV!1t~OuPGw;&ApCm>64nACnBqs z{)Xw4x&8n#3UE^HY593K_N>`M0F7@jnl~8a8yqT>gS6QNUJcV5{j)+#VWV}N&|JbU z2_(ON7rktEP31||*X`XM2S6miFtITkvG19&U59tL;(HY&o?zf~{v4m1?O{eibA@oP zG`AuX2GCGt)XdwLQFpYJ+!QjE2KMTy#mMDpGwIRct@Qxz*%CGWU zB$#l{9zjiFBR&IB2(@!i;-~chW25WD3?99{*#Q3>O)(xu4=ruUA3AG6KZ43C)=tCR zXtN_x$E9*z4~MXgL{c>=+s#=yp8r5<%?ToMO~7PD8xUp8&h1le+||iKS4vz!(J=(@ z<9@vg{9E~}BH&4cV8u0EiWVRPruKukV-3k?2o>1?{i3s%i8!m)&IK5*sAn}T%{}CB2!A_)yCjNWgn|0gs()`VS@mky z6t7YFb$*o~QyXJvUGhCM@&N8(aQua3 z?>%I$lj?eN0LjJA>lyQjpUo5ZASmH^f~KQJSu;)6n9Oh##A?)O;k88$9iOg$@_cTN zM$v`dl{AoNDwi*0hztYRYeD;P2aD-~-{f*!sW}RrjUM23XZztf72x=X5Q^kl_yg_J z-G5S(`8$U?hkH?~?d1aK%xd^7Y~2hmG9PP9r)vs--`HG)m`7O`M(QOWg8Z_i?Zyhd zsjVQA@F%S*T&j97c3|T5p9p}`^KrF-t{rw|O3 z&Fk3`$2S@3Z#rY!in#VyS{E-tVy?Grc;<(d5M^rrZd@;z0+4*=d3XnUlaVqS2y!UI z+?!-sB(T9_qwyz$ihBnm&;lC`HC2LecrfTxgZ7a%>!XtWGN{O{I#_%( zw`xF)U)H2qery^R^Z!8}#VXXnXIXkC4Ypg3P?m>w;L(GEzO_9D>1Phoy9?3Nx2;Z) zZn8A&MQRR#7+o}@S^%?4lp{Rb(F+Gf&$d9E$Al#A=cyGw^KHMnSi(p|1RcMJ|SleGRfHkv|&7Uh5= zrB~HgP@M^(=K77}6lKOnFppE1Tb;5-B%brm!v^J0pMbiy=9VylSI{JqDNwX|kdcSJ zZIC>4243bvs0h*f`+U5g*^dYIV#qQMiXc?HMvSK=l7=B;MaD9gO?VKgb>%eN`;4|7 zQB2!EdcLXTo@$8C2Ml2F}N@J zx15Xh5&eu6$dX2)8XqceEI2Z%(`4KQvwuT(;DcyHaV=O{JKt{o^IrZR=1Lo+Jsk}J zC*Lj zz}EWcg7wBv1VUe8)jKuhvt;10w+}`S9@vCW`Lq14lfMI!f*P}jTSM};DZ1#8P7yuc zYJ#tLfS3gBpjJi7Je06-4s+9TF4s3tY>7~6OuR!R}{v=*NP(1UqEb_ zyF9e1${*SwcI$4t*wkc|n>2ZF=W`DoB|hw?Mof4Hq80lOii#4?YJM1DG4^8#8NKDt z_dfKZSuQKLk1$PkEQ*g3;c$UvRhq+nu8@0?uEBYNFZ`j`V zbw?oQed>hwaoOui=Zag(tv$UHJFidcXSQl1E2g5jvpgXhE7Z*4S& z98+U+oP(H!p4&JPO>q?YyoHYWzM3Iis3sLInT`}Nq->=J8cWlzww^%w0+?A&Di;R&cCAjymi|1aR zL7lD?cqd_eCGvyge4~c-CSneGFnmSi2_$W2@e7&+k%=}PtS5_btck!7Z0t-pe`RZN zUPX0Fo2g!P3thE8k?0?ZJkh&E<5|Vr64SmWw^Qa%Gp_?%_=T{|7}tD{Oe$ zQ^M+#SXf7KmBkkm3_!Y_b@)Bpn`|Sq1n_`pyTlqiU9Y>`)=D{cx%XC;F{*ozLU&|t zDE%??#pg%hf?%ystZDQ_Q~zb7AjXmsYt=+0e``8Ki<{%J{#Tu3{)?ZOLt!S6zhab{lwFvXfV5|1d zIr$fQ^}{2VK2~^tupMCD#nvA6UJg061iS_L(7422Y9WVkID#c2TFj zfea8S8~6n1&bmgNOLw`E+pDj+&Ffq%G>Sr}XLROLC7+i2X~PnX!I!}-7A_AvzAi!U z*J-bb$H@h4FR_O~5zeaje$fxblTD7*bE|kLp|hrd&@|! z3H&;)hn8e(Pqrq*G)MV1l+Z|V1nQ%9y#6)iLBI*CSRCAi`X9Mwho5b+f@o_xChUap z+Bl+kln1`J5Meb!{Cozh@R4^(`Z3*I zp2R;kXVNE1U?4%E)m<-s%wQKHN4VA;-U*|!gE0ng`}o?`y<2x2lP`q^9yK3hrP29^ zh61~W_hTD#fhXxnae8oLh^|LZ*73=-S3kx_8k}x@5+~|jN#!?_U$)0#dBkir*H4{h z8OQF@l2$xSN|s*Rdkua&br*N;_?b9y{r%&N-`9N#4dyuh5xIdt7eFagBljEB$n>f( zzankXqcW2(wF6t5`@_rb6>rEwB}Fjn zlsxWB(2C(;X`8XXc{R%pAmsPJKt6coVwC-rjDPRGg^Xmbyjw7hP80Z(Z(?e&eLB4_Fan&u?c+1l`>i2g(U!x3Rd?_`|W{_t)Mvxs@<>vENYu0pf_OUDH+Ao@D{W zesq&;SJ;n>T%H5?n4fP|Ak;5-d*U3+c+RX_!L;V|vA=NfsZ%NeuTAG;^EsL_Wed4g zSd+nDUlKXzLu+P0w$lW64vo^uKl5}nux*W~sXuH&hNc&I7rG<;3F-FRiXVd|h@&-z zDM;9py79Dz!jdtVCAm7o%bT|ks(Y`2oMAvmEQp)O-@8;Sfj1&(*Q=T;%jXTyj3q;N zM_-qzq`mCsCx}-KaHRh}GhET**$K5oDIb1sKTqkZ6yLFK2X5x%5?5Az-r~X0$WvTL zMG^b8kJhSrH%X$reh-EQIqwqO{IPv5&ta*QXQ%sG>!}|N=sre4cl3}jccOU&M z|JZIn>wXR-xnzaxw}4Oj*`)M}OG-2_rb2Z3)Q;;91jF)Y&Gm{Y=5>RZ>$T7TW3uwq z!^D6-V=Ryz;0KTPo9=S=9|0R`Io|siQ#Gy-xBEktaxPCGHe<2oN5QNSu8*DCf{B*f zLi_#TTUe1BQ+1*OAc*u8%YSnI_X=39*wS_56iY~%Kqi)J9eYxlqXSgnHL)QP}*J% zumF835E2lj5bX7H08>6ZZj$+8-2O_wgQ#b@x?a2g+T}|WH8RCz5IUc_QQtyl7}8xE z5H2xw;goalIvq+D4T_NX4)X}Z0D{_VXH2S-lQl8<((tF&+x6_)ZT>lXBddog{#=MJ za}0ccdJL{mZP75INAY6q^{a>aXFv^*O$AfD3`x9!H*qbo@uD>{DaC~pRxoco2`1u7 zeUfXR6{3SUR;~LD^ zcl|V2k*hys1}J&5)9#q)Bd5DlIS=qu2_oC~JhvRgDv;|&F8;O!EM=LTf@5=T{%bUC z_kkuq6d!^tvkaKzZb1-6gp9-p1XgCEu%9Um5JWGwbi$Fn3bNj$t&~Q7^^7vE_vZ7r ztdaXoO$v&eKu!}yHF0CH9b*CIjp5yqR7+X7#Dz$sv`4gkN14^V{fn1-tCXGiREiA=&CtT<}> zA-DJ-01W-E9*pQYich0`Dlcn0Jz4%+C4MQippuDPpqR72n zICr4H?N%X>vQjJRym6_VxE@f@AgWTZzJ!@nBBOr}cf!k#N$RKQehCV@nn~+<5i^a= z@U&P{gq?%1nwm`dYZTmG?7W$-Q`ZQ7!kuUmTXfe-yFZoqn>Cz4I-E2=2U%XC#fbre>Ji84ikO`)+P zwt|dI5`Z#?V60$8^Jme)NFMpzu_&CB2;l!XH$^eyc{BXT>$Te z;dt&4b)6D@p<?fEx8MXaR1_rZs;&c*2a*YN5003fK`1#?Ga2&Dw)gfLmtc4nUoCtea>h5(zuzI$d zk5{Y~rmq9Xk52cHq(Vl?Nt0guqc<9K2?SZO2=IV!IUqv&IE}I`6(ce#RO`%gpi@80 zEq*F!Bvx!ofiyXyB|k7 zpf8)n4uYeq%kExxov;>FpqlUjM)>u>x>!jD*^*|#dbHzaz}f(Sc&k)eyi)8|X1l9e zY#>>M1_4FO)?7BGB{j9h=G2-D?tYzIGoYkPyHajF6P4VZ~tC+tvV5qu3EE$P|0;BB#MkR$AIoz_hHRG;!tnF@-om1yvo4T>HbX3 z7J+S(gS}W{{=#=(Pf=E(o~|d;5iEkA@tSD7Eo1l5pLPEa2Yyf`HG7W5RqrhM|F3QT zyk)_V9MoqJEtIb6kO>_2up$O~Qw!5Z=6t@MV=%`-{+-{ubVhsnkOhbRPkSL~OYH-o zyKhM~I*m=22n9uT^|x=AI2o5f1+m_%20LRPVMgve)L23+GdT=G^jGqBNJoK^Q}TXx z@rPG9E6djuXkz~7?5a*?1s9LkUUk`fb38>P{&^|od1`WdP>|bX#L!$L0=PSe8Hba` zMj1p|NJ~^Lbk*c{(?|y>dlFiWz+Mq06I$eRCMosrQ z_TCTX5$K=rO;sOiN558=g@Y281i98O@4<4emsY_lbxh?Or$#Lop(q;>u|Ai67WfCd zHWKS^YJI6zdy0(thD70rVnA(02KwYaB<$qO1KZpylu3_M7F@p4zE9eE);|~wb~AxC zO`I9)f*O@6{K?nv!a@{wWNhW-3EY8m8z%N7R6(~dwl=7BVjGNXbXqx659tF^w|;Ea zpRhrZu##<}y>pEINn0d4M z*pk!IIVW@Hiy6b6(9AUnN9&GQ_{RQ@QSP57jDR`e^0x)Aa>q1^j?hJMow$oAslI@# zU@cOv7UOJep zPt3E={@cYi(vNz*!MuHTgOi!~8#Ew4=h>Za%4tASb<_uf#KQKB8K+=(kx?>Mh!u^W zlrifsBO?6MP5<*?gOfA1s9tsFdL<)JdXIWo(!GRr%$`ZTpMTbu>CTBN5&tj?Gl%J5 zNMi@%b3RlliSQX@H1SF2eGeO`M9wsVJ3#R`3h?b0<1{ zLjvh)uBM%^(x#h;8+HRR0u|1dm?yBFL43(EY?(Z9^9hL^vj0;1<(`@lt+mj(@lnYg z^}PnU%X*3$A^errs}R<8Vwe2sAaWC4&H-z-0OvB=86x z^awqzG(#A~pPvHdO;diANR{$w7O^Gp<%UG|jhV(i`>+LtB|MoA4w|LQpVu$=MdF9@2Z$$L8Z?fP+3(q=zqu|FuX3D&)dmuE)jPx#q=JM05r<`_iD^lEk; z!9-ij#02ngZPFp>=6kwdoNYX$jqP5sM6aL7+A`tXY7WRrb7aCm65D3v9WmC*3ul~R z&cmXnhsf~*lRq?w23?(7G3G#7)uB1E{Q~Gd$u1L_*!%tQNl?)S4ZOy#mk5?W_>M z>y!UcHliC9=tZr?+>ON`TaDFWbi$fSORq za@oo63#p7#HNNbFF{Wn1=R9Vi$h2_?DhliGkP2L}*?8@5Y$v`TS(ZCCcQbecIr|~Qgc7)EJ?Ju$64Y2y_6cyK1?>Apz4 zfDIaXiWY>mLn(sew85xzZarT6x+>wOsTll5f|S1=%q0en6tLE<+q|*{r>{o;Re4mH zyWDtve%{bNV(W&O8ILEgS#jY{_Srzqo8$E~HE~|oH!4ZcH1uysrO|G>rXYDmG35O?#( zP>*gp{;)!Q-TlSR%i+5D2#-=M@#TKp;aV+iU|# zGL(2!WTkv?m($N=>z+K`$PUTb0}ci=JsP0WGlT5(74qrlt`|YbH5&g+Ho~k)lxeuy zttWQzkUUiL&15>{h*a9n=!DFItF4SodJ>xv6<{*(B$Am|YNXNyp6=EvlZukW%RsUY z@+r4`KgwQr8ZG2gY|X~M>cc08J&PvpHBXVGPOZ1|r zdw4et#d3%6;s#(n+9psh^6BMjt{OWFyg{xNe)q+<^nG_5^T)4ai`;`PtO;@&tOeWD zGJwIQG?BYd{LBhxt=W`Qo7Qsw7cFJm=7DnT1Qc<5;Yj46x31UxxS}iTDrW{zlOaw3 zz94INCPs~X)Fg-I9UQUDe|;Ft?oe_n9pnA1d^5ex zt8WP}fxmxh<-9HR@5r}I{4X;_lrtds zOixB6njQY*SjHn%i3L0TLYr`GY=ZT8C)G#^ZZ|$tm8V;|*FB^h|4fS_?F@Z~6J6xr zn}vMm7rh%;Bl8DnE341rh^E`l`tO|1M5dnr7Ft{l>Sm@5Zb`ZG)maJnVe}W-mJI-4 z6mPRpR@|zlW&5rg8sr+f@G%W-;F-?Ss=ih?P7Cifo;t>-Z41u>I#eZIH@(hA=emt0 zaM%p35sUfof!|~pU#;*k57eaI!=4e-JE24Cj?~7V+=?$}&;jX*S`%p_1N6)F)6TOR z30?qaNqo3ygJkhj5MM~;K-F^ccaOLvBu)vC$f$(8j~_aAeRu*0>MlEQFs%ls;-#ZH z((Y`a(V$xm^JLFwA>hem|MiHFzsyqN#^lq%Ct)3rctu2J&^Ek#DmGDKkGWrTmi>;; zXt>Vi-)ik_AFksLELHbj0_;=R|5`%>jw( zU_BXq3)`=f=^Z(n57LvsXDuQCDc_1wnU&+2* z>z?F(Fkf1F<-`B|fmow8{zzU780AwjLTF4F0?_Ba0UFV(DQeuM96SPb8YyafNb=hJMcjHHa5Kyqnol&*vapx_j1C>KmUAof65e~cw1Q>T#OZ`fEOtJ zbV}lqZO4|tIXu_FSztM=IKqNBG$2R-A7Fs-Yly8sCrdpcMD-HCFNzxSa4&)s=CaEQ zf^*s5(%W5&)Iw~HdjQ_X9OqKj?T}1Xpc{bL65O}Ipw(s>-;9G)EAls^X9bFK`D<%QNyKP%~4jSuT27xFTI}cb*ceXFA7U@r25W(i6k&nxD=?#KFbw# zlH6p!&7x3gb$?dtq<*0LHl;9MgcC9;OyDYf<-2-^tZAY3(SzN0k5)>qhm|qZLVR%Y zi3{%+moN$s<*H+_&=gUfWOrdL+~@G?IMnlql^6k@8bBY|fjEx_rFC@r!J&bCQ4-`q zT66 zKqE7Yz^GoO`~xxe&o6#4VYidLixJUI?J&ISRIiO62w62RWSweZvTaU(0wn@XOUsB+8vW0m&%KqO55pye8#B?E2C!c(JBSFloB#lnppS*> z@-@jaYe87j@Qnrk4~yL=8V33ZenHqKJBCv$N-s$Q1UEjnPKL;DCi)tI;PvbD1Wj2yl$xI}Oj4Q=cD;8aP4-*U-2-A-&1J5o)vDnx1lp%auxPPZne zXt4#{>wqgo0bz{Zq6cFBf3#OxPSLWEDLiwR}bNNZ=wlvHsI`lEV~89b@9; zV>w)ejP71>3~4X#Efa;n>l&v;Myi=kT7a>Qj|8dyjR24l9hs1?U=`Z2Eewp@3o6n> z{Z1`eD^D6B(?uhaQ)I`fJTNiB@O`()fo^1H@{MH2*yA&3Z=h;}1z;xEGppy(oB_fw zHEC|GrLb!0tbJ#1QQ;>S#3f#*RDe4=pO&3zX}UlwpgV$hLI6W4OVkP;AHFJz#Y^X(1=TB5|}Q7z9t4xm`aI0#%v z)Xsr~0e0}8m`8m@6w{Kb(t7cgZ~89xUrff6#+8KM(_UjyY2tCIn560+o85j_ClpI8 z{{u|oJ(=0~{C(#C+Kyipz&OfaIbBk#JyPzxr)~x)0ae!Fz3Qxe_3;3=Mso=eQ0ko} zqvl^ibR>Z{BVjT45RvLq%S`oe?nA|p+vva#I~xtOD#6~tMf763h|D-3i4Spr3B zw}3CKea6^pyggkvBOh3Sa&q7a;}@d>r&8!B%bm~06F218i7G%P449kq{&Mn>f9C!X zV;;}anAp6_y7S((wf3Hv8-kSog{f0p!{$G2tlc+OtPzIb@-#t zpF~uUnh|DurU>;{G>h4aO`B<%4lNs@@85(jP)E$*XkEI=^j#_6Y+Mrg|0L z^>Gtl=C?Vbzf+O$C6Vt|U>g~Me}wPq((-?3?5=>0@(pv|k$TJume>*M^^RzO<8Kvd zMC=ad^1m~NW|GCu5tYk3|0G(S)M=d?7+oILNupP;i21FtnF;j6~x-WJ+KYP!fOj!c*0VY5e$;8jG5LFowD$O;J7v} zp7p*$1MqhN*Jnp};Q_mT8;y%Zw95r?eijQH=LG$pOUBo8U@AQskS_P`X&fcu54&9? zJQDO2?}tD)d1TCr%p8|N354L2yX*dKwB;lP>4(Go>KwVXuIB)`AIYk%1Y{u~Y^WD* z%cJG>va!T1*_AbmLmk%FH~>fnBq=EYe^U@zv_H1y>@Qi+8?g`nfEkOTOx*Yjm}HZ? z;+c7DYvg(iM6}`st2^dh{r$d-BiBqcC?Z;s+kKVPg0mWFz6~Z`HfoP%0VF8q7=Uh( zPdbtLGhg`=OR#In*qk8>X6ckr z2+h5WfgakRC!ZwBISriYuL5Of-q3#KW$nW=grb8%U-sV4%j@Ld3rTjGa)rwF3J$nO}E_W%6}$aA~$l0X8= zWb{5*AzPMRFE~En6T=q*`#8*n}dTvy`=OD{89<7x6~T8Hhq_=XT~?z-kN}k z1yq@4iSp+L`v*s+4gE_<{!7uw*l_!#&4ok^0!vOybP|p1U0>+kBN4Vl8w7T0>CXPO ztb6*%na7ek?qvTeOrBHT?$d-yCJblr8Gdp@mak{pTRtalE*B61W5-)YrZ{o>z<{ccqjlP+ymbadsJ9t!-eU7g zi}kzCE)#k7zCm$8Uq1Y7oXQaglVsa@&n2LE^XTdyo~L!nV9a3_55y}Sa}J0$`-#ys z>|R3?jP#cCr8^{61taZ^HGM11!$GWBjN#9;6o9PKq|INBh32Z!SJ5N3Y1s&_goEoIx4<2alr-I$Q z)HV6~;qlVfbtQ#f?ZI~UHXP5+YdxQI2?L=7x=XA7i*d}Mh$eGs9ytM*v{4& zVkSR9hnjAHCpGD$shx{YvH*uDe~egP;8L2?MrO;;u6-;LiYx)( zI=_jq?vEU?dD0E>K{~jGckoK9hKC61MPVdZSvxs_4!)*V-If>JldaIA`+g(xdZllF zyx#t5jZpe&^LM#7$XNb!er=M6pq#kY*CmH>yQFS+P}j82$=Gu1;6x?pf}^L`COXpl zeW+%Qqu(MvgM6zX*RWxl@1Nayj}Di6rEeh{i*yheGD8Y$WwZeY7h|6_tNJzEYIb0C?8(NF%zwH?wT8%6nCJ8vl5k(y)59 zPWtlyF;m|31NxtbJ9?O^QbrcP7^XNd&|1^>=bW0AFCoYr9;68|ezs+>>zW)snLY^n zDfH8El7Eketg{Dy7Opd^lIxduqXf+itk`?9OTE2K7FfZq#T~ELFF8jPDhzdMyO;~^ zuL#eV0Z@PFuSR()QC(h{YhEDiaMLqwvV{Tgj759>p2V76F@OC(X>?`&^gT#0n|!4~ zFWIr4&2)}ie2rS^(!O|X82k3wvS8ec6qz$8-+ni2Q*7h<^-n3{KcWW#^-d+FK4@lm z(S-qsaE-A4LxCKbeWAA2v56{Z3gKkK_mL8oU?CdWvVYm^-ko@pLVEVRvrB5@JV zfWNSvR7k@4mhjoSwr720q#tQ7ZwlX z7l3lcVti8V?>1M?IGPb6F)7xa!reoDN{I^NMXK3Lgd~Rz!w-hFP%gu7;T<$WzIv4k z$Pv)f{|x|i5J^=6E&YEZwqF29nQDM1Gv7KPIm3jnD07mZcicYCLG1}{6_Y3}A!d$5Sy*g226N^ySvRERN*Z>oEBSm0#R*bRJY531zj7+l3WK0qOxJF4AkzYAVBN4osnc5Fmx>5O^WF z0!#$^5q&azyVRzmh}4J*u#}kI$X>wq8!T$g@Q*VDb^Fkq7K zsrRy~ycSxn$b3|%H968DH zc%SA(Wfo2xde-tfa@XMg5eF-J76&RyjrG&gl64WfIg3(3HGJS8Rdmxs7%=u53h-u8 z|7<`stPg5V(D+Q-9mi`m1GK3)Ix#)$bKlvucmQs5LW0rQZ&{Em9`d<_J+D}QzQSc1`%V~=xF%ojRwE;ak zIH5>)t!?QQK;RK8CN$jx=g2CTAL4|7!{`FpQUpHqVbsn2 z&wfD)1;iqK>sz8rNWW%5#DMnWbw)c5z!md0Z(5@^V&}C7P(|L8@BSy$4Y{_-A7KX8 zv|xM3$>BkT-3k~T#869zm;}PTX!=J!oDwUV`io&;r~mt5z@PduT9l#x|7wLczxltQ z|HaR0@p9;k#x#lRQ)$k3o?4wt?Pb5}8#RAMH>#Zehj4-L>Ze<+yGpCyAzo)2YlNlBEbM z9rqOm7|3d$$C)?ufCXh+y>YBNpX=~l&=3FwjtTU235=d-0v{6sH8GNr9{##=k6JZ8 z!O`@m8f{~NrY;rs2EVPLn76EIbAaK`@lkl=&#*g1_M}O1y5CjF;9xP*X^GSt+eT|3 zhrf`gWnY8N!td^aPUEJJa%aN5@7V}1;p20*L zMdL6Twun*d=kSlwr3LeBU~y5eATshctpXY3qP+@GF4e5L@H2%fIu`)AyIzKbt=KM-0N7U0;OT4OM%RLVClBG6x&V!HOLH7^fPtxaJy_?d*wQ zb;Gd~*Gzv6&GZxKsTw#vkH+|P2@DttCJU}Z{Y|@twEbf^yX+|-AchboOyZOC3TIhD zqHf+gj$kNxrnCCm8n_&V4~>^UvEMCQfS;P=DULxJM0I$(-96LNpNpG97RlbC%9S_THY0VUQk zhY^ogv=hcLABLTKc*I!#J%xN0$eeq!KOo;SQw4I}q{9T`qZC{qf$QhsF_+c zIt%+^k@aUt!l32glVqLl3x}5MsV4~+cmNl;vpK>CEh$+jdq>!<6z5vV@4pf8V(z5o z#5_RlE3sjJa01q3*{?ojT+uw)$sdj$!k-v$(=2d*6Y$K{p69n!7p|v&yQ4egq7(wf zHTY?#b2QL$LOL^9rys<7)6E=OcE8{%X5HGy*%GQ;pR2Dr_xzurRZ`mnYdPsQ`9bZI zTp2Dk-2f|o_uju%X|$Lmj5Dk(%B3{Wb**p2K|YUg`>Tz5Ah@7d)MU3F!b3}W=?*v0 z{QC7ah6sk_Z-T0#DLzO0i%1>p`y3P_iq_);$Ydg#G6P^}>uLb+OTYc$U2(5yHt-i- zkHRdOvJ1`CB-dG7kYfnKR3V7UH2abz6$;)IuG3ujV=5-L5$yZrJ(RgoDK9Bm>CW;& z+AziT{ zf~(`Fkh{nkLy5Xg1vR_KV}mOwj5I_Bw}WoS1^4|NSiU0twy#W4-KTp=}QrJsf6if}G$Octk*KtVt2}3n-{# zGtgUZPC@qJ1TvUHklm8u@=)-ELYpIkQs(;tgzEhq517TCyXJ^cA9!Z=SMDzzjw@Fw z`)vbBENYcIN4%Sk7mJ}yx6*L-wEKko`Ra$0yvd;0LLK^c>~8x$5o=`%6;Lvc_mSz$ z1tfynUrmI{fz01awgjE4?&84I^B7-jN;Gc}Fwnb6LRWV#P*lLqGHprUxv(34T2(rW z!UPBE($qs+Kn@0#DN{uPM{SvWLq1jyR^GT;M_#9-tDU}?&v?8*Fm8=iJ)5NVv+KYi zF_`!;@v_+jY@blB1h7zmZ^OaD4ojbCR<(ogU-EQLL2Pm=h(65vnNpF5qz5y zhN`S0V+NCE0xBlWR#Wusv7n-S7F)=cVhzbh$}8s@u+|c2vp1v_=3t_z`%~w6GA7>4v*skmJ;OGpaSD0eK4 zU_I``nk>X_UDxItX6^J@@j48Ck<)6A-p^;FS&Dy|4Le6MRo?za#LNCZ zj(_gu=)fI&ZRmr&uRdKb?LMhO8rer@mKVFLPW^0*^k4Z^jXdJ&b?WkEf{$%=#J|Yr z@f5FHPnQQjzZ_|;V!6fnPz0RSK{?Y}agwN*&yMq^1g*t2p@#i`db#x)>uMDgSmfCj zvc|GCwor89Obq8~w{%F)Ow^to)HZU#NyA8r{a#ARC-7ZLDr_YPTREg{7I~)*cOOG8 zeK1v3o3OWR#$BoNR&4(%Si46|KBw>yi#bttT&yBZHUE4Sx61&vrdob$DEs@vKA z2{k__FfD&%C7b_HScS}&9LsYJ4{KSS8rqzLTLw2y3OYTd@F#Cdy7o}evP~S;2Bp`x z&(8A~4lb}(dx;wJF6B0ya>Jl@15Y+E+Xd-(A-d6UNg0j*fv_s|6(n}8Jm*eQuc|SB z&K3qfeEjMy_jyzTbM8e$WTz8t)3~x~*(}NbYt6SzzM2hsut#RDG;8`j{8C;LTykUt z7I3-KTrwWbPnk7#jj|4Ho@+#l>x~J+2ww80NosQI) z39YtO+AlwI_a2w?pNEvv!lJOouOey*Fyx6?rlBTv2ljYv%734x8%0@su_e-l%AM?1 zOgo_$u;7WEIGGfFV35432f32eSLJ9)YQbck?i_xl-p!yo(FfzCJl3p-#NVPq&p>HJ z$d_J4?aA4to>i$XA;L(^fsFD+fh4Sj?zODqnR})hNR3v5`0dYch?F{2jKp+}F|Y+6 zNy~t+JUUKyJllEb{EveguFLjaO1ewolT4j-!AK`}UhiXGOj=#aZB#DzQS>R}v^K65 z$0}(8D*}WypJ#^!aaMC!qp7w=3YcF<=r_Zi_d5;wxbYqah?%cI2%SBFnd)S}_e0zHAu-pX2h6 ze&1ycG4NFBlCw4LVNdx27ANGycZ^|Z**Y~sLTcDGC-4t# zBc|*V3W~k{I8%D@5Sa0fjqeG^OywAs z(nk`dnml!JSV~Sw-HZ3BDNK-r^DHrq9QoU<;Eeq75t#1nB|z~YgpIl6iU?JY(h8rp z_@n1T541p1dxt&K{dL0<(7)w=pii7FcIX6n9^HhJ?02sPCoSz&k0gkvt?^Y;3-8s)r;w$$o zot4axyCwAiDxH-3tbHR+DANkPzx|s_x2pexy)>L=CJoNxIK_frp7h&woJZ~#Gt{Wi zxR}XyICl;(TkU6%>Uk;~L}O+Rq86}d&D_o3xR`rjvtP(8Bhpk6Lp)?Zzqt^BX)-#~t2Z}@NdPj{ZTS#L2KAKiX;R^}v!WrR#(98}GCeuPopXGt1I>Iz(}TjC zeL?MUx_~=t!!Ilr0#4@bb)Nj^A&Cm@5yCt3;Udb*O*M!LS0(Eca0y@wQ&++yS}Wa4 z$f9z_7dDb<2=T%|wPP;uF$1nep8H=b_ooZ_7bXe)4X-bm*01!#cbDZKFf8lT`(W$` z#}tE%@_?f!vC%mm>SO>HgF&bC{~02(b=Ie&RuyvT2?g8S z9xlYm$A2ma?=d%(`l8SEL@CcB6yphoaS)eSF;)^qEGR7cKQZmBB;XA}G{044+iZb0 z)_LWW3JPQSdw5Xv+5Pa1vqi@@2(8h;esfzT%=cs#^X{T4q%7Cre?@O?@pec|oR&@p zrz?Db5!h)i%VddTtN`9W%LU-`>ODlu9!A}lB>Xe3CTBBdg5frLxH}YSlFK&`Myk3Q zM9e1yXg1Ib%XF}2tZ z{#&S9kYod4kF+bs3yM+nNB~uUt4b`*6Srl12zs48gFUf|W?HT~{mZ+@s72b(y!m9d z7D4x7+Nf51A-HF4GP3w^lGbJ%I;bG)PX{iPD#jaF38F!~scH(br-lN}dd=L7uj?o! zGYc9h8UIe|Lyj*i+1IKy@BY!Bl1`~L+^+}`y7`%GJx;%a?p1H`8Z6eeb(`iv**_Ru zeZNZF#!k<1s$;nW6z|v`s?p1uoYhfR@v-&bzirOBzi4Tzz52owbT{4vVY2>bld6P0 zwB()jw2#|1CcppLe0T5qB87#&Pz5%IxfL}abw$4f2Ae7r*9wfZHV5RPhCXyaf7bfy zkeMPs6aLB}ZT3AT>3Uxfqo_4Jt2>&8(pCMr$7nvc|Ehdn!I>)IQR6zo2OF>mx;t~+ z@?vqx5ca)xEe)xplituySdS9uu#-C*yGgkjbgbbQ)! zO@K&-x+8@aBca1Q9h;vlwww%1a4Szx8ndo~n||S-tm%AFCvWVk2ne_(CprDa zd^PSeT4X7#C;jG?XKUS3?*m$fCwmwP9+`H>M>&REh@d9dFaM618&9u1B=#}+NU;gQ6DOU7{1)ZpRa9_RRQ=G z1Ezlo44fWv`9z_66eq$apvY{AJG;Or$PT9Ql zeb3P0o*{nHTUr}`xYk1Q+lpPABqwb8OlG@|(%oJ0bjji%hhXO|-^sD~VpI1!`CL=G z>qhFz#+00Pa?-sLvY=i|Ct#C!)Gv{+{mRo3ScYtyrc!6+0CYe9%+NMJ>;IVw6qh#5 z%TryubpL5{Ozjez@u*eF1_Jxx_M8P;fB*TM_y6f>p84ni;qu%KlV-(A&f!Q967I)V zE%vV7KXs-V%=beiTcH}NgY zqC`9OX#*TY3@h$o{yC^QyR*^5M-}yQaQLj{w>)&$6c~O!>z|m%|Nr<)D&4#SpQbIl ziT!%6m}M~|C|7{B*~8EL(>UsS$NOH&g#w)qpy?cU{Tn1Z!h@}QnUB?XZnd3{S6tE8 zK+1;y`YXkKp{0wFYX&eLyGAY;>v`S?7QuHj)Bk{7hI#pJt^)>YF#RS z*>nzeF>j}ZsQ?by;rsrv|&e)OMYHKK=FDDB_ ze~SEExlE95i@J&Z--9?}gkDn%KU_CDZB03=Vzp@-0%U%Nxi<&?aFUPnwMRX#Q6<(P zb7_-Aiov7IpO8<%Vjp<_SZcr!?nAhG;4{<_!aEIpb@4@_KNXRbjF@+;={MGm8k&UB8`}>so8dg`~e728$H(GrzoD4 z2yvPRG|3%uG^rjN4AlaKa3R{iq-s3C2uKTDM%D|^6e_Vp_W3qYQ}}5Pe%1Z~C+1fG z;Ihz%ug%9?fZnykhhClVRad#Tm$-~PeVqcdF{_SiBP+-0HBTE3>>-_Uv$Ys1$X|il z>@b-J^F*-TL?F1kYBwjqto4zrLTXMXJhUSmuIB;M#=)B!-o7Qkz0Sho7ct)~1GTJX zE?dhNQ-D}n?IXz70OlCQ7H3Ydn%zV$4%n6>o?8u-eejSoQGwZ^y1rWy+E=>3001EH zyfLPwB~3r%g->U|%JrTsfECJY$EImtey?nV^8rWmHxY3~Fb-qX(~I=2QtkCxmq5?W z!h!1Rq@}m0O3)!x0b3;(=j#gm_4=?6uN4eEd@5c5vO=IM9~ZS}+>wFohc@>lC15cW zK6H6`(xOzcJ}wxCI3>t)juzUX1xs7LJo+)BDXp-c8xd?@k=y0QjDGHZGL)~@_F#7R zhCDm{CBtICBMAdtsG5|>`7JoBj$I%jjuN3QBV|{TcZ)fA*@Wz3WtOHrK5^i+wqN2E z%=b>qSJ9vduwHhE4JwoJPd`>a%Z(p0L?10#Y7C{@0PTJ6oWEB7=s@b>scZ`Zj?Ryw zv@77tMtEmKxD3b?&IQuT>!Dz{GA_b`{8i$2A#aV26Fk1UyJ;+QDos%EbKZo{`+NN1 zRH(m~=`F)J*||u1V$k(UF{1o!T@ieYTzZ0=?GL?^PL@>`{tD^bTnM=PU(}5-4d@|u zeb6C5$|Ev#%#9V5Y8 z)cZd?7Yz=c;p$?ztabFao|5DU$ObTQQERB{IMD9;I1NnVW*Xh|_1Vcx5usp_G(U#U zbCr@2N+4e<9^*bzxHQImWg{l=AZyL>TxGoFq5mh)nMp;yW^na=S*2t;x=HZtntbg0 zMfXkL(N=mL>xO*cX+{FCeqg6mRn-)Z)KHW?cC?+$jqg-EjE=^(N!_a`KLCo^?c8G6 zr-f0Pu?Rs3v*Em&zJAjIPPiW^cXs10Rmi0$pD>R+7_ALgszO}0Zi>WY2w6Sq;4XFR zze#XV@@&ZjW8$KlP3Q8LFhWl^oH~1l8Qn)6alW3UvKt;~GIy_&HS-0;qN$H0dM8)y ztk5fHJ{daI2~Oj_j$KNG+af-(m$xf3H1gaugokgU&UZ#C;$Lr=B>w%3Npn z{1jq7fzS~N)U+DL`{-G2o)X1H5{#~tioRXKI&?<8{E?`zRU z5MJG&-$`!+%V6MA1k6@Mb2~vMmmN`+fDJ>0@s3|p_1~Oz39(f1meS$i07gK$zjHUJNAqD(-LWQ+Xt>}T zAV$JFydAe6xQef<6SMzeG(z%nz|_TS_rmxhGS)1kEEy^)p2H59J6dQO_npc`xM=Lc zm3lb)yT=tD;t#9T-yt%RpQ^#0;C|*$XQ>w$zvBt4p1Gwc(<N?#-xnhdh;jSCYfB_#EIx zOCqFkVq5%XZA03|DD(6M0|2ZoTzUzK#rf9K+uw@t%Xo#C0i)o6KlTR4k3c@jMUIa$ zID8N-uCXP5PFKWxfnVg|sRUpSk_SU-#t1jvV;86&OXnmi=iu}S`leK&QJBoRu&hNF za@b`r=_RA2^PIsIfI{4f`kI~)Pv#n0O^G0b(?f@}R7^cKGr!c|8@g!3QaqkKU}`b_8jQ`3fMPCIaQ$3`K@J z-~T-m3TP51Y?Dj zl@pS3+5B?;&1$jA?>xw4{GnuPZ@+LXQn6!Angx@9=lg_t zZ4P;Qjtcxx;qy$#@ptxyLF#14kD%9O9TWb4_$#RRG0(u2=m$_viKcDF=T**f{vF}AHkdbOcOlRzy7}clKi<9$R{yHJhTNSZg*IRH((>vm)x=s zcYv3Aqvy)>-l*AFOL0zj^~n|g|M^FczuDgy9HQNAiYHk@{TVo_rjQ!f3a2kby|ko% zJ-5o#-6(L;ep&`BWvJV`KreLllA8w`ymd8qCKcB_+_(*;JRtJb9pa3Q4a}rITafHqHm%9|WgD-F5BMGlB za4h00^PG4DClJ}&128^dxX)jYA`x|0^rh_89r9{EmH88OiY)NeYc8SuQHk@$58uL_RMM z|NhvmXx|-j-Dz6+RN4pj=5>UCv2|V7C+9~Z(XJ`NDXzrn^pAxUwm`7jJ$qwg&4#fR4ceEhY`TRFiXW(lGzEQx zYjUGV#;VSi`1~|=zHiSr*v5Leg2PKu)OQp+u_PUJyN?k$bMe8h`DT= zIoS=XBSgOi<_9j@iT{!wb0nK&ko!lU)+S9i)HW46o6^cD5-V6Z$VD#A9f$5DdDtvv zVYn0|ej`l>b6ErDhWmW$M*{U1$#@w5|Nc_Kj|T`MGuPpNi4m?_)`(YweYANrt;)<~ z!$~3L+44Hv-bG|ez@>l&VCTLsk5gu)S25W@MH{L{e7PB}$0c+lXDa7PMyUu15$G-r zuL<2XYy3yBsK!wqsri~p8%fQI07N@@ta#{Y{eN*QIe0Pc+ z;QIhG$?;9LQ(}HmCco7CzSsJWi;MuL54MV?DZizyL4YLXYKRkfvgdDtK)y)QD3{)F zHNGuDW}E{VT`=2ZASkk1%alfnaC(;qmxWrY&{8rlg5ZM=^&=mp?xHaq!y6(ef~K5? z@#$W@+uH~#8GN5@@jZ&mRkJ0PonO;u_7klNZ2H5z%Ca+l#B2M#*NVOEa!8aLh)4$F z8t+>cPeb7g3V$7S$_eh{L;*rg{Rx!NSN%O9Jb2C3ZUf)q=K0n4SUwB5{l!}QxZF4J zAHlywIvCx*8tfyU2%eph_&sGbg-oMMg&gLvRcw0IKjE>v^`z&sqcA>~EQj>!rd0mxtge+wa}`vRV~p5vZ;LOlqV z=CMeR+V){)_U)88qb27UQQbtPQK4T%YxJgid^9TSD+z#e+TVP)yzB&NAoMTy8uqhN zot;FM(BatRzq?SPSN>1_XvCR+)um&k-ic_Pa&h9pX{R&(GP|l~uAOr<`{T$!POXAz z{N<6q|Dme`R_2px5`KT7fK`Z1J=YZ|cVM4&#U+owI2Tfu>6YrP}C{+ovb5H9x> zw*!_c+8ZIesnbx0o=f+3(-WJ*`Wk?4@H_`Wl*NXK^P=Ms0H(!{54*R8TaedS7(3eU z+mK9`CN4i^G2;3q4|AF5F}kY@Faa9iElBYnJtv~7THbxPGj}FgLU0Qaq+`jkf)$jCqI`myPxf6prcWdfl z#8N8P_pFBa$9o`f(-@V>r}p75=wBQvv3u+B>Nl8ldW;*Qp?=_vL)-2itHkuqF8VXk zK-A7+1z2ecu1kBCk?jGA)FE@PUBU=&m{Vum)}3(vzho}|{+m8~(CB@!OK2PPp(BlS z=W!-!h&J|G@86kP+O86g7!R+RV?&F7k>a!HYSl|M=+cl7${OBo_mi_-V`l(k}5SDFPG5J!EJKyf$+m8#nVG{84@(;&BtkCSC_TCT zdR2dbdHY4=419eDdnTaoT7R-Y=kq~NzQxM(><{d!ujXx_6IMx4DMQ8ccVO$ssyATK z8UDkL0gBTi{4l#NXCVOs;XU#tAi6>C@c8xtLan<(Sp7Nm#0e}Ho8E-+d)1a3mpLb0 zUPJtfupCYRkkZygPCR#(*a!ds0|MaJ5o4$7@!3fKIm}Z*#Ew8%=Q|PvA(o~me24f; zd|S^%1fIIpLR4&e$^Y8pHw+J_3o5;dNsup9ks$rhAYpkJVJGNo~qk%!be~*n4om1S%GhR z8*i$=m(F5eMSL%iUddcm;aP_IP;ZFUd=eH3jN>~_%icWk{1>X}ne}^Hu=Yf#ONaIF zGnGcH(o!Lhqds=25YjZocGp=G+7dKpW z)5!)C{89>@)`G{tC*AUe;|KWr%J~w}I~{jS6AXDP>m#m}J(POggSL-k1;$T(OkQ!2 z-$M7swCa!iz|@si7567OXX$Rpu1>tcgp#fzGtTrPl$c7-=zp6LsN_tkbjj%}34WS? z#Jaa%W^7tku1m_T>cuv{OBmSolJb1){$jh)}=R;$9XpWiM20*a^&?IDDWh5&JKPtofLsV&bJ4>M__&n5b- zCJp~TPB^{R!9}o5&lodm8!IgLbF%1EQosyeGQBpfElNmwsBeBEzYy{>ir?-;b@JZ* zs#yKbD6F1O1o#gc*Jttw0dmkay_BeVtzmbFh)QS=LsCi?C(9fURIpcQ*38T0aA8_h z6hyuMa|v!m38aDo;|2XKVk3=#Uw{8zpj}8)7RQGkBHW{UHb^Z1(?claeZ^@G@N_NP z-_n+mFE{Yh?~bKJ40i1cE8>*laA{-Q2DS>5Z}@MIBkXu$wlr{7I?DQnqq*XLr`UdO zM@z69n@;R8W=e0aHZ^~~%{L)UGh2|B2p9ymlSXNnhgB9iOW1X z6Q|TlwT$mMrIhyst0l0RMKZF$Sxc;@?k?7>6QSibI4d$Zd`o0TIFb?MfNCQkOBr4G z!wN0uebTz*Hqi!`5Gk9ubIPYEKvq}O3kbZ2%+gd8QZ8(i~B=e;V*BzYc!lh)+B(nOAOk`Tt z(KuC}@u2sUmMRNU5Zk)KkO6DOLrK-0u6CTzY^5zp?tO*i6{8gI7p$F(Mq|K2BuD%8 z_*KrJP7As=#iRkqN)dgVfB=*~W+610O`D$n8J+@E64n$dw^=wfWcyEpz-S!t%Ap== z0=ZR1)RiS#NdVf0N-dk6mjNKvEKZ)~DR9&fhPdmvYDep7RlXmbK{=j1J}rHgp04~y zXRZedA~-`<%`LXS{kaT^41UMvcAicN6+H98)4lqXl?l3A(AW&~4P~3a5QNhUYL>Qw zYG9vbrM9;%-}h77fj058p&m}UHQx5O7601Fv@A}q)agO#N$zi(-YnBI0PujvVV5_AGASy+>6ovtEUH}Se5N&ZjS~M1 zfDt`=Tx5_T-j3E{TEvKFD{|PelV!NdNCyzl`6lX1!`dR5)pt-<00093eEo@4wpai~ zH@1)F>v#;z{AI#@H-F>UNYEUOZgpP(!KjuCQS3z zah;{*E}5COeAijNS2xQBBp$PW-{-!!eMh1m0BD(okX&q23YMtAs7KbD)7^(Os$gh% zq+@b=ZQh})%Ed9tC$yWLiJnzINUz`)X6RRWZW#)X|7{pbrEp%%ryDz+HiIm5lBnVv zh_$ZG+27|}^#-gFGb|vQZY>s%=PaqD6i@?Y=B5!DKn3#G`zzvKUzmNG*W_|-BIpb| z29cO0erDvy@Ty0J6+_!T_F(N44r-gUGH?EtvTqE+hK0%4!wIJUxoP{7Mh7`F^TiU6 z_r9mn@>yuQS_||s1Z@HTyw!ChGmKbgvLDXDTTZ;r%4sr>vb0an@P#(ka!O!4%xZ6n zC9enRMWbhIKa$ifbB;g?Cj17FToH7qEnS%D3W=*PzhTQ)K?(ZUH)4R{O7kU!3>#uH z<5~m?85ALP@J@qZ>jZa9XY4b*rxdf!If0npD}VKFfs2a9_g&8EZ2mJ1oURA*)i;HD zPW^%pX(Cekbme8;@k*p7tX~jb6nk_qX9R!R{Sea(Aioq6YZJ%#W`S=G9R|&#yq(3O zZlNSq1{HkiiYwA`iDv`lkJy zhq##^(@;VX7%)m>Pn4^GHV}t4uRKViQ}^GmN}yfZTU|JMCeJbVj))p(B{6w_kpEjE z-xF=hM5pIu8uwE1Wo7UFg9=Ce?jHd9l0Y8?X&G><$?-a`NMrq+}Djy4v)5|%j z?qzL?P7*-w!{d&*pMqr*&tZv~H?>gHmmcO9{}thYc<`5gr_uzB&@L2_t6LLqvd-jv z&(Q13tkB>msypgm<_Nds9>Q8duJG1r5{b(>0e4?3Y(LoMl7UU0`pbDbxe&!7UCJ?< z3?Qla{^Q`>>jASks5oMAQ>Jlt@M^ zw+>}ndWPmDpt*Kzj7~c+nuxCNBIP^OrSlfoa*V?BwV5YSJTEo?A&e@BX@6a(Im1vI z5L`+DmFaUXKpQ&FnFi601dT;>l%}hYYGM_uT%u6CW+%={W+*t`wFT(9=Vi0s$$oxk zQ<`nd!yI3t(sOOq7^Zy~cxcW2I4?fGb3_}1bGf(jl?X7buGG9Nw))SJ{w)LZs*j

    E{f=@&H#=u>U(NK2U#il{mtDf()bhKllvWDRh5+ZmW zG0Z?nAlv+GO0mqI{}b_240?+>T}^26jb;DCQv{AgkB#9$ER(OeP5{}c%z`z*V(eU>EHf?-W_kZRv1`)>FJ^^E{Og3%FfEYfoc=C}_mEF(rJ~altlw|k zJH`h^8Tbe(DEPMr$%gGn&L&QN^G_^H z+U1cAi-Ljru8>)~7RjH|-rfG+$mtf{wk=fqbc6=Wp-Ln9?mI!Xi}&S_UuMCm-4DqW z6l$4rI4lKIEL~&-Ah!XWIlo4MC>#i8khSm{`xeA+dEo-QetSpepAw+#QY-2W|)taKc2)f0+l4LC>v`sA7Ejtqu z030=?+ShAsw9vHO7#cbZIr+R@51TCM&Aww_q?*hhpo?F*Z#{^>na|L88^+Jx`r!+? z1vBcBYry4S_t+UZbj-5M%e`IhYG=s>ME|#*i7KLxgy@zndw%YmPWe5i=A&ftr&9bv zTdsnXYsDHh`JK0`euaovuw(YcoB!elXypI=0MF@8(P$h+O0pi)L{`tV9g{D{MJZ>_ zso@l@T28$PedegB3Of6PRPD5f)VFT)<#&t*V-;9~6-hwL3)z&TKRz-cqf59fU$S?Y zk8X<|bkP>pC+uTN9e@Dg5wPW>SK7hLUdm1YG)gHlc{pAaEqHJ^A{cWVAJVu=;bVX0 z?-+a#56rQE==zoxib>4Pbscu2B0>&JHcUaOUN_Q_WetLYm&qk3M9yy~uHt1oiL2L}_21!l1h*qv&x0;8Nf=c-n}CHNUzo$CHxb1d_%oWxY=%m`5DB!T zNnZKWZ}@Rkqq(fPNrW=wJ>@wjCxtU9XY(?W=Haz83?M_@ zHqV6skGFjG$D@p5I+a)4vD%}>e(c_Z=;Wk<7XPv7e8u(?g_}qFj5UaOAZ6bD%ZbQUPt&EYTBHf?2GMrJ~blzFKx=7&0po6q^bIx+a?6pH`n+K~DyjD28=Ge*5c5 zD2al*WDvPy-+_lfEvT!&1H;$wMU78vS+}b&Z#k^QV5u(~T!yCh)ButYqz%sJepA|d z&eLM@&}KH$5Q|jOBEUz9%#i)l6g7CrIDu2NN=T7jiHZ-`CM&7Hxhg&)Z{wRB;JDx- zQN5FIJg`40tu_MoJwN=KK1CPrNP%$}_mf!_9-kpN_F-_>*U9aDQZrV=G1dbaT8MOC z9P_1_DDqo^W#uR4_r+Ryhb4?OQiuDIU>o#WH5TEuE8v5@2gOHi=J!W!EF*>4&tcK8 z$ouRzg9edRg61UJe4F|89DZ&14BY{iqWN{wowREF^F}yq)%&6`^vV zUa^pw^jENA9$(Kkf$?JqqomKco0#G z4^OQ$G9EfuR#JHx5pma-$IVgXEtqhyLwZQJq?7+_2z-P+p4hrW3;Z*qA$FBpjX`k= zFLBo~wk*w5_Y>k*!VTY#_svVc|84Z}{R2Gu!{OlQlP6;*oWR7dEo9r}DiL}f^NPGd zSr6vu1m4@>gkA;+Ya@t29(G2dxP8@%oHq1IPmxmF(Jz~GAJ_lXCg*2Wo|k~BWe zB(Fz{o*LM^F+RU$J%0JDjeTQ8IO*`Zi%SI?JiQ-AMEVCZt2xYS6uxu9vLjI~DAqk2 z^T0$GyLb1@MWobhO3vRNv)Q~aF5Uv;W1+*(=;;BLyi?i6KV~>iZdRZ!JL6zufr6tm z;SV+}g`st)Ub zZ3!`G4BV+qR*>Zvh`O8IU^sOU=#fh+*t~$FJUp9(oFCY_@cb$B;`}e+u0&)OzMBBg zP=EZ!vEo)xtyF{TJNBaL2!u$;HpO7Xfg5_XEs`-=Xc8S+DIVp@rO+|)0ZGGHa=8L4 zzWeDS^{NL2u-mW=stfP{p?uuBS82T>aWwq1Joef;WShn`b-ssV%d<0wF>V5o4aj+n zxfZKfGA_7tA^x?f4#j;Wv}Cu5cKDWv7~9Se8*u|BELG3l7DWes!lz-@im1c?#V7Pd z#(yr?92}s6nu?Fv1)$*#uZrTkp5T}_3&vqv2Fw!rg&=_>QGccSo-z8i`S(s>qx?pn z94AJ_6W>`2JFuRnfyDiQ?Q;U`c@b4%N3w)*UHp{^XmLF$tEV45h?s%f7wC+=&jY-Y z55uh|t>~)Yhbk|v5cpvUf~%PEX5clp?RLjR|B6L$FArJSKEp3!!k6a%?%By>cC)i* z?Q2OhI=yd;F7xTELv>!HM(3oalUfvcVLZWb%SldQ89Up2-2rIBq!Yjs~?rWDEca|razPN`l_g_xjgkvn1*^664b>@0uaQFll7 z@I7*+zK=Mb?x9o!0IiB>o3!a)Ggi#X{%?+08N3enJhMk`b-7_{6NuWIMCa`)J$;Hy zYX1F2zo=Chy+hXeiwI_Wpung#p^<_pz{5a}I#2(5Q48DZ!=O5DJ{l_R2_jvhZ|$OY;2&x8Vc(Buv;{-ER4tGp0>V-ut$L^K?kL5PMS zCX5`YblC*|6HFbRVcwQ#0exA4^}qkDeG8m%7w^~{CCR`|3&vl z$~Ry@KTlQyw6d0Q1S3&edS>&2qBuau2rm3z-dXEs{yNRiMzR`Iyx`p%k<7yVufsUj zDJb*?Qm#D3>XBg6vsYM$ddd~Zc9MDom?Lc;JPW#!KV5o4h?Phfjem&BNRr0Mb76eo zzcrf4b{EGyk&sc17$oT6RGJSulMCW3VV>pD@FKcI@fB(13FI;;8JKT`Nq9wDJM$VN zhf5Tnvc~Yoz`)@KV3^TC@BX28L0&yPfWd}Sefj!bEiEg%R}7-xTyr@*I>}9Oqd&7% ze*Bv4A9#HwNfh?G_h&zN3JvTWJLgkl3F$B56*mptA~x>3G|z!?^A9K#GaiPrCs{xC zI)m9&SB|g;@cm$g!>>*47}wCCX@q+fEA)AMAz4b@FTLMM|z=}Tza<(!>*qOQSe6n5mpbWq0!}j9#v=5ijES3 zSUu!s4|djVy2SH(QkKvhxWAe4!ddHWyhk?h0m-}g_5!Q*5A60bOkbEEZ97x8I?wyM zkdvf@lf+SZXecU!0vIxDomY7_#G$tmDX)AqR&;^>l39wJ9p%FyN%aS(ur^W8YNIh; zFpn*_ldChhXUeM15xL09>h$W_Zo<`q?3pN{jve<|paJRJt&&gczXuI66ctb|EMhu= z>NNnN;`JXjGWMIqc;)1hO39i*mT=~SFhvTnVov*cP!PRWZ+JHc(b zue@M~Ftp$DlokAF(Ax_6eR)4LKWo2yua3T=ZJPcw@4s|(gRI`xE6>IoFdB$ zPnrE**>E3t7((yXKP1m6Sl+v(dBj>O987+j4bzd5X09iCFGpUul93iB&mD>t1CI@j z!G}PLjxaJDgq?h+t$m>SY%7HAW~XOj12`|^!5lc8>}XOiEGm@osODq-Z7*aHu_xL7 zVZDvctth}buK%HqrM_t~g6poTl{}WZ8$||;QjuX$8F9A`3~UDRVR97%E32{9}<}BZN%N^ z;$t$Lp={9myF}H(a6LJ2o+L)}=ey81#y**o=%!fEc3tyed9-wKo+0GMPnl_+1~vv= zeLF6IDHLy<+X*GAQMB=Z#cJ;9r#i$7Ysh1JR+}Hz-y(e+eQX)NheO{h*XBUnk>MoG z!cTAeFu%D7f?GjO7FJ;-pEw4ae(#^}*3xZ)j|7N|SRMTAB<@d)AvV}ytr|h!76zvLxle3h1X>(9;PUVF3M zu#5gF-weFIiRJy{whx6^1xVz$) zw_$|iwcOatoS2RYHNnR|EgZNcl=?TJX6V9V<};ywBR5#FaS?pYWn!*T#dzx!qtEl3 zh}t@u#51^>{-!E3HcW|0251EOKB5Z&O0On~wf$&T)*4CMSG@#nMJnI(Kcpzk@*&2F zK!k{(q;f?Sd1S#UYT)&Y3v9;GzoC3Nt?%l1c7dcl+cqcJcysUq^_3M^cJl7vBZ)Q% zlqMvKA}7RUG74Tp66<1pOqf21o!%klT=~YY3~b zq7ZN>t=;tH=TV(`%J-tf=W*SNM)VTntqc{8erVMh$651ydJi*+n0JNFD?mSpLq*Hb zw-~x=$$dsaj^q_jx>K3!&eab3@c)>GuLCyut#D_+b5d%{G-;*7^5hg}$RDT%=Oo4} z0AVd>f@W{DEKyRusf|r?UJ(P=HB36Cw{mcy|Nj3d@;~jAl|}gW-a+A46l&0V-GA&; zMdynmTFr{oeCl1yz*X>oEvFx#2U11=CFdwAmVg;$&TT|TeuL(Spve{OwU>3GPw=-k zi2t#GHZiD?K}$8};ia*wtGHcVLlX7@!AK7V+!XN`O*dTmM!hCyAeyHU2C)UdTA%kf zLYq@M$ezVzF+Dr>wxjDP31TLkw1m@E^sbLnq>Pjst0|Wl-*DjbF>7__!9|@jzUC3? zCp4Qd_J;42+x>Y{uXVB((W&o?+LY3U*z|m0WR6gKQcbf3NnsXgIZHhdy>WiuWmJt9 z2Hz-)AIbP%H>6s5vf`n12LnHxyU51#rrh89?+URk|rir8%_YF!#e$+}&>OYxRRJ#3QFpMaDlv;n!uf{^W8aq&kB_i`TEyC`+`lRyZ+-ml)s1a)`*Ge!m*oY5jdyx z;rcSMzqSM>U;tIJPa&i(7yD1S<-I2?2Q|$&dG-VoEWC|oRcL-bmZm)Ax2X#0*5&?9 zj>=AjUszA~XsB?8n@h3yV$T3$4aL}yA@L7A1G63cRNbNa1}=m3x|WGICS|0eY~pF-P73%rQUwnC)YOY(t%ybhUvd#|bm?bknVUAC z*y5}4r$BWjMZ}z3RlYtb6nSK4r?kk)2r3s9QJJA?MBr=)%)=dygb&wui!PVOBL)=j z^p6cCLd3*`2Lv@%Cy^i7XMf3!M=-X zbBV%T(56K&Jj_IVO@4-UhK~Ydp1KtOCi^mNzu001a|aLOrZ~IG0rXi;{&Rq7%nH^k zZ@s;D2P8Q`s!L5CZvO^fP)+n`yw`V6ke5*q-il2c^R-Vf=;L>@B-tuQ zZDPje9TRATtkGp7Iod~?nS|#uvabPQw$i(5q_aL^J!tQ7YeQ`Vbz|pL)~&F%3y*{+ zGGcOq3SLO+@MF`${)n;y#>qJRPQDr7XPeTqAzHk;=bSrQ{}~i!%-gkV!h{`W zZx0rukaT-=zwF|rLn&EoN(g}zguP73q6~Vm8VY+W zE|L>YHtH@UC8}8oPAW9EK2GGa_1L2 zVmJ6Gd#@G-dl;fGONtvGyMId{We4w|M9|Cu#5g;nb zESZVLVJs>6v&T4c#JwK{tVM!HX@hNqZDoy!2u(DFuzpl}Dr`Ze)aq~3c-4=-{Q5LU zUDaQVo7tXzbuEaY*Y5Ufj@V8!SXu)3!b=h1iCRo~&``uK?iAP5LTAckYbJ_HRbPaD zvFJ5Jwfu6pW*^=S>Kxi3P|k90^Kb-IOv=~#!B&`-VVO-tPKg5so}2y|AVwQ^tApX% zhRl(T?${LmaavOYTIuvT-AL#s{CR9B!saX%=Z?O#*J&A`8IM(#^Du1P37ftFOw)Qx z>0qF=JiqR3u$TqEZ@(^>i$C%BwLM>^=29NE>%dD~{|}pB40D%G zB=@BJXe<~eHWUJ2=BA3l_r;_Y3{oIhkQ0D}Ku|zJO1l<2twV;Bz|S+;0rB=K7d*#) zoX~93CE!KDcq^T=k%FPM`6TLZ9w~nl7ks&dX5CePiw6aIVwh&3h{f>zPzY;`wAhZ|Sp{q!?u#Cl8A)2Da)cA;%S zgh@L9;sY`%C`ecrOumB|kv4cCKxQHHzukl~8UK*dI_W2xXovJvuBF_&f>jRHyIb=S zQm;Gh59RBA5G2gn^Ta_&jyeB-)iO%_U~t>y^KfEVjr(QVgnkl!6E2Y*{-)~B08 zwG)M@bK@h=x-ZEp>sOnFOb1=?@jUTE0k)7gtH)xIVDL*?7kyG3^G2axlxA6+?5+tu z$mSVRit6m_EkalZ-3&{mtQFMVSZOEUxIJgU1%3~xO_jS(El`Ru`UTQU`_FYP$Qj^| zSJsrXA0{A4=|`xd$^LY2C&fzDMON0<<{rSKd@1Fc9)1EDj8_O*ngC;jfpKmG7uksc zL@}`(ng;;(jTQ0!ab{hXRb&0sUL4^0j^i@StMZ`OnZ~#YGFxQ0Ys6b&`e$j6K~dg& zGEW?#lDg~Z50JE5afZ+@Q$<7&j7cWqSuckl$9%~fXl1jXyu;6`%f1Wh&i{!f-sVp8 zcFkq$cQ^&nqOY5B{r@h0&M`F0Ut;M+ds&`r9WYrjS=0E{;ga?PxLEw=@5L2L$36XJ zsbtcsigL2sies^u-YQV^yP>OtSY+A_e1h^ikr?m@yfA|J$Eeg@%aGok-g!>`<(}&w zc}t%`ow=p>`zUTJaw z5`EU@9)XOezqHc&w$uH`vtqBz=57NJHgO%w;yKr~NvY!c#Se85$K^Fh7nt9UrnS{l zLj*^2iMt9cZc43{ZxUfFQV!>k;vd&NtzG^7KWpk|~YdbngOf`kMJ~hjFDmrHFM-|2yy)`9Kb2)5o^4Wj? z_MPU^EnTAnc-`#ZUjQShjvRy{W`itrIH}lVTB*k^K0o5Ia(_uHb=tc8n_(Pdy5wZ^ zF8nSc+FA7xme%-jPv@>eyBz-`3H!%=pqK>p2u*6FRa5ehu((w5+K}X52pJgDJ+h_N@GT9w~^^nT?WPwhVS^eZe|s%nae{0WN9_W zP6rVzLP|mT4;16UehB!d9}XgjEf%w^kYgws zTp5OO0)Y&`FBEsqEsSxUBb*pJssUfb{~7c(;5 z^4+$cjj%+&{)da6nd!W^5A>T2P(W>2PAaSW3Ipa$rqzNgtW$V?V#X^kj-0tPzLsG! zCuH6gS)(Z+p#OJDbLK~b5ScO8t+_j@_Sh3oG`gPWfg6&qKty<;2jBf^5fAf?^EwO< z-pj^#R<3G99jU@s%VH?8eJwVlx;GXLs=N>Zb+EshnQ12rkg3oRHIL;h-n(#kJvkKV ztroeDI2srLK)lrjwoS=#ay_UUR6NNKDoVWbr1ZdE@;rdMIE5>Oux3AiC*V)x!0eMf z9?$XpvMoA(b$@#D2p8xEz$ft7s#A;64dL7CX2 z8NO^9?|NPvq{_Bi#o({EWd)rQ%7Y3u)F={+Vn2704SNUjcIO(voyX25 zeaD9M`B2C|`@7UssmnrFxCrn-aos-XEpJbHbM1+CMl{@Cmhb<+{UJcLlGq1rZzlCH zAm8Zw!fvb-8iNLxAUK{ZaCGAm3#+7#AntS$s6Z9XM4mTBZO@F|p0U-Rp?E_!i^$>< zFYoAH&m6d7Aq{-nEAjIKMGSE)6o~bN}{Bz=QNJQd$$)>?YSMV#>Mi z2a@{`r@i5)*Eg|VzZ2?7GUm+^ug7u&KwB?@_l?U{Jpr@CapF6ymdn;!f7=i0x2!b~ z%u_y}*}F5{$|U5dE{;_10YH5l@J5_?_D^;}VEC0&1r@(O1QQNGBhSy@sxLyT`=+!_ zOP*XaBBG3612>ZfoK=K>NzamlJb+{*i=f7>;+!f3sUb>)+Vsc%-EVlybMrq~!TOa- zw`SBcYfbrnTMuf-`4O>+*??+bs>TGr@>|Ffv}U3A7f`#6Ppd=y&0m4{HwAV*r13jM zZqZ)>k3D1a3-Xxm!LYBX9n}$kRVj8>nc&kH)UWEoJMb=>5Xm{bsFq)u1eKAj110ee zHR6n4@3a_#LEetrHcs9{}>F;#kNSinF)WFs=n9)hLwih0YS&=0)y+ zplbuj%8Bajm6kP&G@3c&WH?o69PhHQi z(;Bm<--_w(0CjL{LsVLG1ld@Hg2=AGHbJi-N6_M$gjaZ;cxd4HSy>=lu=xx5wxMOy!dAhs~;*y<}r07qfwV+%aJx|$#x*GW+cjG<)Ol6id58)ryr!7;SYJ!DJ zaQ67wAe(}`k`7>x-cV&C&zh@jv z=Bf9O4^WUjr3pCZOrX+nhksu}ZPi29PSz`g`_a&n;{=dQ%W6#oq0!tG&5{w~$3&~b zo)GXR;5Uv*2Pq*`Q|-weWpi^t@kQhK0009441u+m+v&&X|Eom2Ix3)+clM$a-)XfT zaC*irX(6ppp$WfP8{{vA9{o1Ho@{4NRu43=&mE!i;T0Ks?Atl!2`L+`C?#~Mu_PE%EcVSL7Q)l!g7qAY9MH}GBme}*yL>iMT4{So?PVpK zwn3h%N&GjdijlZ>7W3B*ERUncDNjq=`~Y?TGfcr(IlATNB4QWmZ~RysD#jsAd%$T~TLy4aE6_BSwCd*jiBn1HrafU)GCwF@50wWF?5k>=GCvF-rBs0P zqB3LC0vh3-S%gw-gICPslDuPDe~1xr@C?6p$C1biB|rb14rL2a4WI|s$ZF|$a@^Ue zgkto@!TK`emlM>EXb~zpZMGK-29s3N1nj7?SjMosds;%wKky+<2$V?6L0NYuAcR1> zP8pHA_LTy{xgE?{V&xPjt2lD=5A&WO?E!5G|0}q|c?5TX`vz!lyRm9WmT3}9pm#QR z9G~P7dS?k^n*S7g+h}q(( zfTp3DpcTl-_UcDqlYVq{v;#gr@-?<&4Mt%mOJ>407hX0EW3F6yH@(El#~>HwSNgCU zDS#1b%pr1bnreuAD51Ik^7x%#mS#>CL0f*kAWDBBe7Mj5KV>fy1b<>9Sm?Dy$*!^> z<0_ycSozRq??Gnfgdse;^4_)-U5Wk^T917VU$LatcYRsjnOZuBL+X&IL-AWs$fqUu zs6^+kj6t`RP~)LJULQ)QcIP#!77#~*mDgEb4UnxO77qGgI9T)C=emjDnwY7TV+fN* z6B9rIT)B(S3RPl8t{gwD(V1~IEQUtp&ia%n)0P8Mgf9mH1DXP-+EHscZ~wf7^><$x zMdJ&?^KYxfMTYg9>R9zHe$Rav7_5+=@>d1r_RGSZ0wT9Svd7uUTbA=KR^veg+fGO@ zE!+&JOg;~lBwo+3c)JLqVAt2FMLVmHgC%gX&~uH4a98yRQR&Iyjm1J25i9*6gSg$2 zkiJ?AO+$P2dj?^whQj2j1(s$>fU<7N>%oU+HUaVe9i;kJ0ptAWEB&+k0w3qeRFkBY z*^yoYvo{!~Sq3{BzuzI2Z_081*7eM9rzY8(mB2UY)NmP+}X^YNVF}I z>^C+mzd52=mUyB)3Q-c@$u0m;w=UEknm64&)XjPU$tccF_)Ppvva`A8Ky^wm+oYv< z4He;{gzkK%N@&{#sgdfwD`5aFg1q#H-JXX(Zr@188y9v0+x=C?MfjBEM;MM8gKz9p z?RI@AXP&#FYL$6AD9SDF=T(s^$AW3ND9U!iH1G)E!x(q*rqDZLt@ z-DH`cYLae(Bv~C~2>HA+8+y>UAO{BUC@cchsNrjZ>K?h;P=46f+o!0cEQM|X=~ib# z-BAG)n<*X8JMW&9vDjl<^)_ytHnH5nkQG zC3sGm4|o`I;y_iszUuLad$3-nqY}X(nVak{t{P89pdr#A4raeH(|JVsgF-mA-wvo94~5qEo=>J^ z=RbfPY8sxCkkgq4A3}^KC(9?9sq)^0%Nrg?^iopR8_ZLq%?CS02r6!1wRn283KD|T zRNxF<&Y9_HLjqpYdy}AKc8S-#>G>`0d*(WvtdK8H)V<~UBBD1H%7CG$LYnD&WOX~s zSTzMi0|R832jEOgderpqAGn0ZoQffymhP^=icQCbG;cX*%PW*(&|7;YqG7Q=E)+2$ zoZy&H*@gAz*|l}+t+9Ty&bqBy{kyJCgo6I#0CnJ)ANi;{o^V5<-w92H$_FEYU$nArOCqiFo&7}k^Ql=>8pFEXYQahlRH>AdTz$s1 zRT~}K&nLf+?(!klaXCKz@O5gBJ%=esodNq#MrH;MRBn4d9ZWpC^)-OYXwdmY}Ga2)JeAu9Jk6 z{WRc-3S1H{{R6%2vFUXwey7Yi!$RFHJN9z_@Bjb*|L`95nR74W`|b`LbgG>mTugmK zl7q&Rj*XcfOsa}FDd=5dq9!e3x1eHy7#Ncv`OhdKvDeoKbY6HHvJ!`1QG2gw#h^9- zoQ3LTQ%aAg>A&uVjw07Ei|>OOGJ-v%qvQjObzHJ|_OTl` zcc9-6hw#ExJ~HsHdRjhHVXnfwoC|PDb=4{W*gtA^jOK9zM~_a1NhlAAvAUvmn0SLZ z^;#vi@~d#3yMG$=K~R^+pYus@g+=nSZ}E=5#?BIi`H=pb72we3n?1*dorM#M+y-@X zB}YK66jw}+vr3)mJP@d53U8!(S--xSG#6HOMbY+Wl=)Evtg6qCmVhk~5fL$jV7#n& zZ5Ws!a53W|FUWJ!OzdW*oxS|^iOdkV@+{j8U{cAaC5_5|k|g`> zANBYr6fI*=s!tNPg$)q@W2AWAZ_xo%upU5b1VVZGjcLDFrlg05$&Jy+pW=^d+2=w- zWLy9X;=&BRyrAEIuXTND7*vpv){(9@zh$GQS@rA-;bE8}dV{$5Zre-jfEz3= zD$BrPW<1Jhob4$DpqP=LTJ&$4n6P~Rifc)zhernNu|aq!St~RNB&jM zBs#a0OaKpnbMy|f+1CZ2WKJ3~oT5FH89>nxn+ux0jsG+2uW)-qi*Y2O-*y?#Gi&&nacbb0=0m}2-V-YyLoqg*;BAw z)t^s0On6R-7n;s)jiPz~Nn~W8+Wi2F?!%EvD?qADtCu6CgM?1ccCAwklH#&3qwSb_ zPG=aD@91Dxga8Co^C_0RW2W~%T??uHGKU$jNdG18WKvT8zrvdfA$BRJrH+`{VQx1gGzK}s>tN-(j2Bc+6L&;P(~vd(CI zaRxs@_grJZ#qgl~SLvt{whiXV;ixmX- z-oHgqM;Z*`Mw1{QB+&5P;r4a-47R^owX@lD%KQXGX)4L?#mQp1=r#h>oFg1+&Ej~i z5CV5Bnu&2vz^5ZL|2cI{D)=B2(iHMUsP$$HAcoD5OFCcN?=X1q7>o$KiaB=Sa2M}% zw}1ADKV;q97=UV~iRpa8Sa-Z5OZXb%rL*&Bq&!qqLtnggDHivi5ET@qZ)}ym9H|iG zq0od+S=H)VHK#Tdhfvr?=yv-q1^{OhM2yLqcQ)8o?%d%H_^f$Qt8{sEzX!l$`)a($ zDkjJk|9A77BUNLrS6#s8OzI_zOmK!);qxy0Wa2L{5YnjDaikM<91l$oTi(uPWy#sWn0|}*#H{BYnef9 zT4qoFj`9B19ox~)RVA74m&Kt_R}{Q_FVFd=Ay3B^Of<)9xc85NF8Ichwb#vCfz~bH zkam+f)&UZpZ~Q?vL=gPZ_R2xn3QtlBun2}Vz{-3pqVh~TECZe?ZR?{Et}#~H=2*JG z1WVo^Vs1ya7RoCZI|Rrp(K zI)8uD4;6i=&-;Hm*Kn)5a&P8!%8YnDiLhz*%Ao5x6^>0nEX)YR~~4v8WzdE&REA69WK0mEsdP#QTMI z`Aq$W==!xQskFgM*rAdfI|Y*t=F%p9dEqGA#=A6am3*3Zs=Q3fA0?mpX>#I}(oN~YBK9&t*C7>&735WMZb_I4nO>wxn zFOL(o8#qxLhxNDx0xnwH{ed*2%~d|I@>kFP4IK}v`~w!Wpc@U!+piEzdUL3Vv#Q*} z`+#(QX+ceq2S}CLE=QKOM@FtW&T=Ot~R^I&2-vWoVj{+Nsl;xMayD3to9m}`@7W&R6ufpX4g|~AW9W+HmMc_ zI6ijAo0BVl>f0p$&)w~aj%`hw$dno-Yb`V6=sHu>)5Qr!2%s8ikq>VnSo)^LX`7VRN z+Amn3a}PW~?rNDDSF1WmHhDcaIp$S08*f#oSU|riqKbnAqycvzI1mHMgFi%+^H*|s z`VYN>e4nl389s1Z^4Aj30>5IwciA}y~Q27q4v#<5TNtYs6p?IQ%Bqx!W3zy6itdk^^qAoQYFL;J$~uDGq& z$8SC(Hs_5sX=&6Jf&R8_G)`L4-VUV;yii#kTwXFIipGV{s5eM4|@ z)lQ$Ak&Xg*zdeZs<83FWJE7vmxUC>~2wZLJ+)GBY60sE!T59yDR#&xU&fPJ!{K5^> z>YYCzPhSwvE74c;PZ!b*>TEBOS^1FZs!F)W76z0{9P;D_kpfc}&_q=jqH`4i)q&P6H zZn;g>CAcfr7}=u^847lpi~@QG{RD`6{ZaH@9-tR&hXx#9bW)sr0>iXo3B?EIvpw-i z9q|GNXCiJ}$(!~~fl>9LPPj{MK#CeEEhI{XvezWYZwT)jn~AGwJ;d(B0WP6~m;gm? zr@G~%8;X)6aj>SDX1GTiQ}riNB+Q1^5vAjYY-Gx7%}M|08I5Uh;*4lR#n8lvU;d;6 zPeqYZo@3+rT*7p)p%uP+I8K%sr}r7E71$oATo6BNrgXezFjPnp(7Y2f@n7%HMlth% zQ^)vGuoC$|F}L4|2qeN7zY5oCG`MS@$&uCt5IuWJZpKG=8Cv;YvcJQ(xC*-3<7Z zWCU%q&m@%yRD=JBSP`024f}}&W*c2Zt5)ZW^NLc>to%uTg86%FFS#`7RQhq>iPP<6 zFPTkQJ2F&+ou2t0zdAEW6dv9zGn`Sj-$na6p5 zXKtwDh{lGE5veO3;!9=(_mg6CC-@dUQZby4nHG>kfRN|r=_$SS?qbJfT51pg?MT-^ zf!Z?n^LX!nG!lLX#5|h3GfEPy*J#R-6S8AP1yE&trnW&J&42K@gn&7I8P2vy-FON{ zff>pD66=y&rVv(ghsA;j&+Yg)FwLm1cCYMSMMvRYy1JHV)p>_D{t!2YX+b@nZ#z+N{OaQv%;&R&Pk=S0Cnj!{rdOQ@%@k7hFB`8@4yhls*t< zDXFEUYE6HWdv=tmIlNL^x)`8+2Fd2%;{8D80+g*-G4W3P%M#7iLUJjG6 zKWC_aj=-wsc1lV+&aL;jfnr-G@&Sn^z{ zHHc>f?SoEfO;GQ+tzj#y7d!(KL_%^J!2qF{vkKF8i4Gf}mny2ugkFzq;|&6SgYzt&=LNE ztS=Z93f>~Xq8Ve)AR=#S$U4~%^_J4>Y@Wg5shV4krDNM$T0<@sTYySSKC2`oh#FgZ zmh2xGG+(FG;ecJ1@hUsTWMPqozCqGLk1@9n*zeCV^=I_rDttaP$Bx!K5)?{_G`lJwVuoP(-p&y z84y?EQaHQwClJecPQJP5)Qqu&8dl%t&=AGUQQpY|?g}O+Mn>U`%2FrFdeYo(FM1Ug zgWmf6uHOZ}p{{PGGdFJ=amq|CY@fKnG=ag|P(v`H!4JI7!edKsZ1gM5(fUqvVbYn{ z5Z!IMGS2^*pUE)38^qG`r#Z*~660@)zmrS%UCvW>(2YG-N%t5){$7=-C#>->SZzaP z3{RnjYot+oi7CL`Q*0z{)iLHaUkTlSo0NR6D~;Uo9X(qRYW~qdl19Z=iO4r>L@Eb zfi(fCCB4En`p+5N%?)NiIeW)20Y>o?q57-c&l@pbqX)`Asr`CueKdQld%~5xw7VAW zMS%DH?mKbJ(TgXI86vQr@R!oF-Tr{~A4^6V&@@m3zC&ROMF+rvG% z_RTi?5``^ogRpP~nJGLc-SC>-RF7s-)kPK^b_AyzCW;qEYj5^|{}BHvTz;UM{HhNp zWg9IVZ+K(LC()4#Vk{y~!sAYAV-qxa3e!abEG$uamGVqd4g*Np4*Es;3=6rcP-*Gv zJ3F}Dmh8IBNdgX$og8@i`>A58fk_V1wF3I%@jw__AO>vXK|$FSx!flRsvFT;!H%dS ziE+FOSkQPjIMbZiQ&kt!#WFvJ_u*9~XXBUeHWj~*e;r|}1Ujxi(BKC7qtRtrB@Gg^ z;Q76}frcKYXn!SuLA!9gUKON^g)6zzDx7z+|As zPI^p21crb&BnU#WY?nNM&jq(A^LG|Uk}k~Sv_?B}+cae}*zz}U+S0(hP*Z?yQIPP^ zf}s`}jw0!f#sXF)@{0k4$EKV0GKH@5&fXKoO4+f5v^!1r2HiSZN#Ol*bF9xPtmf*v z2#Wp|6iiOeUKAjGc_pD1eLJ!O|K_=I<|;hb&N%#J>~2?p(cfWf%_+p5s=>!j`x(Y( zZQz780{B%$L&*Q-2v0nTYCtg=xi3R9z<*k|oY%QMu1MV$^Gh)GJBS0r+Y<3LH7>um z7G)!V1-C!?Mc_t2%%$)B$O)8U0V?5FDul)~5Kl|GYqyZ)c4P)&KAHpnO9EH`3Y;-3qdV+=xcv-f7Fzn6zG!W+@c*!xxoj4Pd6&^Pn6S)^-cA1 zCq52Oj*Lx$1+LyoI|-fe;I1{Or-nn+uAOPR`wL zjJICl$3QSR+SJ=d`f%eY3z7{JTvy3!B37<(GH3-^VL2@K7>XjJDQ>4 z5!gP0L1Ag)p`RqCUA>k_lHdJN4@VYUd~Nb!nK8;&?vm~Ij-Q8`XV7CawO#w`o__H_ z@ZHUk)~NMW^Xj>|n>3HLjyo|cvHsad$*fuB*-3T)8Q=U?hs}j|uG~tN&{dK8oF~^4 zblpsnV7F>xT*Ov(gOt+Jn!l=<5(3@?*ZxhPD~Cnj2Ns} zNBQ7$OtWCs!@vZ{&xg>A>RK@l!|&-rO_4Gc@jXz0-+!d2kLb`|{99^iUsL{29G6l> z7{;iU_L9dMPt7zrdn`vZcNx!AAlK1E(QxCJi>^oYqA$U1p=K%#Ye6Y zBYFykjnQtnSxL#JPPt4KG8yQUxu>&20Zo9pF$+N6IYSF|S|dLfLUbyF=%fN4!5X zM0KAq_hTk2?Wae7Fb?9$T>3YDMOftw^q|R<1_*@CBhe!AUyg-5bYz`f=5V!STl4ux zM8hd|8n{P9#d!6}nqX+3yq_`IdsRI#sCwfBdJK+3UmcNm@p1Ju3`6lvU4wH0URlPp zcDdkwagzzpkkD!?Q>U>?nl3}tKX$$CJ}DvVLYulgoZXVj@#Pyper%hf8b<=j46sQz zI>701nyoIji-DNbuKRQk1%}R<%lKTs^itLP2!Hv{a6&pG39>T zuv}qTO%vSlp6{e`2fYk(YC z4bs9`y}Ko&QU#D^>K^TKVI`kk+KsGcxcEXYgjDWlss53{okUBOn7~(J{(An{8Ir7m z=SMoP0UJgt$R1?`&aHgy5Em z4X6FWtzk%tlMu%ZaRS^7u#z5n;Z#p!^TOmuGt<%92ViC+FhVMu zR4&04#lSo+dCZ9g4N1{wDxcid_|0m#Hz5Ri5?zXMwpGFxxU@MSBFNOQo#PQq3Omul z-~1j^_WvM4{~UUG8GS}yFfc9qRw@o3%00Ju|RlupxD6T*L8>Ci5~A zaMxFnc50M?YVbQOSSSu}RoJ3eRob@THpFS2Q8sH| z9yg`)My;`nU`@N;l~%CTi24KkoVs4#>TmlJccAOYr`|T583)UqgG^?uw>cD6SMqVt ze*{Qm_8~){Y?!g9O`lk5I;@iVZHaXEJiMbHgu`Qtz0m?3z{lrqRj+xNDuYfUmjN1)!SzE$UbU#=ea3%9+^&s4OHz9>T0$Z48 zN28JvpWV+t1H=_YbZ!|@654qa9K8x*^eiNy@}=ZVa~bGzfgG>ncRA7JFB%o?ipQzW zdj42uNLUk3N+kYO`x(S0YFly9Q=}-eDxdXfb*vTk28U2jTciS!7x; zQRVFz#SHwaULk{*0xT^3JI_@F>thwo#+)y5?9;-~@X9ox7jrmq{ij~QOu%6C#IA6(Pvzl^muF4~@gjL zd0V}CsvLGnw|4R?<`5;0Y-p=;F~jVZ7U2}Id4KBZd0(xn`z`&?9N)WA2vNe z__WqqRs^q}L)v$q5Vp{E6OsxtoU(X`*9j{J*pY@)SZl8w3L*VF*SY~a{LV2kxq0~7 zCJtvlT~QXh-)C{B8xTJpGHEhf@I8=VI(PBxU=c6yZyyDyZ=`k10d)REp+wLIi%O%d zGH5a(_y!O=6Myd@(`C56Yo>iaPfZtWaxH%FW&t;kNWgdY`1__jR;saiS= zL%RINILv0-7A~0HfN{&KmMY1<1v~S}(E&cZ_P#&JroCN`<~i!`BbpZfnk{@S;0k9w zHpNu5S#orS5%8p4QR2>)wH|-M{`VRzwFNojN93`3Da+G&ZE9@;Cwc1|`+LjCDsBOs_5Kg*Ol5Wuv^ zEO9~41mZ$J!INTifBK9ESD#&1{v94zQmX~y4T@y(<9V6!A3W}^zeafy6n`u*Pb7WV ziYWq9)r;A<9u}&!%82J$1Q)Tj6w*D2e251KZ-YPK`6T@yuY7v?zaooov;A(m!T>LF z*)F{eRN>IHJ_yiMF(tfbSUf?m6`TBoKmD?cASZ>cEK>uUj7a>;zm$X!>z zt#*Lm{G7=M-jxJY!;a2hM1Fs51Ka5IV)OvSycI!n1oU&fo@&?ADyz7Jf2q2fp%r8= z+^#)JZCkrhHbKB%5$56piCmMPOVFc#{mV%!4ze=M*ZVt`&D_2D7L&5^ z40QjrLL5J46yk(?`wcO^GD1zqU7W}Hlk_TQ+;*=Xe=1-AY{&si*?EgK7RH<#l!GRy z;V@Wvnc6A*GLTbFcEJt0%)VBR>tw7&I$aC-pPK~e*wQV6tz6_ZOX0_SLnmO54c-F*j%~0cyAk9Ly{| zjIUOQwPcH_V(!{VPQ@`3*&8p=-4z#bSw4%XLG>MXbTh&d4Wh~edq5Sn-175e$)9Zg z%DnD40CLalDIViowrY_-m@K^!&DjKH^gpBB8U^k@ADIxve93y#GM)cH1gR(C23st= z&;s-dfW{yKbAy&ZVPFk$q2rNS&MUW>+G?{_&?SzoouaD?jCgV2A_yj9CnqO>&%Wcs06w(E|}MT-KXU$dWd+vmYNW6xJ>U!a1c)`VIXNK#JqLo zOSP?2+i@^ZRB8s}wl=(CLU@V(7K%QRj}-#VuXh8wCL>H33uVIj4w1ZGX_#n$6+0Wa5zt7 zclW4Tv0gD+01p)Kgs^mh&R#+W`0>@`6=XKH?g5GhqF?M40cddmWuZ80ibhx-d{C|f zOy2QkK0`gI^I=kEtTc$ci)mUbK|M?oW(J&)vI?Sih3EUCvUIU5Ip#A$OG#X!H2O@F z3&L2fxP|NgYd4PWhiPwt07T6Xj~3SLD8KW6{ys)~r30yM@`j=1a%*R-_og={R8&|J z+>dgpoB$P5?iK)BtEh#In?p3zD^UsR`rMWPKKs$vVWm9^kq9o?;@@DW`jto2^h20; zWosXuje$Q`(yP5iHauJvCI#OKW73ObjiQBGhNw55pOW4w}0Qy=uA{yjS4}f>lGN$oyrS+nGgNth* z5M>o4ZM(+W#YXI3IRdG>sQ&1u9CmR|wc0nODd*?I zX}+;2hVoVb0BwXcEn3)%@<|l%>u#Y8Ol$b68gzFa))C7slqm$G0(%DOa1JYGMlSf_ z`FGm=qknU`K?sfkU;!!N<_t%>{-9i+{R=y0w#Z0)%gY*qvI$sSdN7?UBY^fMBH|Mr z{gK3g`56v<5MtKWxSVmmM=cl_;1x_*v)||+t0XZdzlrvj+E8(tw2ya4 z2MEGkCb{#AR2B1gS=+s`z)RH+ve(ZvF#<)(3h;@h-m7lv0>LV!+~`=tPa-l;`1 zESmQ7SPEGP0W3BS$Rr*1qcq?1Kf9G?6{uTD*?Ti;?fU;z+?&dK!EU6++n@94GF!Lq zh|-qiqBj&oy_$-PPZ4poDsEMnC(^j}b#ERJa|1)uvYJ)(yKid@nZ655x=5`x|L%#5 zhwdw+B*}!d_|m~@YQ^@SA%XFFk|hh7Onpk!^=93y!&6SyqZO4%`RHKi``~7O`1un~ z_uHBQL1X#G{V;GU4a=sPlvTGXVttOKp~I3LKltyyP)~k-k|YF$*_uOB4xLvAnVRA$ zVWYm1-b%>1DqVbv%Jm0sbLG1$?9`n4!$eG(=5gX3mgt6S%|%SAdT;G{a`$M+XFM%* zp3+1c=;uj?AJrWJ6x&MTw&a2?2{ojo_{fri)F;9p&;OCEpO3QgnHsxN2&AYk zhlP%L6L9B=o~aSC_{lBgAim|e#+&Bmf>4i_P7|0Trl$4}fC~7oko5n0wRKi-$uoJR z4Pry+AK=VUu6sDw>5d5aW`jN`Fg|)n2xB0Q31tF}Bvv!EP?XUC00RI30{{R600093 z00RNB000RmA>j~1fBrZ?4r?C57W<~nXX|xaQrsM!&Iqg@Tb`mZOszPNv|g%}d-%!s z10PjF3^t}mw8QuXO#>xQxd6;_54ttH7(+U>C#Q-w*8;4mzZ?a|0Om4<+|Oq3GmzJQ z-*Wov{nyB2`4<0G9HsImb|gW_%JvdiiNhEJ8g~ z1MNwciTE?$IBK0)&r`h@ocy3dZO@mNgK<$!aC}+)Sofnl2=!0CCKpvR0=+LeHx-<( zGI0D6U&LE#5>|553z^Lj z`ElQ|lx%Mim>mIhI0f!K{ZDWtbFV=0_*f7~3cLc+B-&t9Ms(4+^Si*FP#3Q|R~tql z!HcMhB+<|JxzQJC`|r{hmhklAI!!oEKLdWOLEXw&(ZHIHkH6k7jvE!F?ygH9iekj> zj+z_+#Gab%3B{DL-HPs;nw|0HHyP60Df9&ah1pdUdP+faG;6tpohY)%3{_`9?qaoZ`y*-vyT0C8=`wl8`$lABnbPVe3>geabD^bm+Siy`u*y z1(1o&{Hay0A8HUV-9NR-*7G&--&hTLyPVgoIhfOQ7UAXjwb{h`m0mSWMSjk~v=#}- zrYP@Ua#7P1Eq=Y@VpZ}B)HQaj^CE1HaFt0+Vp_1Nso4IFs*{kmT50Oezy2{JJ8K;b z5Pfy~y+VqzqwHwDciIEpMOBvc!P_}dyw?jI#OyZ{qz&<-k$r1UM6QCI;KHN35?EwVf7s~9ARofVG{6d9z(-WR&cZc6#wsUP$*EqYM?pda~ zyW0S6-ACW`H~Dsv(k}hXBVe73x%4=8BzTZ*X^LW)f-HFnHrC`{)^r-^ceZ^m*Yq{; zco=(lhds|H@a_Q|WJEG740Ba!=4mCF<+9hJfwJsAlq}yO&4Y&m<-05VTRo-0?^K!& ziv=nQI{&o1R z)p!$07er6SjG@n-sFwNi7v%&;XFVg^ z>;r7r?)p>5EBWG(O&SmV&uP4L$S~1QtH2xfK-#VPQG>OqBj5KHIi!$&u1sDARFv-4 zWuO%b^4bJ001AcY4^qNSMB9PUW?T7Tb>uYytWn?&LS*JfUY*4Prc4Kp!?NkDHftbd zqBMNL&IsKFERd`)Hk*th`K^1otXqEn!aBXU5iELxvw?L2kJC@0u$!k@ONNW|v^W?` z2m&}US!~i|GHWT>!F5<=s^!;oU0Wc0%*n0R7PAygg9XF^p91cE3o18#e z1Pn1!Dcs#TZ%TsFW6+*4VvW-DI48h?fM~;QLM!`18o>9AzXTM&%QBOKcdnUe!FP+I zcGfGv_#z_l)4Ml=iC>{vT=#D9HA$?j|NYKGd1WvfhK1F*YNokn zx*!lLXDX~H+2f0dj4zXD1S4cOhf+yg|NKnNTNQpfr3kDiyb{N^t_aQ-P5={&wU696 z&PDnf-0_;D4D^S(d;DW5@@)fYgr{i|hH`QBK7`cVLt#cA)7x&S`wD4eb>%#gUV^eK z)1BhdtYZ-1BHhJdrI}z+aAkIiwv!NoR8gVGh|GA~H-Z2E|NsB}ZSZhi6<)t%EmwEw zf!!iDCNjx;M_WRRE`2g1X3%3v>eVqe+=LA+> z%6<%31WkO51Fd%!CcfoMnK15SLe9MK{HFX`=Sw_OcmL52oYjn#CB8#F64{9hyGiV4B|#!ZR75Lqi#?nm{pIz_A0?mOK`CY8n*zG?epTv^}hFtbTEfm0pX-`Z?)- zBx>PPp3v08i24#}koo!l5gDg~{RuwJzt^>$_zzAWhZWc2yfo*`em!-?>0-&@ zBO<8P?v1h~5&L+o4o}T&thYK~!j^p+%dkjD3oWQ4iM8~zSddKc51zC>_fdUtF>t)( zA)kMtF4qWeu66+RI;FDV)$DQSqnI8KP}Mb`^VTp}^VUvzlbvp<4+_OB*HF}!FcHW_ zl+NyG_8Bbd{%Ae`00wIzsDgwy{{YE$7zM#XwV$oj-R`*@IH7f|R?e*Dmw2O`M6LNd zw}v-0#vz@ln~merPBAf~JQI+8c&VrOKA_?;>$T3MyTdq}E_Y#|!$X8?pC>qPc7oF5 z{@Ciogr+(@SX5VA?s?4sgm67m>7vH>PTr(MMm@3~d*ay@nhIv9b2S&E1NVK~{RsLk zRAEi1H`+G1f(d&@@k%zw^m@o3C;E~H@S+=~Rn$s)%TF+5+_0qtK4vj@oo;#5$oe-~ z)lqrPT~YZ%_zZ6YPdha-X+7e}m}s4hWT@#3g987Ndo4W!$)uYmS-#+VAMx zxmwh`zVvvC>%slj^pKn}5#qH_ybXd?`3z=;PT)ud`lCnweEl`x_t2^eE7E*li4?fV8qa;Pix2hKldiW@w=?VD!eiYjvP+ZISl?Do>o_dI| z6@}Q175GpyF0%OjSwu4e5Pjk`F)j&m2V9E>i-Go-YY#VSj_Qfn6b#1K2lT3AIx0+` z0S#V5eOJ5J_G?rgg)p*(>evW}zIjCr!(-z)MpS$NGQJ5Q5id!c;k_2mzs-IxGlo!d z&JQx2UN)J;nCax)(Hu|tuu&vqeo5XWf`$~Mx=H)F6nDxh-9VQz0pwYGSrHuW8lZ!% zj8;!Q-Wt>4*s1&0PkgD`XSm^Db>3v>&#VK|Tbd4#k<&gitX#;1#G$z{T!{K)YJ>Tk z4>=oiW{Rc3ZoiIOwdeho&Xg_p6vql~qh%B9j@?t!;O0MN{mxYCo^Zz-rzcz>494%F zjPms#s)+_-M;MrijGp<$`x@3A?f?=k4+)%|9VLz4k;^$i+02h?Nt9u^-SC>!px96| zYJY|+;r=~)Y>Rz_Fe93Y)Sh8C8%h>4{C-3`vQ>EyN;0Cu9Dja+UK=ZdqbOXvd*%}e z0Uu&0=Ul>G-q(xIPmw?O%jVnOoII#`fm|h*0}@h_xX(4gn_VPbZds^(0v35KVng(F zEVTRnElELx7BrNQUA%iuQK)_VreN}_w+zhxEKP;r4I-rlZo_za;q1S`zxe`_)CFBS zIt{F^=>oVo@7)GfG7B|~|G5V9YM9->)^Mp6;xp^+3EbC zYHo}B+9z)%_ zs1Xnr>rdV!eIxhq(LmY)tW%Fq9oOo<2aqWUn9#Zv#cWS&BW;1gWKg38Gkd2BO=*(V(<^?tkCW+?sMRJt zj5sn3E2NiwvBKuu|DqJZS2`ATP+^%a7+y;6Zod(7UVoVvy>y@l?rKYc=+POSPbkWF zsDF9P)ikq7ZSPA?w5(zv#hJYyi&nBNT7F$sJYe6SL-xJRh>V~g&!=Gl$L(VD1(4+g zDh`1t+{p_9>jC$I$*Wkpt^4FWS2~3tRoBN?8KB}Zr2?C8R6^dS_i15@Bcqh4NJo2) z#^vHFxJ0$N_Cw*&x5f>XCjD-^Oxpd%=E86bf?35hDM3k~-S($c4@0XRGLONr%Bj7r zQB^*!*?-Mm5>z>8C`*QY%=HmR38}geCF_YM$xsAyv`Z$GIsCq5Keq(oaw?Q`mxpyR zIYT3pA)KmV-T&pR6QVN|p19o{yHN4rk7{JSJMm5AkX!j4<7A2sy%y)KZO$ht6FYqM z#<63jL))Z{{@bPc8GNpmgwO#AcDvtDUPolp-?X)@rduU(n%Yh9+Q* z$7Y?>-lmrw@}Um>N>SCR3*A2eAm%4A2%FpnqwxgKMktypxDElOaG-4ua+?>Hr)a&w@eUC4`-0lPFM-p2xOr+qP}nwr$%s@7SKX zW81cED>s$OZc??`{DSUJr=Pb^_uI4`Ecr*Pu4jp>w!}vi#`961NsToYY|hsHDvG-l zyhmNj*fCBhuNYKk+jn&qXYG!NztDWBd!kO@+!gzga8DLa_>wL4_N2~cmG^vc`qwz! zqWa_7EhN7&j}8wF{;rz`j{LkPr2mRP6X79Y5n=ED-6)w@laDs$F&|4jgg$H3`M6fw zU_0N>GaMK-u|<#v5gM;I(E>y?}+F zL^h3*vC!GXE1E`W=4-%`$z`2~k_nD@agNuJ1|6b&3JOjtqUrlnW zy_&tHVB>BxHLY6LCt>z7=sgOhbV=wxdw7qw{|lM;hC}%#WLXmc2#6S7_>tYUhqfoLoc#j;9`R3F$ zVI#=0r?xrz$Mo|8av@#_R$|h0Mjmlr{xNK}`bG9O8iee-uXrVf2IGnkySPf}tddwO z!l~a|tH8VP9W+0wf0;y&4z3(})Gb}M60wCYh`Y--BP!s%ELuh{d0?WipXZ}@UQPd~ z)|%A4vkBi?Hy6XTDq@A={%X)mq*(tuFhJ&TI7jH*8?!b;`7US`PaL zId6(79KJZfZB??m@59Ag`5+h{Vawzv251spD7+G*)zyXLlmW$^n^jn%p&6pSFOR%%}-Rox0fJN&z9WNT0%s+o@Gj0c7o@p zC|A7ABkoU4q^TszK;*NF=}GVnP)<1D72%1T>fCG8kO0bI)dFi- z&&rpMj19*GWTX0Tdx+E@;oliLm=Qjp8!N~~XtT+geb}SS1+pIxvdsnUQ1DePunmg` zg2bxrvA$sfI4=}b8xKVaXubfH^Z=l_J>Abm0}Xa(mfKoYn-zq|O&J4M@;#F$@Uk9p zian!ZY%?34l^6J7%hM!W0@WtXo*AuKLK9nJ8n<=8VyyWQ+~34l&loQN7plST4|3?? z-o4^CiMofUq}udqgRt#APkspi;d-aeKxqe+qV4oZ*}gzE3*VsClWj3qf%V~7o{JQe z&m^ilz?N;PViJ#q)$ONK|KD$IN}$VAA^+WS+GdKDXba*s{eM@Gzt6qozq7u-AH9DO zO%#Mp&i^(yU{|1-1H@R6-rXy&%C5hlAj=6Rz4af&ZM$R3L)u*^?aoZ{_S8mdgJ$IS zuJFS=hLo%wl*M^uo}Vx0AYmVe1DYxFq9Zy&1hvIt{RpIN*Rga4)Xjt49;CuCjq0W~1g1ICHDGS#H{$$@!gXeHla;eOvqtO*h*4Hm9WzcX2K%}&x@UwySp@Ua zuOn^g%1chWnCKdqI*Cl(dSzYm!hh8OsV!I_&XE$A=>paFI{=!A@U;6J;zo@xv`YSg zYRH1$^l^$)AX*FefGUf&@}~320n4dwDE{xv@zH!lpmD&AlPM6O1U;T31YP7=b+KlY z&svQ?0_GPC6EXt9xB;6+yzi1hp&=7tNx%NL8y^E&uY08e`#WBmmk$5{s3Tzo*#9LN zSNIS99)#2EiKmDz*ifWgoQes>c85?ao*%Bz*(?lM3285&1;jX-)vjZso}eU?f1B(= z>v+PGTk|k9jqd96l}1{!{o)@uE@8k;P#Q((5tnuL!Q+8P-4))uoetUGwtwo5VdLNyx5pUwy}^aY!zcK?f7W#~ zES5_s!kn5e4N5_|U;`>|QH6%Ckj|@`>XZ?Sx~JXuZ5TV`^3l@cuO)D9Ik5=`ZS|xi z8nNC!fp%4U?#}ZZL$YFk{%pGifg1dg2t7<@j@(e_QVfj8?7KnXoPsbi52LX7^=~UT zZR&gG9Tv$#-DpLZOBEV^^WV^VU`d8VlQP-~ch^%-5P~*_Rs(R6Z zz1G;ihnya%k)*Zb$1sH}wD(0*n4zX(Lz%J>^Nu}$ksW;tf9Cy45%bbNC!j2R5cOOX z%9{ zh7ImfCTm3WJp6G}`2esKW<=TFYo$cClV6${KFw&)W7SLrV z;B0N<%0KmfmE?;wtiGn>je9BBPTC(B4oP5|E>&rp*<1S{@V34AHUJB)$gVkcnTWMy z(Qu1xcm$DQymCp!7;{;8ZP=bX>Vq4OQv^Eg2z2y_q_5?8XHN@`RP|p`2q@sl#Ihge zCwTt2+ou<>v%zNuH5lx=U}HcX!FYKJDg2t34N7;B`Tdl|w@hSUXjBa{2}H*N@1o6P zCDf%Sa>p1>k}88K(AR!dKx>nV1tv*A_)$pJ=ph`H%FF9h)n8u1}28lunQlPFep zxFJ8JoxT{?J}hk{Jr}n~dcuIxn-W1h+@47j8J2kVuIi4Bl|75KOYmX)i(N<-o`bK= z_1*)jL(aTdq3wI1=eJ*9qD5mik<f!;2-|DE}NoqJ{JJf93!5=BjKVlMYE0F-8Zn@ti7~P6H!E(@#Jzx{kV5*kq zhr)H(Z~t1R@ieTcESY><<#ru_emeZ$n%I4KT-EK!>GKd>K^RB`6WBAmkU^b)601s= z?oPn*FA?Oxk!Mg+{8-e3^{ts~yiY&O>^2QqbP{Yk##W_aZ)b_5?~e*3tje^dji+k& zR0iq|)B9Hvp|`zfT5V#e)oeq2xHXsfB#|cxeBwohwH>}Qu$M6T@D>)kUY#8N>SS_& zeB}UDy#Cg78wE0}0GuZ=%`a8V&eKQ|wKFmnqC;p7GO9r7e&_HQ!9dHyIVa(NUrc;r zRi0Vh8baMhJBLyTEb}o<@56}E1HnJY0(@OpEIFa8b}wn0(XnVXt2*A9uHwfPxzBa0 zXnvf*g9e)v0gRHKeG8S-9B!0n)k~?{;zRt?7*T)~qW`DHz`gh&J%Z%ZdO{gf(V;Gw zx+;#w`kXi2sl>(uIyS-B&K?-&V`me?R|zqRc{iEYJ}Y<95kaM&+4mOvtw6>*GBh^! z;knr$LwDnvW@BvoGc=O%ah1Z%w({q(IW}`S*Pj#aQ^}eI%Z=cwL3&CE&gS9S2X=iw z;6rEZUp9V#72^My&5EkJ)b6YoBuzyi=DZ0d(+s4d*55*PiYetLd>to!TZY?3Ec&<$ z_*l7*k7?+WhbPc)GXhPqZ*^Q+>CM#{Z9R=>FXGk?llhuj9${44B9|4-T!|A-I0H|r z8wCo=jTZp`$jG*Mq9L<|W~~?SOM!nyD3kD*@&7Ab)O#w$P>r-zt9(;4v|4C>@yFZy zJj|Eb;=NG~b}IN{X9VkkwjcBhqtt;i`Giav#`bRyq=fG&LxHaK^A=EfNahdva}wpS z$Zvl1;OLhWIur~QlRy+i`nmsp7~RgkywDaLduOn2Q}4NMY|*nvn!XzWrk0++BRuI2 z2BU?%wf2qof|jxh?Bxv!+@iqD>fu{u55K!1Ue*C)5ecM4&Wle0E#;vH3aFN+YGcHT z(vH~j^34*W_saAi`Qf&bfe@F` zdQ>*ZS}CUSijDL5T^c@Es$|W&`#==@Ruu`Rc#IB~nfZ*m$F)3*oT$w)L<`aTmTV&) zOO>n5E76_OoC!i9#B~nEQ3RFQt|IfbU@Izs>e7juFze%<=h?1rh!A+I`)uo|YW`pk zCrHm{b|anIlPO`b`3R?0I5|b2cqi+Cdqh8K`%p?|Ln-d4li>z5`qK^e);3wmeqs;3qT8?!`f|YYj8k-oVd&o(hs#&XDm{nHq7b;^4vdMq10x99!DEqmsym_OI$MC z?;;;j!7X>2pv=MSzffQF>}&e$Gb+gWNg5yd);mJ2yGY&owGc34$=$ogowYxg70Ja_ z68O2d1PjtAc4m6{_co~Nt@k5qO!7>lZ}v(>*ay}#V}DwHBKOci#<4=U{|8T}k-+qr z--UfiB<76%q2IyC_5OPfpatCppqBX#dXscg7cd+PtUO$+*#>P91{F~$KmSQ*Oj*Cn zBIeuabi8=lW6+Q|>Zr6MZ_~Ub`2>pad~Zpzs7)}~o{EL>%J@N82QegW5L5)9i1VQd zjcpXqYN{%^7i1?Gf=oUgXqtBYQju3#Z-=B)44S?Augc^q({)K~nrus#VOYD#NBRVS zsm6~yJVb!*z{H~4;9cz`Rt{FNDSq1aH8)q*ppt>8Z08&~%#=t|**aw&eI`FZgUnwv zWbPMX8!7}}q(>Z(+t)It$XgAYufWhGUyu}?ba+TMbX#!K46K!(>c@IF7Y zO!ND<398E7Jd~?-g7)y7lY&BL@)1DSw~i=5rR6E^d)I6dW-6lH_S8T9`cGeB+2&a}{rKL1%LM#51aoOb zXe+>~?&aiY6|Tf+H>~yY^_J)kf4=S9feB}eVrL=22S}yuUEdfPUMF}fEEP4APUJf6M>X)sUEZ~ z3A?wzd4_xLH*WIII-A|FBPuh*%@ksQ*0>$gQz}Y~ZFIn}?}1_uLsVG!tu^8X>qI@Y zh6p~XtB@t(tr&8Wyg@cBB#CzvqC#3T_dgePOk!p>MN@mIAeHFeax80Q`Fdv%&pB-4 z^Tc7cM3n|$(p1KeeH>HUz%WK@qc~7QJ_$XmvUc_6?P!gzR5FCxfbo~Wbh1&7xLbF2 zCC7!IP1vh?I=UtMZ^5xUL|J9Y5NVTcVJb0uEBvCJ2eU&4v(V7-gR)B&-Ozai^Sc?3G?F+pn)4BFTE+?7 zdSichH+qz zf1%zF%OG&}dn68#y;86%mjh`fN+Z3Yx{}L{++Z%{0ir2i%A{e|-ee&k^SGO1w&Y_} zsSjSaw+zb&R{+W*waa#AMxfVFIo_txb7!8RiC&rdo9Hywfsi_I?|9 zQUA=lmgCj9;~V3An%{MHpxaJy)$(#J6(J`!j%=(hsCv7TB z@@9Jsf>4v!MP({xbsJtjS((@1jsR`Bp@PA9BZog`i?G+H7zR-Aq?Mfcr!-ljHXZ8c z{a{=?$=75?B4Drhuo-hwRzAtK-q3sLXyU}xWx!NvOi2YyDRe)eswo!_Jg~!%0f>)l zfVGG142ZS7tBb_YNao)!u^7E!2;{``{W-U$(3YpJKt@NjbirQ*6|8Y!ungKh_rTxE zpNJ0vpM5l)o@^nkN#vEq%4yVmr!wSD-N8xfep(_xOu;yNDA0!>D4< ze|b>?BKHSM7ddEf8dOuD1hWdk3#>}hqo?Q?CxhAROD7R4mkaVA^fH~JvR%^;Fbm*t zESyzY5-hUu8~o#Qpp)|101%x6N|1B$Cq&AqJyj|*`V7r{8g2i4E2Z>$YVtTrgO9k< z9rDrJj;cq?li^cHh>Mi^WOHad_|rB%b%G@MiGt(D$zZ)x8fg1siCl15 zSi!w&@sAsoH9r`SyA4)O9cW8!buJd<{z)Kr7Gd~X_8MDv5w=3hOz7c3yWNja=SFi= z7VmBNYB?U0l?+_TkBpGB3DnOyE5)6&uzK~9B%>syngNFqj6ROGaD=+TvfN}0CsI!E zw*$9OSm;>L8_g6NbHc6!Qj_H{OSQPf3+|5Z;b*RYe{+wr2Jsm9 zB4K1-FbTa=KT%tP7}ha*AqDfmjSKk7ht%*`d9MIF&YmVHWaBoP3v|)YiYur1b__S3 zb)b>Eah!)J4a+l>$xIi-UYfdwQ^1}2yLIq_3$+@jCeiy2zaBe8k{x(Z$ zBgku$=19GAiWTh6s>#KbYKp@_7vCVh5V?0D+f!3;_zwMZS@O5e!$KCY$Jg+~o*4X1 zUx=4jY29-#m94(NRDTakvM6*bN|7(bpPe@hMT2uf+Nul=k?O0s6$#cBjyS~9RJpzOG{JLKgB?p z86VJOg`e_(_ISG$8x#gL*Ccf=;aeIv^$8wOi7EhPqPJLE(#ROsyhunJjW)2kHq>-+ zrA27uN=7q(vHG`h!p66u9LhJH?` zPzrHDoViDStLk<^6L4A%)awAAVs2HK7o>72Pk~qqzUaWs#-ZZZpKNRfmy8+YkTefpN)WH950?ZLb{Efw9FURy<5qehza`6r~t`fS{ytGrYu z|DBIZ+}6C<+|KBqpccn$hIOPkpVKvtLNq!L@w-t21QjyVxd<M^+S&=%ikfxJ7sF|Dq~PmkRI>c~G{hmx#r0O_iuXR$Eh@NWmjfVMYbYVF zy%EgF7hu_Fy~l^k2BB2Wj4h%^j ziFSYJ8rZxV%qr>WpulL92o17c-=8p$ft_7a^{8F_rVIp1qKDMbW6y`vg8`|_1)vfN z<`}aFWS;X5@sDYDUF_4;1O-piW~G-JdPRSLt&hek$1Qp>I$A*hpMQ6JKU!6Q5W9Yfmt_)YhFLI8e+;Hd~QSj;AkK&%(Y)-;Xhcy zF@Mvhllyxr)Qipr=dyGBU|}04jZZcqT5*(jJZ+mgR8pasWKcDn#b?K}~G7LeZps$PlF6aWGr6jz=3Sim^~dVwP%1 zHaC;-kD(prGq}`4pa^z9xYBBuUH0O3?vw4g!uFx^D#+T!$~?&tfG@34Q8oc2`*#x2MOTHI9+T#lVOZySK*USw($K z@6_b)>a5=6JOiQaN2jof3RC+G{30vf$0lp;1M(}dtvcEav8`s8m`c|gB_cwd~+5-%PALfO9V?CPw)r($JWIaB=>5qgrzwCh+U@i zi#rd3r=vb6O_Z0?v`WSW8QsMX=rw}nHoL;#xqzJ1I->ZFIbaD9RicXW2z7L1wf})} zBs*HIcnFF%X;hV?<4~gR>*5sDoT60r@@uwFdqtFZ`}N1kqb84Hao*RUaZd~a+ha66 z0fvnV7C~eo^CBpP<7EmBGE@#HL!rE7#`@gK@4x4GB+e4d=)c_IVf4I+ltnY`+4m$( z5TRn@Xetrkct^1(UtVHG%(*#i`}a7)5>~?fzfgI>#=v4WZ4JYP!Q5l_+4Y@{6jeTJ zqQ1D&ENo0&sFA}<$Cr8xx%t!4ZpO^g`ucFT=2MdYwO?UwEZbcEhH7A6P@0x z7NVPKU~i9a-EG>2bJ74#UQ4Z|5pBI9M!1&ArH=!%DLXVY4TZ zrDpLaH$;}AvcvPxi#{(gf;k}cQ)~tV2H3QTngLfIWYF6frEkWN+)MnEs23WmLWhrS z2ZH$rH+oXF3fs7XV}9!uwix3k7A52GK)9mv~h^ zbHw4XJ!PSIoZYXxrCRc)DET`-{xj7`?&c^Rub?;PfHU;cJUA=7g12rp*VZ~$UYcp7 z7@QG^LU;QU`3KV$>rMgkNLekgTw12OfyGi)oD#4$d8a6~E)u8hSRx>&m%Pt2v!bIh z`P2sUPW;#<{sj{%*7~cumSjy^sSb9+{3*$7CmD2!cWNm+xk9(4xG)+dYq>|Um0oN} zZ~?plLMqUPm~8;&1oD&dJ!N?r{AMpXzA^hqJUoXwd4ztHfOTFEB)rBFON&d8Fc!7n zNRSlLv{R->^o>qqYNWse;hy6HiL(`#SZIC6JzwE{N0TX=jrT3oeI*0l_Qw|sol9Z2 z^neZ$=*>javl>%0sEO$nGNU<7JJBN3N#*b%7uRX(O~>o)Y@=NGhD*4vVEaU0m*-Gt zAoZ<%bucIep4@NkT;hZfW?8YD68}952Bpk^6Zg^;^5N^vQh^TG-0MY*c)*#ys*&bd z2=KNi7;47zcbkE-(w#!q3;;*M&E&Ea+*co>&X5f?BKCm`5<*OE2EbNPwl#X{%fKfM zCx+3)-g2LvIS8;vX%b_*k74dYJvI2a*Y2bi3vRS&J|;Aa;21{*zSaEAQak724m_hw zuFeNmptc{wDRz*u{+^GY&L z2bom(-IJ~o(`**i7HWFT*|U=IhciOn=23@y&xt|JIl%RBvnCXA(%SRpzIB=UVyC*d zx7}Mxi(zg~a97ghgA~o#nf>A1PCo;CBTjNwgRbKXiWP-AVM9+>zRZs4X{ZY*{MU80 zQA(cb*xeF?psnUYawGf2fHTl(Q=ANJ(q06PefVc9pQ>^TB#Qn*2rD7g#aDvY0skn~ z39wT3KPdIzFwK8L^3Cg(kA%y7vR`qU-M5+Y5>R1$?DINeVV`w#R|N#})pl z!c}|L?jOTC8sc^Xmb>0Tg+or!iAHKy`f7m2>Q9Z{yLl&oi}{Z>(?~j3rY`RDqR>{9 z)G{F+e+g>s?-{8jifZGg^qG~B1Um~I%;nt2Q*h4*EA8;l&*oti-Gi^9hmJ>bh{Chy z;Inj}&?M-V+_dljt6AaIH~u~>_t+92W)N~eNW~U6lrkE~z-sV>Xa|0hky%#0zR9&7 z4mg6_I4QW4J76hksxFQZtfF##w4ZnT2lYe-s99#dwbS`JWrp&jqh|;zNAy#f!DIZm zddkfzddw_-mXSDZ`JB6j_LzalZlYZI0l|6%3_vam1G}w3J~k`u^7G8>qABIuhPxUV zon+Qyn&=+)b+J&iwPPw`Qhlj_$Ig3DLJwNI%ZPVSD>Mi<+&;xMshEkiI(EHSZ46?) z14#9i-fm$9*oDHT^jT~`tOQD+?@$%8jqtx^YxrwuS-8_OHb|R(E%bMd-UzgKW(dDX?SuNvofAK7wPfV|Xpd#B3cj9G^`jm0MzExtDhpNC`SIIhINN)DW8 z8k3oz`K!)qh0Caxm3lkwPlLW_iT^mZb(v}_l8mb=6nzCN^#)%stV0@ zI?Lvb+nmi=(~V{bkpye2N+&IBj}?4V((<064Eyt+T?{ZpCkXO&4%_S+uLtdXwA!nc z)$aT|-?+I2lbQ*z8cIwOHc3CI&n^D@!P(nOa$_E%bBk1Vt|o^T@JX8C{0u!;$yH-p zS~(aE4X+3d1{L$7b>}GqxpWmUA=tEqUCJSD>ioEjLiND<2{gVL zNRtlSczN*zaH$qlg$-n5HUQmkti_=7KIucG_K7M+c`{DA$hK+i6;xCZDdPC08lQ1XPhvDbR2ez&=TA#j~xnNUiOqXKFo;Ih)Joy`?kz$S8>m`yk}bSnrMz1V55DyQuLWAihUM|-c2w)GNeElJ zG&QbT(!hFXPVy1pStf)DO~-)ob#DTACyR?1Xkv9yjBh$~a)Y;9MSQPbr!Mg$FY)%1(Amj~+@A{7v-`(*S(EP0{`me7g7Y3)3d44lE zIi7!L{IV6?o->M&F0!o*Z)lAOqdu}A17wQY?oVW>qp-?)0FAnKySycOnw&)-T5ObS zQ%@(Y?iS}sM&IntRO9mO$F{$zBdHJTv%1%`tIC3eADF=Ur z8h=}G008hV!pfxoS~#RCZIWaok%_NFTqJof8ZJN8+1F0Yx11ngYU04i2=9-nbh(UT z;-eRlk?3KA7RJ3SnG_-TbJ~`c05kOuxBj>A(!dpzeQI39#vUIMGUoC1!9Q03i{^_8Miy=E?TlH z`oVnO!AZxB3fE#|n^7-NCfRc{iJ;bSh0mykSnsov<%K@7o_dE?yQXInEo zXqJu$u=t!M%;Xr-4U-BJEdZ^MiY^olQuqjSR_3(5qU?Md z_yb@@Ql`BoAaeVP0%~(wwkX>?o(haqxb&ofSuz+A#lrG@*zFkDui_q~5OntRjZX^E zNTXZp9e9R@VA59u9BB%07;!B8#X^RZ%Sxd_VI#G7O4pa;6o2&k1a^f_gi-fi5&BEO z-c%oEz`D#FOUkZ`y&V1bB`0(2H7ew})`mJ+_3gQ&-y3;syIdAv0w=|OVK8d;s&NI3 zK)93pH+#DA+mTVpvxdReJOKdtUEM(8wXa-OU>a(ZlakRHp>VW*n$747lcf@P3A`rr zWC3YAccE@B49KmgxNKSS=KJ)%>X|+wWnm?a(Rs9O;SSh7d;YWv`&`1xnyD%>3@Ku$Xw zq?DGC>*g4xJR5(fW5m0gr6^D-`MOi)AtMu9tz@R>nY+X_B5F=oMN?51>dt=l~TdmL5QBJ}m!kHpnm;c;#6 zOJ7ChXL5DPrld+^rK{zj2evujMZh;T?_sxc7^7UYmEpbAEmMCY4PlVCH%w_=DdQM1 z)s*%swS!0(tiS+?q}Wb83nOzTg$@WH7DM&dX;LKo3#XeE*^{(Wmgcg%)n^Uef?o*{ z5C9PF(x4!%5V}`hB-Fm($u3ynWn$RGnv1vx1d5F z4I+u@o9QY%4?^w{ajoY+ZYkbCp+iPRh(MAXi>8e*4pps+97T-OZ+-Kh`A<{H)|#Fu)QCEXQMZ~EgKT3( za*m;Neg5XtrQ|WcU^mikC%>5%WEuAmVa6dHP2!ayFuA6cBub@PMmaMl-oc8aZVl>I zK}q+pS{GRSQ73k((hw+Xd4@jfn8-CO--oN%*-{+?`!^BW{@Wb>ciIL?dzVUQe-%9{DXa|RJLn0|tP-JS zp3M1;1Nkr%-ve~A(!~6$gq@S$G@+z>7nZ(sPZEWHn3FWA{6X|Og{B7P!=|ExoXXMN zERLXnVu4zp$70Vn0bQ%6UA>~aeE1nt!j0J`XVo2# zQw9H>U;~7I6oilGkF>XK#_n5C~2wI~N}fP#-N#Us(M_h*0Zyibe4z>lHfU55_ldJ2wj z_0?#IDAv$lCDcozl+@Rp8WDX}@_TsL4(=x!w-v8nFu$){VXS7RgW;Ow9)DZbnS`L~ z{bJ?`)@#Io)Aq~5WL>FB;~hn|VjraK>m49tQy}b$Dh56Bnd-zwdbc-7d`Jw>*bF2F&IGX`0 z=l^TLdDA%jGN$Moxjc2sc87sLukQrvudPg~pPzrhlz9k5vbqqM51^$^247nV>~?7G@*v-v7uBay=H;}y_FD@%J|jAIzVgoT0)oH?FSmzgCqxfZ282itAcaOLxOa<=?l1Ha-Zx!dhSs9W zc%0LqF_4#q^D8ZJ!3iRmN{>Lop(wgwo4n51TFGm%BS4yof8XcTuW7-Rk=LWaGu0Hl z-2+;9Q$j>U$5=IZJz@&pKT3U3SG~X6NSfpR82oFtIuKqO{&&Kg)X{MG7oKixzZBx7 z5gerDRWJ0}$@`LAt0m}2ZMW6!bW;q>_c=}%JGaBR{ih>!zV+-QD|VpfM_@cZBpckF3vF29>|*qFd}(8#Ze4z!?~r z3rOHFt@4j_1%SG{RhR6tL_OMzBkBa?Xh0d!dXAa@gQ!q|>=eJ!^FY#RvCvA81U;QnJEkad$zYU`Wwa1IM*dc>*0c8Z2T zFqI0@3W6$L6k(tAa|5CV5=Zwr;ku$4)IoVg~0D8Bv`kU zU_j|DKF`u(VIr@8vd`>s1nwk8zTtyn)h=UTf7E+v#@?g5A5rzDCQ3YUs#wZ#x11?>JO7SVWcv+^n=&7=u)R02fl)JC?xZY_%fFLX#8yF8HckV;?IEQ1OOHDn2J3%c-S)|02OHmxXGS?F$#Xi96A@$ zaie$A$^s8I0`#bG9W{AT67{^J7fC7HwXkD4xExrr>Qail1{a_&L zPwN)i?Ce}1-5PgGQm>VJ3x6iH%SY?|h~Po?itTKU#N~(*F43aMm@veG;6jcZu&QrIWLrD2Ts^9=ii` zp|9`Dl!(W%%nUH!bQ6uWR#z6?4>BiF{nt7*Mf88qg5?0UD?;Vnd3&gCOGq5W`_0gR&oo1P`^6Y6D|pSses>svyz8a2 z)NVmRAD-m>lzZ4;MS)BK7U_T?#_hfA1lIe0Y)q;DP0zr_8DB1S5xd>JC{YSrl8&NQ zp0L2zP`}hov;tO|ckH!+I{%dj|2(a_9*ata%ric2h8oR*+gM4dpE1D^gbL8kbC!8% zQDz`PxU%E&w&nRM+p?FQP2!kSPuHh_4UsWhQjxpHu?R8(GvHY%Cx7A0%(j+X-La!U z5Tq+@3^2ApR3TX6{UpEitP(8+8e-@>!o$r82splX2{IOarQOYy*!r=$*_=l+qah^2qWO|0z%uE_zm3ZK}bz#L8{Y6nv`I z1_rw5OBb_haL5^*b2@-Iw~I9)@o8rTC!@?$!uHYF^9SrUrIG};!wuwLtoUw`DBS5r z0_Mdu(ys&jhPrmPL-V0;LNJh^Z`i*s_5&{xbOoo@iVOEHjXV$z*9sJ@df>Uh(=E&^ zpk?A#*^G{W-K7*;*jf#iiGl}(@B3`8FlIC!YdSfMSr3EbK4#!Nw-z-%FN)mWnb=!(OB+q?MDrSWok)&u^2XI0%WDON#dS5zf(A5$`poVvs% zQ=%?c8K&-m^9T$25qQ{3C;wQrp<`S6Q`)#v12Ei2y^@07pv9k)`CXxx^y54%WAi7R z<0@Ulyf%FSM)oNQC4G6Os=7*)Ip|W0Hvc|OO*tG z;??l;Lt*kB*uU028)rb!Lvdz80K2Ox1Xwv%=dg`T1;{saS=)o|mwY}lb1l;suS)T0 z&L8Ch9?@f5|41#Z$ zk_1c)K!SZ%xB|~dd3waX@BumQL8Oj=0K}?K`qq?@jy9ispJg_pT=2nX4Od;?7653I zfxw}6i+cn0j`cLQf{rLAra=>&>H~f#)*uxbM41K3^VN+7Xi=xMh~OJ8Fd>?(J37dp zfM2aH&~k6!?BIIT2(*Nin8KeU+3SSI3mvd^tlk`iGz9l2O$T0pL;(Je!25bY#sM9Y zCjhj=@&^&JJO%08?=~rd$6QVYhvY?*Omb9$@(G~h@)NJ;sdC7ptr?V2sn@bJa^Wx> z$6vCI)QBe;`D z49R~tQoog*Lq?X{bWnlwz+JY|84Ih@gjtF0bS_494d0T=Z94vz95NLRn{MZ;o1TwJ zmYK()#8V)zQhT~&`x$WdscrAvHkwLZiiCD^^r_TO9diJX6#exgZ|%|v-`TENVXF;H zhjKSdOn#<~icLH0`$y*vfK{sh2c5(5Sqy0;0SRA+58AUetTM1x8J_5@iP?cP_Fk3? zQAajm7Zn;IGY!D@Q(BgpPRF6z{b7#a>gP-_8s8x4Jd!{Gy}OqH$tF{KW|7p0P0?y~ zbzkGS%>wBa+0ll!OAqh-=O6=M4p^oBA2I)Z*kSzhwA0i{$6K;j+f@&g8p% z<~@K=zE%EIh4>V#UEyCXAtStY{BQXEf9bEyQ zOZr@Byt&Xh*zVW#okk1C6_6utHurpK7qjojmp>A{=v@tg9oHU_(rrBVPFm9Woo)^n z(-s|VYg*!bO56TGN$~%1(6f zm^W3sWa_piDE}Ge0d*N@{uy~#=Oep;ZsBLYV=AWGKd950wt|xnUu=gM+~wPo)y-XP zSB~wuVUqu?tz@Tzg4I$t%!l9d!p@%Db_i?fhR=T`WdpBzI6^sexemA0IPhb~iCJt< zaU02UF~ttkjY&$q;%zQ`y~=2fPpsI9?oeniKfi~Q!cMaobBAGB4yJ!GKD_=6hGT?!JHo}7!5-a z(vG%BP@^Q%DV|CLomGUN*tTukwr$(CZQHhO+vfl6 zp8jM{d+wzBT1i(uwZN@d+lX*jK>%3ueK>4dcR~yQTDXHYI9ZJG!hFKI8l`qW(ZbIU zW)m-e@-5K75R?$2bmoLdW2T`RJL$B(m%$ti7_CwJaOyt)i&IgW=8+X--J)0F=8M%W zO4$^_h7Oy=-JfL#t$0z=u#4g`$MdVo3<4$p_?e_|;jzsdV%RnoIrGoGh$$7SZlO8( z?qe}uAhl;RiG#ZArFRg}OpW$a0A10P44rvSQp>nsa@ z{~6=r3IU)wcWoJi>(az<*UD@lT!{LUaMPWU**LxZ%-kCX`#&%o6r!h{Dbq)_V%M6x zq%Z6XIMTXGmNYQ}Feu!EuDeOke(ucou|Ba*dmU5)3e`~AvCyHJ4k9b@0M7au z4!Wc+4eWyw4FZ6_Ut*(+>s{fmk{2-p2ip36MSFDgrwGSC|3?;UX*(c8U~OYf!<5!3Gd$HXVOMo z>QQ6A>aLD^5Y%BZhGXDH*Wx*ZYY-(vDy5oj(r?H9aXA81m*&i&6+^ zA8Zv3|F!fzD4>};RnsPRuzz*CZ@&Jh4oyvB$E>{h@`eX}db4#8Jkok8A^*o+Tu4C& z008+VtjhfVQQeZ?M32~gxf6Xl6|5(4a4OnLe~%#YBSsPvRb!l0%o^5UxxQa<+kDFP@ord;VXaBAS?9Nz!vR6F z4o{aY=USS!lI4FM*$V$MvUq*fM3p_q6IEfXcvLg?zXL5|Wg-f(Yq%P56e`}UmDPDt zMr{OgZx==ZtQme?7faGRcQLpOx>0nAIziO^QQTM`k)YwciOoC0Y+!`Eg_H)hvJR>2 z{O$3P)jlDXl43KnDZGRDIIN-u>@BY3MrM(ByL0g5M-CGxU2!P4I4R~rSWV1Pwb0>I4FsmX%Q2t596 zw8-8Z;<=I_gzG`Tt^>qJ;Y%DPK8Lh}yqSQuEYzUY6qM2c8@`M0?*|7Q7~4X@{#@SY zLkyoIawa9^sG}eNj@y7M%PN=lD){JbY&C3i_n=D5izd7tD5rP`aF8rE**LLr6PaMo0*fxCDr<8TeBT zbHjS8#qO7ajO`bn6K7&V_G(H8HdMGb6joQwEEMRAzYq2=jBxx%3#4~}fq#&7JTmye zR#s^b?Yd5Xi_0pb(GSzoC6Jd)AVL0}-|;1YK$if`m%EwLRgiRY(}~lE3MFk`G0tDj z8oVE8`IK$>2tw5Sr^s!F)NKi%2mtue1vDw9fEGW&el2cW~pI>eeN-dwvea>qK)f0xy07l;XW{fzbvGl-{2+oUA?mFOQ=|8Sem#;%z)% zxXDT(n;S?rd-{Ao116FPu5wz zQ@otP?LFr*=^zet!gl3Xjk!_9(z+01IAg0(psy2ypmpT8((h_q+%oyDk)t`zL{iuw z_2`CC@yv%2>~eG%=ko1gAwfQ#iw}szB1ScXX~KFf0-k)ET66_tu!`B2lu+|@m$Gxb zAbHv!&AyK0?LDyN9;aM7#4Mk0j+l)KetDki*LjJr6Fzxi1f}=Li^@kt5^0?QOxlhm z_8`7?sbCIWwUla=$K58J;JO_LAaPyPAqK+75&cX_F+>E@jhp~TuC^`S_+L*Y5Kmap zfU+Ey@42%U)GHGa2x&Qp^h7^cR3r|Xg-yQl(tY<0@AE>MufU~R>&<}{y;7Jpq_R>HArjL}3a{&$=UgYc~9qtkbcZ{L5TW<8NQ)0HI)~nxu z*mzmU^m51AD2XFBL5!cN&O!5c1w>J(lWA2#QRus}y;7JDL4-V$#C&(fqK}5pw+fG1 zV^NQ8xrbmm&$j4^lkvmB>5DeF%}3N7{pP4k*`|dlGXx3fsBQs+_j`h~0RQA=Lau}z z_LTYhVwHRq!uf4=Y&zD`&%&6B~eNOQY1# z`M!YNIv`APeIF_%0Gtf41n6Sga4CJLHZ;}Ieb0B3iV1Da%e5^QEwJ!T%hP|d)CjO@ z-9|Cs9l27pyt|L+<52h!HM z(=U16^F29i;4RB|_kw~iP%SPp(<1}<82eO2d^){6B%>E}10nC%@{bmgH793l1tGl* zAZB8B3m@g?7lAaXAVmH%JrHSmAaFH+KW z0>HjceMP?)=s^RaCtttri?5xU>;m{krb9LYyikUsT4^#7@fEujWydDdd73^$^Jb4F;94_fpp!SXZ|161oQbbz%tXm~9 z4Sg0;*dm0Ww0ChAe1bbY_Q&9wzc@x2PG1_bRfSSR220&4J0#xIDl7s{l}or`g9*q} zJ`2)wxIlh4*WU|Et;+9A>mB5HL@I|j4IZ`4S2@LCdulM#UB{9MkmdtL->I=rhd7OC zeb{~TZ=Kh`zZ19C#nu67rkOnTbm%nrCF*@pHiA?+gm`)=y+Ru~+!?X%H;5h@IU6xz z-zn+y-%vo5?`>6}@C*tLel9nYu(cvOGr86oB0=*Ckk0v?3Q6!}{xewgE@RO+b$4W(5%(Uz72X7WzwxxX= z(gAigDoGm8Bq_pSZ=91DBKSwzxUCSMtO5gN+CMo;!adT~P!~eKjX2Iq1&X4iGIx(~ z`b%)`$s$=za}i0SbL;FGv68UlSAy5gYu!mp&Y{FaYs^=7L;jby6P5D| z(3D%iRX6<8-zTanry^tZeno+c^g}vEVEoL?Wx?}J&wkXxsJ;QY#Xpd43@6_vMO8%q zSqKCJOEAY!Y^K8pSC72w)#C9LTHtjfLzdN5Bi>Ps3K@g6(2SLR0wT19s zUyYfHJ+cquiYk2xh7SBfpWWdS>p#?jFtMYF>8;jI-yJa%I6gY*jcleL6Xp4r*(O;1 zNOXefy7jEK7$n%rmV-T)XaMPI+x7FgQjB$8H>9);_POs)S>Sppio&0Ew>UnQ#>z?x zg!%}*JIaASx5uN9(&5X3YKKbw4=U>xWI&AbVD}C&|5BHt0ro~}jB~`cl{kaZ;S;X< zV_jh9^)MH@OkxlQ>E2Ie4WcEaL0c+(o(SlF%W?y2){&BJublNWHCexkWH=znc#T@A z0I0c+a;NhX43FHNitA*z!Ej!}$y|;M_SSeJZ)mFX$~%QZpbEup<)+;y{B&aM;6iKoTmWn`L}v7#q*MDuXI z?}CEQB#?Gk`D~z*ma1)Fhd4~G)%a@K;B%foriK4aDLm=ULJ4}qx8Q&3HEidPuk#2V zPI}>G*5;+HhTH-)<}p532XGM zqs<-5nwCSFVwF-ClHi8X@&_Xai(Y*T#smB<&+Qy0YP@GzV@1GvN*QyVv=EBS4AC3c zx%ZbI9oZ#WN}lRlCJs8q?MRlFXCZA=GJ}$@jwF}grOrgg9bUrBB|OmPIWR?j z1CQovIBHG*p&ggsl5GT(;(wq4=E-Kh#IS&Rx9qvlC1DWiPn7>xTK1Vrp-_AZ+DXl< zq<=d(XNi2+SYR+*5CAIg*9|(9PB?nwg&G9~&z26=3J)!&Y*rwU?d` z$B-}p#B2$S%VX4IbA)?%xwlO^;_Z>1gvA#ys8BD4pZ6d!kmt<^$;XR~f0@qkw|;ok zx(sjuI5VwK2i1qH~d&aY&*L?waIVH|Ww8!`0xR zJe>g2MF8mrc=TR?h)TqjV4Kn8;5xjeRzx-&tsPu{ez~>$4IvH0 z&LH);@8`fD_>(gvYj&z5jQt(s8%C^NH+O{=3Of4VgWfE*;+sJH8j+=+D(Q41?{l@X z313KU9#NGlaN~dkaw5d_5Bl8&*Lsmylo)E?v_1BukvO#Gxde3V0-utY8feD-3tN!A zNzk%sk&EXvFv%@Yto05Me$Xg0yP&D(*zXn^_9uPgZMlgqvb-JFnOhkgs}nMsgBGn` z)@tIzSgcg{w6Fmuu1iy@gTjrcUBt@VA*>C!;TbPNi{4O+1r0)!Z6VyJ*7@E!0c~hK zqvf<^OWnZ;UM+u7WG9r2&> z#$UWRI$hn6F1Ta_jRdZcWjcD%YZv94X>}hN1Hzz`QAmn7C~xv*;*Qu=ukXLK-%Kjt ziD_gB$4Rh8`rP3RD0UfYA+L@4VAkbjZ2MV84ZF@|(XT1AA((zLygZB7*+95}DP2`@ zXKr%0cb?cmXLg-eMi98Bmb!O#{zvbMxoH}z`1m8WqEwuo974qQF*u#$k1*9=IUYx< zP zvT$9DMdTf6wPAg2rZBFl4nQDY$AXT2j+x!Oldr$izau!PIH}we$c+_?DZV+YP#xmR zR*AqZ4?~rT?NAD5@bNscKB$K_;{+No3e1)}P<0nA8g2=X$W(E(MFT>dkC}7!airr| zq8M7 zvn4-Yg_Mh(SX=%udM$n*=JfP&u3}}rcdP=xR1o9 z=n3%2PX5RVfL1M!V(FgiuFgT^JExdeYE`bGqPh~ol)1a(G~1vAU~+*RZb!1u?N6ai z;}+{_De8Si2RY}P4?Ae(UKa1FG#FT2|FmADvMxqi6xrl72N8rTyhnY1&I>4?mreWo zTYDjB`rFATShw1QfA{ak9z-;Nl~zj1$mKsKiwSHGKJ})WX84G3vJEO&);;@GsbsXe zt+n&=m?b@aK&ds-n2=JlrK$wE5xXLORn~9w5aB1gX*Wn-dn+;VE|?(!d=cO(Ll;)I zwyw7`If+Q7#)|{j?9lBg;eW2W@B%@La=n*lf6|a$#m@6oZt1bGS+Wp^_Qm{hW*)Sk zSbnH(r8<6etC5?1jBDfYjCp;`6vy%aT7S@L#KW%on9y8G?3ztpw~~`d25v12I438C z`WAg5amZQHsgih%^adc!y3Xeg1FX?*hix4$&- ziPWjnkW$@v@~z_+v&YD2rkM*4c#3YTP)$P!=uP^JI4>5h$&csJRn>dGUq13V0jX1rv^hNEmT@B3`8%5 ziQz!Ktr8^D6RzEeaU!%qmFJXB*wJb)lOtkP%s=KJ&EzKc*Cc+!Of3 zn|_h`D_>cR$AO80p%k}~8B%qJtslT1WfTpGl41s(1rBCP4mDxg(8;|Qeu^M&$qM>f z=r%+cM}-zF6`uF&0c0b@e9oV?mZ(k}&JVG}>)+q`;sp574k_m>nN`2FD4H%8O5BxL zhMl?)vorC_JY#12tB2qesP`NnKn;J3MVAKaA)$Vj%Le{FdII113?$tV`6N}t_Pl;3p?(;cnU)k7p?}vHi$;kV*ex1 zM2=*fJUHDAnQ%b^Y-e@9o#KqFLB5wfy;P`oLegMD^;^bdp>1Ecys&^9MjSe8TIMa5 zc%CSH#tQLQ?gmg3_Hfi~H8mWJSQY%Wj`PG+n6y2!OzCDv$uD*T3^3d~sVBUvLvP%5 z-+7f8xY*PUjFVIE2YARr3t9WnVtpa}&foKPXx-IxQRF|QJP#i#)um<&Nc-Ktt$(n^O@6ZVgRE?C1j4zl zo!kJdEe#wpcT0MVXqg=FerN3JaPiLz>iVRx+1QViQ?rb{#dGb2q;T_jN#gY63YB|p zgJB0(?N@iHXO3nBBRb2ZpKCM2-7w0)9nAuT`ry6jC6R%ovYJFYs`QRG=-*}P2n!*V z&GK)UOm73s0iLe9=an*raV`820$mMX?IFac0s24(F-)5^@nBUh*8dNk)NQ!D+HY8_!hhzvj4Lfn!i9zZVN@#s&+-h(c7zR$NlB z9*Vm9_f5KVG`b=wC3*M#eF7+gxf-4Btf-fGZe3;aWY^F`$L$-xJ?VK4d^~i0BWJ7U z>I1Rk#sF*l1L(KSOkVy49cyVQFxkJlrKUT*pzB@}wd#q+y?$-{eFa6PCjh)i>J~I# zkaI^b6%@hUl7{l>DV*((7E>~v*`HX#r`^IVUyDHdNL~aat~eaQyi{EOK+%-pFJlq- zh`aRk@4l#@`*n5UoH06ty+~K!-UVlm|BBNc+f9f!hcOj59Np)TH?}1x;FDTL!;^HA z`_o6B?D9XYIyjxA8`QhEm-H67m={;Ea#>qZyv)sE>zJN4Ag`D3T_L{H}c3y?`#Ydhv9YDqCqtkXa*xR1F2~a#~t!Q99_Ono5=%kNflj0U}YRmu+&~z z#^B4~EMa9^8l0d`sdyok^fASO5m5J}%5d(Ee1W2Fhoh0$DV=tr`GZWAGRPsA;8OI8 z`Ua83JIPs-3MRz0*eL~r7qTNv&xeyc%WP{2#F>KbSYWkUGFa9;AHoL--0MEr%WU05 z;Hq^rj*QQEBtHJC(7b;Qpg~GL6jhwGSv&d?A`B(fAVTFOm1b7_nH!CfK4Gn5LH>Y? z8Ho9!xNG^0X>&?VgoOp0NSiP=rMc0u*EV3^s|tN0i|>*Vp;k2gXn6+$ zn2R8JKiYvkrFb&-LuIW8u@b3Fh>Re-s={-F@nafNkwMn@ghk%DPk9xh^SW)xP%Ujp z`CqYPcdOn2kstWtufDg1G5D=_qT+^6f&gd4i1mBdnXWXNMcpI$vMSav1d)Ppzm?70 zL~!LThLay2_?>KvfcWnqIi#|`>f_{3w=*fD&5IzOKtiN=z@U|1`+!iaT~};JISNp_ z?oIM+vkk8G2^Bf1!{=|JxQMt@v`Obz68RF#!-cP7c%wgeijr?R4!02l*8X{BrK6qP zV{6-jb|JxUMQptJi7R`A07-3-zo6SYhNAb-zI$*p>9+Y7+XPjcEaECS$782t zj%xfTkuS8&rVnmacCbf{~+nxkyq<*&ogz2=2 z^ee%@!lE$RoFZ~@Vy(_2+)9PjDQ2Xf()l+;U?x|vC@#GD0=JjWD3GnBmp<)qQ!8yDS1jUPMHNV?MN*-S@wc zR9?2nx7xK9YTeAj9lsU(I(mGBIbQ~=2qVQe{#hj~Skc)5g6>==kx5bX z7cA$JU3KcxP;Dvi?_#f!rlL$YC!g!EupkYu97bMx{a|?>+6|Dw2sCXQ%M6CnbM#USD=crW94aHx7G7`*(59_OL`y1t@OpMp`Q)}&ex>&UBV7g+{wb@w`V`qz63mme9-AsN${Dz)j$z_#e)&YNjnSmOX}^n)lJ8O6;rNBp%j7nQ2}kRlrH zWODWmXbyjxdhDk?B@kmB+ums^6hhNQ{3PAlzeKND**-AC8G0=BswgWiwY` zh@J{kf=^hiJb=OI#GST9$&*l4BkPD+C0p}6sFfS!^N-d4YDZ2Tz>cEprj7S3&i%m{ zcdycT^M50AC<}LFr7ktp&i+B+1b_VCW0m(8d46x{`2UFsg$Nt9=YH;tnj{qF(@dzz6^WZqyk6si8rE4AUHc;8T>T}u}BBf#sJubU?js;b6VoFBPaIM$Be(J90 z64j*l2B+^*c_|ltk>;x97_a~&^9PEQ)!1W}ToEJ0AbQd5qws@WK})2x(J|8NIir38r{6cjF%>9hSKz&*I$Lw`jHHFheAUzIZ*Od86P zKt)33yGAKl)!XobYJRRO+nHlHP9+aWX{u^NX-z+Ckw#j4kA(Um6Odtp#H7X~^rp%Im6YqZ|HYx)Jy7W1{qN+B0&w}BNssGmZ)~p&JEH>_e zqj1vRRt+|(4mxb{8NqS54l#;Lr7hjmJvjU&Tn`+^HZ|5GG#TX%4L zF=xygjKVhM*mqCV?D45@aF*`2=!)%};WPED-GcR7r;jZnCBcbM?2yu*|hlolL9r%O&?HteT~qCnYG1+#8nnM$*`)od zZ%ytKsBdxwHB>|Ku|M4+@RI)f92ddhh7^8&o;zg;^TQ?YV9Ubpg;NKpf4a(eptMJa zoKrc~`H*rr2b7TMB%C5M2iW@b|>T>o-GY+x8{^_j(N;+VQ~46qq0RNR4N z|0E_oj_?p7*92>*%9Q$;oyx1otsWljab}}FsZeAyshC|ToDAQ*bj(3$S=S%Q`V#Q9 z5lc0zYQ}dNG<-9TKH=|#lx^18LH`ne-1`6xYfoY5o6Y}2&U6AF;bpqrE_R_1NMrV% zWpga2G2$WGPJ!YGLAL%#qK^wAy(lp%{S@D~Y^OC0yIbj|FD1Sv$ZFDTtiho`nJ)gR<-i3AFopO@ z30j>YIoIy+5X{Mp|BWJ#0-7f>nK+(0*unCb01wMX>nSM=8Ow>UBMX(uRFynLQh`%Gmf-vc zDkRUN!M|-nTz&QR>iR&CqMx-Yg&jC|LAE|Wn@@>J`LbS*uD0DjC|%npFitslbp=-o)@ zcHzNU4$hv(UBeCnYdgUv*WfQF|7L3@!0`DJG>g|cuCP;4cB;R;n3N4B7M>|m#O_0~ zB&09Ze4ISAxrb6GnpC2Jk(`&|bJ?Wp0C8D=`!ZdW5hHwQU&|4IO2D_yh?1DuKM-k! zSK;dfs%MovXR^P!8Hvpx8#?p_g8{3bRCRi>E<#C6{AKx7=t>Oli!xPMG60g0`0%tq z`r-lVd>~#9eamZ*x0as+ABmO;KA6A_>U(H;UBm8yeGZ8_Bs}#42wD9fe$_A!`eq)B zff&%vb9lSak++8T7!ki2r?7X!j7z-X%P_-qNSn!fd4#z6_UPk}k&Vm9U4f7-;t6TY ztMW>A5`6E(=eaP{TTb>wk`qaxJ?YgUYu)gG6I7%y-u~|YAwp{MZ^mBOBF^avBX+cT&6c&(+!y6p8)-aLucvM>$qTAx-0fAS&BzrWp)Oyj;6z9CZ zpnc}sIE`*jw$NYIIlEESr-fOGqMI_*@8m!xt9$T;fru81KoV5BmvTglOs+uJbcP8> zQSGzBrJ)mWwFp^*JY17PuY_be#8B6?7(l~|qul6MqD^Lo6QTCPYFkC24`F9ZHN(vN z^^0rtu?aa0oss-Kr@l9B65w}#Gs@Q}fSlD<7-R#WPuyN3FZ`1rd)1U5J|&Y#`{4tT z#az758eVh8-u*~RMEJ-~)J=-`Wb(j>SF4!tn=Z3BYWji1^bpcsJ~k5i<1#N9zej%n zdD;+s8sR4G4QGENep7`@$ajoL0>xK`Ac zUXK0;gh##yeAhrS0?@I<{OWd-$Jy$s7$%uaLSC*0JX%Wb3jH``=@=tu1Vz0<OIWo8aKNkXC*%meaRIHroV@9y5$!QkxdCbwCGw4ULWQ>qqqvzECxJ>-j(bPVGV zU3avB2p<1kw~@_|>Zp~{I*z`pP#r9V0i+75$<51@u#v}E_ylAX76((^7n;{L4VURf zdfj9>jvNI_k0j4J#rjEUJS(fr_e&t2Xa0|ViRhOxF1K_uZYHuiJt{~P#{LqfWCmqiglHyGQY(UC_ z7DS(&HHx6Uf$J`d*OTO}f}2i)&Cxa{XKTil959u<>P0*7N)hSgzho1bi?69<@|J-4 z=(y5fzK=SzQcHF6F_~$lNDG5I{hL~>QF=#@! zi!Bueo?*QeB4B%gmxp*%lB!i_0Qq9*$X45KAd2)vX>@0KgbUX9Oul0$Dok zPuqO_24M)F325FVTC29Kz~5gV!rN7t@)&1R^8$cfQ41M))$OHHEJ{T5x!x4R)m*ze z%{=I`J+Ikksq&3$LM|c3#50$u@E3b|3iP<;lsN7KzVOyuV5yu=oajz}sdw1fq?GKc z0hi_XT|$;Z=T2}!-I1Ybd#<(#z*w$>VYC!2QaLT)Gk|<&noD)Mq9z>6WFQdLKe6d9 zu?IGh_zS%0exj9XEVCx{{DzO+9snQrh0NGSxoKm5J9pp(617m0ni@w*F^b<+ch6_1 zD8fe+M?MdJ-T6c{B_|BC6<#hoqZZ$N*-%(gT#b)E?~v(4Q`kYWxi8v2$FQdVfRwZ#9G8e0uz(D$6_vyA@$C`Ry%D z{&iK#)P5c^?;&YXk%5{(4PRcFVebwKeJrR>rs=)18*^#yT&Mx04+3h<8Myi0M#$59 zSZ`dg@F>P=dAGKP-c-;>-M1WJ-F+!-t)%%aolcZ^PMX^kRw&}PaBdXSggWq$Q$kOF zUwyOw>Lj9r^3(c}r@Eh{-gzm0b5hM4ZZ;3$Vk+QBPJvC)R!mWIpumgVt0Ls6TxgTi*=Ye(0^Unf*;CstB%Q>p(ZfDb6valZ7Dy3Yqmup|&0yaXYg z2}6DYvj+%n@&`m@I|ZbQKC%w*PS_2wIe_CvoaiLbaX?Gq~J-Hel?o^E`B zy?dP{x1*}>gU2C2=+3&?@moI6$4No~7dVZj9#Q*C%vAkbMq+a@_CU|#!XAd(AdiQ0 zUusE4MNihKrr{ZcUOkS=K48{HT5rwQOd^OY@G`)`(VEGb4HRg!1+bVEaTfikbDEmV zop!IUS{#8Jl2#duuAG_5_hdM=XStR9n0(Y}w9X2Sq+h*5Ii7(3!c>jRYRz&_4@m%7p?)Mb7%#w)%5 zv+?y4HmDxFlhBwDwvgL@>E2HxWrick2eHXeQ{*^v4yav;f>uE{EL{RmHf#=7%`j&4<9CRUsO23O##^mtd~W$|Z_J}9<}y-oh5f2S8Ga`N z+R$X`Sln;HM4B|qiq1y6Q>|-o3ZXC$>ZJRm*s5qEiP*%&?3bcbHCpujo(-3>N6CQr z^;0VE@|>>^v@F$^3e{Hf0K-Y=62sLrA-4JBLPc7uENr6E(4CGYU>(BO4=evN5;aS1 zj1^YTFiVzW5&ZL=T9ef3M77XpOH$EC%3tHxQRlvy}wOq4f#ARN(v)Xn>)H4Z|;Z<@LrhXze@zxo|t z+#DdpApeTBMD$zocBM{k`T_Z^mZmxpE4>(W=R!*XieO{vm1SNySB?HU8GXlo{$Xgm z>(4i%>q2k&F246Pd&sOe0|!;8Lo#+r654{*o<8{EP@f6MPKZIra&Q0U<)1QilIU*_ zt85!DaA``3wcrD~yhc2c(Xv~38j{@PeVIGX94}D(z-Szh($}fBZ~qLoz7mlJUZ}3SRECdHOM`W!#X$z-hz^uxbLg>y9MdT_cFOKl z*HV9@7{W)Wub~P{hRP{5<+x(%lXN$wN(yWFXac-lVDyhotx_w?VFPIG25VRO+C$sx zz3xrz`0L^Mny8obmx^D}r`;_`3f!M5wu}xtHJB*NA8G_r`1Z1QOe;&xxxk%-$-x96 za10q!)5-dY>3cbIPli)vgZ#S8)AFK!|GUM$Aw4aD8yM1NcWh*CP_eZjkdi)Bj-ScbNgN8McsV>mXJiAyIa$oSm0_#@;bGN<+DI?0bOMc8ASpPt4zZt z)+PESv6W6$gFca4DrpU7y%T7nh4_ZOT=vd13FKAf9!&E2>fcUfH!VPkIjEW za|hR}nC|lx=`=fV->5Fg03S5;5Pm6LL*joKH7<9cCm`ahzhP+dDl<*jZ?ml!`;}9e zq<`nEl%w9&gS4b5$E_odaIg*^$3E2HnB0=dk?>Z0|ev^#uW#x;HaAb@dwRccz>VOM(FCT4BE~8q| z%6T%^Aa_wLe^s{j`@~Hr^;Xn;NGb%t3+7c>q3KC!m>S@FGaDp>;r4L11j?M^x8O2Q zF=rLGr(zSA=sM>KB>dX)|4lh+W#Nhkp^gn z#*+QA9d3$(Gwu6aBE8Q7onxDLKLkX4>7fF{JD{f}?_-&llkoYoZI2gjTa(@Bv~j|eg9iJxcQsOg>Tv)xO9e_pbXxs!l9VhT!#WA2BHshoLfUoB_ zMA8|UB=Bvl=RqsDHxi-2gsY|TB45=oke7E54b8I2^88oxUy&8|`cRU%R!<{j~;p&E5`CUK>_ zAXK`OXegk~?)_Rxhp%%4?ppNB3@C!dO1{>$bKE)b{QQsMmsA#tef9xmFj<4Lc%P-! zAVB45Ag-0ujpHFIIZ=+lcb0u)eYgVn4qJ)rWPN<9u2JMK%u)*-Y~YVq|2_zzr8Bwf z?{TuGUTdCUhAhsnz3SYO)uPq2NTHtRa2b&+SV5aune zF(&_VauNij#jiEovK=bZZIt<9x!vkzC8ntdXetsfim4&}pH)gH&NFL&HGAL1 z&y5wX`m&M!kuym25l=jyR3(t$p43hax!)Cu)R`kP;Ix~){_gP{-nj|Zx|wJLXO*VY zCo0TtW&+Qn#}qY_h}Oc*7R#Ep-3k{<|3Hs&L^87|L0NcKd?}B+aExpAZ9{W>aNzu~ zgI83cb`!>iCf;#`2Im1w>pm$kI#`)YFZXgpm)^xyt-k}qjWDC+3tv-3BvhgS%AK94 z>b8Pf+ucPS(+?9ex1y6>ZYF$xO1xI_rLvM^iA5&!?rL$s;YEV6?f$B(P(Mg6%8ZB9 zA5k2(SrcC7BNQ*~Zd$JnB_x{&EQrUw@!ti)B?cKX{8>B)$D*nnth}&;JdC^=pTZ#! z$Cld`((*@Of{)9bIzQ{-pFog}AD;-x>?M2@wLlT%9`rVB0oX_YJUoh`TP$BsKVeJXkyai~bJp{FQEEuTHb0JlxH|Z<8OA z+mx{785xLz>5b+eLMhxK)39d)nO)&1r@EXGXUg2N&S!l9eQyFsBpf^&u~fNN*@=KW zDjFY=Y$u`>!I1&&-bJ7g`su{8_MP|4fMS33iik?=$kp_+;Q^A%?8b1u61L2dwDI{F zo!2^Imz-?B%|9;=u6tw|Jb?U$#kRTUpQzNEK%;zGr3Z~?ae?HWwG%dJloe#+EatLN zZrjqnqYDJFfAgFNQHQHCqal7?qho#2^&>0T_Zx)AJTSs#ICyX8i-WfC$0rLS${BPbN7o>|(k;cAg@f^PtoM*PBmR^pLkV=EUH$rl_{ZgutbUm5!yDGqk&2;s~ zFf%wlv(v`E6qr>~YKd+pvcd=6C+{(klaZ^T4WG_)wSR@?Yym_kNOJQheA*TwNF%iT z`j1l{yBp3yV7cV@9aNY&=zZ{eyt%9Dt$#cqLl-H(AF`UhMUs&2Kfn8dE1nT!%JXwM zMs1`;S^gn)941e*v4KYZkNnpO*;Kki%)Tf5;#f20D^^_^VOAtrGTDjTT;&B$OFwu6 zF9T?&k4RNZWQ^!rPX(sa?2RB2^98uv;u#&t(e<#oZLl|vP{~zXJj+)FP{5ly9AQZ3 zYYQ1diyI#h@B`c6TIf&=ql2%fR7sYiQda*1JwU?0Lrr&=)MZY7fv*YW*Q4OYsXfTw z<%{>brcx<{T{Ts>lO&RBj7yVzx)h6pB=#7J1OGa&;+j`$eWEmy4u_H+>DVt7qfVyr zlAOB{BSlKJRNW{LiCdSIq7*+XpFy4=jRM&r9&9T+thMGCeL{cY(kK zj!`KWW*92DLGFIZ1e`yTVdSPiS@>$1vvlH<0X0crOLPq&<(G`{&lF8MoYg&K2F3xd zs6?K6*0G}9&Wn3ok;(2HDfmmLd%%Tilq*U_YZCBZ=j$gY1Q(I;WXsLb>zZde4wx`* zrYK7jTiw~S;q`W&B1Yc8hi?;66cc3>0uGai@1RICS~!KGo^9;4a6v~T zV{DiGg?ia;AMdWBf^Yyl)Ho953$VQHkKPEeGsW}5HKvLr#c#;!tvsc#GF3q-2UvJ~ zABss9je}3z;cIFU`OZAoyz&c&)n(?8v{^LZTe*2_mVS=m}9fEHL2fNy@Pl`6juagp8`voFQy z+Mu_c++;nZ2}CgZ6KQ8QbJfJM*zq^;{&#h!zQF`eQ4pLO$OZR@C?GaB+OD8t4L&C)pT8727uCGg__N|g7DZqZG8TH~ zIewT8FY&}-E+Ia1A@q7}hv)77_3LM`c2MBKZDtn^Wl)`EX1kNnl9#-c`2P;xtI z6g;3cdGk3aZ~@SEa-bMdktwBfWd<86lS+1qKt+_m>kymz<hXL&|hTYm?AQl>XRTI)DJeI^o$|L;v6Y_sbR^$=?(yRdNtlw+$#%3l9X(%rU7b$oKH`#+ct& z`Pm78DJir*s!E+D=x5Tjof7y@i~-u2DV^xgG(fy>#s`A`XF5iN>B2V_#h!8zJd?qV%5?FX1b#7qHwf?ZA#V8G`H5cGhkFQAQM!b@~^>fG9E z$YOu$$pEIMtqq9~nM=#ci-@Iz%DFV3q)Y_Pz8^kppT$U!9~erHPeu&}2Gz;f$p5SRvNz)3HDok?-B^~bux~fE zTwCs!n#{-44w!|&wsV374XE6Y8j+CiKe%^{wD*h(y?}X{i_hms#N>nSB4~##e1kyR zyGHy5#EHIZT9M7Rgl^yiB__J`1(_JGCOsV^6iLV)A)P2b%w$-ekP@8%I}sS%+m_|s z4VmX4Z?urd*;nrN~0k~;%o2=M>aim$vKb8C*$UQ z3Mg{N#rExN<52sIBWbWO>umb0VdI6qVw_VEZc>8NcTiNpr8iAp!96392dhp>Ayj7) z9)5Uj!>Bk@7R^PA;yX{f&?DK-qSggBL>eq^N?uj10giKA8WX#4_(MiYWoId)F%f%g zRm)vw^450`7##Zo)4brPM0=cPi6aeZxFs`jhGixcl2yiusCzfh=d)ZIeTE58d@q)K z7KeGDX|n9144;2kM(vzR%2jFz+GHpy+Q(e|Y7>0Y^iSNVYPgRzT3(Cj{sOy9JOTMo zRFrW`421MY(27J93#k+msIAJL;b?TL)@X#Yo&7G61#?r zyZpJDSY3+_u2k3+W&XF730H~}_ubbl!XmuPz$35rW^l!d1c$Zx^d<*rfNHe?KMh;g zCBT21X5(DB*rk948^r6{!%3zh{4(AM#{(6&9UmNUNe!Duw#T~M0K;%#Wv$v+#*|W) zc9h=*@S7*L=cMl+$Lz3D>#XyVkR4cUcLeFb%c5rf=?-*VF_i#w?jCM2oX~2zk36FJ zdsCs<&J@d&BgLM}46{fvvkgh08hD9oq|tP=Tq(f6ToN`K6!LHecMVJ#vaR4OFU@2( z^FPjCla3(SQC-?Zfg-Mzxw$(xPaMo!IiXFeDN$W422vnW7IW z5N6*HdSxtye}-})`qX}bZxxuixJ^1SgO))OxEtHb%h0$G$07qcOFL`xhkySDqKyBM zklY0?SEv1lQd+K;cedW-yjdljGo_Mrx>rpG&Lg`qEnVxT1|ri3<}_Yn-vZY_Wq;8~ zdi{zp&}Q1q@*K?Wsj@WnF!#Lpz?@TxcK(rU^7eJpJbsrOywnBj{Vd26^@}#33Ygog zW5>6aOBwP^dOmn;HP& zs{jqIg3Nooo>Qtfr^0{k$KPi&Q=2_SUYf6Ycw;ZU!YCyH3w3$2Jeux=&|j?pq8lL& zdG(A@gX!3ae&8SH>axK^Dn9u83U}*NXfQs5##gS=-aH?=gCdEp0ZTFL9e*8XorWH+ zNxf6Tuy()-@ELR&H@9M)!}EXrs#Z7RX^pnVqmV zsa|}d2TX)=e6S9C2sjwPw&bt?GI#~+ViX{`?__VES`q)`U0mW z-%eL&d73=!8tEpsk@8F%YAHfczK6G4UBcVy?}aI9XWT2C-A0@TsV9X@7SV6>Q1p&? zcYeNPxRd$3^u?VyMU4U$d)(Lg(<^sOf^g=<{HGy5vh>;JP3w-041aC(ac3M#{z4fAG9U2RQ%vd2b?P!o9rz!W(n8Ol+Q9 zUSM0QFaUYx~R0%e(efQGZ(2uaphh^2&luT~U*kZ2V398fj!N2%_^PhV0Mq(} zzw?FXx(*6S!+`2zSF#R;kMQ}0XYhDSNFOJ}vl>I3DC|QhShL;Mzok-YQ&M&-d|0&> zj#0?7QPG{f3;ma5W?So0hknFT)`PqluERUM{vdyjI<6gaQFwM0TjAK}4}Q;oc!BFy zPZ=$iRlDr4zijrXjJaHkSTF8>K*OcDA1yI?Wip)-&2ZIIm9LS5UAbth*MR~HoLRAL z4*C{#-eF+B=Qj%MzZvbNNV+1lOUBp6jkxnDVENJ?npqzcFyg9cTmbE@z>|br`N*fK zRRSLi#chdRAfh~pMVXtkj-Ksb7usyENVR)^LHJb7itK-40wKQGS$|iSOr|a1`m z{`u#dYGyJAj*4#uKYjs9Z1Qs*7B#*qlA6SuRd#;FZy+vS^O=8XTCrQL=JbG2-u_5K z2xly^YTx4I-FQ;+)CrxM-GWi%q$1?s(*{S*_E3ISG~ef8aKBMf*m=OTyCVZBk0#JA zbUC*~Bm2nO^F|PuSpPa?O~LFsQhLnKbP^W>w@m8xp9ju1R6q&eF&LXo$fG-f2&({- zLYrnr-`}dX`?1v0#1Sb+(q1R~=Y)XDFKCKHEW*F@dU*8{&pZ>ah_H5=I(>Ah43ZOw z^JLMKh}Tz$VDU2PcD(q9#q0#yOtDETmEl4@`FV3c42CTWg>`!AFq@XmpjVke5I9V%Rpa0UJ2f1Syi5H+I`5M6zAH@BsOY>@ii^6 z$9nM3?(Qg!;KP^rb`E(VKAx8+ue$?D zHL4(^iskGT>gW7QubmSx(Pes{kw#c6a}u2J7Oi_x$63F)!}#chixQofXWI5zL+UyE zRwLXWAvzSKq{=8M{N<#`>{Pb!z!Tb$$e?Xn=h=^WJi(1jmI@t((~60RnVPhNIi=au zipLde!Vh-Jn$8G|Y9EERJXmGRc4}*41&fKU)t(6nFR*>D7~Y?iBjfkcd*9CoAU*iZ z)d~rm%iz;<3PYPZsqa3@wfPXimj^EZfX>giyT7ag4O%Q#hke=vKJSZ*L`PwW3G zRO?nKb~P}89e;s(vsJ&ZI**T_H+$Gs-Z#$a?IJ@`!k0BEs&z>0vCGyvZ4@dE_bQ{~ zcSP$II{l@IQ%!|O;gRibB!4uFpy{k2^hW+$pc@EG+S=61YJzXQLQMpeoK5ZqB>Viq z%l^Kf=ar!lL@nme0s<|WOFJOTO=$FjtK-N0Qm>++YQSs=Aom_i0YfH91(351^`@yc z>ixnrctU}F?_KLI0J+Ig7!7VFR`0b3DZ4_kr$0ul%>|F;W(CA_%INu$rh=VPrbqKE zTwKfd`Y|9&8Y9p^TM~JGWWvVd`QPD0S>B%<<|Z}QRSKWez{ZI~RISc|;7d$1-WTh& zbKiv3d!fyZ$xqW1hxq}$V4K*G2ZyA)BsLnrfei0ctwMFUm!>kS zgmnxYe+*vE(|o0$K9npk_I5OmOnNC@uiM-Ji@k?Y^^f{ndlU{svEDbMjLnc!oC603 zx`GLzNY33(5)59<*rQP=zdPhfdi=TBcgs+NiqTrE1vT+x$3gzU>-wa1>RwF!7DPp*y<-l*W_gjY|kP+Wx<18zCCC@@Nw|TYL1AC z1RoD29n4oqlCinpQ*0K*Zjb;qQQ831hiGDWN&7?Ok~8%fcNB&ba%4!!7u z4qTNmoJRM8ZdwG2|TdNLP}zE|$|Z zCM2f@Vb_(W!$yxlyXEHFnY~GNW>bUeu4fvZwr@Q_&5N_#G0~)avpL#l@^IxG0ystS zLvMVyNorZ(Q*OwVHS)}QMkq3_1=XVhgFu2vZZ)(8AHAN>Mzaxt^Twx;ak9CJhOW8) z0|{H6+^PFu^rRl@&jkZyy5Py5kR8Pn*XPC=P^p5X-@ z9@6*|x20WsC}>$Gj%xo#_uJ>^d5eb^SSvlmjd_=HOi@;X@@15L@a8R8d(cdC8)2;(1`>B$vfOQ{Y$-@ zGOI_ToGRC?Sr3W7C&NZR(ut8Syo=jwvr9ayQd~oXk(mP#n+>!u1pJG%FK z8uDV&?o(=<_qvavPaUDPaJD&9ND){RA*}m6H>z?C8pk5bpXbo@&pQJq#rZgiigpOL zurRFZh7QW+C;V7Yez43lIy6Yet<6Cq%5>U7ecIhtzxT|;9SHbYY|@_f{Dzle!0Sk4 z;TEXgy>DMhFY6e>1}^~;p_8-Z?jT=+`adgjL_14R zQYD`}@VU+Dh-0UZ(DA~ie>?4h4p~BpUsd&jGEHm2TSDXbKuP|9LQu4&m!EClB}C)A z(7gE9>oVe>baoTLHswERtTqnxlwM?&1w_@2p+M&Z$8xP4;X-9F$WxHE5Q;Js<%e!c z(K0N%dF7)J(JSV`aCiPcDEIC55Yrz8PMIq+Ugi}4kRf7zOhStST2xM{kO#*7>8&g0+ZZ5GL{45DnfMTV`o7V)hkPQbZIRDjUzD3 zyB8!NAD)5#HCthVg+;sMLe3M#yOE#By2Ajy{3Pc^7`tb@{&C?C0nR;~cfGm+Az*zD z-v9B_GU<%{hJii4#EFGpxn%6FWQExur~y>$r`==e8gWLLRqg-mx?R0j{2l3}<1sL9 zcNxYk68!j9+pOY0aJinPMuo)2OR>Yaa;r~kJcm=sP}(CKFl`XEgGO%VZvPK@<6Fn) z>D5kd8a{|*J{Gvpf#iLyN}WjKWT@4hFSZBsb(c3x=t?Hg*-x%<{g~3NeCclWM5UL! z*8gBg$^&&uC|HpHXRK`&nood1KQx&gY1NyX#3XYS+S$<%(c?V8 zNf{oT;?B9gRDtHcBI&{5PClUaxZOY4Pco>1#F`U&T)VwD8f=p5G%3a_- zy-B;RmYt<-T^6O$$X&Xyzfo4>QGW;fPjUZ{l&YVNI9{-xhBtYe+L6ieCoDSY8Kk@L zPIZJKb+v`zA7^}B6`ni7Tg#&`$ACqi{Rbii%qJc}9aW-34&61~+BvGEmO%7GWK^KO zfCdT41o1*{A_qdt&M*PWdrqW5xmy1JX(B92SAp|vX26uBF3|FG>uT>(nF<^G+C``>o?4UvVK^&{l7}w)omb_plo2I_+#u3RcPhDPHL#D_}HlQ zKhUrJybv}TLto1ZIvei-Jmy1%Y1Kj=+HzF_8q%a)h04GCFO7-*h@hpdO93QMb#CyI z@1Ss;;1?nVY zxiJ1P|Eh6czeX`n+`NcJq<P$3(XsR!5{xGh^HF7dX&>92KbQR~+f2&87OJfy<(WEb@5*V$PCq-D8SVDRZK4mi% zMm|!ikfyYGq-*2F5L4y5NcIY>m2Lm`^O@qK7$DHfh_ev%9|B;rFUi^j4=%y+LobmF z2A8f)Lw!9i6AJBIvtBd=;_V8d#nsw$pH8SX0Xb_|NfZ+>&KR+So$dx zYd_sxvKG^KX0IoXJw#MaZ)^>IcI~Dn_#~3cF}=9fOO_(nQoXIl5LjKLS6p?@V$=bK z)R%W*O(RTaroI+V{(B67M;IT&?&F5Jt?`ff9uaGNBKi<~v(PxDDl#iU$*_>$3g(^ed9 z+~*(Ipnbb15|hf?h4rZu-kAe=mlXVXLfGdq!8fS)-9Q+>gIq-W9i5TK0ditSYklyN z2=yo1wq{r;dX1MJ65H4HY7*7~I{5}>Olf2pH`uf^L&Ucq@j~?C;PE3H#INsyJNWi} zcj!O7gDY^w0P~Ci-ogd^V8#o>y;Lc)Lha1%kyFT?8Ucl8J|x@Z7ct~C!eDL2(Nq*#q5_lIcqxPOt9W<47?Dr?E|DB z&g(DE(2GT4l8k5CFbutHPajp_W(pC5|IW+6yZ`@@bXZZj&?b>-Yfu1P94pXzLM&ftuO+1bOv0^|Av_oipjpcuTJviI;@{L?G2&nNm1o@e+W8 zZptEa!&13gDh()ne)Anq|NqpY4ztipsfyc(_7Db4fCF<-FGF1yj#Jy;{hmS#if{QM zhQKOHu8o<<|MYB-?+OoM&w@HeZ$8|BlgDOSzacS-uX8FWT3=`DAiu%V0fFEage~ zPI_f}M{ycJT;wHbS9v*r{G8Iac0oh~!=Xk<%H6H98Vn10XC(6B^iKQFbm=|T4i6ax zpXv_y*6#%C!7s)LpK@sk;41bV14~NzTtA#*DHdL-xRs!; zX%Uo+9A5l&KLDQEV(voYDubP@xD0JDjmS>NXUhfVV)S1 z=W4XqwqEIc)`)h~D?srhH-2g*VDA}{{fr_3G;0)r{0$)*?eL-I{lf`KRvv?WcJwax zu(Z(FvD{~zZjoH?bS0Wq&|Z2wm+q^_wX%oR;Uu~FVjsx!)k~?vH+9>$KMjk#%yp?Q zN5v|E$qzcN$fEPI+6d_PBvJ2X_K|{2pd&Rioh9{n1Z!dj8HxaUa^`aOGClsU4DvSY zXyi5UsCg}0BCs43o!JOZpmQ&iTqb2EUcDh^$0{#r3Y!k8RL$N@(*K z61(AQUa1sbDe$J7<}IP9X}ymSo8d8m z8qcjPnRu}1Yy&18AUo$zdx809U~X%O&#*#}>DTSO$yR9}3`5fMAo=5fXCl&BN-r6} z(;C={15Bq1nGZ>pNw`XdWYe#jO|ny$UF^hN%v(NlSqdKB=PhYs8sq_V-2Zicg{U0RNcTkk4;8nmyMJ0%P&$Vh%y<^t0_|suE(2z{40}|B(vAc!-aO~~ zQWU4FZ6Nn`B#US+@h1MJ-wkv-8Mq>AiDG3KEC0CyY7WKW6*YyE3i}cPOnbh5`pI#8 zFRS%2Pk{2>X()z~}D8?>2vKk8K!`5nX94^cl~`0{x%u z@p|Lj?m5@j?$baM6ta(#ET~QrVCxAKP!uv5aILosP`tz#jf!GC)^eWq$q+_+?F<)Ox4EQuTkWcaA4mx9T@M}%HR6gD zB}5f8luZ9v#-vxblJz{D?Q~NoDJYmEo89uwbRCQ99RXXdb6gKMRiH`P5*I%Ze1bcO z>eY^qMhVWt)1{OHSbBH=bxst?{pBPiN2?Q?aDdSy)otE`Gk~&w)B~H{Os^2bw(c$1 zTPlhJtHH25`E9+xMz@LXy9Rw;y+HEchH$s|ocLQoKy%68^eSg{;AkYpe#cT-k)a6W z#EL}WzN~W2f|$@`%S7#BOj6W1{8`u|CrMB$__rJ*0a?v zwW0MoyBx>$O->46-u{K1uS)mA$`h=kQD`l9VKCgF8c;?xaMg4qo}I>%wjdmHPLtZw z?4pK!zwz5X{!^<~uKsoTS_D`0|MGetzr{i};U3s^&o7a^{u*G4ZiFnGHS4_Z})qc?y?BmRKFj@nzFleh{6M%r&Wq0kLzo?Ag3tfK@b(-2=XPzf;LAA zK;fc)M_RkAy%nPl zYLnu0WRGP0S=*z`cowC%&LP<8HqGe%vwYN=h$wBu7Q|LoHVs`>LULnu<&AP8TMJu- zU;As@6=KQRT@WkVz~?KM5xi_e3~NEs@qaneLW)fW1Zvu5jJMOMi)RB|(Qyh9NetE$ z$eus{|4ri3e*Qn=dR{?i;|^hz{{5B1Q;?S6!~dEYd({=iy5j1K>XE=3@42^ZIO5OR zvWsBe6>B4J8LrNx!e4>I(Yu&x1p7`L%@O|m$R2VcT%WW%6o6Q$AlXZyJo>y-F00yi zK*scVu|trHuw-a-?(KBxy|GBg^v?n|qCa#$K_{NQpKGI0vbD3J<3I8|WkWkoGDb;j zyd3Vb?jhR|ZW@DpBP`A#9YN3Io#f^x(0&bi$!(SAf-H5Y4Hx__!n!fAGU%v<& zW2n2-)r9y}G(tUEvOV-Zf?aG$q%WVSHwsz6ZtFSwyacv-uh?@=HbMfgJwK12#|+c( zT3P2av^F5d@?6k)7?+{E%-8=WdAj|}3lo-%7sR}j*dn%{`Q8lcIF|w>O(uplz!6*E zSfp`w0G0RyIWRVMNd!H4^f9gZGKi&&PzD%f8XsH_!fp`~Dw=!!p72?xN1&9L&;5aS zmjZ>_S<7k!%M?(BSx-gcANH3o>3`hzZjkt~npP$^Jh;*P`M;jCNSu#X9;SmRsB~eo zZwX>| z@8!ZIU;odDpIOa=4;a-Z;N?Re(w@p{{$MNY=|F1J4en2EckyUHyI6mCdz|{vLFY-w z+#^Dr_7HuLZYMxaZL6j;u9fGjoGWJPOG(I(xezxiS%&w*Q&lphgdE0oPnCVAkYHm` z&-3=YO29T-j~o=zC+cc=K-K(T3>(7Id>HLqw1eHjSf|c1c)c^7>l5vQfsG!VPmYJSffU5tQ6K zok*5%l)_r7WQ-VIvwO6ihNf|5pYFhI;Yp`+a9PX9S7_n^jQvK@zKZRP;#pAnN8yHb zZ!kZGrYNNd&Mewo5m>m_gll+fvrLHNXsyOLFynltnS(^TIs;9@K>-vW0% zZX*dIcF9Xu+e+^>FHM`92$qO`&s+L=&zOoJ7UN2zZ|)hjGE1TVmT>kHZyKl{zk#H{ z0H4P%?AEIsuJh%E>K!4%Rw8svmgX9wzAQw&!TZ5K@cv8#Oce1E3rgYO(X{`$j*l5- z%p_jvXIKZ(+kUU?(9Aah%O(mY9x(nC#pgT(;+`mmw@ecMrfe!oN4Y*z;QoxqmeA*y zsNk=}wx2Z2e;0pfWFDqAsQL|dQPDr_KRb`wV`v0KO;{tNyi92>$bSvPCEPtB4<3I5 z)QfL!h(!$7&c%amar_y-)WI{&OaY7U*)PkHT!M2HQ_Db7Z%uwlv1(G?8-2?l_jn0+ z5PJ#;n~*r~F?>{0AY7Yj2X@RZXn$%n0_%k|;Y~ah1g|U(^e(AidNboR4&yTr`;mhWQH&s(Tzh9Rn8MYU1?P zpp;-*ChaXSBW3Y68V~d&BGUUPvuH<;s)%N3d$ZhXnKAO9E;RovSRZ@B5=Bl!Wf_qC zS6#31T%{b+hp;@}VU~t-eY+@+3w3czHHuStp!KI96DEI<>%HT>75!AUWv93k)>_#! z7KXc4)Z{K0Z|fd3Vun5ve10Y6)0@N?;-;eoeyjwzJ;!aeU#xMSNssW;nry9diw!wX zW;z|RU=hV$YuqZQ|09;AN8hj|GYPtwRiil)cdW+^H+pk^?msz^S}SpBO*vIdb(ghB~R!L ztcO#rt8MneHMyEvDYoum9LdeUHYS&S8mxP)qB>D`{)8>w14#x*&h5|ws*`_pd*)F*FqEe zARuAkjDY&I zl`#k;3<}Y#>8$LP7Au?45*yaa#*?2_e{bB+>60t?;Wj?!lOeR_E5GwV>=OEn9sccG zc}rV_yQY@Dga14NAdO6bbQS?Ib?Y==dFzP4x|hSZ0K>ibRUm4if=Ovqxe3i5_qJ z8CY%w2_J~lY24O8`Qg6b8}28iMe<$-KmY%W;8-D0rVRFoRANMHmi3|);ni&(O)GM< z8933W*djTmxiz%?hs&Md-IZn>O)i{5K7mN=<}{U|Ua;#6Rb!IHIoEpUYDTF2ne0K7 zKanWn7hn7~Wtw1ls0`I=7~eRaIMgK)`m!wa1uxf*p&#aFI#^uo^$ZmR>PXE zG0oK2(U4qN?)t)UfvFz3{5txCRj8el=Xd;J0gm`ev@GvH=s>NKWRRhuuB=Hj+NdOK zk`e>Hv)`S!b%FG4)jsAso~6PQ8Gz2hv>SFe#tBApX1=WgkKD+)r>^fc%TNP+CoN^toOhsl_UBQOAT=O)$F z6mw3pbqSu{F_o7j5lNw5GV8wLe7_sB%FGj_EMr3(M*G3`$F3?YU?~uIo|@=VhDq(@ z{b=eFgHTqlr~JjV{R6uH7NB_KQ5T{<8T02Bha=FM(oQ3bB7heEpT*VOh}+5c&w=dO zeg{(64+{KBZIsxblu57NPSh-&?Blt$CA8Z-zuANE8lb=ua z5Xb{HH#>mcm{a)cu0~Hob(qnTZ|F;3U_kWrgz@rRDE`IRx}to6*JMTtkI9r_0OeFn zAX{K%5-egLJ>Pb?7_~vxq$k`TrH5D@vlP0RYrdjRbt~~|%&pS*y8r(kSuj+$9b~Cp z3H#9L_OHB!h`MnH{B>6X_{FRE1>3=w=X7a;s9jM4T>{}y#8@t=sU+>_nxOkZ47N6j{Qxe8*W+yMj~DAtO-C&Yik-hhBP*K%WH zR_gX)dqQg10EbCm9M39|6g}XH&)|^@73&kL{ojB7-{L!;{QTsRicIX@Rn)?qEz?4uirdvPt1BHp8F{HpG^jHlb?8r-5 zVCaLI%(nrij*l+KF;!+R6wSsVsC}kcz+Q z3ZLw+;`ES4Pq^S(3!)*EFNI?T2-%kl4Wx!DA8H>xojyx`x1lP0m5bkBk5RnCqtuCP zc_P}=H<}{$WXoRcb)QG)^=LgvrWJy+4-tELX&S2hr8QP2mB=Et!i6?|vpPDt&L|nm z=FfzWwjB?)DShevC`h$^IowH_VjHcNxpp0(rmKXbh8BXMbOR)Z7XTnfXL?*bMVcMH zks-{RwF*a?LMO(*&j~|*y&GUxuFp}qgj3fU&e_2L1KqQY19L{6$X~Zbzcwo&gvZHq z_S|m8oW#}z4~bAT&YU*04iAzPfx~&hfd?uKNRJDs#UNmwLFI+|p)xLkr!WIZyT>Zc9Tw4R71i*JYR&H@%1d_f2B8W$Nss*ov-_^#02omj7oS-wF0|J40 zk{y|B-d5G4!MD@jmZFI;p2RG~`2U<7uP<^xiolj6)e%nt)!S?SCH{|{Yk`DE2?4Lu z0N#QZ3(NX2979rJ6oh~zFwO=Wn!eLH^JkY*%3zvgMm~rPS)7coM zn5K8a9|aEYE_P+x`SVs0Ob^0x-W4NhJJ=Wv(50IJK{*N9u;jW$^|A<@ma^A;I z-~bjK6Nbw^x{+064LXeDW8}!(HJSZs_ty#dz^Uz3S{UbPTuoZ8bf(%aGH#b7*S(z$ zZ^dYh=lLn}v$0P}Tx)Da3JyC)f@zr!N8Mi}HGGdl?osMGTf~a(P0HFZCyS%Gw%2ob zz8KUVYvcZu;62$c36bmjz}7n`!#a{H>KrhB?yYH95?Fkok)4{6A{7{G3EFWj&Pyn= z_(0I&o@kU$M1L>#;yNv}I$^5?1R;_|E#s4$0dwLg3HMetpM6JwX^b+3Qe|&j{Dr@YThsWGocksEO9@nRg@c27A*;Y1gLM& zzUHD3YV`Zo&|!Neaa&m8b8lsE`!&0}C?+$E?K<{7rX`?_A{O~{+W>chPu6hXDN_nh z7yn5}hCYn>+Mtu*?Ui+1WKUc4wQRsL1=bY(hjzD2Xu0Py=?onA&ln#UCywAK9uxRx zIP--8D>05mO%Qwwv6E(QO?eJP^Gd@`C-{T#7ndtrQCplPt|)DB2=2k^rJ0NP@Aw)L z>P;dlsqJVid;)#nB`Yw0kG!vuEfcUC6u~gZlD@J!<}hD>j^{>@kIG}o@2QK;;@D_j z_|~0K|B6?Vs=~hH=PdmyMLCUEm@tx6#71JJR`~8;Mq21h=j^i&0TXEUFI|4_5&#gZG*en>M*m8Cx>%?6JxYnWmp)E3} zbO;bVgG6zPsf5^-M57d0$qL-=XSkJ+7$deS*f4pTi2yi?JZ9^PMk_ceDvIN}``_f$ zpC=E0Fe1be!;&Wm6=znf&zE|Bt=9sIs0@%B)QpAzadA)48VReYQ7feGJC1RV=;Bq9(66J*nJ~gh-B=Z z%=J%W1+7~@dnlG$7LSG=o|^&x`_+PP@Oo@gk67r($_H|VQbFemgB|XpNBax1`Fnpd zwgrt}GOxteQZ(i=AKKVAVA@A+U%06B->^Bf3F1>`P5hTKg%(g2AQAW>8H9>c!tW&V z8fI7nK_E=S3vEdpnay;j@U-AFpm5!-soX_Vm%WPs?G19OKWVKwPl@)tS&l)M=KBe3 zl~;y7G>Uu(9HM~s>f0u%POEhUuM}pYIGrAw=jwDkrl$pFdG$MJU})5^><3+j2A+x3 zlcLie1}UlgU~Y)O%UaK_B-oN2Aw{mv8>d4%;8GXf;?3T-0u&?D;yjPogEJXPa;{3> z>Qhp5T`E(F&=9z68M>4+0ud6d2kS~YNqfb`l1j%1Rzmyw1_Ad|+tmz?lVoFaWSSPW z(ohJsmRg^3{d(TjiDj~DdOJzmPx|Latsujh^duc_?-T?5Gm3m&e2!t0ctsYiwy4AF z{K8QrlpE_hADk}O-GYQfK1d7ofx20%y2NppU`mfny*Q?2oC$w@Do=M90+YhyRtb>? z6@3NYD@|pHHFSyr*x5oI<$Ta27{OuF+@&cLp_PwXSYp!sY}+D=G$tPw{TjTHhpnr> z5!vg3!ihX_HI$<96S6X|vZoMro(jByZMRyiXi#^*Qj(!JOL`jtDq*a%cmfcbVQogp z&`nGe?6kJl2s2E!pygbfEd}^=T+05j8KAaYF3JQ0WL$F zE}Vsbd}m^bN4#z+sZpY6S$fV@d0Wq7JsYvkGbp7NU?4{XV1iYNhBb8v4tsxW7omZz z71eX<`9DLo%M{IOCz|iJHGBEq5*v%@kC!DaR^0{w01dmcXd(^}zoOFh-wkeiKmn^S zo$UD9MnffUI)F%He24FL9f# z*MD8N-A<+tP$=@<;cc879e<%gW`D?}{pV*@3R$vsJm;idCT#_Nab^cYX5+4EBju(~ zoCNIMhv-JT#ta;9CtL}p;?ZdSa>|-PMF2KlTi;w=xt%S7zBEZQOhxS0zICx_N&QB} zr+0dI=Oo=9!l@n1pRI#-C=L{_GFVWVeYY+( zpg^IKLKj~I=rxbTICY6FymX*vqG)Kf-Ba}nl3TQ;ij4Y8Vza%qeHzkCu~bM@y1gfU z!3VTJzvuN)pacG;U zNff1pUpiun^qitvEn>dJAs2la_9D&Gl(=!?)nw&6bDezvr%G+?TL3B=I@9MAx1~b- z?01S9Bp)~bG!jr$6EKm51N^|RJ$p=aNcCcb0CjViFl9B=9=Zn^i-(> zNO4<_hy}+ohMCyosSSseG3T?;EqVLr4|6uy%R%FnBESPIH;H_X1ez;re|6Bt6JpYO zX9m&Qj)qrxLiBog``xIVH<$-G&!v@3)9!mmAHIu&|J>D0?OytzqLGF;GHvxu>v6hs zNk4;P7ZSmZwghih!~|~G!|4@F^!&(w---PU>-=)_XBbE8(x?}9me)=miL=aiLEFrL zhsvk@$%jp#C1P#4NL$GX_fp^@G}XFxv1@&it(Aoh+s+w!eo&U?3%8_pEudu%S(DG= zgsOWQz*j4$kOL_pR%-@x^Q`}=_xL7JJoXrwlY3PSIdUxDe&f&KU?0CfUYEuyaEk_F zy>1Bt`8&8GY;pQ+%a-+pUem~IWv;dhGHwry=zxW9n@72<|BSbAt3o`54zF+1W(Odm z+edR!TfKY3ujPReg4gFxA+NhXa!GJwIXiPCU$?N`i3yzsP?@aOK=_qYg#bE0#lJGa zZmgl0rjY&}SY2fI*dBNh!Zq?rOi>4F+MBwk1KvSt;~2IpyLV+HVAs=aq6mcjW@{-Z zlKK0~t5*jp&m)$P^y=;fbS2OnivuZk+|m*dGbE5qxvoU0SX1ULgS8@3?}% z9Z;Q z8i!hf^j&kZ+3w)DKM`=z^a*R3lee=BTXjY$pGF=UGi`AR*#hO$*Y~h|eXHoqi*x5z zANOUiyX3NN52)&iXgOwLp-BJJ_**pIxpM z!)A~suiYBQP{F%NvLL!J*W|#m$la4Qr|)?)$NbF%iULm2AxgSTv5CN*2~^!;wYPEo z*RqSgzjz(Or_V2w^RKg9_+KS4Q9)n-Df_h@^_tjpaE|!gd{o%kv_ob__GO&2aHyIL zQi*89&>9toSLuVNtc~zQf?O5As}@?xas6ic`m(kLfYK)6lgVqj4=!*V84von3?nS{ zm-m~xbLIge0Ccm)`B`x>?y6ChL>l@dR%UJaoXOS4q$VL2?@NCtm^hBiOC@$eUTC+Z z5hrL3)fQ{v?o)WN{gaJKEzaD+_gGl2C4c_kI}iP|nqT|>R%z{v;{kjal`@Xb8Q-aI zcv`qY4Vs<*=@Mth3*A~JthIEdiXJMrr%B@NrYHq|{b zEAYWTQjP2pgbqNc3XhV_MnCEn=TnmgMd$2a{P!L9tV)Bk4!YJKmGK&--s&5-%jqM} zEX7nO^PEL{p$-nAh*!ygwIO_5wkBm?3@M*jhw8d7B^;Uu7D>BhR)vO-&BmF1!$?cz zDaDY38M5I@66_h`YItnG^?_sS<9`jAHZGO{KQRHStDe0J?rr3~XwdTQdAP>`?!a=+ z!U}hdcLW@y=Ct)XmUCF6Q|3$Jr|b;(-}?kyOegRJT0{Wp)=)EIz!WSm?6Iq`U7n(K z=gkdR)08wyLPy&2>|uZS5@W<&9&SrPluSo}dWhQEI3hMwQ&Z3HeEfp9hQyO0c@;Mb z3CQ71o*dE4QNzpBc378&)@Bz%W0J+esGs6V*m=*__1qGen?XW{#Ha}S;+QGN@gnqS zqP=U-5aYE=>z(8wxc8ZdBPb&i3dkkcG7a%c5`-Y7-p&=^cLV) za7n*s)$6H{uKMp*4c@j}AC&*I3WOT-U*I9@FM1(gi2@8Y-g4_KS4gYz7DDoZdW&tZ zjb@?sm63Hg`0NxMcY~s337=8svv&?$VXCqGbuM)d%56kr%dKUN=h>0|wk%x2*SSUQ zC)!hcsiC@7*Q?oM$Li{3#&+1Jx13kjPB0=oNeFpnZplCZYxSacW&VHWjw@c21Ziv1 zz~}7(Ij0fQ4=dTu6l^xpLpK!*W(UsIz=<4pc)*)WQqH?tz*pZnQEihnsPk$I7zJ5v zXMwN^-Yz45d;iqQKqdjrM}q~|l7>A3d3e04W}E9EaSfN<5}IEv7ER`s^2y5F_P<0w z`1)y_>hoC){CYrs`>+ zRnw1S9hG5JSZ5znWNPgbjClTZ1j`D2ta66@Y|AUZt_(tc*7^LC#VokhVzD)p2_pU% zTWLs`Ta1?N++UUyYqBTks1;cPcGNErPp(oqHx$-L%wwnj%Z^FCT2CI~A>C69(#1Gi z|NsC0|Mm+x>c=X)+7o5PoKx$DhS8^p=PlcFtaotskUCDVfnZnZq`M06-p}kxe(-V? zfE`%CkK<$YAWD&0Ms^naQOMEA))um?^E8C5B5X1xPWo2ey_e{79+crFb@`|`K= z7S84p_$*UeRz1_;H=!AHgj}R z=p!rYQL_EOtS^LW0qigT3PhR6uSGMvZt^_32$eEzxe0Bt~ zQ}`iEBz;l>dJ%mg#Qmt-om!QbkNB!N6uiv*d>_!U_L~<7Xjgky$77++Bk;*gJ zV;nTBL-@>GJh6OY_wd1c#tH%tFs&rErf#ma#*wSVLfMTGWM{v7xhg~~X}YB{-rVE< z2j}~)Hu$>8bM{|rn!t=) zz7!PcL$Zb1j3F|{7KvVEJpgj7VD{z%2w_$MX3B+-J!xVcEZbuxP4&*Yg9P#)p`PZO^_=*QAAi|Np!VZVQY4bw*N1 zgVjV?(+TBr<|O_&QhqNTH-h1H#DKsyCz|@OkGwd2Ek=jeR@bMAuByxB+1Adg)$E{* z3}z`Mf4hzknEE(6x*1K4_|01*uS#1YBWSb#2cGqEEU`bN82-LhO@JSKk^JX>4(EO9 zDx6{{3Wzs#rkWV(c)0fplAq<~YWzIZ{RH4x5snTS!Y00plWdpLTzU6zaM4{eL)^9bH!J*M0cu@|qbx8`??~9C8Wue3PgI4pvrrTFUtAR$Hy3hHDR=mhZmg*C6OpQAoP`1_7PoZcF^Z>4aD~;fhmL zpmobQ#KWl@6Mx5@Wns}7A#`;C^JY&rzGqpN|an#mz`O1TovKo+lUWu z;D7(*<)~7mhHFQ2+@hx~^Zy3ACNTt^A7l&myo<$Gw=Gg4pn$N;TMYTtm}r(vg za^)*ak5RRvA!ZXSo_v);LCZOA>E|u8^h*ygE82j*d*uS%JK*E65$;2M-CfL-> z&KEE|`h%#wNRt}h@x>ewb3%FG?0e{Y(VD^32()o%aML!cfrJHHI&HDrU=zA$VPLrIVoT)R7#8^a-;=VC~{-5TqU+oE%vQJV!`q>>YLG%Wt^|F}gv9zYnzk zLVK{_C486q=b?c0pK%s;b{qEKYV*EE!fw`-bvxcw=ag&3;I39N-&qgups!=f+wfer zmJAzoNd!tqQXrK!jBX#ry-^jcvdmYy!E@Qv<2VYKl2%N>gk2aHSRE|I0*)Y@D;N$S-9IcrAi9e!Hfax=QVb2OT2Ma_O8|7dRrIh%^n8`L+MP zic7fGw0_R%6*zUP;jRT%_iDx{lixZTC|HX=STN`9kq-_Z2`h#sSn611CYgqy(p1$0 zqC*xGeV=d4MbUSqa2v#dTond2RY+|cOIA%9Gndjbiu?UCO#DBUoDula{m70U$rgPQ zoVWh{z?OYz%o}s4-1*^vvTL5=o-?3wwARicC0q4i9E1%>png`U7v46vwwCM;*nGOe zUHB0A6Dw2rVvqa-$`_d8UZ|uEbUT%Yw7tSyjs<3H*ZZ^c*SO(abs#5hn1jtIw?Z1N zqP$DHQV_*f@Nr0~vb||MZFzJ|XZl!g8hLB*YGXQiPWu0u;#saF-HI3VP?&IgQ_y%? zYy%(-V7SRazxNe%*b7m8(8tX4&KB2KCIz17hCHs_ExnZ8=|k#ZhZ5b`K*4rLTAduc zO%D!I^t+qz)G@TPsRc(wDq&r(r-1@UCU;c!ZP>iv@+8r-YmalK^dM*M(d7$Y;;!rZ zKYnezIQHm+NSpQPdul4gqaRC_Ngd86D1ZYqZhRsBprN@u#_DDs4Wj4Tz5c6kJ{Qwb zq)+A$ug|1$E+}(g{;Sc>sx0V~ z(X>_jQ~KYZ@t@qJi!0d#%_LO+ko-p3xzc1ZJg3zf%r&hcpZZU#`we?`Ty!rPsQi7;7~T1?uNHA{_xrrF&Ti{97h<&nt)crGOua%K9xmoG}dg=y)Jq6xnXx6b8 zX2J@Gs_fJ;S{Gk-=Px9#vnjr(+y1Ms{QUAb;t+1W1`&gC+gqImA4U`FD%il8OXj^U zVAloMyYhG4zvH0!GgE*aLAPMz0S_nlc^%CFZAX~yq2IIxZn<}B@L^yg>EJ}{wOrBq zVzBLr#()R&G5Kx*WNHsZb!UbbcQ``L9%cq0hrTf*v1XT4v$(I5uatXoUXFof%fDwz zxd_h*@V@YszAeqFM5o0drCiiOqY>U~@I4wfL`53US)@D_P2kcg(-EpcWF0NdZaJ9+GuW zoMlOn-KsY;@PA_(%Pd%0eUJE0?#EGw$UAxp77u-aNW!(Lj`-O#Jl`AgLje~D{^y@O z*e5?dQgdf+(a>wtm zKlaisEsOhhaPyV3-yBSz!%96h3Hm%s{dEwYeyFHE%ftQ)xmw9i(N1^@)N*$B9}>c5 zlVN7K<`L!y^k!3mmAYQ!*E{wKM2$F7$!nk&T5lv-C#ke3NDJc`;N7b9RMV+{Y`8<8 zcw$tItLu|;+4d7|ZrX6HPsOmcy6=tyu`;DPXgpSAt=FrPoiPdnVZ~CxJH{z=@*H22 zf!)D%0q}>MmEij0Z5u}B^sL3tHLeviIvUn2&8TXP5%w1rFe_5ImcA!Qrj>#)BS_M@ zj2EFfq9)ndxvHe|K0%`=obdYRD!P6$ylDAo(VKTQ(Q@qPVv^8Oj!*2}jmUne&eIj| z4MOkiIli!&zMh@ZEvK{w%Q6Xk$2*6U{PD3Pl#kg%@4RiD$AF*vdV{nJ!y1ZvlGUC2 zne{Q!9JATdkYX(-cY){&=iSuiA=IvPKPM7;o~^%rrDhm7YIpH`PMwPnEsPtpiJiEy z)Ld`-Zv;muF6U}?;M%qcL*3+HkT^MnJFXiR1e&#jppe8$3!#5jbn_5N#p(*DDwR=2 zUv~}c5%oRDV%YFC1QG?H&Y1#2J)sZZhGTD|er>QO2 zM?(;y&0~J5Zb)FuD|QUnWMN+sj|uhPHhEK`Cr3jyyKR?5GgOnCw78+WzhKHsB~;zb z10QQujtG6$1gd!YbhD=F6->N0QZ4nO&f~6+0fGaxq2O#56Y}71&qdpnCk${g+EW99 z*phX<5(H3E1iQw~st=}OVEYUWJTzcZTCzRRZygJ2D3E*~^?3!WzkJzx~rQ ztM^&o^W4Y;qg^t;6WVt1C{-e$s!y)=Q(4^!F-~TNQ-JIOTH6gM|VqfQGH2g@7qe4D+@t$*JuUa0JY=2ys zerI=i9Gb7utAqWf1E=%tqWTICv{-Aqgmh+zQY9*Vy2ByS0F*sP>s9XIQj5_LvI`_jqGzChuy>5#Isf2M`gszQe0pJqjCp3Y}A=F;j*3s%# zKfhrqQTL3z6yG7$k7jWU*16Y5-GPe8_-5ziCg4C0@fb?(2b_EHjviHHIj-mZ(S4o- znVF@xdWJl1S1x0~foVgL7xPnv@$pT1ZFbUxmW%dVO+7zS%{ zU{-;#@@p?7oxSFLhWuxx6)i|kIE}MGD8y7p_Elfj3JiGwH=} zOi>w&3T-4@alqvEgPs$Neur`3DQ^vOlb)jqOyOXQl87PQ^>=b#7tX&ei|}HHu}yv5 z9@%lFhDJFN2?HJl@pfE z>{vK?p)>lx9?2hy!iZ#yjTX1lI*Uz~cG!uPp|Z1zc}yDGv1gYZ>OcoR#6okl5eOou zoVvq?mCRKTnh$>!&*#9KWVmy22r?-1@$LYY`8@@`Cj`3xT3o-ePcyYxQ7K6>8ODsk6E}Tl38btijs)OVIjNyYX>IwU20~!Sd zaHimxiIqsUDGHkwh(Y-Io;zkFCj{0jGI)47q6#r3*tAukQ-$20k~n8<)%8@coc)L> zkE9IEf7&8E>?l!w6Atk*$cV4{bp5HZaT;Ov$1^=`fzKnPY@3L$g^ik!bzmYpc0owS z*grTNi38TL1v z8oeZl^_MP6GAH2*_C1Qc#Lw#}O>jr8vBx62`=ceqvuw@awvgt&ns3k*Q@lFq4N)o3WgQ5oS}!zlcsm11S&Xw{NvArS+)4l@{9DvZco3d=G>f^# z&^urVTO(<4s3i0Hok;V~wrQyG%amXVmG=}_bun%d87i-MmY{a|`0b_xOU-v8BXa;z z_#yfi?O=?8sA~St@?4=1V9hV8dssv$OAue#i&R5R{f$;=H-<+_V9p18u8x%^ANWg` z_kbB+Swrh$g^f_9H(!Dlp#c z!|RytUVEv=g{PlB3@(j^{mVph+Tknhq}rrttQMUR3ANiS>l{J-fAPo5#T40#{aGh^ znF(49*gL~g zfb)Fj&NAHVS8t)mUjJ%wlDOGDYG*z7`QLY37Z_!KdD{qup?a-&U05Lf0n5-XNc=to zrip@WmJ7+$Cfku`+Bjt8mND^nPNx1*i|hUa$(K~;h+#@5&9ouvEhDWEl^O?~9ZRhH zz-(=N+IWmu3Y8rDHqLmZn?J#V>@6CRWtJw$-R?_JLCzoB{o3xueYt0k2S#fT1YnDi zGOapNM4M2{Z854Ge$@to{7$GaBBnZ+OW#4}Mvc$VS{q0TH?xkr?ksw}yGHCI-LAXQ zslMAo01DO>c$;oF8i4itS)Wc(o<1W>8E?fejxbt7zyJmvr!}lS2{s)ELF7E>Foq?b zwl-@jX-Mp%-Bg^;c;($Hw)ZPs_5(~PV#{<-xB(^r?Hp}aX&HzsMbwm#bx7BDXeE=> z41$%iL?HSnkA62FFDj-mZ2L%-Oo{dMj(h+Z@bbl_;S z^d9>Jf0Ttt0_K@+iU~Him6L+G;yScD=eh-H8~2!ti`RIP~dj_4kAiMOys#k18&JI-L0PvF0?saEdc>?oX z(j_SitRr(q^7{zqNURL|t#$|TB-TvfGf$_M1#8sqbTAZsv=bKYA!e@Xj$zYqmY3@s zzRs!%mOW_n(4f>D2WttL+{)wJYWudeGooMswF)8 zX4_3ay@Im?vP$;hvn{IKJ%T%91Q)X=u0p}M{u=91uFsDDOg`urk$49J0thEubV-ep zQw7nR>?xy9spP(_?KV9qhj*OyKiN!skiIAg-4acq&5srZ&-nT?YX_y`v^5x4_=&N) zI{0H*uY%uVizf$li8wDr+(qiA3^`=MU;*C6AM#*_Nz(*Ql<(hGKs)L5$#2%6f{ZDq z`WtrMaf)rv&hy(O^1$(%!o!v=Yen}nzuF?e)7$X{Akx?_N)DWu)Qe|z{4nw^M zb(2BAeCWF-m^(Y_!G0WH{$)>QVW>j`yZp{rBL`gG2+Y*P-y=!crKwIDNWPP4m^2Lt zk}>CJY!oHwmNI?LBORD+8mA$tgWu;^*~lSRSGDE`gXaE^8+mK^DXB=`EXJ~aQ=(G+T2cH{S*gc3n#Q<*POG&# zUq!RhkM5{oCxrT5D%jVua*)0q5ku<_9W&qbgB37M8;;Cpi6#t~kDCk_wbG4B7*irB zYpB$DQvfkvrcIPh)`LX$H53B0vapgoa+X~qfI5NO$ z;Ch%vL;LJJyDB0FfSO6h<;hEqpwz22K&u0uI(0K{Rr(46hc}mSfKuRxA;mI5#wnT! z!5@P1rfTgQ{(WqclP8o?4>OlLCspqGrvNUo5qz*E-3mg0o7CvmoS9zP}l$?jHKm0W}AqPP(73#AeWRu+}_tK;r*4h&0f~D_9UcD-7$eCn^ zWz~?6srRTwz?y}yKyam7QKfVBuAa>yISA76Yiza(%&Y3B>J=m@X6fizsS+`#&d4vL z%Mhx^yB#^Q`|$LHxa1td^8L6U(4)i9t)FLJg5{$#Mtpn$7R%%nIVV5=`k%4_fBy{ZvO4ir=0dOU zgosa$HHiLSMY~Cy=}fdJE%9_PBo@9=MKkoYkg_h@1nS(*(3~N`BI5MDmk1ypK|OS8 z8!M3NJYxp}J`7hNIRY)EWM3@_Z~Hi{`9m86EigaLlQ4IU4@XOrF)H8Uc)9Ty6xtI@ zTF{fighj(4%RE}h?MhMaX(1qdAO)wFVHCaMD1s)z6a2FwaRFe}`rvY$2bjn{j<+!= z4jaH8wE*As*Xwo7dutp>QWy&6aNMn*z!D&E1&H;UicgvGs?XC21Mqp@^Q|5L*x>os zKhK55ec*Lsu6#gyeRPDO56gL-)DROiYgU-k*0QS|Rd4j(19eV7IM<(A`jYXGNk6ix z?hIXmLGOA7;H6z&{VhUFh$B|NU$OH$LwdKmYiDOVg_? zJ&QrU{IzKMN)iR6_411*6rBuL^n?8o8#_3a^Fscr$Rn>@Z1znejM7t#6)JR=cljCZD?R>NrfUXx+`ly9* zA3lrfggmz;xPxyu8Gn)~WhU8sD(AP|u~`_I zw&-b~4PvpoOFgv(qj$NXuj20b{_|abX(Aa)7zz>VSfsIp*AX6rHj07wf>460v34EsAcnP#qJZpg6}U1v^;zD%*EK zr7cb^d@thlbSiEkU{=N^zMU#2YUATs(tE9^lOB;z=CW~vkVe5nIF6@H)Rz}IrO($@ z5O!mRR*HmN=YW}P1lQUomw>Trs0XSK7^Q(>Q11`}#;L}LWH;8WK< z;YdEZ81i;IrQb0{_Xc}AON?N#Ev95oZ~9lBAt!NrFc!hJrFB8O~w zwr#ts4A|5AXgyVua24d}sldo%&`+%l_?M@O$cKZ#%1ZrVvJ?26<@?bu-{ex{zO9(q zKT?lbh8v;(p~s(g3o_8KQ;oW)hPFD8WXs%2E}3-gInC>^2x4{Ln8~d?LkJ&VqPzc? zySgIUgB9yUJo=>4U@Ke4{7vF(6<3~;S)&y!`v~l}J*mGCSH0v>XCMaB?8a-=iesN> zl_zaNLio_ko!yMaUPPE%CIhXT55b`B*U#u{^%YC|rBD(IRy+f_(6O+jHz(WSnQV-_ z<^5>tUeE~}?=tg1(U|zC@3|z_0rC1yt2{klZKf|p_u&PB$Qw#E?ErzHUpRU}r+DIY z;o`+KYFGNwPv`(TGL0^^hrIZw{e|;uZ>dI~An%MOCslw>jfFP;9j9q19R!I(YpCc4wkhQxA z_^3!$LyBPqA+5_)lOmg@+rW0%;u;52y46GV5fb@9xl!CrM_Ua0#)usfq(IjtT;A_u zx-E@aJlWwWO;lr)@A4Hnnj^C8>w_?$p|0ft)P1`R2QFMohiBgjxCAsr<_ z%160XCCa05Wj$r8hpqylW%AE>%#_FuUvLXMD~vEn{a0r54}bhT;4;JZ0In1 z&Rop8Q24E|Xh-xkPN3;4+>lD*JJz~2nwMdTp{=s|ZDm*Sp?s)FX*czZwc12+*GEZO z2HRUn7?ifM#MiVg{Xk6)1LbTDhu1mQ)=8siaJ)TTxs9>D54pyG2dq39-GSV zWxZ;Ax~#rfY=jale>DuYI4S9dqUcNY`cYR8=lm_H(-%~l3(-m5zkZDdQ5tQHN(5e6 zRcA>|MET;DVMGo)YZ#e&e=dN*$ubX#v9mjfIrHYcaw^@{=jY;tcq!VU{3oA96}X)_ z4j1MAAUS!g)p<}yBHP5fugGe$W%eDvQZt`g^pK$C#|myKksBsmMg!7tp3?Xil-lNHNmAwnb&L}P-M3r0r-{?W|at52Ke7Z zvdd%+_f`U1N0e(X{u-DhawL3j3JGMLeZp`F&aAMA;q3XIr2Iitgd%?3q1c@Odjaln zY|~rFSVi-*{T-rllhNH@mt^DfCdZtDVFmbssHVozU|t<>f`36WufeSlbJ=+nV*l~X z!eNjJ?^d%r*lT()0A(bg^!Xkj?gM7m#oT-URi%arO|r3DGs;ToTvieM|B8$Qw;ka= z+;$sJrTZ4WFjDqtRFBTMO)~=54q4CQ=%0B6_PSavF*?om{lmOqa8aMYIfC#DnNCHs zMxxK9f5(nR?z*<)YWFRQJY}cj69S3g`HnTq&6!x4N_nHa(85nMZeVmsM$CyIVQcvj zIhZcuU-uPbX3*7A0_?Pd7Tx{e&RSDR^AybPFqCB4bay^QtLVRzDJo6DF&)e3-AOBE z55bHkZogcQN`0ZA7@du{pj$!5$^wszaD13<)O_M(=kGM~#Lcc*5ZJgVAFAmEo1tu( z{Vna^?fj0BZQEkiPq#=wYPuAnKc3^X8(6=7Sq1g%8jaBWkwHeOmm`9}RWilaWOlnX z><}~kuG^xc zK=RhQi5kMl-8_MJCipWBwoy_2jmHoCR%_8-^j3+bn*(QJVn73iw7XjEZMK>h275Y3 zL5Dv#i=p#nojJG6YxI*^gY*$=_bunK7!x`A4+D7F``=t4cQB@XQcZXqtN!}~CoY+m zS($aKz0FMdAgG`A^U)<#QSg`&#jkJO(}~|FwA|Eeo>b~zic59SQjK_{M!z$*^>5Iz z3ib?s*t389K)uwD|6+!Gy(;N5h^baRQE@C{)!2Kb_{gO!`PDokm8(bBp%1*(6#++I zaB7{lkouPG-h8gvh3sOh5Mr4q8DV=elxOG0L^Nr41&j7h^AYX+W6qi)+Qj{gX+y98 z93nOxv}*fUIcwQTzy^s$CNC!o!iBF62LwY7V}trv1zap|{JrB3f&uxKFdZLK!qG_i znXaR*)MQ9O$!5ujH7myYQY@jcP*V9MpOezYw#C}as#4hL?JNxvFF_Qo&xQ!+nNGD( z*@KEkkp-I*qikr|__2u8%3CjJ{pZclcbquEuDuuck!pKlOlcTKj_k|%^Nlrn^M1Sh zF5s5rYgzDR#wjBTr*Uu)qzm&Hbf)4sqdx|7SuK#sSD=A5l!+_fI&J?BDwKCMmlrV= zb?ZS3G-MZXJ=Af8)5i4Yp7CPshJ*Rbgp%3o0uu4EJy2Y9zYOqT+ zk+ig0Z5PW<%%cWHVnUN)KzBsbTl4DE>u4$9(!~(Ys4w4rX(bUbS8Re8EPL=U=moVE zcmQ~M{s^(D?Ta?`W)0^xn2Z%A<7<%A-r9f?LKK0y-0#YJPg&Y*URn&s+CmX(nnYL# z@i~$ox?+Z}83zz5c8N(6E737Q`sBrRI2R>H#7+EjW1JTp1WGruZReH;S<<;F0a!H7SjPJYtjf(FVjL@I={tYhDC&q2e*^H(_*wPR14NJ6Fh&}AQlE%k!VV_ zj0Le={c)dM_z1C1#XCfF`m&K{VaCvjSqw!f>kFEK`Z*=+?t?6XNf?2PC->BVQ~nm} zT+Q$TuZ>S9;mQP4CGPp5G(Cq{+GFn(I#LwoYE*Xl=g$HPF=7k#riMeuOA5+QBO)$3 z^7#3xJcY9k76@-i7W9&T?ST)FhqK!kNMV15bYw2lt8u69)Cwj47K8(&N2Hj!gF%90de0O0~`z$8J`Gwv1Ba^tvdD79u#*T zZEg4l4C=13uA=pN&U*ruOzgsPgBxVj5SgPofc13VxV-hSjw1fM*Iyw1UA+mL0ju)> zYao{dj+q)DY=Icxf9t!bZ>O`jyO9CCKf{Bm)HcB<0#M})Kr3iTi$G@ON@BE!D7;0~ z-s=IwsE0&~Szg8D1sUPw+$7-s#n*@7PoEdze+_aYAhq<^26}`4<~5HJvW04-A7S6M z7f?hZMnSeK1|$gE)uC*WipxNd>d8p=E>$jpkBACR8;O<35ncD+Nf)hTI4y?VfNfA; zfCUYFWWu{m=@W_{15mHF(bFW}F{7>YJ04w`oH>hd80?lq%w@>6TEUT@`Lv$AHwq=! z(n7$}k1fwQv|mksyisuf{R!Ug}bV^Ls_f>Mel>N^HtQKbxqs3v7Q} z1>d;ibRML6wVUqIdgx3>Zd+@wkc8fga9^w_7T3UOqN5vjY0{auv!Y06l;Ks2n)|06 z4qQ*M(@-Ir@QzniUxjB;NxpzuA@8UkA`TgYc>|RTDk{yjNDx`eJyi@}JK$Sjf$wGr zVVnEa@tonWdZgiBjq8YQWR5lQS@XN>4q^p^f%}BtwM6RfOTAzzUNhO|V+Y8qUj8%) zeSo9nJbiEZj0n=FHY6wA1gjr|zXH-Kuckkf^80z`%1q3&+Qv46qDyv58@1E_|IPj4 z>TuWj?sIaWtnM0d4mFQvE`=oiEG)3@*H)7S2}-py;$(LUMdhr6X|Q?Sy)c7FKgex% z9|^8Q#a6*WCveH)Xm}sc`ORtoYmqx*7V`8`OYAIv;86ER_V7J&rM{0gp6;Pk1OTmy zXq(j5-&dODE%%YDNLjoN_dK&lZgsg~TN8-dn?&dBDm{IQOlto9MZc$27`;Q*`ilr= zd!WFmHKCD$D8Ry&$a&8HdT|Te>cgNqZax|d8;ALq=wsh0?atxn(*(z$=xa|Aerhh? zlncEre84!XIJh!RA#-5E-R1H+&JJp9K;s1@0467>Qo{~Eqp0!UDVt-(SL_7J-5E1E+tP5nG2c|WhIREIgV-4f)r0x^x zsfV+K{`jjk!c$m+{NYY)@Y(7NJ$^`XcdU%f%ct5{wA0^Jj1;# z&;t6i1M0=LhR93Ss!Z5+K;?jSI3+e@?|)s$pga=EJLwmfxy`J{GB3bw^8fZX#L%pA zuR$tx_(&NE`}eweoZD#A^wZ*kCbk}fPS8=1!-k0;s{2f zwDisA1w?Rxju2h=zr3^7&-`_po{eNQsd>S=HzS#a`(K7}tWr_v45eIoi`62*r)I9P z4)v5PknJS&2{1<5K6n>(B7VB`g%K){F&h67l#wNklIFts!G3EslI$;zc_SdB8Zb%G zz^ODIbtV_YSi?Qbqu@n!iQ+2L$`i048bv? zgWvr^?t;8}c>#kAru*~sx>{OScCHykzPRRccy*GR<3@jGs{Q#j+CK35N|Gt~#mSs;?bj58?X33x{5t z+A*)8K+_2JDp%<8_(HOkx?;E?s#nr$Q%^xV-Oqy&>iZ*nPU0W$F0p810d0tAPjH}c z4Aj4xVM`5U=vfhK090Qd>DlETz^f=YvPr1_5#TC7>6GB=O^?3ms9p*~^gNG+`D1Gw zYsHSWc8>K!G`RI{6^C6u45Q$U`Xa0!Q$wT5{5-19sTCY01h9L^%pUEm+jWWN^rbDJ zIdOk8L1zcWSGA&KH7GtY;~Xabs;B72`7l6^3YIK1_Ur< z*E+89ZHYr}BvW4aXsqc2{Uoy$I6KRRK$GeZPhf1Lp4CQTykQ<&Zzon~aL<)hoFj9Q zmDTChvfYKN1=%uDMI1Zsvp@sWxmzTk*M1HfWGE`2Tv)_)1Jr5(L&fSoYH0PIXsl{S zTqa$v4vIs#wWmVH{yRxbztX8Vp=8~AQD?}smYtIpns28og52Oa01#m48Avi^r7N0Zvy|Umw@GynntbR$J zP_eytO7n=cR5+OZHXElSB+Xn-^j?m=aU~)wO`baxDhD1L8-osk7aU+@ISD%XPg?sy z^w?Jk+RaYR#0GF*$AUOG?jnI@LQxShd&vcFuE8gWml z{Qgbo$bA<-vS?ul&+BcWD7YsE9?;=dGrk4Be;;+?u7tXEz9CbndZ;X92C(%r?pzOQm!1HM6<2*yjjGr>oJPd3My83oq08%L5Ikpl@RHJF* z0gBb#(@u4W7T1u*_N_KQt-eJ1IQrN#eGZ4dSFg;0xg)|!n}nX<_F;c=5d^k^oGh%u zNj`85HvQi}->szE1s(|z7O*?{*h$=<7(#8Z!&)?hzAO*#^-%fhV~s)rVMME#&}8j` zeZsA3(0+k5xT++BlU8s(lTjPaTYtz(%K0lS@z6piR5$66RG9Q@I$Gmf+7`1BrU6EN=!oK}E;5QdAFp>8pB)sp&*gB{2!pLC}) z*PW^z_2K_94PFLq^IG7~faavtmT1#Uhvmp9&yYV*4bDl7Rsh0U&jifhXjr19ds7;k zqq4Y(=dFq&?;@{M{-&OtR!A`M~-eziaDZiP0cb&)-a%3^wV?QKWa zP!hyVIcW)|t?6AJr%4$oH&#_C&w`6OXMM~g)J|zOVeJjyDYyFar(Wx1 zEu&N47quy+4YBC>z{wn-_N1F;3X;Ms(sGu1A$sEdzRIZ@E)Bj>7C)2lzHdmh^JT?D zc}toC1irb+oxD_8C=7V*Vic06nF%EN0+BID8V}EQ2OuzuEWS&Dv zTrc*YbIW>8SPpBNaP#a4CRuqJ%&O4*eJxCR%WqN@)2++=n;n#$3cj$P?$J=;4K|l! z@Wq}0#v6;VAVcCFdIx4Z_^G>P0*WQHHn5FlVWS&qRBTXTP&?pBZ^rJvzz4tfMbvD+ zrO*K&T*y%h75+`?aXyAMyjfL0SCo(r_}1%u>55ea0LuE1*e#X)_(CtPy^pR&30z?$ zgvlj=e;!0i;G7lka-<3!_o=BC$6FAL2)^VZ-s#fL(K9w}L9xYG<4%C;N{fj&xT}18 zP$=@q&rfNQk`PobDx)(()QP~@5t)WN9S9$;?-pGzj7AJ8-{~G2N{AM?+Jh_{j2FlL z7Wb*ZM&?PU0A?QhOb<@b{@lNYn0oW%orOZ7HLl*3k$fIrd#4kER1xZjvt@hLdthm# zAU1VJo#7E{t%y6rnkN-B1{}p<$U%DUm7B`IxGpMEWbzgRZ$ku73c535&@B+3=${gV z>bYWi7J?ll2^fcPY=~ySMvsU16Z{zjaj%wGTY&TY9Yhke&317b=Y?b|Xi$8VB)dYM zwky@qjY92kmzf4u#L+2Qr$!VNLrXK8USiOl88n$6(5*V6+LFnSrfE3v)E1TwJ|@3I zJ3~i-GEZF!05?F$zkic`nKs|-F#|b+hw;-KUF87!ET?xl#s4>jHx;+xlVgM8qm&9u zO&)Il247H4nPGa;o@%L6as065T3%Yt>4WsLI3kt@VQhi9%PwJ@Pur$)RLZMui*Tj{ zf-s3{Outjb(3_efhZ_}_o{XZ^?~K|C0z<)XGciz|{zCf-V8+WqPO9t>sgA$gQz^&DDQiaz%fKz_uAJYTUnPg6Vxkf+8jZE|`qS1K&F z#b(X#>T-Nrb9>^ApNn~Nbwck)i9E`5a$uM+Admv$^jNe@19A6&caq@?S7hD&mPJ0| z^o3kC;}KAsR~FE4(o2E9x=gkD?;h-2MAP9O*OlUI`&BDn?Wiqq`a~-#Qm=rr8_Pdf z^$+BXJ77sUm6dmZw+hrc;AMeRSIG(_#_bES@6C^$Q(Csd*e*U0oXLsE7*(=ISA!mc z4$1&D(dmno#OvXn26??JpWNR&pctj+Njbx{u#X@$QY4i4kZU8X&Eeyy(s&F|&}w&U z1;evIe>Xw@7yS{&c- zwB7XZrId)FF-%5CzQ%eHsK*?Geh~_PNiK(C>bQHz&>h)SoQzpF(qZKTK6*x!bq%10 z9Pq}rRjESM({nqMs=V1ik8EQ~^2dB;3%MVsGmom1MTuPgj$GpBY)1bD4|C$c&tnyu zftuFTVo>qKmfL04dy(`@$ul$I=%f#FkCPVdx+~E8LL>!GsJlFPtR;m%bC0Ty zSeK*VwTLiD4VNtDik-1>0STs%mJf=LMNNn_y0cCCZyK@p-=9VZ>$BPUP}!0(z1sqx&MQh_ zOI<#PJE&A$@>jAB-*ft24O>2fuxYe>H>O?z*sQMDviKGS37}5b?#7{A~)! zMax(-J^2pB0n*GQL~F$m#s;!ZqtpF7|*y?N)N&biv$LdfGC7uB5vNZOi!y$__dxEEUvsUN(JOxu02YAi?nYs zPHzYv4)vHoVPQyOFWrE7iB0!6icHV$rjO}R&Vm~?E&CL?YtDK%Cyd|^)Z~QZ6;iEG zriapvi^ywSr0=2$AaxF<`7;H8$ycS<_L~vh3m}n1njvjJ$+B&s!#an=KG}nDzS#26 zHG|y#arRs()sP-=aRLS7My{21Q?L5f8L8w{WEU&+%QjBdDzJ}E8Ga#-MI!W|u!$P2 zUgoB%cPD621Sx)@PZ(p4CVZJ%t;l!Rz9_W0?nsn~}ZqzNPFo`E%96)A8B?$`x z>6g%BGA7RiC=A3tcl)r0LqGBwM_nZIO%VQymDIbJa7v-tw`+c4Dpluwq5QpX!UUO{ zUU-Np5ywC8`ld-=j1C)oo^A|F5x;D^P>;e-!e!DUzt;+9n$+`XcA{{#E_`Hp_eJ?7 zU25}isetRg9w(kCU^dbQ^?2-3EFKAKLhq_Wo@mr7@{G$fot42S*&M?vQC(e~g{Vsa z+o6ecwSu~vs|_USFWuPL*>*wo39`3r7bz&lA3(ZEe|heuxdS{A>iW`_W8}mMJt*}Q zSwGH=S(Bf5s4(+OC|8*`0tq`Z49<^_n3M0S$DyGS>N#_+uX_CZrQB8Zs!2HG*$C% zU%%zg*~TWBYwTSpuWK{SgQg26D>{D~yfR+EcMBh!-T0!ZSm(d2wJe%dQBGD{aZGkI z8^uZyW556IC^3nER22ib34+97Fo&wX46sr|o`cPruSx_&w2Vf9?Z9xW55is6&(Q#k)HTDi>n^XLwGI zVkKzpkLMR0ZD(gmDTc7OC&syNMMq5C$l|!eH>RYjE@v%`-divK{?okLMXR)6ZyUXv z>)-@+5yOy#OweVHhZQ>vi&Z$~r^ozOE>GztZo5}slWZf5cU+8~h2Mq5TT4EoGTPq` zDg5=wS7V>#VLy29v=acHp$V;2imHB5_7@7CJ5n5r;T=6!y^|>iHz!3(?7d{5vI&tF z<+ZL@?iNKPpRQ`8Ri9&G$s`_`z~}WUcZR3BQDm5TAV7e2S7o<8*eidZAWK#Ck1wWM zi4vtloAszmMJ18g2~23sR`NY6YoOS|5Z(V54a~x|lR0Q$OpPYE>A>P8h)GC4JeBH! z#^OW;8$r+_FU?T&bP&dcq7e`j6y6}BW!V<6C+a)RKi%FfAE0Rk>Yi?NRw!|YtF8iq;4$|dC^_kL%EH!;VVUI2(DlMi!!JT zKTZ_5ceqV~cpq-%I;n69fccXtxs4Th3U3e0Sj9ZpN#8Wd;Mi}HR=Q(@h;PhQQ(!DP zlIm0GhlN}{Bz=KafQW+j1lPIvK25UsQ`>+<;iyoR^*Eg|V zpF!)|>MD-=pWp z^r&MKvjEh=Rewi+3-29 z0J~FJD2*E!@h>(D!Y<03lCIJ#_S^we{*q+GnGGt6_5YK(3!29=;HduV@N3bTf^oQq z5Q>TJUJOXd;*8i5f^NP4nfu0pQCP{!-V%;&rD+3ur>%1gDDs!?IJwf8tCXD0nUa7$ zlICAU7+EC)tKzZBaV>;~TB}%r_HJAugVOfznnw|+6Q`ZQ4y^1_(jrs`$$MJM-Qi&J zMk?5^!jC2!SKLEqKa<_e)nA_d6%1aPwgUD!ih{Y_W;flcL5u!N+Q&U0hkZ7Uum#Uj z3x_so1rkw>M0BR|LzQqFDpa9;@{bQBJCF%H+0exQZIU)%MSqcBLj={D=PF>S0r!X} zCNJDdPT5iJD-kW%^@&BitQIKhxz>38K^SffHsm*WOx}g=(`d#@WX72b5*pe4VS%}<7kd1ij z007)|8Azf+vlK?L<}0X;_zJNVaY-LVTnbC7Q7PREoF)7Wi`@Z0)(4T56VTf$ENd6a zr#9gNoEPEpIm~k&yi&lCM1_V5$OM>6o}GhguY=qM_JdXTp1!{vgodAfE2p>t)p(U( zcCZZQrK}lgkF}0~Hiz8tYxFX+L|*5ctG;e2 zDcM?1g!&s=1;NAA{{_hCYvhUFjQ9aDmRQg~g%4K+oEDm|5g?=N+>5Ei+!f@HPXvDQ zgFI5;>1dJ4J>0}|g{K71Vl-5D^jCC~ND%WmUWeUc-=EqvRA(_Qk5|6d{mWMXnv$`I zC_XUn>*!6osCwzzsSuxfIucx9k_nk@NuZH9|AM))LOfXMns{Tv9tC3_@yQ_NBr1x1 z!DFnhZfG7Tyng@y0{|b;HnMtrx&0sYXeS6?6bl`*FsyZKW86MfxcTSg-`FR9Y(lOa z*owK|rq|QWjE#$n>NK0G4*`$KlT71x6qmiSU8NcL-WtBq#sDn_Eap=r6Ilt`_=Lu&wT)gB=Lj5v-i;AN68+n!0Vn*?}Un9ksQyjwd+rg`_ zXmBFE14(O6u5Y-NG@R-zgYD75LPECtVSRIu?Gf&P6gBog<(=LDnHevuu23< zj+C_7f=cvknYA8$p|Ly|0iws<% zgoZecO}f2q{VuA?%FF=rfAotMK?}NbUePjp=v?mFH&Pth46#6J2EO#z4o+4TJiZH% z%aH9id)!0GhnyX4XvJqnula}Kf2o04YAl-vh5Ybh__2?&Wi&F;6vDJX?tx;T9PP>1 zbAKQlHWnVhm>~Jqh|h(Lml+}WtUcaUvL8?Mh&HmOd{x1ZqHR1yvxA3$>wa`~r~5rx z8vKWBRCO3DC9_;1Rfhm0WmG6!`R%mFiB|(OZ|i=oR)VA~As&W*8gAz! zGLq(s1?TikqW6+zhS*bUW3^HHy!!4iej4J@OYK>s4aFI4h6dm=1A@cX{1%5KRJ*KF zL+Y4-O>UC`FJ3Dvr!2eXq z579iHSi}%Ou2;PaRGf!7OO(GVTd#?JB+h?9I{^5?>?K`M19^D_qy%v##M$M<#bJHz z#jT(;vbZjNc3u=Z6#k9{^KHF)fNuTzO!X)Mt%<)~=fIurGUSR*HRU!`DYu#|8-U@6 zD#EvSVwVdo2RP8l8I>;D&-;zo+*BcP62H>rk|j+)Hk~bGVo~iwir@YVXBbI z21@i{XQ~cj+qhiHL=0S_OAt=J|J|RkA^v(hM6F?2tpZ4Bl5w04?Q~`r0#nE6fl;qC zPi+llPY=2@dm6|tl2J|C#GM(+ z&Gv{SXt*CIgrx=PwSfqV{eY;MvD42}zI7R()icSwQk`ZA6fGeMs`zD~SXPt-Oan;j z`Tjiij)rgyi&N^nNXPS8q)mKHeEF2*tyWlX|NjW1fS$^B)3@youZ(F?!%dHO z`ABE?Ryyzn4477+v^-`)b?ZTMKJ3RkFltj1kOK?|d z5j_KgPe6y`jG_Yh(C%~yfV~BvCy~JQg&XXC)_t2x3(kcJ++Pfo(Y6g!Bh`FH>$8Qy z8u@ygJq~|uzLAU5iP6BfV>5n>@hPpEffN-6-`JqT&4>db|^MHsV{IsZ=Gb-F1wx%ASFVM%KTVp+0*Bp`NIl zPgIO(9=)YW9RXiZ_0H0R_Qtl|Jw+j8d!Qw({gf@$5D`hTncV}v`M>Mp<-hh0lEUMO zEnWdXEGL?49&r8ud0b~mX8~-di0`}QqjWHe_U;iY!gPy!z{8gk2&#lB$yaX$;`KKl zi}mE+|H?e|Ho7W%Hiob#ra9n(g!kQuQ?YeTj*D*#keiF9P_4N>)o%O&HQ=F{zQX$e zG7?7u7a{=ZYx6BL-69T*w~OkYwLs{6F1Nh0eKRLH`~c%n)byN&oX9Ks6k#zwSv<{8 zmh>iA*wjCwl9sUEVx1mnIoc>eQ*#BTL*HOflx@pJL5onhGtOX&_*sseViA$rCtmZX z5y0;(X7>#hZ^_1TQc%a+7N-Y`J6xFe^}oHeAoj8soa z(;o*ozQQY`v1MWI?JA0+XExX~!WPdklMIu21>QR$I3^S}VSRb_ZC!fnY+s=Bus6U( zcD)0cznpO)4xOn47}qHWQ_Ts8C>txa4Tx6o$nG+1dDLVhYpVU+d!FaxJWpR07#eI*HwHvykh=T|s5*UDxZ{l3|#4u@+@sZg*F-=x{z)wBvxFt5H88Ef@k&{I8i< z@PO#Zhq4&PIXSFIRrR_?*j*DB+RKE9gk?SqC9d1uhxqUwwl#si+8wY|<4K~8i^CN( z@5P4RSo1OO{r~^}|NQ@pvhH2{e|$mBj+IiSn~9JBa!`0`anZ9Q$(2z@1w9L_R7AzB zR`d)|BE1r19!2E@Ryz9O4vWtNc0y3=>MwQe7_g_mv_h5Q+)ngZ>Z~AhZDu#^+8m*oImcnhQ zVah!$T`$|vZfA=Pxxd7Cv%PWDNoZvY@bJbgZ9Q^{y!NTN4VVcES7?&FdhJ9)WVgdj zBE|?}3%YMl0S2F&dPXxifr8`5LnM=P!(z(ncu;YG`SVS&9iv@83?I{e{ee)I$Di{_ zaD_$kvv2W^zsAlIg!z#En-$>DzMDPAhMk2IirfZuZzV@St`t{Hj<59ZGP7-husJS$c!*+*7kNp-hVi@NHA7qA$#sog~aBltLCa zPB$r|y>>g3?wot-igt(+akl$`pgrjWG|Ll`3UfL134i=cfftiMp5WLtGDyn9zbi~p z3ck@8=o^1oh1La=Fh%{{t%=MKxa3Sbd%c?pfIJ_91=PM{Z^9zjz;x%?EPVdX2L9(_ z?cDF37C>;*mRt=NUi#rILh>xz4Pa8qrzMTbe~cpha3A&fCloVdP^xnhw}lN5|6`R+QphQ_mk_1G!?ViP2uemqvCiY`_Xf6UO0a;FQ=3Vg)*?!v=@062lOkU6( z)*1;gfI>se_tH%`uzu;!E_Fe`__#{&4+0@hWWmw{i%EK!ZLZdCIf;apVzHn0iI+th}; z?IGHKLxR~mWml+|jYa4ebkvq*6gO|R$j$vppQ#T;Hd8 zDw&9e3_56q8ufZ|sx12U1@N%U55ML&+-bH z4ww=cA@?Lam72!U70#Qcztg8m1&&m)-VP@ zRE3&spZc3K#zT*M1{G+yTCdo`tCDGPig0}_LJ|L!bIA^^~r z+JbR8JcUhj=){4|nw;kSllMYliNMw0xx0CHec47q*^{Y%enV#wR>=pjz35r{B`lq- z5Huxg-%4C>EtEZE`jPXhVkP*wV=OsT!z8%XWqC-cs7F`;3sUfmaw|89;7Mz0%$P+9dsxcW`0hs+uRI^9fKoJ|rlCS}aqVOzU%ggfG~4YVEFN1+{6JKl(ez`&f5xpE*>PXTDz+ zg+W|W@$tVu=9q;)99b~a9j@cvJ_$E4s!G>iHEsu3w}L{HAKZ-60Neo5Az^YkZ&p^} zOjJ+BG?}Xv!U?@&z~OBd8nlVTS|3?2y28lNUXg$Q1Ty?)cZ4-;4>bwv{K0vFkPj{OX|16Rwv+xx6S8diX8GLAO658Q(i)pqw`7%Y=}BUuF-I$PFvg8 z-KZPf1~6B{a6EOjnkS)gP6@m0q=lIAA>LCG?~IpmTqb3OT?;5;M{vf}!Hdj?CfhwU z`4|7SSrZ{MI1GZ*8!+on^9%>p;KCGjL5?HVq!4H3;7YwToM2IDass&8?;ADKX<~Ba z?$snb;r$mai0ZT0YFLW-R4Gvb$_1NUZM1#~gU^hRKhx|Mr4PVlT=gz@+keqmKdFaSzA?WE zc0XLRKA$M4>N1LnMjNS7!AmV-o(7V1`mTUkv;7xbUrq^G!4Wx<`pCJeWNBWk=^)wU z^xWr}RMc&~R-Iu2{HBU33=)t9+<@Rf4=N1(5>w4x$>Zog_6~~vZxDa@c;w}*OF#=7 z)UQ3l@U5_Hk7F>1!$-zdGn%xF%P_IP&6O0|r`ZH# zvYz=d`d^@NstYhbxzKv+7xV+~Ihb)}n;_^>;DdFTN5Z9>g;H|K9(Mr2g`syP)QC17 zQ>8>8K~a7s5tf{usFxwtRx%v^&?iWVgzkb$quJGYwx;pKx4PmY;sOB;c%cag)>OEo z{NoXNl}cvWixB9hKQdO(hMe?mt&HUit(O2ft>Z^`m}&{^1GgZtSj;nCPy|;P&m37a z3|cH_k9^p)k!GM^gW6I?dyXv^lxJEOHAbyEmD;4_ruKc4jW>#Ul|Xp7l5T}kUkPex z$NIHA+UicbFB4cwYkPSf(+fGkIq+_J*LW_-P-S)?{&b8}!U5W7k)SsbV+)YmWmu9g zjFbtW;1aOVK$yUk6V1IJJhlN6_S3R2RfRk2@Y^^3n^d_|v(JBKH`3)b{$sLSzi_*9 zHBqKA5=%03AOGHY)w|2E#rzlj#7sZ{rl97Z0ZQq$YAB=dZ~%eru9*>Sc-S-o_x3f4 zf6ZekoyTbyB?TYVtR?^SuM^mR$SDP$O&TBG7v*)uZoWHp@k)DtP(f+E4xB5W>Hn|} zVXZMeyMCgriTBNRO1ktAe2iJrHp4mHtSOhCP5bB-_^bkUldHEDGKn|j0cUS?3M_{! zz9I2B0;|H~Z(ibBHJFu%sDjehTn5$$t1fo=)2lWPQf|bxRjR1#_mU6O`gJ+J|GZwV zm8VFi)>lvI!Q>rZ6T~B9ZofS?a6W)NE>~{gm(B^&dsTcBe-qZpp@aDoPpnT4RpK^7 z>x-{o&^ntXb`o28VCfCruB;Xy%g#@L=21K$)0dn?yKiuDKpDeFJ2e0`ZogsGiMXf9 zJ!a+G{T2)1ZtZIX4iTO{mQGdnfk*zzb&wWSeT<>*F`AkRk|cq!O0=_FBaNy0 zlcsBe zENTxfiU5UR2JlR&X(^%w0v<5tFEw}^>$rV0OZ@ox0LCEBJ>ZUe9c#@$odtE)Bo{Ul z<@PQ76A6vOrP57~VpoLX-4UBPl!i&87tdejwl{dQe=&sThajkbB@lBI}XfAI?fElOd( zaUiV2YpF$Q-0^;KN?G-vi7)V9FKvbQCY>soJUi~%DBDWX%S42%&=E$2N=wg?Cr;79 zAQ(p;ib5c{7|D~GI^PEor{h(tFO$+>RJs{o1tBU$KBZ6d2xLSEP2P-O&ZZ0syFJfx ztOtQ5I^E~Ew|=tKkRmD^U33#k@2vL`+S}v+Ik%a|nSX~$sA-~c%Vy(15`$wg79R*P zf&HZnCUT^h{1zpYIPN_m&=t~Cd+XfAj>@#uAHmv@u7LxzW$+I1-u`GL{12D)M%%>E z6&%-S%8?VYV?_l}WqhW#Li|+k`3uR?l1}`FYaJQ*`NkFX%a7qiiI*va2ArYsV1hI8 z-VO{iYAfAosc{zLP0I}TQq3B#FrTAw7eX^|ti%+Z2y;*x?REJmIBkQL@7!-nILW3b zPL%9rt}=4Vn6rNJvQ*F!5jHt#>+&0d%j!EZATE;wtH-$k~$rT&4okT$=nV4 z2sBIC!wa)$gjSH#@06-L>VY8Jq_LFlo=BjWw7H~`l7FZHtDtnP)uUnX&KhGbp0Ar8 z2#Fh+nq5O}sOZ6V1A7W_E9YHacq%nk_696f^(1Hr|3Ow4j0%Ns5fD)fvFDHxH??FN z?1%cxX?3?X9gLmkO=GB`BX&k`hD>Exk)^4~!Zw)9P^5uFH6p9pbVu z$im+uX(2|q+ox;w>j9WzxO%^A+yV&5k_alFq1|U-EwR)@TZ~+N)qnmBcw`$7@|Kg! zw;!{T$%WiD@EK(*IclPT57vqEhKV<`UKjza_Fu-Bt{iyCg1-`x#ow7YhF!vS_0LA6 zWsDyZw*NMOhAv``_DCOaQ879)Hwss70&TpE`3kf(bn} zmDU?^rV-G^T3D3gup(CcCsjXOoEWkgkE}L4f_dG(NXT2cS=JNhU;GCfNrmvQ9gP-*%$kwBs^FZ08RN zAHH^z2tOw#L;={9S!vnfhYr|^y2`m|6ywEU5W#DCrnzr|bMh{4ke8>H5>3c}qMg_@ z@faLsCVVxBCgpNe$n%{{>o#WoU!r6`2BQ8dc?eFa0fG?i#Wbz8sk@T1X z6l7t{i8gM%3>F*+KOb$MCa9w1-5E*jLk~}%bxR+ppsex))CQwg_XykTJZE<_HJJeB ze;mLC8^lhB>aTY^Y{hzvAty%9_pnb?0$o`5g)4b$HZ9zaNm@4aIw}AyP`_DD^LXG# zNdY|}p#UyuzWu~TJqdWyQweMlV8Ra5|M3d{x$ngB=(gXOGSj-t&7rilgCpN6iG~4V-6t%Vv!N3+|r0}12 z!e4b#J(){Y6j*iG5}a(CZ6oy}Us7&@`we*Qfli#sj6{CI=?x~+0U-*_DG=M9!niqE zSz`F9ccaKwnkW%sH?KX*?JOU(-2y{1qhFA~yPBm2o}Qz#yN%gy%dDi3An6&=$B&=7 zm1?LIknJl_FRnin00p7|X3jJe9g)kO!f=YAy%oF|>Vi0z8^E=Vhl68{In9MNQGGm9 zBlvHAAyQU;IeznDTln|!)*7HbD&zeQ0B@Q-7FD89(JM|fo7<=uVd`dw@>m2Lw+qGF z=`&V3ZH?h`P+{t4tvkkcgF^Cp@L);tF%ZAD2XdSSN(@xzq{JXdXajOUgew-wTgVLX zTXK&#ab$R6?9MwxW4A4{MpHeGW8-J87euccOJqYjf7Z!pd1oX%1ExC|3aFRLECv%E zns3y~7Q4?of_Y$*?o%3}Uk9|-)r_jYr1ib*quhdz0GajnQv3wo8Xl7X>Ep{fM$YS~2c1QaAuxbN{5i&Q=cfyZ`Gd z%%czqR|>gQCNZFbdR^09yq7DpATtT{&>#9>62JgpByO4-05P)hZFKh>-7%xb^2@Md z33VyVq_Q9Wk;~ZzHL@S?+qEBW90l0IM@07w4`ejQ+{r5b3iVyow5F zEUGQ3VPk`wogiz-Du`hjo9ZliQxo8z^%LAgWRBntq#oM-s)9;5aKp+{b-Bx_cD{;^1bbgM?pZRQSnjhgh<|kp`&zLt`<^qX_Kzh6AU|v zP03zHjnsL?+fjW)YjqJ_7Z&}ga{xTXH+&EFlQ_Kkn-52mc+Gmy88$Xx1nO$I6~jx= z?-YScakE=L(?@s|6H)SuH%x2S`H;3;P_EGV<HJvR6Kh z-;q{1Lp>-mWdVXAGl=v^yqDvlPaPR2S9zQ*Sr+{MQPD8UU52g^(J@{ubL2D{iqz@sQl^WL z^-tZedryi;deElsk0&=|vb=dl&>x#7=!TKNvO_EqP0p}7TxP3Ft)k)(HFW?$nvW<< zJVd+0_#4Dz{Bus5b)2qX(5nYz`d?%&Y871#&fCM-t8{$g(ms;zJ#XX%Eb1lWbdVX%?-js|ka%`*Wo_{yrcR=R*jmgKz2Pk8=__Gh!?aVV*Wl)w(7DIHfmM?C}Xw-pZ8M=qNT$o8` z*LI_88LmDMi=h=end*O}aA#2xqmlyou3JK zK@;1kq#eCSln#hQrZmkk-lCe?rC}}*OMBZGRN*)!qC;u_aI08SBBaDI!(2eO11uzm zp14&L*!=Lh5zO@Tc7fO#h|Ca<;y}|})GCR^WdYkv&eaRBMR9Ns3!ZZ#K|@k>S<0vP zHGVT%t_{dR9)y=-oNbkGh3+j5NC>huE9ZE`Qv#0kaJT;ll>NWR5WmMBo=HDEu4 z|0gb&x4N7D#UJ|x^=Q}%#=0w#=U~$rt1God6_xy)bRV;d89k;@=o=$Z9B3xmI2~3= zeL*R@d!AlVkHTTG#op+F4q#*Rw<_1X%yJa~rq4WeTuaqNR<|5lB+YC|EC)3GoAYO8 z-LksTNpGdyh#`>s&f62b*!@v`xfOJTQ;l9J9S85=%mWKg<)g~-`yyY?2>084LON== z5iiKfL)aDNwMAlgvgdMNS6fOtsZ=A#nw7%{=LU1mabvXiX%xv1VT_Ww6~LKUhL-K6 zj90)I#3d$b+}2j`lwBBR2OJ4}+5Jd29*xLhPr#Pu8PVwEglG42&%p5oQC%B`R7AF( zM8_{en0*TgD151T6CB2R9H2)l_}$KQc}vEHdt$NbbDqDJ8Il$R)6$7Qm43!?37VGN zbX4gIEQ+W7T3u@eeSx9W6WHklUz=x7sSi0d08nV2-A@&NCY|S;rBZfrMh=4CS&)V1 zqS(o8+hy;2xRG`KG?GNfJA+@@(L60%v#G4d_(MDp|ML$+>~B1B95!6+DJ2%{w@x_P zZoqNr2-F5LeCZ6NM!&oR9Ha@0$gl;}d}xWE7%MD`MhZN=qZpx|l}p4ha^OXUpQm~1 zpq*@DxwzAX@2Q%2V(iKCs)`979Dixouoo~GL=H`L_A59w8H%3Y1{{$CtI5@(s65p$ z;*YLr^xwu>n-^_QP|u{gJ*iCd4QL6KC3fd7RuBvc!Xu90`wfW}|JO z2WBQRbwH1g$sHw+@u3SQin7FX1a|&^F$@?drP08FpGxLOIS8&&v2IOl`Xy6kP_NbuAH#U6*mt4p_%tE zWE~IxyAbO^gLg;}^QSyL^XWl0&XV(%V&UGfCjC|-4|J;*P4rHrCap+Ug`esUMgQI# z(>XfK!CyC$#ZOBrUv%Hi#_7;+R7>AvR|iimHsh9J%W7Vc9toNeeduLf?CywgFIQcM z7{%(>nAO{R2iTF_r*NfBC`#b`IWH|Vl5|=63a=JTUf;0EHW}X8w$Xc>?Q$ED$Nt4) z}35{loo)(*LUyeT5t3&qI+X>kuT~XrBo6lZ< z!v9)rl(hvp<45GNdMV8V>s=K=U`(27@tm&}}Oli&?<5=~ZioSv1NkviHm$SiR|&jjKcH*8nlbbtDc2Unk6 zSNG9BMpjV@#A@!@gF?yuQIBG2?xnQwy-H;K}KIx5YVit=Y0XKOmg@$Af8eY zf_jo?2O$)xk{gQQ*6Bslk(7pIFTM2dm=j^>Kn6I}q%QOIi!17p?lvz&ttO!3i`ga^C#%SHCivj_)R7%Ljc3$3ZD> znGud`N>{)wXDw~}7TngDVRe<`U_%9vA*JUcdLvGaF zZ7QNJ_P(;L-i!5$&H0n6&dozHrPBvBAwxZ9hmZn&On9K^Jx!5r>2H1U+sEW503PZS zWBDR8lxRX1L*Mhk8&sLmAI?4?N&ap?A}lfhy&|A92mroegpL$I0;ferZO{zPT-_~M zt2J!`Sm>hwD!WNKl{tLwP-(I`XC3*0KRl;F)SQ1996MUNIq5RPPH#A4tcF zfo9jcf&t?*rVItL;e3aY@j;A{vnD#$q9m}yoLKlITKMv z*NTKQ4%Gl#Y|L10u{BlD6j02lfviqu^06DfZ6K_lo%h3TEHrPumKvKcz^#Zw*||vm z-YPym7+bJ6gA;~J%rv8AS6Hrurx8g zG&Fes zCBeeRCv4N*R^liNLx=+{3Bz1Zg270lg>V}ocZ)Id8SO`#3dc7tlPws>uT+o{zYoe~ zWDkepWxxOb{?mHgZ9QQ)nt+xZ^BzEyx$$z1K9eNE@RloX4sRFK#k#UXKIRQsx>8i&=~R@$xg>C>=}ZBqE2E$*rEV-d_RcsHm_dt>eGFhyW_5+$;dMS5P#&Hil`a zR-zNt^_Hoi_Kl-mnwvVnt=wwa;@@DWg5vrJ{md@-k!v5FY>=O)7xHSSq*< z8Z$|xL3f7&yKo^N&EV3ZmSn=yfLFr0Z_Ygm-}%{#7hMM(xG^2!or&M0vFs3+I-8oO z_PT?Svs)=>r#jOX>zAhg#>M7<8g}_p3?Mx99)QUqJ#^DVX?*P$ChI!{-;E%6YK8)Z z79lKdF4c$!$xY+l*CK#?15khk_lu1$trOQwJ_@;*Kad&C-ZbfO$b-V%>KCQpQ>GPT z&U8@o82;fWG(4Q4x~?s+4F54qv)a!eIOQu`WhL$bYi8Fi+ zs3L%&*k&7}+8k?sl|7|M>eVvQPdYEVM)ajT{P=A*)+G?$O27aOu!e=JTM=IM!Vsal z>JY@nzlx!!M_i<87!~6gkpIXJmp4m*aa%GmcgGE!WvZZU{m$hCA~*$E1gD3XF&^*w zfpR7V?sm;>kdXP8dY(h*`ty}E*182?1K600h)j3(M{g>?AM{t{>wh;*fqC>ni(6Xa zamM*1W+%L~6u!e2p&UF9&gR*33P;NcLB?v*J>4K2;|Xw@=guuqSIymBZFb86FH}Ct zntag22^T0U!XP!Yy`87bN>xj_l)Y21D8RNPxP7*5+qP}nwr$(CZQDHCwr$()b3Zy} zUc{R>-4XS_qJCE8%F2~F1Euvm2?*BxjlN7XRLWRy$_NjnZjBQ!&UGzn`p>w;jdF@g zw&vaXl)cNFSS@9~_me-I{oA@!(`4OzISVjfBk!J&oHRwbRBv;En{ z4j0}DSZJ{^Q{~yp&e|KBr`I@{ol?du^0 zru4u#M;t9&Np__OB}M%GO#ke2OX2tJeIU@Cgr(iM0vNR)ErH#@ssNqHo zDG`V7?Y385_Q4I<8zf{sQ%DImN6jrG^MJyjsCST8a;%+>=5u)B`Hw5taTnFqQufCn zw{*sd!vRj}S*X>th;*f=-L;3~tNEB&F^zNXf-u(EsYV#yG7cc}q~t;CQ6Mb@OL6hr zSYqH3**<6>muEv8p>~4$pwA3kFS*~Dx(*QDQG1_ubf45?tUgD0|-_-s#8z47G6@_lEe7RUcdvX2?AL)f${DX|iALc|~w6 zQ7Cvp-8)(Xs^g2Uc5ISdMDZp;aC)DQF> zVp39B;4f$d!4Ty>Ky-axQJXro6{e`1u8ktxG72~_YDXq-7LcX@p+Fz`H{x`zBrtwAn)BZ2B=?wAsC z>+td>Y}2E8Fo2e(6zJ&Oo=I}Z;N!~02=-K$1vgt!_KZgo3OGw>S|;8cqg8*PlE1s9 zw1ZZ_fM*dyQ!qIDLNL(~M)gY!3*DjS%6hoGxY-AE@i{`3tCn0}P40lrP|Xy4yE|^5G#3h`4D6NxKXGjD_0Cx`m3U zM3!O*@}ifkEiL9MTPLFB_bn}pp?-HficiuR*MS0HsD2?B@@1mM&o~(J)#=DA{EC@q zTi`lmZOrb2@{)*|AJxp@9M>eS>Ei=d&Uu=BcJ$}RN-92?1%!{(%~bTwyC`jIBsbZ2 z^_7yVB?nCK71SOD@abCkYc<}lTsP(2*vQO|arxn>+tkp6VWzs@H)Z5|$bMnYxGdwn{z{N7g1%$#Bzv~ILXy3uM`;S4b+;Qy zCozk29e$_H;d$M0X9O)1^lhI912V05o^dk$Xn@Esudq1{{Pv8#5nK)cUR#0U__QQ! z_$Wjb)r4b>^{xbsd=qQqnRH*t#4=4%5BbL8Rzbf7)fWf~)NCs6RK3 zA&CHa7LnGw>pV8O6QW4uGcXjr4`&^x*C6CX zWLu+!lykh1GzY|9@4IKdZWH0MYY-#XB-$TCc!K(ZnYZ6*S;KPz5u^2F%4mj{@T*1Rz7VN9k^>+8V z4EP=ReOE@w#O5xu0pJl^L)VX6#Sf^tfFA56Lr~N92TpDMwJl9J?l2jnc?kDfUD%o4 zXMvs-d-LvDP|3yXsbo{#CaKUsMAp)HoASsU6GaFqg&JTYY0Tv|!c#-YP--7H`J{d# z6aX!|dtf3{&q$mIag5<7?|^C!c<@DK)}*VnCp3u|*T7{Fc|FLHTjE?N@T7vP(~u;| zhq#y(oep6>*FQtpKb*9Zg!M94a75x|B1Ny#TRy6r@ZXFRTW_n6;|BVM%hR=ZyX-F~ zUwCxr(3@y*sHHF~)<`Bm_=5Ln=rD z*Vc)Yb2UzMxY9@N_j2_EE`#bTx1~{g@c04voI}NU&Nr#U=F3t|A<)`ax|}LN2NRRb z#{H`Z!jOS!>#~LV9FXuHT2sq3Pa`;gGtOB}p9y;y%d2eKbyPmWBF-*#g#L(;=s9F& z)?sSP&&ZW1r3Q(0P!+X@o$Uy^n5a1)094880&&o4-E@+IowFS|%~|sKDXgE3GF(^O z$?YWkVpZRXN%40%PjjMmzd4ZsNij5PpkGKN8r)|M=+KB z061E7&w?>?e2FGP^;8hE8`$jGLN3BpUr`wtYEZSK(~3n|VKZ6JM!TSh*K{Ndy?Fn2 zN5g%tc9*w{w9*Qban|Pc>_Py?mK$XsPjWdE?H=aH`8D;LyinomQ&B{FPvGN(f>Yh+Hj9;-h90GJO!d0;Tx zFTl7fI_Q94OJ2>=_Du&idx1-h>P+=;G9++3V+Y_#88QAAq3aERm6wZSxdW1=RKyWZ zu)-AdCt|%Nh6S$Yf4YX6TLC&u0ga$<_#`G1IGO%wLPOi_geH&P^k5R}8&^%vM=8>J%0n%* zE>=zP@sUGK0ouJwx)@g$qfLlJfi1ucOc(Q9=fP9jC;3`$*qgJLyM8^SK!_|3Kc+vH zuwJqAV5+D`9nP~?;N%#^04CvX909;ECpO+>6CE^{l1u}t#ISm7rqrO3^$e!^wP{$= zu1xTR#(0Eeu9UAC^F%eXVQ)R9^;J#Ci&g!<@BsGbchma=-^{zw&IK-}6rx|m1Y01U z9i~FY=s^ix8iIh)@xTfK>@*9<1{y81gM9Nd2Dj_mJAK0b0*7vcmJ%9H7 zkUN}=!oV_s75|%C{K%6ZVj4sQ*#`^y3>mUTO`j<9Mt^pmADlc-a{8JS8NZes*NKgX z>GG^e{n%`2!vZ)?da^OPKVUt8M#bURcj1?{UCMSwt=+{lcrUmZY)8|^U_bYYJMKQ( zn9qgDWEXWt*ANu|EysDL0PLfK5RW$tqF(Tf#bT&F0~PM3=V-o3y`}PcRFMXqt0z(? zPMYL>L9uTd+E$g%s@BJKQ2=0eCZ6d>Or0rDy!yvr)>K|7ErLIfk}((`>8vM-=a4)> z58B}-X2xDyR%&Lij9sk}+58FY2(#gS&Fs|*xW_aL6Cl!!8n=d*e0Ns{a%&CIy<`NP zNu>`X<;cP6P0ll=uY5aq{}5w`<)e;Z8+#4ebY(!Z(fyjO2gvd-iec9NKt1bJ*U$-> z$1`7B#FYV#8x8|+8q|J7KG=l9<}G`^+^}Q0^`>gpoCh%AQOGKS5bY+vhtqVs=phPh z#cF)#TTb!GMZ-|KLwrc|Kl}Uk=P=I)a=-cwj|N?M7Mo3v_u7d^<(n*!XgN;+o1{|n_Yd2a zOg>*SycQ9!n*X>Z%SbiMA)Y9d%WXzw%IkPp7iGq|n*smp!ybmX?WM!{N(RuWm^?B^ z-ld^T35M~h3A?NaDW0fN8lDJ(k#Unz3|!UUZlH@;IUqHZ0?O?MqB%?N{;&`MM=at# zb(7fs6!AdVJ}NJ-AvcnA-4Lh8Y&YkXT)Gb5>y}d2{QRj+q^GolYf+HAn@t-XSTqXR z-G>NxoeHP@c>*;cx>8pmr^$FK$zi)%)1LNSDLXRz?>E2h@>_$s%uvg7z)3kWl!+6s zBPvqgWTqr-DJNJi2!eS|b%(G&dZ;C6g(4qzy7~o)1+Ly-w84kj6G@-6s>hjixh^pb zRVsvJf50rF@itt_G`4>sr@|Sf*q3P+Jfq`h{ zGat(}71;fx<7!rL=r3Lm9EmEnlxITjO6BZNx475RMv zWfc=8`-CR$XPPMPhiwe`|LK$1gzV{qmzMZ!R@1nGw?m`{9dwU2<1u{5nPjS}%NZD& zPNmc>Hck}*V*qJR+h{GZG}>FQF;i}ZGhC_TF3yq}v%XqWJD*HcI!r;aj^s@se0)#B zW%`*HnFYZ6u(0j79cISz1%#fBmc&S5w?rOtD4RT<8=aJMT6f7Qz4P^b>6WM+V5ksX zX)V~C=qSE}|6aous^D%;c7QXufo=4kTEm_TkxL$T1F>2Jtd{ebQ{&=#;z%~&vhs#^ zrtA!$h&5IXUU%-NQlL$;eM!7-EJnf)UB3af>^WEt|@)UuSq~8gbZ*&C+3I0uE`VU$W>R z>ZCqsG?4zwL>mhowkVm(djJ5SUj&B)g#>;7l|-3XlZ!IqHXBPgggR@~{>|UkQ=bvo)P1dHv1S_b$ zT@EM#hU0xeWt%?+CflmN7G`tv%*w30Pt%i6db8=L}_-vqnLQsM!Yuz5Z$&9?H1x<(5f>~+`4 zcwOe#dkOeS$wBca6+4a2C1uJAN9$6=+YH4JF1*Q35A%ERp{S-Q4+Hb)g8Q`gLbgSt z9u!b`f<9CUAKA&II*>o0;3Gxc4)uklWx^eeTQn*?1V(6oWdd`N1u)~+YZtD}`IVgz zxvm%=i*$<(QvOaUuMCM9TG>EV_Mb(45-Jm3n+og(3Y&?nQV(Yss~JU4*w?qh*Ay=; zmSA4TJ_fv1i@)DpA1J^ z?&bZZE}W3$Qays*`5O>Vh}phXtRneL6v8H+ zE1I0V^mq8My%gATS!^+0XxIF!$wTHeq4#SDYQ`{`Xc%J^_^R8yy2~FUU4tk`URfu} z&-6P2nUH=Ss}O)?X}ijg6)3ExkTB^hu631LlQ{)T(6$1-sen*O=OZ5QHo&HOkLK{5Ol98M0qEtIy7xeBJeGlsH-QfF)_!@eLibIh|sQ zm=R~1Y^~30>d7!r@HL)iis__yn|ww=eR}Krj6!$48)-fNu|uX6iT}JAxBL$&5u#z0 zh`gTTJGqX>F`lgJP?A#D_}7m5$|E~@?TBh$7+zhWu;9M=sj#h5nFt}3`KRVGRtby; zY45^BJfL)UWa&*|z3E}sF1rlxRm(&*)zy`M9cnux1gZuByyYd3e$bXN;knL`a?Pnn zjIt0=yH{-DMFTXDGZ7jxD+j)I_+0#ukASh)Q;6o#cMx_1;TZv5BL2~x{mZ+eT@Bg0 zim2)d%}_p@5D%|R8b8izBERY!%XU^98pXCzD0KhM&`I8m7;s{o_e9EUvL3n7wLl>~ zSS_>~bqTv+i2pMoAG*9j0)Mv{g5I1iv=~9>-4j~r znz`^2jj8VU8m{NmUa#S9aY*%#=yj%j)m-)TxheR>k3mWei;jxq_k1Bf^qPRb$RF%8!2Jn_BHgI z9Wn=7sb1qwxt<)+nU`k)OMl($GB553U|)-0Ob~OufT_p&)>FogAR%SHZ^m%)C=Rgj zCBSB4y$7Au)y0VV%(nffvZuc++9cl@RTQMMgjV6D*@ zmz{V<(`d}6FujN8^_@WGcu}|xw6~K`f_)e6IpOhoum|`=m5OPjkuQDNPARGd^DZYw z4tJ|5rciajteMJn+viwINNkw7YRfT0X1@%n%4c5vW-Nh1Xbc;2yz){)hXSuA4OYb` zYWzCiZ*;Z%xWIy6p6h`{PyRO7`N$hEjg=@F!D7~sVNbR6|Ag(tPH8Eq1;2#!xqNP!81plQde#REv#c=~BPFO81-tHdPW zfv9hz0dhT3A*N-KKbN5|izHdDZ3yro?3}dm_nnf6;)La={$d)9Zl0O7*>^CPsyAf- z9v?YmTPK*A2FDFTAM)|21i9UO8|lp9I<0XqD{()kCHub0PWeda55Dqk<^+b8TP}9m z^9lFvkukecOH93_f`&yrtHP1J&0`QMh;mS0;gK9H~*Ujya6jj z{@=3z&c$2KV*~^r+Fw>&zV(ASQ&)xIIFyfv6-dDiC)F=lWOmwas26msqivtK# zVKc*ff-bp)6yIa|bYFuJ$Y{BjY%k0ceLkPtdAUZdHNyEZXF^DM{ZBTXNeUD99ap`y zwms|NLzRUS{(tqI0V~A*YyA)6Tw2&@rG#a615g@zXC5eF_SS@xlU!On<2ijM%STgw zv0FVW78wiO_D+;WF#A5bP%;d}=Yy5S-5JE7Jq}-pjUjtqdcA2f-9chy zymzYxa){DdFLE0h@qbT>J;5=<|1?ruq&^J&oK8`bke4NvuKwHd&Fo^$0mX@Deg=8P z+8qh8V|4=CQNn3K`(T=!A2V=@z{)fVKK3Ab-R)Du09JNnF*7n#b#$)L@9INtg=8m* z9d;`{6-d=uW7Ykx2~s+7hpB7v28g2TmUJ9T)VauBH!QO-Fp}FcO|T8VC9fDTLo&)8 z0WSn~CUi?$>v2^7^j%_i+9!}uF~)3QS$7$@zuc-=I6zceLY>KEJA@sdKOO3gfV5)e z=3hDi>8n{)eB<^YZk?{q>e$EuBQ6wRzVp!i8;uk|>m&%p$Ega@&LLio_;X3_(44DB zUQXg6k934OC`iLu(oF%eHJ@fxMkZtG`f$R$2(PRoMG-FG9ql~JA`9sxy}>KjB7qM6 zc1cxNyBGx>B3>8W;x%-N!wZB^>=vkiZRw$H#plnN1-BF5*^Zw=b?Ph{pPclzVSO@K zeu9kKhnC#01k;>ngY?50;PItwS?w;_`CSWEHrawzeHT;rV~Ybdw;%_6ogq$#YLs2? z3(erruluIXJ~dpd3q5k%-A8D$S%V7p-0aIN&Cusb#L!w&w!vyWUaRCQQ0 zRVi7^%6l+$PnUxeUtBmj^qyd7S;|TLU}&6rnKFn-z4Zajlxed6HaX)eYBR$$BjC#Y zyz4=t0I5y6<}eV***!mZ=o(-AX~d}HsbYY2r2$WV2YfN(gn$$iz!aWdYaSsCG-SCl zaxI97fZV*F3-7MQ zYFVRA_+_fu#{!LZ!2$M1GS-ab$xx2_CCWzLb8yrAotP3L+6%@SV5m(q`MReK)3L%J zi(kTfWSeQ;4?_61mF&x19Y~%DL2P9Gl(JD3Dz=hE%QYU`dl9{cI>&&I9=ny7zCP-S z_rB5hlesvBHU=KG8yCyT_BgZ9A4e#$;yA!XM~-zir$5Vj#_q;yD-a)p-N47y+oIb_ zm4=K>kx=aC=}~W{kdg{7HxxBmYqanJrfTGHqaYb1R}687_E<4$ygNA#>N|!ADI->9 z@sgGP7Vfc2zrYfB2#Rg-z6=p=D))X9lMtl|(KVmJzQR=wjG$nE^J`@^IYECA1o+Cm6-3 zTteJsp`7{+yV}|5Z(EYhoA%I!OrclZeTdSn@zdWEzfszEap6U6M}9uEfTmeXV5Pyz zJYkz4om3s~)`s@gMtV2e!l8(|DmLqN>K5}v8O3FL0mpv#E(18j#B*#OWjy}dGp3Rc zKpc8x*Zf|yavL_V5ZOdOR4w`W|2zoz z`kvw;dyb}v|q+R3(_-l-p$MSUF zCJ_QMy4_I}owNc&KwZzSDB)g<#fOu~hY+Uxf~pN=lUf^AlBp2HA;@HyzgO^Tc4fKGx4TKka5=9&7&j(%#) zVBkt+{@~fjp{}G6fXKj_S8AH6Q3?1QXcQfjhshUCJHx4&KW;SaQUQ&kL!8T+`D{15 z_)Llg@FNytO++R)#~mxqU=+K0sbEV?Ip+;MHG;Wy{sP}wevZOJPy;cEG)Vi1!(B~3 znL33J;yq#(!F2Rut0Xkq6Mb!)t?;q~arKJDn+f@3$R%4SQSC+pai6{&tl{rL3&th{ z59B+zpn^rXVe71g`#ndB3KayMTMUSoP` zfSocP%h(hpVs&P**Al>)ux&9&F>Puc>3IM~lfp-gOemS5F2|16=8(PwzOI5HY1p#= zpn&}JT>Biy zbyZDbX|>yWW3D74-*Tvuk%e-~{h>%tiSNgjM#zABgWOwm0_6bM6Yb#UYbwvKq#OS@ z2?=P_zBkYLI6eA?zrR3FXK|3qsPLQ82TBvJ=av1-dkw(}=q9)$O4Py8QV*;P*JCxk zNWqVhkD|15JTaoP_eEb3Ayn&+cjd&58vE)2>JM|{rH*mcX{L5D=Hp}+Lnl!}o3^R_ zD$E?n>EQ0Py@;5LiNTjp=DkLss9Xhpr=qCJHJZD{zTJ4(?{M>e*%C`1xtB2R=2u-a zokCDUE52#j+y=5WDT8Lx#A|!%{i_i>B=XeI zJ)++yU-oc6W${-Un-|N%k9B&an2$3xNsj*ZG{9CtU{Hw^lmKO&B4}jx2TX@(X_VCC zL0;c*DfGJ}um)TO?_DL49+EQ4&At*4SDY;O?Oa${<&YY6ZC&CcI3xSI_jl%Wd!3Of zc+|Q`Q|=6*D2Rn|F|0{wj_|_x^iVwc#J+2|V3bYV{V%JZgfT3HU*)#LwIG&KvFqjx zoStxjOl!_h8}Uj9BRoR{6`y+5OH?McgsH4@FEHYsmB)5S13iN(a66Zs1X))q=uK>O z!-cvI;hcRV5y}Y9S&bBuSu~-Cm$1`ck}VHyXO9AjuJe=_CvLHrxp*way23<+*zDskgR8&x!=YgG`mD(8RptBBRy<*L||t^FXPK2{{y%Ih<~yoZa#x=Jfxxza732Rs1U}f;B`wq7^iPW;EX|?dB5hlg)LP-ovFY40 zz9$Uq_juW6==er&G9gzoQLX`@&xiKlKS$DFeia(3sLt=MLg+6p2svKMUU;H=J*^&R z3Psqt|4#o`(FL$#@_(!tu$&C?M|!0aR&nQq4fOK2x?Uth_==ex|AqFaS$?ibRvh_$ zWt!p$DdldMVrA%xr`k&z8%mJkwMz|mh*_+!MaD9%gsnLkK$@cTk31i;f$)KD{NxWX zl|@_NtnO&x)x@I_{u(4(2XlwDvP-fcoUuvQwfJy?XGONaQX)aT=#>v^wpKA>7m?& zH+?mpZZh|ZzV!)Lw$b#I6D^+7WW}*dJe=1H7Jg1~_;lT+$Fv|4L?kuf`X!$wP+)fq z$+EEI){gbOVuuz9dtDtjQr1OfPB|~#enaScu-!v38ZaPX!-uadw7+Np&YiSTyIy1s z6K_*}o|v-+=*RByc-m`CaNlOsb*5;Xwx`W_g-$=&^cBK72btJR*c-E|9&A7i3}Aj{ zWwr9*VVK&B`)x#s&^KBN_Rk+9w{^JYXnf#K zm4aVK{LWqt6U}BAtf4%-AcXcm?I>#(&r~K7A$^aFhI3WDL6g{PD2y1-jv!fTnX<=V z?#kKIeRBbEqowNKo{1NOvnvuiYa<0%rOJv3Ahd9j(}hCy-aziRIqqbzsHLFmS7;_6 zX~ulKOhBGDsz~P6z3X=K%Jz4x4<5ucN#j(*Zbj1&Epj?0iz=p|v%+y*9({i~>yQOg z`0z>b4r`(b6jyDL^1erH1 zT@s^<)p{);|FpKz(Tq(_HyJBdvqy5TDPqds;mlVwgC5}z1t<{0^3ul8;q|;7d$qr_ zNp0C5zVGO3GjAL!ufjMiuv-xOr|4Sq%6p+<%g^Kc{r=;3uV;nRT1htW3gNZP<|DRZ z9p>9m>8bPXy|ag>5avqkHWvH$_STbnYB@203)3jzb+2?IrcURs zfO14v?`X{Aj{W{PD(BetRb{b~<-pWOCpE3j6Fo5+2&Zc;yLqhMGee zJyJf05xn~&?DqefE(}2>?EehA31IlZzH8h_V4WLPU3ALo`eNV;b|DeFTKwMFiq`S0 z1##SH_;$Q*kY@zfz2CJ#ol*;q%kPBksdv=`sotrFuX9 zVXG!ye`(JDrWDop+!w0V-($f_?S~hFl9z$Q>Nlr2Qz&bko(wNC zS6cD{oJ*G)RE|PlfZ}qc=FWK=^=fR+YU5WS$a@vaSg0tGCLDHSxDE1{RNc?In?uon zW4Z8_EF3#ode2WCyRGw(NTNM2qSLiES|!gT8L@j7I7iWg>m-yoZTedYWKpi?UnbZp z*p#yacy_ue){2jKkQ()bM)Bi6XHk&A=;XIMBC8JSkOigaSrpR)`FSQ3U3dJmpBJ%b zxaH3;tbM$x?31^2QYD~9G?5V#n?!^-M`(U;;pOT|B!R(3EBIW{<9p}dh`+7Fs7dc* z$6n|T*71ytN#wLcshD+-l{gvqlx`e|wUM<$LN2o)B-NB^(lEN%t{y7P&D95ZU0t8b z;@X}`&|{JoF@H=q=9A&@_BoMjQk($-@L_8rA<0_!?fy7bgj?dR+t+S-+(c75l5xcx z{aRB(SranNiw2q;6tlKdoOrZ=*%W0>xt3p}m75C=GuSow5Urx!!CcQu-L9T2sATr2iCeU>7W(oDN$j{_!<GpB-z#^gQgb(x z_fT>%TTbiO8Uy6vhZ!nzsKM&0U5}6-EyZR$=;UA(!9JfmUGnUm%P|1&k41>m! zQ(m<$76-6GGhPU>wq!hL*vDo?8%nU(m8$g}cDV9qh{{$Cr?_ zNrw&ZW}&Wvk@YwP&Sn!~Tb#pzAlKX(jI2PWpmguG_>URmUH#Qivr3QQ=+ zlq61(S?`qa7qp)=PxWY`npw7H3GpOc580)4+1bEzneD|HPfy%;yY>Onn&E|GD56+i2?4Nf_CWYxu|nChs6Vxs2H3H;8(DATG;W)> zBvOxLn)gYoxN@Ep1Z3*megsKQ&E9udr7X@Zwt9M$5icJov<<5zDx03v%dA_|MM4W; zAV)Zj^A$jc&;8P$C97w@c};(s*qM51$Q$A}am?Hc1ht1iyo~+1pL|zC32CkCiL6tZ z#vAGivNSWPf@G%RptFqSM9iQSeDOHY+KqK{Popx9^Z&tLE5J&b{|bNKavtnnVB=L? zlc-qF>r!2hyJ;>*@ymAlYaCX!n;KYY2=95x;O1UQ@Iq2z>K{9rIJy#*1Ch^OqLUV{ z9SFQ8!-KpK8eJ1p)%)thfFKSYd;dy>B0LIw{YOS*3Ro%kU(5Y(iaWq{Y$AzF^n3c9 z>xV&9kTOD0!Hq;YwYT-fUg7x&@m}h^%OABdOOb`#XUr!zSeaDkNX^cvC45n>Y3juG zoS_7M@gC76^|!7cjO9O_o`>N4-%tAgk4{Fdr&1J!xscXvfeNcSuv0W0%GUtdJvHs} zWhMB6_33R_p#iOeHHplj@Z*~gZj_d@)y30;hS8k?ZgR9aW0{{L%zpDJY#-3 z8I89cT{zP4gDAl!Hl*Pw3N6@hr*Wbc3vkfcotcClq{Z}j6uaE42pY~&6krs$nK@Ic z5VmWc$ZmYpzKu;dE&S=qfNc<_9QVW<{rJ+hl;b=_PE{D>fOF_Oa4MqWJ#CkSfY{q? zDkfMv<&aW zP6FA?wjpc&K9Yx32oa@4X;|>ZrUd9V(EWMRQ7$cz8WI*k5fso%x8Hc7q&6R{fP%To z;P(K1ZK_3ZSp!geVHp5G7G&uNN*kKzy%aHqR+%^L_~*_{8<{s4(t?_Bs;}rKism0# zW^oQ7gi~xPNCTerGR7aE#`jxy&b_;d;98Ypja*}12TMb_%EO4wUV`aogV8_BhmX&k zKplKlR;}>F^h^-7-DjxvEcN1lP@ba6^`OtRqr);`7%mzAWwjTFy&1UD)5~~{i;m~k z64Rmni_jFzpz2_;R9OPOE9ihOzVcOEV_OAIMFNl}@@N3)e=|i_0*SM!p^nY{9PMEu zE&xw=a^VE@{(7vK351EC{ZQlpRgEU(_<4grkuzdL1^ziC$gcrqn!9^?8aDcQm~mf-&Drjh_A1-mEVn>@*{kdhXvy)BPNvnG2(B7OC)OEG5&!HS31PFCKr`F${ExmX z&S{(Y8;E148<^B&tzi%VnBCEZ2U0e0F$#X5<5o*YU-l9;oe5>C2lHK13f^pU#{#vY zAqMOz`C!*BFrEVR2BETJUo2b&0h=+WZ6#m+2#7Vk+9pG^*58i(j z_c4=c=SIE`YhfZ=Nt^HpaI$d%0Sq6Gr~^g5_21Ii^@BR`q#4@dfL z6mV!nKDmmoauWTSs3++V+zSefqp@G>pG*q`47ZEvHH}@Uy_XV8$vaT~W5a6&1VtZX zb!Klk9rGks8SGP#W$5s6K=?| zV7v_cc@vj|^kMCmg{ErcY&Kleoz#mOm;%t`KYrTu+WnAe)Z+GI9K2`T zwdXlCkF_I_s}wgw0i6V)r}iR|&Er4(bYHeP36zs{xWBF4mvdMw9^B}9ej*54gN8Zn zFVbT~zYQeC%g`p+p)!HlJiweHdAt<_I6{P8Mq6%4I5l#WI8w=M6ORgio7$fNW!Qe@ zP7zT=cUvdV7<1|k#OK+X*VMBvE)T-T5VHlCIfPq4ZO zDWwgVrbGs~1E(w@%0MZ`ag$v#PLV|NXxqSC2Fjd<=)UR?n{3cd!u8qmXOsgVav*+R z(dF5M?hIf@56YFt^TfXWgRH=;kJ94XL8En8s<9oZ4ohC=#CH#b)!a_0oBYwYn7PA* zfqdpYuL%~oR@JW9voI{H>-Qr?5FYtyNWkUR@{C))V&Ur-DpL$)*Y0oZ{g^7!*Y1hN z2c8aZGUY%0+3_&MJyB$<^X<8$O7#!pTX9+S{uB7;8y{Zh6Wv*r^ZX!{8DI)6I)%nU zI!L0m;KF=>TicwnWRWRpS+3R`TF$FjbM5lM<~A51u-S#Jkf+w?ePiIkNd zyycHiR8-~R{uJSkg)pD_>~-pPf0pfisFJCTUQWn#olpuRZg2?C#0v!C>5}6>((5?G zH=@Kj5H<1B19u7%(_p)Du{RkwWN!G#!#U!=38NUII^2SE(v=jd$&XRFa=NVmoh67w z!P}DI=@{8B3fpkf%E~Y_vq%$AUT_U!c{y_{pyC}Icot2oNRC)}AwDgTJ({n%&=S^0y zVWKkqGMQtLLo*hil-49~|5AhU#oRZdzIE6{n3g3mKoaFmM2h~giX?y!9jp=)oiz2*Z1Xs3M%JBR(FECj_Xpy^xqw{*n%Z&CE0;nCKM7Tlr{K*HrMcRFX8 zz{Oyy9qFZLR0xN>2LN{CJfbdBLtSAyRbi1(23A;>;NONg9=A)>-wA)Jl};+x$r6P? zba)H}KJeNFa7bA9jmvm1I^g7Qsb?M4rQW_JDuL}}M*UWooukY1j^}2$EbYt+FR3op z5rmkTCtAP9(5Eq;c!V*}##0lrZj{^6y_B@>uI6L{lxMJcCAJ!15Nntg>pbt8;GuO$ ztT`I*>&*-SKAz`fc>88dxyzwX2!6-#tuFdE?aT4?3KPEdR8U;=gG$$4PhAQ`Ijeij z0{k36X|pS9=2@(M_V6;l%?!{w)6%^Qj9KlMNN6w)!aj(YrCSv#z3m2oWK0k%J9yZz ztY1+eD0jJe;2J#Cd69>iq^*yrmMEl(N{|C8xLy`AsR7h$*NIl<)`S%x9swu#w9$Sx zJsV;-`I2UQ@)v&to4&aG=dW@O%f@YVsaa{j-Ew>J%yUHw&;#0xlg*1 zP%~go4{G;k4SK*1Haq>#|6#Dr0V@~(`=V8}=(>j%%=<~QA~JCgaE(F4LzVMMzC9E~ zW`9ngaoFPi7h~rboLLxc>DcL{W81cE+jht4sAJoNIfFIA{mn=gjl$@f<0>sVLM+;`E0Q$bL z`MWhJnB(`hS4Ml%LtYkh@zkTU4#)U_x%Vf8@3zpH4|7MG^SL`iPDK1D>IRfABvy)Y zgftDzbRx{uq$A$Ea9jK|TQ7UY)+L#sH_pqqL``j*TRC#iQVEkFMS{ypa-H8Ydg(mYaw|fm58xvY4rN)4Y64IZ+ z#N#{j`{orw_DyF383s+oW=r2 zT&TI*gKj`UCun5(r^=P3ZW<7*cVJM+HAg(bE10GYPnV$;JF<{n^rZe^e@hGHVy5>{ z3=(+x>)ifMaH;3ai1N^%H$tGp&qvh>mfPn^@{x&G`j!BE#7!u(531tK72uK?*v*~K zoGzX}IWD{pC6`NlmmE(*Yj`X~TWu)TfmDDz@^hi&MB;<2JnA5M!SqXORm>!O>0GM& z-NM*6+VW~)J_Sh$ZsG_HUX_;3P4hMqR(DyDLJD>dy&jgp+)6mxAu!lT4eRnKycRed zUY&_y-O~Q)W5M^g22!6wQbC*R{DPc_7p!Axb&ZoSUQ(5MVAoO2A1+x_Nb%w@$E z=|Lp(p(~Cc9r|Xa;4SB4;&NxQjqVM(`5I>k{+qW;%yU-G6ouBc?OF zt+Y1Opx2awMb<8Fs-)W`Nu#iW!&x;R!zG5>6WU7Ai?H|^UM$_K5I(kMC=<~Un8hi$ z)GS8?`?Ucv{&mx2BT%pAH`?57!S7cCQoTd$3p%n>_&Xvp#qb*?%+Ots#`|wb5^1qJ z|115xa+o}`a%ke#sD#BwI8~-~)-EndaYB;@6&8Un!l}oCUCEfV3n$8bYvh&uarWj@ zR${svsQur*f}rL=Tau`CE)InN^qc_AEe$f9WX9yyF8})~J5KLJwOU3hkdqA+bp)t| z%qt~f7T-4XH@+pY$xbTKymQ^Nggl;**iFR5ncsDsEhH?I)G3K-xz{O1KyQ{aZPK*k zO&!s>yzmOR$bI_V3{=492ENd`CQx@A0T0uu5H6`l9AYD;fAGWSHRnFLr_2?(<_X6S z+N!ysNomTT1!Srf#2U054SO+he3LIZ74~DJ^PkaAJyX`1;2qJs-4M!ZbXp2J4x=c} z@oD=g<3Ryi8dFnn)r=Gmrvh%NjE0E^l`DZ#h$ik%)d~fPa|`LBRYtIl;9u@cZnQF zo)Mu>+1^Z|{v<=7aU$9Co6 z;fj@!1yPDq*#s8S*<7eCsi~EC)ugY#@O^>WiJen{P#|Tyw#Z=Xfu$yC{|d?q231^+ zRdA3J1lFyrLcdU_rAiHwTWKQU8Ug1b^h&6lyy(_8O%8nv9Q(MVE!;#Lzeh-k+dWP^ZB}{(%zP*vA$^KB)x*-M5SAR!UY$ z2}PW$#5G@_UaW0mjna^PNtLizWr<9<)OJeU%e?|$LBsZgx6-<^qg1Y1&PgVEsyi)O zDl`y37Iz#!YR*1TSq&T<$cirmR_xsO8#){#o==R-w9Js^2T2CYcapS^aOEgAvKpky zby(1R_L+t1<1WJ+=@Fx!@F^5sfH%yikqNevc*%v_6Do<``2I;`^QiDKp)o5>m}oU@ zaqy2-7Zs9z8-cS4wwiJ4^qp=m#O*{pb$^hF+)?0tj(B+k6T=K$%N}%|ja!vZgN8g; znH|~Xvy(H`81@KRX7WikAt@*v(o!Xu&N9vUXN&tx-!F#6l7)#int6*N{gW5nLRnd@ zcdMWQ!&D6}bW!Z4z>csPYhUWGyG{ZqhJ(oR1wVQiF6x@Y;F7JVv($}!_np(&BttwI zJfP>MOJWml^T6r9Kx4qpZetLdI*4vtr8dC1k&WBWl;s&53TevCgPfa$DX`>|@L2j0?H4dcS7fByd+EW~C!jwT zj2L8Qu-AE0D-XySD^Unn0FAa~8KVdIMHTd;-wv&VGy`0bwmk3sxwa5{C2R&BRUC{O znsIK~Sd+f7?BpuXM}o0;MyLWpMc$m$)Q-=z&KXeu^x%Jmh1IQQ=EP9L<-y36va{|* zzG}SWeJKerKG(f$@JX9W4$BK=(C)Ay9op1wDW^8XIogXGIY@iw10&=Ym!JZL%jlLP zNs`#1v%gE@-`~ypjs(&7zn?45FT8YmMx9f+VTdQjF2Y`o3Y{wGFNRnkY3-Y;MmSb( z^i9v;qgE^_CnGQ3>Xd#0JTvr9RdULE0u^qH__Y>{^#XZ~dvp*jQ$eH=`N(>ACxqL8pFa(zV?hyRqTDg8G~7{(0vVLt&yQnU z4D0GDaj}#f10av2^#vl11+GEiV}sq~rhF{GVkf?bl-quf-qO-CksQ3WAg+TjV^^wd zTFow*91WF$CJ(*-NLo|i3f2EEY5&ue=J@s_NU+^D1y;$COpg9qZxPq-7!c}XOf!;% za|7Gdoigrsuu9;=C~Vz3Bub)8uZWlQzd(_#pfM=Zt`_*?;K~O=Ci%CYry z?}h%;kMRZZ(({cTTB3ZAfyqC%A;md=T@skiy z)w~L4{4a&f6J5EL)3Npf-4uL4ej2+R;g$XWOE~}U8Ef2gok9H$H9DB2oSooRe`6Y{ zz<_QP()f&|hx@py(yqCTb~a%UMUKt+OmgZm{O+&!*6p9XAIk%5t_JBs>#g~w`uFZT znxnVkNKBgS1Mem>bXqCfgmdsXzDAPA;~2R=~AF1r9#sBT}EJszD97881K}s%;87{7N4d? z%eXku{-X6ox32e;^PhxrFnH~79Hp_BeWYlj^p0cwsP1hOQyM|EE~-||P9lB&Z2y?S z10|@_obu}LsAJ0k?_h_1k#u}o&DzJLK7v6dk;I(Pu5w(V2pjBs-_)v}b0Fwsk~8(z z;F%~_?e>y9qfy>GK=N1xf%%fFGTbc?9qeXHXg4y5$Fve{suzW(>EB`zr*A1VKUQ?d z-nmaD_^i3!FUF|shUc-1w>G_zN$frOlqb?Re>}GZlbE7lLn&OTip;E@S$Luk%qq)q zxpC{(%9-1kBIjJ=zOvt4{%wEmaPn_&gS_^ zv47xh!97x~Jx)Pq`ug)Z&SH8OuShzTnp!#^ZeRVu)b#esrk2ziehKm&J?WTIHiT)8 z;p!KMw`V5KNp93DOIwS50F9}jimw@Mf9bv!{F)7PT2erp{+b7b6L$};;_=VGqmv1W zN5Cx_Z!p?jyI2%!6c^uQvPAq?LF?yG6j)pva)%)_D5dx=fM*+Yzi8-Q9w&Oucq(t7JtN_RfOXHiD%0xk23)C42 zwn)O}JmuvPc@02HREgNn1#T&_qVqxXtnCxtrk0t7#f43#ZJJCUgUbf;HxCUk1!ic$ zf%QX@CULT;X>NcN{}t+HN=-eC?xNl5(97yn6X{i(D6L|+xuF9CbqjPSh~$ybeG|UU z&K?Nby9^LLTCu&(I7>Q z?^81~%gEI-N?x+#wEy_*QKv!IK(H`q4T3mL)B4nMhSX=?ZXAaI!d4iCZ%^vwlR`#qZ5wgVq+EqL*?*Ze* zmHrPM!l+xUXJhIU|I7TU*7(B;cYNb-ga9I!hw)!Y z;!>Bk)I43p*s-&^E~vGuMTB8`Qju7zS_sxE7?|R+x+jA4J_}g;fRo8qvEpXf(9q$2 zta~occ1J-OC<#k>gfcFmB-%21gYGjNCOhYR{aFcG;l2SYMFng{*V$g&KuH)0%H1Ix zD=cRi5BRD~gsJp3nbp*z>93BDgtd1BVe?QnbW%3)m|+DZFv!&cE!BsHjsD@QkOzy9 zl`ZNFIuq_5MVaMSS`-=NLd2QlM>irF_tG-zuN#GE&J!g1Fcu);P2tZZ3SX#i-y7Jc zO!cbON2gE#3=EH6kwxpqg*Qc$N0S>4oK3BSfK7ClvvVFVmI4Fq1`u$|=kz}oGHF_0 zjh~K+L|Bpjf0N4pIYF&;PEVzq7b-K9KsGWy5zbtAXm`7F93qWWgJgMBWI!JMj|RC9 zxA)mp#YMCn(c24sq0@7Kw~62VtDaKXoh6>B_oL<+Y18`4e2_$pcZ)*dK|#`SRX>Wl zLr1Ip0H24+u3<>pU2=HB6izJ5FBpF>;(zYi}U--ww9L_{NZh?yUn0M zqS(&{w8YlA_U^86XzY;3YE{A5`DiZGo7)i&|7O;9U{W$ctUnjy8iet2Cp;%CTrTlW z`l(fmV5^O9Zy&^G3exiUCj;T}ETo681ozr}YoU(CtLg;@!-Y^ox71b+$8HX!Ag^Q> zM23iVS9aeXGftK>StIsBujge8O+S!a3(C(thXN<^52SSvFn-;jv-Z4owf#!qmrl)t zbGbB>Jt=R4vi5^P)bs*n5$27wC>-v?boz=jW_zLy>j7Pc*8~oN4FJH=@n04!lU;Be zx=_0q4#`2vayFLd&_;2y#juhy#wI=V4I6Zov=Pv|tZSPQeq>CW>E1=6pz!91kr5b$ zT%{~}R_Y?NW%Xb)t2BKw<&6A>Iy^hJ3JuKz?XScln;XD!z_Jl!4m5N5 zZCgcO;#&a9VzeWs3#0{0Tr^_fY5E+^cEfkq;FpP!>C$Uf?bjt&FOKIB%Y}7*)*&Ae z`1jpySq1Us+-?bBu#^}AQnl`K(FC;}k!yH1Z9qT#wHLfFmEh9{Y;2vXzJgH!WjtZn z$TJN%?|N(pQGWA?gl;_)MUDOS_#^rM>f*1cDhL>rEEkgm63rhX#8r-Ij89qV$OfXp zk3X$Ltjo^3j>N(WMZE%7!!fO=LOqd${|Eygpw&~F#nWel={@!vZf(m}X0qctTe=J3 zW*g)gR|cZEi<^q#TXT3!X^$E{%}N?gTN+EmKD^>7yTg%sEhMEgEm`nMdNrv;d*d)@ z*=7QvxJ}T~JyPBJugq>0k)8*1Ak%FK<5JkETiYaf`VU2yX&oRBEJJqdB~>4JB*oX> zMJ;B!*Bbe7h07RGIfpfgl)2O=YrK8)7pnx3K~Zpde&2wIbM6=wC-AW$oPKh;bb2VG zfs=HvUF;0cc!S^)AI=qfxB#TUztbF^4^(eebJu0#d7ukb&uBVkg^vPw?Nc(pQ8$06 zbE}uirJocEh0>|YWA_@ez`-~u5N@8p201i4^PV4fJoXe20{UtV4b@M7jBU+))Rnfm z$`lR`l!SNl#21bA#7>hU8Wc^UMNv+;xdodBPg$FSxA_END^6k&ZBS*~2N}=?5mr-N zG5DTb8%WPgIVCmKo<0sNCnPwu;6EK#cT_ynB2kaswzpCz!z2jlI+8ua(^cBI(l}Ov zMN+js#Y&QW+hLo|yIY;k1%_U05WWPT{yk+Up0skl`G4FYB36O~S zp|?P#L!_0089W4G%588^s6B7Sh@(u6>~Kk9F2Jj)K{aD*RSgrwv?dIskFPve#oJzS zc3(E}b&E3k42tAJR(x!SU;^!ZS!SD>HGYp2{s>xE;EJ{Xv!K0xRv(!X>$3^&3|`%a zaDFRR3U5EF(yVi5I(ep{{W|H4ggl8W;wYNrZ1M$xb;B}m9_{;fhdkt3@>Xh#`?E&~WDQ)g@qe!UV??t=5^&)Km6^9= z^|=sQx;;3O)QfKJ>-lo;^E68BARmuvLRmM}|n=DA_08(atXbO_qE%~d_dV1KClqqmAB>nFnxj=oj(Hx=qQ zs`+mF#kYA@6aPlSS`S+ntdVy7*xkO}@SCXnPQ@4+!aMgHo{mwl691PgtPJqIPhRYP zo?}c&k2ltJNKTe@zS6Gfm)F`h8Yo`}l9V)~< zbX)wC;^;RWjA-hqU2T3vUpXlIwGR7|21)nu?DaLu@%1ctq00P@_z+WIr zcdj<)E}pI*hroBzKh7oa2?d!QAfDN|{P>m6@MjW{Yi)egA#*_Q9*0`*Of;=%0iS#5 zvy2?swmxK=SVhIIR?-So;=WdhwTHQU_A0^1`kOE1adRH$GhL(q2L{sXt~eQUB8{R% z0{g(xE$7!ohV*X=Of}Xuy5;k1@06U>)l~s8Q56oxtap5vglDLwZjBiWBvc6J&H@k+ z#HE_@*AsB`!mN_x(K6d7rbc!_KhpIVAjRwIx#py!;81L)M>wKCtOVb#-&F1Ttbxgt zipBgZ;vS(SrkE9Qw8zTD{T2a_A->ycsmPv1Aou7XBexPU_ylM*wFlt zTQz>2{n?w*`Q)6;1M0C-6CUS|I9{ABZdIQXt}~1m+i@CAiBAVHeSu#~+J1T;I5Ng?m8e zAkA|kauh!EdPf+h=zz^&-w#I+5BeVa&d660dSG^xy!^QTKmm&61zNk-i6lX#HXv3@ ztt|6}P%%saf1TGX7t)f-US!lmH>uwT( z-87c)YhTWz(ij@cwxNXWf<#F*G9e^G4K9ei-2<%X#^aDi(5yri*{O1}PDUwp`QLF= z2r@AEPvA2!5#tE%(s$dJ)`?xCI^%)36piZ&Dg(dE!fsCgr|5iKJ2uG}#=!sA!fJ;J6ye4lDs@i{E5KCU&lRk+ z(MbdZ3DbJ_P?W21*|c^#TqebP(l69;(B~L%E5Ot^_$rD4Xwvf@!vf(M3&T`+#0ZR6z{UfdM?+dbs?zVY{SM?P~<$g>Hb^>Vk6ybnSdPz;o{ zc_$W4*M3t{w_bks=4Ebp%@QTb9Bt`!{&>gpS^JxNJSG%O!bfU~*bt6y&xOQ}o9mhd z6naBM(}rf1JuQ96pW0Ow_BPOlsv!idcDkmhB!CUOw|(H~!FGKdcx041^3Igt{7m5a zX5NnTMZ#Mv@YDy8uhx_GW`ugWG)d)y7wfmV0#|qY;keVzVrt2*JXmRNrj#}R@{d+h zR9Hl_VHIuW(A%u!yjZK4WKo=Vb8z^@1DHIC?Se*IVkJr-3u*M35Zk><5_5}(g z)UMCJj1q_bNYru0@0IT)q{+lr5v8}NF?ZQaW`ByJTXb5@(U{w8wW1y6)|zkoIgoVh zg%569|3)|RY>4Bju86Vv!op%wTYE)27nWCPD4R(NGxn7T;lF$IPCQCI6KkfXmkwB{ zvvZ#_nxy>HA0L*0xJxU3*ZhS=8>df5wFOb?R`BbOy}dXxKYe|a4c@PVjx(uVgKp9F z@?R7a>$%UOHd(eA-nrL?@h@;<^sT*R1JxKupfwgZXIgbC-jI_?C~@A}Tr?c-ilp$j81E`)IgB9 zB&4v19pl!9=vtIYe<}%?imJJha1I1vX=3bJ5aX*W0 zSnEn}S^f&ZtwGPIjmrS7iuA z-~%3HsPa&Xw1`Dq5trW(%P9=u;$`?qgeW%B_@){hhB_LmtMea|LBgPt^OhzG8gBiPsutFVVrkMv`9@$0gIb2*$1uS-Qd*KR~nS z$Z)*!jvVQPHht{R^hqMeLtXtwzd7SxEf5cT^88luL+Bg<1*D%!!bZ>WtAJIBmH&Bj zgV>$0HK-Che@car+yuK^YX{?pj5PlnI7Ji|a*D$KXlS~H3e!oJyX`W4BZp&sOh$7+ z9^`ncpONaU`{pgtypvD`n|nZWT2n>HBPSoqTE?la<-1O&Ek-gHpz9qT%DulqJl~2< z-S6&nA>t}1_&9YRc5Al)2rCyRPh6)xMo$683f2t5 z=cURn>C>8V{8ibI|72;->o{18eybr-0C=bbOueXPGx>*x$pZw8D9^W+4qnrV-j7L&utcXWR6MUvz1tpg+sM z$i+;><$~wQ2{8jbronK?(y$xm1K~V!e?#02<(3Q<4-ji-f4L8~Y0yUtgqU;0Ds zj?*d1F`~#4sR2ZzO_P_oUms^C=aP$cxdeqs{;6e*JXUqBTF}EHyTV^QACiX;Nhe*| zf45EKx*U(pKh|r9``$`rT-O|g`h61zJ@z$jdHX@V@xlCo;;Q1Haa$-iULvLX?vfdW z%UlDzTSE(SEcol7>cO<;nQK#vRvWuu|Ta)|D)=NAjKl>NrxwrDp z8D80*)55$%%hmfXaQUI^aIL}eH@Hwx%)pf(7AsP5^-%Y6_YCcMAf63yBF7ZLRTW&J z{PWZ$?B!v}p#hzpqkE zFhF(m*qFB0Cl4)h#G01U>aaHnmP)_JnsN@Bzhrx{O>E8@R@UE6O1ckWiG@-HyUx`8 ztyovz*OijY&~x-E=NAXV5_bSPUsDW+s71TcCvY%j%B^A3LQhWLXp)~Z+Oc0!F`F>6 zcJUMBP+M&~S1Y6I=HIr&9b|l`sLi7{D5Q_6%uH*vNr>M7)|DH`0Ex#D(dkl)IJ>{0 zYHqxms23r?O3bKq@&&^#Ic73L*29av^|n)&a}RUq+|H32s`Zz>%c zU+9~!%Ve)EombGj1hpBEX?~D;V6o1nKb@krHK4*VLc8I#(eoM+twx<`7WztFv~A-;|56GTnS7SoA2StxTH*>z31CN>m z8?ZAdX5o2C@Zp;jNAN(yvx^g_n|OYKPSUM_YG?_8yh@)^62xFM`VxI3B^s%?`@_(R znUbdNEuhw|2=wCgA>KCmkg@D9ZSlawF+cG0RbVYy)&H=6x*zGbSv{^}YF3Z#LSzzD zCAXxFO-MfaNfnz`UG@mLG)5`enZx-YIL>yyRIEP2{KL|sCpDDSA|~Lrg9sT+g<$nR zT_;@Y5%+f1$1H5RLUrmfjzQO`a~x9%+nWE%W{FxAasvckg;Y1jK1u#?3x@%mYGiJ1 znYRL1pm%kS?-Bm+!Hfy_xJ^ht&5w;7gYOcCItue)PNtXoemhI%qhkeEd(%mbxcPWV z5|As;p_z~$Em>Gh*icUn)HBdAtI`*LrAOmUwYQPl;G3OoF?BpSr#GE-QbUY_YLfgGvxCh{ zs=OW^YGC4N2)5&`m5_~36yDJ@efrEZz0?Y{TDHrwt$`YpRlYPx&>A)OqiV2}C0w>W zW{wGf10ux4avFS@8X}*$bR_*@Ym8}GlTU+mLY>jn@)sM(pbea(J9Lw&-Wp=^Uq#A7 z#$rE#Ne&J^zE=h16?v0HuoZJp@&f@C|G+`5s~RC|sSemI5NL-s_#|2kwy#xJE#W$g*mqMQD+D(oIiaD^z7VI)Sisn{>K}j({1q7N@ zie%oT*NK97-`#13GqP?Tj_F!1(Z58{un}>Z+NJW5&_m4870~eLML{P0NU;lZ02vOJ z1>fV+L*(I^W!{cd1>DJEl}--sVuz13l|Y%b4D(9Kp|Co~{aJgI;UZ{%&irxJD_ttc z>g&n&2%v8Fhi}4Ibn=hmI7RUO_$#a*Wcts~!CK!9!3 zZ#=&$eDb>BdUcdv%N$}Afh5Nd&g|f&1z4SlK77y$;4QiJU|I*FzNxT5Q z1E8vf;~kKBzmmn$%S~*dN?87WZbok53l+SVY#$n#1d5fud@!c88`+x6rJ*?O70b8Q zvH6HbW3iU3{(MlgA;J<*B_i37u2bYk|_Aq42Q z7uT}K$a*_uyOA(Bh2uLTRh3t~!ERU4pjSIqUsLx^VhmW9aFSZmElq|4UVpRjU>I{6 z7sVyZxte-c2^aptEXf$Xs<`x%2YeHsyF}mtt^QyFB?=zi{#|$-f@j`y^gey>u=a4n zHw@4}A9?~YzBC?1_W{IQKDC468a(RS+1ZPIuDxMRh`(Lqe2x#LO@C)E>o08*#wVKN z9h=?7%6BO7)W3SszIJ7rW4$x!yFM2-(x|+hcO}@|BuuQ|cNK9e3Hx1+oYpXFyAsD3 ziQFx?`EXTrlVN`IKP7%YT>NZnNqaW4&=5+-U_abU2kr7)g@h5sJ?N+9_G9%Ah*YPB z@VkHg>XGjP$& z{_4%6YSn@#iWv?iIp?DMY(XYF?iY}qIK`}3bb=QU2bIAq2-RiQueg+6_2QL2?|CzD z&@Yv97K4>~ZH<1CW0W_$WLxsn2@!4nel+-Z<_!@*bZCYJ!z};B$=aGXFWIF%5tcgG ziE6C1$6VT#wGD@3pOKuwDP64RXBS=K5_=Iw21AkmSR>z+$_!#|Xn>@`)N zht{gfsXZ9&Buy>KLK2mzlukuspGTRI0?niq7>_*AkKr`zhcsilWYYIl-eHLogoKPJ zIHMiS^MAV>m$$gLxnd6-opKLQ*k*n+{*GHt*P}G}ffnCMl zhVXg@txUJ$zBKRDeu}Uks9C=CtlcDO3fQJxDx#-t6e zBE_%9mmrl(MPlKTGuSp7^jR7EJ}u&i9IDLI-DAHU$E`{OddqIIbcjoY+goCiODSyl zT`EdphHK_?7fuVll;Q`^VW~ND1gt-XNv{j7fH@BC@H1H9?XYpyu^tiVfLQo#-J&EGvz!%DQo&Ik3ubl zgtA__o(h45{LSz82mD!A5?^v3bl6Wndi<;HF`Bd(AB$B;&{lH%52u2QoIP_@=geCM z9L%KIo)(wUSYtdXHL)X(;Am-3RD;HUL zX2!y2Rn?;sJrIAnncWWH0vti`7QknKB(=*~`?be6Ry52+!$TM2CC5gaHwm^+(4#-K zV~IrDYkk0x3JjK$ftWcY`1pr%#sWrX-vR2+MnI)l%Don}d!bMHyRsTar5NC^ zH@O2g{iV97BE^0>|^ID7OI4@T4aOr9>F5$!HSl$Q~>bqB37A2bmNu^{qjntJq~ckcHASyvf%;}egjpYk%ZNjTSH6FFS+OEB{e)b(kHTS~ zLs`DT04;!uQy$%9b|yp$D$DBw%fe+opHj720)pYtK2c~{Nv9Q)#!KzzI+`RHQxPS! zUhmuXFmv~|i?SH|;E;p+>)1k8BlO3v#LelNof@@1h2<`~HFR$dGgi2Y%p?}hHBcpw z)I0A!n($8$(ze#KAs4;cR8%|ayW5!k5BrgdjftmPEG%f_OUL2o9$$FA`!*wFNP-Nz zdUJaSE>A#~5-tt#HjWqUa_%IGcZ(4hg(f%&=q_YhZ>LmYrb+Zs`!J04^o=#gI@mZk z)yZdP*Z7V5ZLe@lu>}K~6Uq$)C+uBtu(1r&fv+hcS{NZB`oYonf%5qkL})vne)&D$o9Cg? zCm#T^!6Nx!T>BvJ;*RDv!PIFG%ui^gy|}r9J%Wx997f)}zF44EpXu~u=X@6H=7-No z&x_+zwnIHh0thE_R*Pjvb+22CeuQcG{yyY_pYj{U9eD@my_6!*avox^{m6d{6MQFy zQ@_t~O##wiLs+dhxBJ(_l82Igx$s5+)-6wx;=>>51Nc?qyT2H*@BUpALnyug4--^r zf9Uc`Su1Std^ZafAFA7!OOcdduz1KOi<{QUnU1?=Hk^4|LiZ+ElEgE?jzknUunFD%TqEe`X7^(PbiFj%~aFsZx$yn6*2Cxo2pGS zO)Sb8jo^(JX@PG<(d{#Pa5{9!fmqxD9(#rDqx;I5y$2fz4MY@RqezOAhf;*ZdyF3!d|O8K;FD1 zFV9q8YI5K^f&)bw%vyh8zqU7vp4Ng6&aR>&*n~cmz2ueTH_j!v{!$ZJ?l1QORbwky zG=GZ%<*yj5l&LC|{x)85fK*>gUIZ6F6UzA);sht8BhoflR03)dw~aS-=VLHLW)p|z zf5m)JQFmQzTIS<{Ia2kZ{ru~E-=TzE(<#}op@7d*I!6Rm{sg|?FNBh9 z9_nGZm+_&4WI)mj?!eR%A@>C!-DzpBv|ZMoc>8Oy1pk3N*`dRVNd{K=Zyy_7rDUp9 zDnx{Z)M_vBv^vK{fIzIE9>PSL+eV9GGB%FA4HR_Ld$r|{k92=GJ28kQ-0Zr!9Djv^ zLA6_MAhad3?ECGqN%1>fCFf+VtooMdvf{?)%*rdUJ?>kx&0wx@NWTdVJ7bY^EW@hZ z@REk3*}u&{x8Kjf`;El3_M_;-1_y2o$YZ-OF~%=QYnEl>K8OE$eJV1Oo!l7Sayt7A zJ)4Ngy+Y6`nLdF&9(ypM?=W>9*n#>FJC^Yw<;TH}X9wfc2xzu)?yVsxf|Aj2= z=qg0gVyAeDYA(U>YS~UI%ABw7n78>jqtBRPVVyc-Oo5oWkYlH$t~>haVra% z=c~c)s|unveL=7_<#!RM6RPJG6PRw;f^hhgtIli*kn_hhZ?v;=+p|nNW!xR!o4suJ zw514n=iOE7d!#FPLFgs0TrVHKn03DYWoEe!OY0g?jdZak(oiQ9FU3CaEF23mtQQ7} zH)XIzp87K_0LJ%NIqRLtA3q~OTOLF}w|=YPJYCtYM?onTyqbO3xHlbgYR~tA8ynqp zBIlL8K7|G}A(JqPW|y0zXOk4Isx)Pj%q#$LPz?2}Kp@Ssk;y!DGSH|8`nd~BB=e8Z z=%FxpsWxVkP(dbocvm&aK20r+#fo)1ERAk5wWJ8)J(D2wgt64`ujQ zI|GdFtA@_Qt}1t{okwPl-=#cqn|@yYz>`w;+2@A?%fhid9DernAGvSA5!T$jkP6ik15^`?~N9dEW-es?A*L67yY$^iSvza2&y#K1HTIeD!Rn z%TTUYdvkjVe8*;vg2Ru&9_;bc8DjeGIrewtaa211!149MHXT&G5|H(!QcY!MX_7SH zi?%f@(APBd3l(JIU4fW;XVdUk6y*0OHh+AN{&92w-a{s=;Tk#8TIdxiiI$$G1hdHG z0--q9;Iv)(ZP+R_o2fs(60Cy-$v}e*vxLJ(@9by_u@z^8e75TEH=`4Nh?adWzO{vc zZI9DaZV{e{lIQUV*BJFXQHV}iFBM8vcHE@nf5+J--P#kw(B=lqG4WH8$KeI%H+}3i z^TuNG{iQB^_~rHl=l6TidU&e={-ch+&k@un>nI6GZdW4bBcYKgJ5E*DMLNL{+dPz^ z6bSi-zxz}}wLhOB;)!Y$7#o1h8wG;oJ+Anvqzw7-qhGu^q3Tqb2gBU5 z11iPFo_f)2`_!O@>Us1L1RSi6$55+GaBQx0U$>19;_rtg*p)W;(HXTe#CCDeKv%Uu zL{W7|-w!d5#BtB>vtP${nU8Xu1GRTrhHC!lNhZe-nXLx<*g-0qM_x6_BlP#yAV|lz z=W(oyUy2_{Su^8W_rs-^+?|G}uE%{Uw^RFUqcS=0=HJIFNL#YT;dphWQ4P)2x7c2^ zVRkg5WIRiuw7Mzge&P)g)OMSuJJeJo+W871ECM3a4m5O5Pn=faD(3}u(h_auhX=EY z;n>_JKH~h^l{A#E#Q~xi^3M)%p|ZvcOt8nFIWWC~q86}P{Hdg-7xf6ss1+os{`iv8j zYUdo;XJdcvP!=OZG?;_C5{8)?2ur6-r}yotkzY}|dfjIsMB`G>G92G2jPMb}l;KeO zzwOtw4TJpwN(%Y{g)Z*)Fj%iJjik|0JEMODAO&?{$(S*-#{iF(7e%E3UJ<`TVh)ML zom$`_W3=BvrO=;#0Dw=tzb*E<(hbhSI12;7^(gRqPS1bkIAWUZu6EZXv+{vH{}%eZ zS{AP(pyih2zB{LV64E@0YD%)y4baP%mdW!nLR{}2Y&VU_KE7O5=BC@hkbrak23&o+*kaMZs*Bw{a7y}WfTtbz0E;o z)YZ#f0IRwLOKs&RPsQ2b7NAokB>E&A!*CDO*$En;1C==(x|`eLw``O)GQIwnrbmy> zI!<1{#HF+k4WG=^6JsKRCwwo*$YD(LCdU578%t^+?@7BpjvB~8tdQeb3y$Q!LVb;XlX_vgaBgfdAWYGhqH%X@6 zj#*{YU}JFOM<-DL!D}_F4Fk~=5c;{DSL4BDcWi->%(DAOHg@{mg)E|Rofi+}T}FvS zjx~hPO5TM&Tu=k|9%sPWQN$zjaG=rZ)tY?Ou$b#o^Fe|O(FhC&8J)!qmTEz-c0z4k zAFArXk!M0%Z*J~L`J?Ri;U9~=nS`g$eG~zm8rf13(j;Pa-WQg7cMpCX`ZsPOl{sAF z)Dqqs@YQSu%~2C158y0Q9t~f*Z@D=&6(F6!v!ho0cHRI&UTPDnI7o_tE9P%fnug4c zod+Z47&MIV0nxSF7-Pc=(+5s@l$Dv~gn52~mD-7L&9HYY>RN=?1Skzw9;VCrktY;s>oe z=WRuqiT!+&v>2movC+@EXSQV5u8pZRm-x4WJP{SEa}}FJz@Z#i4(sa$guJfDjZL4Y zO5T1H2aK9fa4hM^ho(%++OE?}v{Z>z((z5&_qN?i5%EvG(bX5kTUWr&6?8~J^^jvy zR{)uu@O#-6S3h3XQ%-u~Jz9##% zQaO59P79E6AS&LxvBKZXsARj5$sE6f{HII}fCfZP6pJ;^+wRXy`epVrT|bh* zpyayG`Y>N=bAjNqW6tq(lgJpVB9X^^B$#{v;3sC>M}QfA?F_&RI)UaWb|^prKDSxg zQ)@~QF*@yE!K`}&hs$ZMi4#r+FMlC$on^l zt`t+mdI+$S8J@Nb<~+dFx7K%b8q?*=UZSTV*)F4ru2F?>3PA!D% z9(F4iS}TE6s6CJ($1^R%PQZwx9Qrz=_JY-uVC->A446KD&X6{+NAjDMF|%3NY9Beb zaGvzN&VCuEc(BX`n^8Kq-Z$U4`8yF5PHAaN->nkdg!Qp+r-v>+tJ`YT=56h_7g6UR zcpGQ-gkpK@>mOfQf-^&QuQMlP?{%B^R_m)#b3 zS}&XlmddBHiBnam`Q`pN&^7cU6A&Qg*4*xTuUurqcyRm?Ig6wBCZSEZ(gImQ<8n3j zL@(>{M6%M*`hFD~bg=K`;=!q5;2A<#JBiLYXwXO7Xe-c7CW$U|H{O^Eqzo`v8hk1FVfvVhMt z693WrLgXoUkouoo^lT;Sx#?wpGzj1XN)GIs!O=Km1wO@g7C&;4imSiVMIhI)Gxe#D zomRAAGsvks6ZeT%mWOg=p-oyvO3`7q85GNCoQ<6quvf6MbcQHtgu5{ND%?WJ?WTw0 zcqxU-?3!=?u=4L6J|==c-bzH{Us8_F$9kYsA=lx*7LX3lat|Nobuc;SUNI{%bLiBO zGTKBOqTldZVPWjE5Jvn}Ew5_K(`c$La15`4t);4)mme@^ReiNMeqF{f>MZXN(~@j5 zY9}==`mO@Fi3DKlE-o^w6=_q>Voo;fI&j@o8Pi?0t8K6iEb~BtQIeJM!eqPHH!%=I zJv>1*ebEvM`#l<es$0c3&uTM#>QgtQ9jeOK3hvpp; zIp=6tQ_xg|-*zQi^Mj%d@6lcPXEg-88>-uRRxo`kwg1z0{FPHRMIQ zOa1^9sgr|kW~~6zmVKbBRK}Ky?>RrdiQ#-M`TwVJ|7#x+E6D>%N)yqq*ILR+c&ViK z%-p1XA>FOtc3Y8*BnJ;wF*ZiLMf^o2Y+HcF+tuD3Z3u1NZa$r)nDg5~%^T&SJW)P2 zx1k5~va#=q(~{= z5GgcT^#~bs^AR7(>L^%cXt0_tvl=cyBvP~qFK#i%*l{)9Mftc%VsU%XwSqq|lNxws zAMSXm74iE*v%Ugep8yvENQpe$TftLKgD7?t;pv%Q^*(o&l^VoCj1ai~yxekHql+2l z2PC8Q1SjJxhNwQ6%V@VY$F0j^uQYy>5Okrbsrns;C9+#d=Z8DYx0RuhMThv+PFHhc z#q(|ZukY(8fbVX6zPT^yc@>hDXnte9e+bCEn|Wjbkq?(CsI-M6PXbyB$5$X9O|fZ0 z%o50h01z@Ppn?rHTk};t0#+~z?ZqiUZmIra|DS7~^ZUHX9T;GE?aq4Ii%QD5jGSCz zr)k&LJcxt!OryDtmMXyARN#EF;p5p+vH!un^-~SxB|yk%^cO(5aZ3z?LQf53thL;i zrd|W*N`+W`s5>wl=3&)BJ8@lzghZSqZG%AmUdWfFFV zGIh`U1_+&BAu86-9@IVr(tUtZ3}h7XI;ckqhbLUSTZ~M6Xjv>xPm-xB=r#b90`=Om zci@5YX@0S0j&8|APX#E%?aK=w|Nf=$9_1;i`nIw>xfm*re1xnq_=O3L0ebGdNKBp0 zkU;sYIKp+bEVNnxA7FshtKh9aCrdpO&Q+t}#;oQ_*~!3)^*O_dK}gYAdfHdTp2X1? zlm=eKqGH~`u*fDWPt@|9Ky^hQfzrQ8lXoOozFpmF|H6z25orKl6ONyW7@$t@?RJsC zvHFuSZEDpX(t@dJyl8NTy@`Q8v*YRj4~Sfoi_a zD(p>=eYsf~RXX9MOX9uf&Gb04z+P>hOft0c<7t#+Jk2Zt)FJmQ`7@G?1Lbyj!hd5l z%&Vhde?HI`;Rkwr>HVLQYrf4TdbDpR08`38Tyy0oY_RR<{2T&UQRrWIyt#l>Kc$!L z_PU~yNaP#4&=b%N3FCMAzvK!Fi4uEdYzf48I(_-I7su9pkK#SZf|`P%2kT1n;B;0k z<(umpZw!rZ?I4^S^k`o%%fKt&A3`^6(A@K)V z>A*XsN?U6ADs|BKmST^5n>#!1D_~~F)l{@Ar)MHsE@pVDb>+rBye4!T9R&l{e{Irj z_C#GZ?~<{VT{{~6G$wfuUQAx}&vg>}Y%|UPINN>WfpAFPTu0XC8YwU3I)5BM z-EW&2?5d4F`Ow{q$SO@1M2CUEKEW+hN+P+r1yd>Aa0=l|& zYg8eXr5HyP3i3?{ojgCK#od5-WTXQ1B`}WSJ2O@m`UnggO*RQMP*02Ej}LbX$Kxs zsFy{f$&-^M(YKv&k(QE*K)*dZ??eZ)JR)*R7(19O3~aOKXVMY~oGG!Jn3QiK|B6Y?|E_;pNiTD(-RFuO2VTa=V;1w*ildZ_) zApVrzYqnn_Lp7bjpR(E=|Lj@=z~t}npcJpHO=G2RpXv2k^R(ZlPv80-r!si6ExHOC zR~iH?m(XQZ3xE7|tMW$Q?+zb8>xIXQSxfTqm+u=M{W8NBRBuCMhmiCzPur_yxI)CN z&)D^rw(z}$Z zXe?SF)H_N(D?=PGz)vVgrrjlx@o*oCP^gM7?&pbbSW1EhL7FRyZ<_`;+j`$eWEmy4u_HP zQOI(+z+p?OYMirMqeV)!RNW{LiB=?T+thM zGCeL{bnyTMYSAedW*8@4lSp|r1e`yvVE?8+S@>jehcSX3T}>WoIe=T@=K#6!&lF8N zH(`lMGZVahmGe|QgeU5_J`#iVmm%^L!vo)Pfz1f0QUNj|z+DhWFQfXPc)YfCmpT$GII2<6*rEwU<{5WZX21$BO&_lFFU~d-YVR z6_Di_h?@yxn7tcR5OBjRj0}M&h95$0ISbPR*p^!!Cj8#?cx(6AAo)a4C%@^WU!+um z2XBe0>INX})W6?!be(H{51bc7S1~KFzgt?FnnGLhb2SWn@2yt8MWu#Pvfs;nTg`ln zJ|t0ORska+o33M*>44JzATko-6s{hs#SnTSTo$c8TXe=W-jy^>%eY&8;Ur_E&*cv# z8noEdNXkkMM{APEM(WHZz@cxsa#PTUzd0AzflT}|g)fyY z?Bzpfd{rmf$(b*XbOy2`TS(X3_W6*t^bN?>QU$Z3p9_0o@Ct=T9gGfAS=*s7)(M7JSP<96+)C_zJ*LRE83ZH8)kwUx+p10748N`c{;pUkUMmJ5wbzT^Z(x7mfJ9@LvjzX*xwc z%I}oQqo5Er#)$pjmcPyvh`R{%1JN5HiG=gGdamI~WGMpjFkJf!?BNv5!`i3|OEqi> zGWvTZN&K2Cq=k_ZKEKK(u}DDdidk4EJ4!vwMbt6-^on=V;l~TShR+rZ4sd}FND6}b z2-Z9#w?}NP&8EDDC;p6(3Tj%=*pUO2yu7Hmida1xlS%qSz)b7m^XAF?WW6CA1BtaI z_MU%pNIj%fDRI-o0n{Z*bhDBs!zw?A+Urkw>SK8L!c=;CFlaC~u1>~B{a@XYzZU_k zA*1%{#IhLxr_?EfdH_I@P!eH z$p_n((GFVq27$G9jra|T6MWXSBb#jq-M|J)O?BuCGBI3CdOAiZlaM?^I#7L>$gw>j zB{~9jA~CtQEz7zaGtNQEzK@e4k!x(vc5C*-Mf7t3yv@F0D_n2mFrCO)`RQUe#l(L{ z*kI4u#e}&)_va$<$8@e24VQS&?98c6O>YL--+XME5|SP6HEvieWfeK2f+tz1%1-kW zR$#Io_k@75TuRES*CDIC4g_vNz2(B2O;#Lsfs@eZswH}=(|+FhvsRL*$WeHj`~uO< zk6m(3WAcgk`JY0H9I^3zyIVNaKH~_Ttit!vk-lye)roJH3EDGOBvY3~{jPw2)o=T zc(U%UmEtS-M&QLH!qRLW7IzOA9h(Bvyx^xqdz@#9BMoV|B{Ok`WhNAoRmO>^dpFPL zvs@Z|hI7{kbbiin$|tzi1YYkB?7=3rr>hkysXi1Jvi2tmFi8mmVYE;e!XIAYjG!&5 zjaV1+ESha@lSSshQc=Y$G6k4PU-clMT}YFcC_mF=xO2n>6aelqI1AxRw65YO(EP=d zuS{jjF02+Iv@CN1i=;bg-lUg^&#h00ey;KaK7qa%h5@d*W)Tv4&nBLbAPOcJ!7AAH z8&H@Xq5a1UW=ri!hato`u4LXaxgru|C3A81{3%HojRC9hb1PLxJncNzw!dhGCAK|* z>GbWvftI&mUm8(LS=v*47s6?tG#fdGgmPtqu3<@&sR7l7*KcfT{JJJ@?4V}$#?DY1 zCU?!oGnx%oQQ}aP6&v1mGle&9Ho(#;pbVpYI2^b4f$0SBL&VKaB2UeUDhBf5Ev6Ad zxyXzHAqHWN0nM1*(&b@S-AP6hCh`?OfN{GhV@s~}M1z4BAV=?3ICLqt`8ma;Z$S%nzdw}T9Nc`clNFfm% zjDdQC%oy^Fm2_)G)!)ndRibrgsd_W}3@e20F_Q`uYAwDmZcN4F{Y7KL93aiTdnOdG zkBqV=0pzKCYweEM+*k*yv$?m{lNp8m2;NLuRW&&*lFk|BtZ}grV$)gEk(ggcdg+0P#|bIuhcQ{mqbk&>fg*moVvH+Z zwzE8kGdrqmjXg|2F5$|@6ylw~q+2|@){M^ySH|x(0eb&SG6l(`ZKwjKHtP92MymWg z!laH>`H`Sn)~p2KaBw&n8ArI89w4{iGl{+h2Ou=9;&DvbH8&8nKX#$P{1tjY09IZT z9`7fV>W%5}pZl@*+SKb#Plle{_YZp77+0X)2;aTByxAU2cS2|{)_KtlkcT|_#wfw` z>_kVe&-3+JV4@Wte0{81cVRM597`bfLw}PZuvY_QoaX@yg1Fu}OD%-tqw3-yQ^K%z zzzaYbbQw3dVx7bDfBmXfG;-u=`7zD=r+=c1NCSda2K|X>C=shMlw%8(qWE!QYuL5AwW3&6m41K9iW5K4Fh$=i}cgb`Vyc$(zPeKbggtJlCdGZ<5S)h*#`47j54SsMV`Jwe1jb zE{-WM$TSN1vIrjVJcqx%w2BzQFIQb8aV7G8X0&3kS+nPv5mk|Y(jYTfBzUPJ1QEVq z=N=cI_jm!U`j?Q);rz@!I7!I~Y2PD$UV{k@KVm}EN*OVuz!N8S+hwWrK z6OEk(?PZW{%DSmc)?RN`rtGyJZsh@DJb9EW1;u>-@!y{l<%|p^UejZNi_&-JF z7*o=g`w*xLcKzzvJY`ruSi_0bAo%9V1qT2__GvXuXWl4l!9U960uBCHspRmSS@M!) zE}82NR#%(=Rs`No)(MR2r|wP$#Le zB^Lhic516nf~xI^{NaXgAf?Tmu&5E+|I4epE7u_g2J^J{odoTq8%B^~+xLh<{X@|> z$7oENnZ*rC0*;6+i&8H~?!=zb#m!s(R&7k;bwHJ-CM|>F@OWslyc}xiwCsN}>^^Yj7~Z;9O4TBTj}f

^Hv>7M~<%MdRtT@-aFqZh!<XX_W?;;B~b+JCXKq|c&T$#c}w>kTI(b@m}W?ExN zoFshvIEmKwweY25o*WBMB_zm3W@D+}ELwC|((lO|H+R5h#E`l=%ZB1aglorG00!fz z%2K->A}OHoJg7LL#NsOwTbG=R3@#^1%vc%6&AC~te`bnG4N8&Up8 zaa@dOW1tIsTmILvKd~1ydWAULbeJA^z#iZ?v>LCx_4W7*R&@LET|K}Kt*vNki%wvh zD-f_*71##MHA@+zDCm!fmCZE|u(xP>ok73Dj|=8h7htyctsNKnho@+HV$W}|`gZwQ zFz(1}5(BVmw%D=1^7>o=54+F+aq9n-4Xhbyk&cdm8NpofYxFX+L|*5ctG=|!DcM?1 zg!&s=1;NAA{g_jsuaYNzGvEZqSz|!{6dha?d5|BA03R_qS(z1M1h$?rMPU`1g!KXd z=MDvQd%1|`3r-21#9IpQ=&tD|kRj%By$|^WA3wBch|XeL9#Zq`SZf z)96jQsCwzzc`J{qa^UfUuHb#KorSPv78aq?{QUOS&iHvZ{%4Q@wJPxvVwY0{}xHZDut2bNWB(&+ZVuC>A?rVOZ+e$F%&bar4i~zpzgH*o9mGK*`$KlT71x6qmiSUDZk(&2M2TksDB19LLn{9uvpt1i^#Bfy1dUx!7W zTdUUZ((0b9tiTT^|46Z933bpB-pWsX3!WoJ>O-4BmM9HC%ify-f}U;aWDR;wsizdP0e>@nzEMx3-W6C~W>k5^MrIn2Sz0sK$BxDK+ z_!~ShU_FOD+ot7aT>_USp1xq+dvBJAjh-rp(Ce(J_7I^S+eqvZZ_bXkcC)oUMz+jh zsLUkEY}i)wUxFu^R)AQ%_k>pGaHP!kZUCayGahK=R;3=X>?{Tne@FlEm!^D|)6iI{ zCW2&v7>kzzeg?_4pta@H-5B4}&KN_?z50@iu|K+t zQSYJi9>NnWHq#QsXL*sII?j2TE6zb~Y~@PyybA_dZ7-Yz92Oz0h{_JI<|)lU<%Eb@+(z))o9yI&6%z{}htGM`M#!>eu=h z@2Glt7TJGo8;Xgt!27rRN%?0upZAcouIu9qu%SfFOW1?;6QgLd8@Q$#4KYMa5vD(B z<#1siY`iJZA}eePLfd-v3M}9J=%O6h5peC$hBkhivnSH?Cff}utjReSJoY0dzjoRk zid-zT9OGupoU40=NRV7jW}|zve*xS}y^d?#FP4JSP~PQU!I*0yu(>KhWtoy-AYmD; z!QPR<9rp;MClCxKYu4BftD0`A5YN&QxV*vaN+wZq>}Vw1lgvT^c5n z2gCqpaO+fe>cr+h?>by2tVSxEC3UPsS?`8DJ#c%XcT@>0;HU+IyNq{ICDU$JZ>YT- z!*MovHV{OZE@J?QEbfV$9X#n!RWxP-rS-Pf_gezHLe-Fu=c^o!CB~8lFgK#cPP(_W zbTh9{M~xz641YD6-DGN4&zVk2)n-i}|K@6i1JxZLgd-37cKxB+@sZp$>9Kr&F&zH% zy3wrdItr8)hm6Qhy=noRWWRD&2_!b7wNaZ7dasDxc5t{OUoTT< zq0jlZ(lLg`-GH|LRdLaNB{@;XBZi>c`xN_KpGq0$uIQSjW92h{6iXknuQB>%4gXc< zgF zUect3a9^l;=V?LvV1ULtibBbd;4jNOvGm`nev~Z2g+f;lU?r95sjM9(g~t+GyaIk$ zPc+s%;rsyuk!n|5%tBzB>TW+5>&d_W zlzG2x_(h_r>p@Q8?`jM9Kx_dy3)IS{l^;*jlIHUlMS!a4PpQT4clSEr z%!**!3iooK&iQir<4^J})IaL&1ZT!r>kA!x!s7vF|`J}i)qWM|3 z_{U%4X9+@l$bU_W@Mv>Qp5wz#!imLh13I~qqo7v`E2c+TrB3vo2vjnKH_|;qKhY9C z{5<24bbXoSK2$*`rM3AHyIU85lJm>3R5KhKMkWXx40y4A|5voW!l+LqtE==^i(m^gvZC z2ap=U5T1UcT5r}VsUhL=V{~!v_@mmkdC-vA7XSkIu!AqJC^z5h-CtUU6(l5eq-%|^ z9&YddDq@Xk5S1iOkI)nZ&DuM%0m3#Z3;xc0Aa@8Jtga&?t3fZ7Tc7>1<9m<0L`v1L z_uXg_2hrq#5iUDtu~w_@P5VjKnBH0ofQo=tQ=EC1d_%Thw#B>UB-;}gvJ)Jw*q^b5LbOEQWZx7y_C@gl!2qT*Xc&CoJ;ZWSlME8*Fqj&3e*)4Y{T#6t!h zG(wGfy*X7DeR~4nbWLb41lQ%G}%A( zHfM~79{3C@(Qvh2v4vM8(&H51`dEY`|0?H_9b3vK00+Q1`Uh3)>w?fSCk+`+Q69<* zzH-ogK+hbZ_w7ma@Oy{GegWJf_OZD%(|(LDd8vNBL@et<>0 zVaTNwpj9SS%aPK-!Y609V-uw$xU7sQ`(_@KnZ_g7`WO}A009*|%4M$@>AlxmLh65v zrDAK+KpA`46qLWPvik4HU5aVxW2QD(Ta(98Lh2aJjL9^WI!2N*=HR9h8-m#TFd< z4NN$X8#TY>R9Eb4hku`_%rWFTzPF&_#TLEyuhCQy#)CMKq{s$|G(0zWeVu*-Ew9$C zZ1!C$zX1^%O0s*ga#*f<4S=;*2*(n$c%Can0G-PwqFht3Dag$~&RtVVz6b?0g*=fe zJz0YYA+ux>&X@N)%pN=jBLXiXj&dmYNBi^aBtn*W2N12Lk~JFrnqM%M9q$Oz{stJS zZ2a0O4;2*<*Y6zyMZM?51w|=a+a+&@DfBrgbRiSgb$XVKY0ZTnR5lU19lpzffEmQm zBQj=P&9)W0w>U$-D;`uT-5y;(!SERV+OILniLwQM-W=x0)J$2HbSYbFApUePZsQ^C zFF}s?%Ka&YaM%P_psu*w)w8!X%0%(*bwDyuK6>tka~$Wdtae%Pj_^dlOZAxl4k>}6 zazEa9-Ih4Ik{zi@j!V)sI}KnAYb=1^N!nUnvcynnTacJx{fDmnY*@n}>P#V;Qt z^ZsdwQ}M-<4Kdp8J>%cYzA>b&b@Nu>b&Gf;9i+~6fJCR8{}4@)1V1!wvXFKHlhlH& z0wIlXFrNzOyps;g0OyKZdg$8tOjWqKmM*XX68DH0o008>vn{8~Xy!7hKisL*Ug1x~ z(V28@nnm!33Ce_+^9d2&+6`R#iUa=crT9G>%AX~!zhSB~{@>2E+$HYZoB5q`qaF`p zY#M#Cs6Xf0@mnSEA{B+#`+&_wWH{4;+(a95@*$n`wyNZVu+a zb1-Qdv;aqJY6q4}e=c6cz?=`|c!bU|KH*)yQ$Jz4zO72?Z7@>yC}f8Y!DPF+w27ad zcuF?$uFV@|UnakiW!PFg8)zWadT}ayb>^lFb!NWOY&UjgI^GGs0W{d>SSmLIdopt4 zc8X3GEnr0L85+2E%f;>%bEey;2j^DP*Y?<(j|6_k>#zC(W{PgoQchy zJ#cI!45UL=nwb^>0$m-M#qCrZ27+ISQ+lV>I>e0C#vFGHZA=)v#?0-r+gb5{`kCtO zA49;%EitnWvm$!`w)h=AHmqXgypWuLmN|wDAhbh323EE!jjr*tT{e~{E?%8dW6mGZ za@dZmJ%*)z?)5^I5FDUcwba{45`|n%szreg51p~*+a21Udul4+z(C8d6i8@ zaMfwn5HKJ3Zmhv7>K(`q1OW1&(lI4G)!d#wgYRJ9C+m2|Pn;I~wZyalvAs(3+%F2- z2FUg^2#hp*XLt^r9Y2fC{PXJ^0tqhDBw2vm7Na?aD$a$QJ+VdXkhLIf2T z;!zoC$?A!69aUo?&+USAhpnvb+zwRPp00lJ%H24ZvO{-BwAA^7d4{dbFi)+TgpclWftW*AL8AR?o zNWmy5{;feT|D|}I!~Q`?Jt&pX{_wvmt}Au%+s}$q+xmhFP3UytT>nq~fO8>pWhGLT z6>LwwYqC|>po8RM&XKkm&h24Lyz+0~PK(d%QcDPg13;cH&tgG%+ezup=yrPOvrAk z`ES#3$5~BzsXzS#F|95fQH=fAE9i)-$Nj#f~tWVez&q;~pwu-#= za79PVB`_r2{~_CsI-iNVZVyf>7%K^9sgdI{u#&F5ww5Xu;Do6;@)|*S_7y)aIH&9H zj^aUTRGF*O#_9CJn}m>@_Fg^&Sj~WP4$cy^zHHV#%bP&53IIJeH$tGV!JtCwsh{US z!=Lr0zB(mU1VvFmxLyT~lRJLNo^W*5HkdZEra2*K4f3lM4WgB02kFLzEZ`?>LFxu)R zTDLr3oKlv3XW~oz7t7mWeaWXvr_+x7PM>Qje9CIc*^;Cr?Dxq1`O%s{p!V@$oZ^kP z`bA4=%Fu|T5T1cm=l+M%V7M9^p6D?+KTXNf>zCEU&XJT}2(fG&3cEeea;yh|B|6>b zxVL_?&7Cq*e4plvspJDS#azv9G4aj3&OaB$dv!+~Ml>{NjY(MV5?e4Qyqgo5Kftl- zk&NVY$h3kS1cyI2Nlovsa~3-)(@=m1YDT&Q4$+sto5y?kpp)=EA>`HJnoyNyyGB%q zos$|UDuXNKHL@#DJAXD5v@!>GEZakwoet!pc$I_u7hIC%FoLs`J}eMMe{aFThHZ>1 zG{0is(?RP7umKIh=`D70@o?EY=@)+bcWj%1-q+?lSixgSHv`3{QN!v{q+;c~x(mFM^FPKu1hH8ixXNw4y6Zqk(}H;PMlLlh67**x3) zU#L?~02k8oVj00ZVAGmYR6Fh~SW4>!&j7^H5S)gv zKql4<4wmD9*WE;&+r^;v`W#fjsJVbEfi=P~)W$SaF_Jn#h3Bv);xS^%Z31q>Z{2RX z53L@6VLDGy!TO*`HxVOsJIInKDbRyR!6RPn0C8v?D|Kktd^3ia%cra6$D$%e=4O{r z+iE&6U4Y)EoM!pgS4>fzBephj#a~iJfRFSiA$Y*49Mt!*95XL@&tEwx8vZK&{j%MP z-xhA3zcLNHkGik_!H^7$Vg6Fmd3MwGa#>TY z`Q8I8rDttaP$Bx!K5)?{_G`lbrJl?9(-p&y84y?EQaHQwClJfnYqhC})Qqu&LRR1A z&=AGUQQpY|?g}O+Mn>U`%2Fx{deYo(FM1UggWmf6`K1W8dlTnQX7UwXP1FWXhfU8! zk#2gW6Q!jKx#oni>yv{PLlO0c$B<7ux9sWzbx)HyNhCj1Fh@J>Ecnk>r#Z*~63SLC z+h6>N>XxBZ^exj$D(-@~K3&8LB3^Yt>yks9GZZblr@wP|-R}`teD#Zh zMQBaR(|h>fR`RclH_!q(<1yzI z826oui#>)(m)(@k2C{#)>qC(5a5L_8R}9dCC@Hjv&Ay)^a{0jwl2rNHLRMZ z<(SMW&AN?Pp!t{EPE(-$(dhKgea?a623wphRv0IQs=9Y#7sm}F*o#E-1*O-)6P26P zN}A}8E*jv{_OuHA2B|tz+GcM#AXBXLvaM$Eeagyr9ED0(D;;F{`qYv1m;w}JVa$m( zZoLc@@CZL2ZJ#EnqU7BfN$f)pPoH&5AE=bmvdP710 zT+w~|h>Us^Pyc62Y!P6>4%7ef3jd`hEfA}oJ6(C0o#VTMyh1UN@0D`+UVko$MFpw= zk7SZIiThyKUr)}@PKHR7y28a$%X!0W?3x%$mE`x1pMZG*6I1(_*4C*AOv-Bgce zQq@Hk9d-n#8z#yZMr&{Ofd3HxDO`S_n*6j6CuJKg9B+7I$tTf~3St;=PQv3(YGV^L zc?#1-0xUF9dX@4_QVs)1+Yb6g`3wuWs!(a^>N`8J*yXpBgCqz#Ms#uG=kBD+ss$uF zO4JMMkHrE3Xn+~BjRgl}Sm$t@BB*agZw5M`jwQzMEn`98*yB!fVNFzDPZY@h8{dUg zm7k7Zyx3O$J^Xcss1Rzn|3iQq=8r{{Xp}Tc(}(8v>IN8knW6la0S4{D@pXDk)sCBE zcwE#NdYS7=@tvU1yq>%m5`0WVFYTe+rvZ|K6*=iK2oEmHW3Jf;Z^$=prlmiZBk=_t5S^s5uMdXoThn3;&ws z$C#+|UpVvelWgq>am1x%^96oI+I!)Ke+}GXy%U)z(+lBM6%Ql-lp#BE9)W=?-rb`| z`|ki(c542VO>#!)x0+ie!>8W-OYr@OvL0G7?lDq009$kaq`uBp4)weL>nhBn5D8Zb zxl|@Gpn`f`(_OrWE3+Uo3G~n(`d|{k0AMDSx>$3iW40>R`l0P)2~+uH*f9jUl;%=d z5C3t_l+A^S%y~r29dm*Y0-kPFH$uFM)tx4bVvpUgcJW#n3XihT%-NOv_u!PBsaJc7d0#X~-X%)5ImktM(Sq8^Sc zxcJ-T!!l!(uiYiv?;X3PQQx4(XKK6m*F62=f#JKGBdt;DtLN2ob2e!oYaDiBS7ZIM zkCRxl%d(Q}05iY%tq+?D?_Ic+EugC-^*B$iCh5AFB*AXeS)@}rwE!Jvb>J-g9nFu91V?FTJ?%}CZ_8r@W&?c9W68#H@Z1zDL0zddm*XZB9`hfSE}uLtR6_{N-%(@An4bj)sGi~@BzFLHAokbwR1#6cm7&*y(U5s+{Xi*uoc+|3 zV8Ufx-4yN8hg0lxo9Q6JHuz4*4&(!QtspgAt2iZP8*E$to>qK9lxs;y&s`cZG>OG5j?Itm3kkBX06B1ZHT4I84}aI%w=Or3V1m|@&XZc6er zZllgF+KcKVTd0cYxVP;~m;vT7yWoGcnZ@VS*m^vh#%tDq$+5ElCsS3xt{Ps4c%%wj zjhfm1nmfRtnvaxOx?^6y%!RVzg?5L}E{}MAW{B%PVeZCESKCgG{$L%&lDYJ5{ED&4 z8R@{$XiHh;-lQh85KY2c5vi7Qa zV^Hr{NpAQpCO>sR;N#5l{8$3s($Tz z+I&(&)`d58c{#f!mE+1bfc)7vL^O^Ck{Muwk#i;(q;G6Y~IrNAFLz z$rJH2NPc59n_}B@NVRg8AFQ_VV<~%#MvkDJqz>En3{HF@k~qsA^rT^PlV0jq&=^!( zt0;f^_7Rh?3$*;{Aq|OSF2ip%%A`KtW`oG)iQ%IK6hPMYP}NIdRAcV zH0oSk4PMbck)OA@U^zf$X z?s<7eKM97%7ki=vIf0MP+^b&mG00Q`n>_K=aW7R7THJAHlQppbRWNiFbpj}mX9mT?1_IkBj0WH2&+0+A^ln26egwBL&W}eVBR{*Ieg}vuis;-jq9wHQCOLW( z!{}H^L*+}znC3Ik<1o@ zjX+~3&XCGPYx}@4%0QUBivV3m#)z5mg0jf8V57_0F^U=aRJ=n6E(BOv`gfkH3D(9l zn}s-D<=Ll&q2ZKiKrZHR?Y*rU%z*iV@sCo> zF@&p1T#>a&u~ul^$(*#diI_q(-0Y*hVdw}D;I7U0e*EN6X{ptomRsN`dP_HD7$P1V zdVt4HR1RyH31A5hXStdS079#PfH&VKt}ayYLU+;9J}3=4yBo!N}%oL2`%u^PM-gN!N)z zN<*q@Qgdm1C9~RYXS&FTYvU8B>wCW8(Zl2Y?@h_Ly46N&PX5{AEtke`tw7?wctOBI zFs#W~Ly%-&?>sFHb5HOx8}#2-jBrd*0%nGU=7Ie2$Q?Y<3uR2rY0xqj;3^Xg0s?Ps zzv^OGs;k+hdA-*;wT+yA5Y11Ea&P4U{{wEH9p(JyWS>3zhi<2ZClI;Eut8hthJG6W zh=PASZn^!E;y%0ZVh8HzZ(M!b`4u?qtnovHzLlY*a4MykEis(pED^`OrTqR2_qlz} zs+=B3AVM8Gr)-=(<<~W`uOEax6NfDklN_yKXo+_b%(lm-2#pVOm0vV`%nQo>5ms-V ztuJu&E#0M2pYU1%9v@nC;>)mL))oRyWbqQglrb4az`Xaq2()0z-~D#hcXM(# zn5N5$_d|m=k#HIq^?K~#@y0p+tLW7%#E0@~SWOlKP^~`Gf77B>swu-iOV$%#UYc|v zaUjYk;fGI(Izf91{d0eL@fFL!KkwXQ2@U*b`h>@cT^UMv!HslCK{WF||G*xyclGuG zIp{J>4_uJh#T7N0fOKl>YqJ{KYKr=vlib7jt7Q!`^v;cn(pM8*14ZDQKl5mmUMZLf1V375aC31x9h)d7MK5tmfJ7HP4@y^M*+Z?6kLvY+bc%CmV7J*56N1Lf8DTi{r(}z`(==@|$kaxhG94 z4Ba8xGw6C>Sk!q89dv+Wx6xf<&WKw5sz+vK7goN_LRC~o3b>y0;-2(TfbrFUh?DZJ zkP&a;2wI*$smEJrHx6W~glk|mwZ|FRG>Y#wFYaD%{48KZ%`^l0aQhd57QQEWPl|_j zMH^|rGy%v+XL@XTZh%v4z)PR3$SftD0xx>{6e|~44@5qD6j;vA;V<0ZkcQvA4>bQJ zt^z-;s~4N$EovxQzmzPhyDmM)9dNg&hhJxkmX?`Blsdr6`g0uxxT%BX5SVV@v7+q zr=efYX-jZl)Ylf2Kc;n+8<-R`;`Je*tPYe#%I`GTnxo6w^11*qP?o!Sq6ct&?q_3NTI zn|`0V_*%ctGZq zuxTu&En)AtgO_hdLwE^Jevz3+>xbd6(iz`2&lgH>ubBpW;4npW71 zxiCOuYCC~QR!Qq^9N5W7tAH^Cu;8LP=mm3ADV|{KrjA*U`s#aX^1eFpOn*UxD9d=c zb#R=IgUeK(;NaY(BUW&$?LlQsF%YupVejB5EbLD|_?f1-16IxITo18nr1;M|6Th@T zKT1VsX}=!)c`Km{nf_QaO3V|8^Dk&4wNkjOkZ7ojQTOA*68^0>&FGB2VQ;&Fjpapw zB-Mb(VUFJ4P-MThlB_{&2)r}|92JQpf>g9N@U-rC$ySmb`^7x-fLB1mSYv5f0o@VF zHf%TT7+#&lFF{~6un^T!r56y+vbrnrR}mKCQ<;*_QuVK-ZSD~v&A9;7cA{)&5gSC> zHQt@u4O*yOY|;SQGDVOdWN&T**4D!`c?o`kfJRU#T?M5R^YTNer8x11nRPp-{A7+x zKX?N(3EtrrgG@>)uPT%aALB6&F3goOH`1+^=LiQwuf6^I$LxeS3LGpeA4o5^y4y`p z9s>fQVfGpPrkWpcFyM%BJ%tp?E%N1V;P~D3Y$E_yGn^h3IS(@SAmlN@J*I zU{K{Yc{SWpuCb?@GTneq9bOvh33+~p=zHo$&?XPc=zt{3 z2(|9{N0DlE1BaAL#o5)m%IPZ^?HP(Jb49TSJMe}+K$sakNGibW3?%$Z0&r5^(o#!H zb&*p5OM}G@vMtk=a zl87BbY7*flDzb&u#`Yc~P5sJkVCi!{NX$vIFf(20r%yFDQy5q}A*>|^%DY-tP*2|G zWD~;Q_~MJ6%ofkjz)DAvL!q5EbqfdJ>qDlbS;Vldf~y)~42AKGlvG(%`&t?=!!+iu zp&Qa6txH7xKd3vy@V411N8-D#j{}u#uJ}@twZ-=EMYh=_+kc^f1291f;C5kpdn1v4 z7uW25ug1urc{1G3pcjLw$f^Fp=I(#PDe|7NJs@y7^r*|au^;f84;$w2ui|9+db;$_ zMe3sH36#7KuWdToJ^?ul2=R;Q-HJ&0s?g~f7p(fZZ8;}uOT#pl04Xcq(6(=Pn`uvW z%Km1BG>Z3pwGbGBRz` z`Uj)NvrgytMjhDvcYm`d*a7XlZROOk zsC2bY08+C|Tr#&RU{hiU8r+I5+e|(BS+Y}JjoyD%1+5~PlgZ^}*%sPW#l6A6U@Y)k zu0pO41?(S@e?#CEPc*_*EGwrMO%iG8F0TEOq84)(gwtAZ(jBZiOTt!*OWqPkyfTQ| z%gUk8uX{HNF=~0Ub25DatBW~BRT)Rr(Xv5G;mx{#5sWpz!~ew%v?2IpA0S2A1YXKq zY6uiH24?&$xKS&P8TG8h$okg=A^*$a`FBSUBHu-m2>jv`MX@It#Cb2Bu{rlJP~RZR z{R3A`Y5*u?SFGVnY&H-_C{lz`kU$yW9w#uKKaoF45fGAXrnE!li=0$UD?_F3lJaM1 zpG#>?sNHvrtV-es(mxX=F)ELnu(X{W7*$Fxkx9%i^Alr>pEt#7|!mmcbpc&7MUU17?K1P8Sd%@mUg{p-GRm3ieU7}!j(pcLi z;6A>)y5aQH(U$}RNNe&g%0jPy$qwSnEBEn9+ivDz;UqS&_Ro(zu^kpY*fHb2nShcE zsu3DfFX*U>RkwKMHCcf`R`9P+m@`we&)zMJVjP^HeuMj#@`ZHd^kgv6!``MoBcd=q zpoFb1fU9Nw%v8<1A%F}4;c8RM>C|k6Mzc#@>S?_DIudY*I@6g*rSfZ)H>f!)5-KU) zC^SWHR~4WeGl*z)mU&j4#>I7G{~KWIY7?a@kLmucKOdEn1^Yg_P+%QfM-bm##vp`b z^LfbymH0jDxNdl4R5{3uT1Iv~YHK$(S}%q7<7J*1orp;kA_wg^a7`2#&oWRl!JYVGfa~SdcU-+UzwpQUNKS6eQ6l3%1l`{=E?B|?`%q!am8F*KFh7yDMQ>>u zqI!0b)e9-_Zn(g2(KDSxIgOfHu!-mQcbvzk1TTIQ55tt_BO5ojk1rOgT3s^ef<30S z`#2FkJ{#m*zT z{D~mM*7+kL*nd76DJFyd_8c5;hw~x;E=bWSRSgStBZz`_1p@Bso~}j#-7sotfBSh8 zEd0OlJFwk_gZiKr>#!-{dsax>U)Z>Ai4ic~wh}GP#Jze{*j=+loC$*eS-mYC53BD@ z&J{dcgmU(J9^6LZ8a|h7_Kn9n__%$i{Y*QP(daV*AjY^wB(v85h&K?^&(DL;Aj*Hw zbILMO`-2-VOv2)4#&boiBU5+~hT0`rgsXor;inbs^dxfD_At9l|EkIxu%nD!N7Aw0 zJjeB(L>)J=J#dnW!Iyi3hVBNdel9j&<{q_^;3mu3pZZ`RZDCiXB(%5SSf5I2d{DaY zD|(M@LKZBEX8s-$zf{aDUHYIL_PwKV8jkHe^G7%OjnRjR9||6_Bg}PYv*ypracA4I zB`*&qH>mKFCoz=|N1Z@Z+-xyB$dm&(#7RD`UR>pSHaaoIzHW!Y`Ay-)qTkXj*Uvbv z>QdBGqL3SMXC>b1c=^K8lne3D_kpHpYHxr@QK=(Qu~bhJ|(lhVvvJ>Kh64r(Wp((Adpd z?3)L2`|(`EKdeAIorP!2u|$Ou=5Prnz=k$(`6j3@#C(EoTDura=he@0@X7Z$lDKB>qUT07I`!Op4RWbumrH2lR3n(ea~%bgEA+L0{Quq-P)L85oKkKz1=rHuxR;o zUWuI3=ejTL z*}B-!_tR=KKJx}xcSEDi=nyEfh8IlSsnIhK@}7*ofl6ef=LI=z$XR-Oyzir)GXYs# zdoULQl#!pb;a{m+++!L}*JKetYG+Z>=jsBhG&PP67+`WFW{5VB2ZJIOJmoMk(aJl1 z6qz2i{EgXwN!Ffgd*u%SX9 zs3cUINcA?@FoX4mn?Y+b#_w3UC?rjSyDF^Y{zwdBUFQXS?ZAS*#(p>;+mZ~SyuE=# zHm-Pku3z3;S&IZf`HZ{Z*9}-q$%EEYz8G&YRL1N|%cvw0ZA4IN$0)$}qUae)Po=G~Kr~ z$7#asF7{z|j-8^uUutvya2!Bj5nkDI9nP5E0TRfYU&R6DF5^e&b=r*dj|j*IPyz$y zxK0fG#ZQ+mnraHA<;OVF&}SlcZ$U4V4Q>M1>|-dJcg0mQMBa_1=aB1t*?;K2jkRPW zzWFi>hGp{)&p;(EiNRP$inD&}w7cfxllDhcN}WaG9)QG-C()D3-#rhZKc6bWdLbkH zgz~FG@s5Os`Xn;ST3;G+vW!b^F~$}!>7@;QQxzTs?{|<283{iV%@*OO=CPbt@C^JgzgA~u!FxW_a( z2{ww(3@7%GnryA8sGA0(-zxwH?QHh}2Omvl3OsUZ`Tx zDU1R)BSz|HlC2#Yhxfw77F&D8B6YWrdZfyALm1M;+`w$pwLG~GBN{La@~Iw241#EV z7L6O0F8bI+7WOI+&QmLeC%5&Q9F+~gwJ#4-uXV`SnIXZcMYP0oe8?*-gS*RvSjFPr z7-}Cq4Zr>RP925}ye$6ac%g%*pU``-X##a83n!R`loSFS@@b!SHE($TnY&Iehi)4d)FLnb4 z2CGM29ume20-Nx}gB}oX$*Wn|yy_t0EAXh%268$i=erI!Y?&54P=vYJjG+3bo;1(! z@86>kB>t|OiUiUfad0=zfVEvSKz~q#3XfAL z-o0t3Pk>)z$R`o)#OXOePiGMO3v_GiL>QoG@$=V?Yu9kZjT15i{WD5U3Sp!M-p>;x zyljf8tJ{q|;IB~F-+l6l5%t^Bo@e3m5_Jtz-(m2}|0-&pb9fS`2D*RrB}%~uUn-u? zp?EH7%Pead!8D&VGgwI!&X7^&*$EGUXWov7Y#(Ln$>WiYko#}O8KtWfi^Y`BkM-zu z{b37(QES~Fu%|tE-tmRl?i&&v+Hk#cMZQsJVHU(Twtkdh0x^-=zvXEhTR`?Dgs&ODBs&wAzKml3 zd0)ZzX3|B80vpErC#`>sM>RrzkiUqP-cKplv){RWO{e15Kk|{h&uzj{yspa(_pc4< zyy?v1y|wEqkVPp@zg+5Ii{e$2^z)TP4Z{m4U?3 zR@yiTl&++`oMoi=0~U0h_DB@>JTN`v^icAaS_EVfzp4N|w}PYuza|k9+>e|%K3%0_ zt<@2FwxHdwK|YV8o$D`GQU+|P`1qjPaN@Kl=TS<+plf*Z6%y}_XwIqtXs)*(SA9f! zq8#q{#L_s~+>b*kn)~RRERj$8BZnf+rAMomt~Z0KH+0OT;fRm z>!Fua%NVGUR>U9NES2$Mr!?Ed-~ZXk@F;Shso>vHgnH}T;!T2VPEXQs{syhovt73Q z-cY7_KuR?5jMo@xnI?jxJ;=8(A~=ix%(URT*w<~+l?Ci$h$=u@>yBFEm^+8GB0hC6 zG$ujI2Ph%VNFAKI!hR-v=8c4a-N;xj*D~JbO2DSIq(DB&Lx6-k!625;pM?bkT&S33Y0e*eAF@NCAXdD27&~A@+!wjv-=`N zyS#y3?kRyx)C|}`^_<-cn!LGNtd7dDb34gOQPRh%cSJ1jAnVGjAquknsmHFeB#h_G3L>-P zJ2>E6vJUT|KcSi{vGN09V@9ip6(5>*ONi@!sx?+yC^ijR8GI4@ridLequ}_ouDEs! zVqN2YcOpNs4-o#8l6f*u{)KRH#5-kjmqCh_TR=JmZuHp326N*p&> zE{uw%_d#Y=cNcxXj67bCuQDbc*Jz zzzn4{rzh|A?l?ph_dt6A|9aRD8t#45{!rztv8c@!RP>N#8rzZoBdciiOTO4c@X*-7 zlbn6S=_}kP=N_3tgzzmo&lBh-DyamOBKd73w^1hoo>s|-0%G3)uaEQHhO6O5-j`Vi zj-*ZLC3wTc$!Nev$7QW~i>cVP_GUHccr?!@(wK33T0qHZH6PlWl59&cauv(?bqCx_A9Zl56EWil+`_Sau&OAoI@ zAG!WmYqZ>CUa#`|dZZT6d7Yg#3w6lk5#$)ik!{^{i1BVxLt?cxk-8~L(5h3TNwcvP zury95b0y~Lx#$cA1}*?zJ`kk>g0MZ^!D-sp6!UpC$DL|YO<5S1e_Wxv_+ zJBK6PDRc-g2yLhiX~N#ya4HhZPm%Z9Z_D0(&MK1A>j49s^-BM6C5+^}$hId()LLYx zgA#oWE>0ur+c`rTq3x|3zJdLvAm>@{XH@J1c;F;|5w`;`cbkB_Hek5X&R19{RKGYs z7lsTVrCL{`?p{4iMdIfT#wGIQe9ZOuSqFfUoIUg{J51Cy)mi&W}~)EUpt@G5q&@4B+KM|M`4)10&X|%pje02F-dkAeHCZHb;Rc`rj-t zr#DHBmM$lDUMwYq9S0>OHaguZ7_jKB#3p^1%0scPs z2)0Gi&&*@(mu`7QTV7LU)Lf)tBvyUF{i}>#mof0BcEo$+(g@Yu#z!&oRApNMAOa80s^(Lm7sp?ZS>{{4n zG z(V%~moDumxc_De`NS&OQF)Fn#?J~_@sMAr2l+K%o@$H!kYr^%fcMWA$aVO25Ik(>CZ-_Z0act8ozpSL2XGts;pl++38`+G|}w zK6xQH%d=%eRFpFV{q8TFOavajk%F3_6@RlRWQyJ3yF9key+w7BsFS^cD9L69^X!~3 z+^*uQJ40NNBgZ|#44wy~I#uLL*`KHjkjFpIjL>8*8|$8{x2Oz_WIln{G5RE>6klJw zgo;aI?ra6^l+DCB9J{}fGZ`IJE!D#iPaGZZiLA|cWD_=$)IPr%XKY7SDq|pLnLSYN z`B(D&d9R3i_@vX5lAhr={|N;1p`m3-aE5E`?P+cXaxW05+vK^sr9P(1aaA{}umjTd z(*b|Vq9)`%2T7`Ah`lMpI5Nd?2;$*pyj>gMKQg-Y(P=+!k!9v-^1$_Ah% z)rH+uIq9w+u&vj9oi970fpw&bU#gR<{PXU9NPpA7YbX|=N>7ti$v0348OS`TnoNl5 z%7BrmCCpMZ$BrM!PM{c0sK}<-Zr2EE+y1gUeo>G5m;k=JOS)bM>pjD(X#a`%XNx)C zInpu>fSWMA-meL0DKQ<8MP#?ME% zP0|wBLT{z6+DN+H>;v(OfH+?I?iCCstPZ5^#|7u%UwqS9Qn(rI-Ck7ti&~pg(0#&< zI!(S_cYmi*4^Y~VFxgfZnyKYS&2;cyxR<_}_!jQ7-lKpWSeog{Stm6vxie%(&)GSFir$oAC^ zfeF2di}Rqfx8ImRmuz_AM=%^IQWC4%@kQC!{!CoXq-gvV7VLBgwvOe=&hJ^gQ^E^~ z#HH+~_jK3MgwvyKX)sE2>J)bSAD!^^Z-1C#m=ft(Cx%e7%ncP}_=#P}Bw0-ny(ODU zK+eFLygkud(D;Wi;AD%#sdGw{!i2C{4Dp0v5v40lh&4n!eS?&z<3V=!F)qcyo$ zBQX_e0Rq@nFO$x&qr`aK_{`t3O*--}U7&INK(%^L!kNuDAy2q5E$A`HfS+V zhzFM|n5n7{a;V!bCN~RkT4yLS^qkV}7k>$It6;eVoScMhd#JUHO@*l_99(?g{FN2? zhu8&T=L4)#;m2srsN!Nf7(Q)>F+sh{4+9xe>WB4z!jFbM&!47xjPT9Wc37_`6m*F$ z&9$x$~Bs`ov7h9bQlMz~|}EAT+_&k{D6Y zzksCU0k~$N#wOeOg)HGf*P2WbeePd+w$NuCxXNT3gv8ILc#c)58*UudNvyR1h}!}aDTb^BjvX5`0V>g{H%Iy=?n!rX2!v+*g_W2UZ$g30_g zh48r&+{)=%@K-#bT=NCXW!N}4m1d-q9=*95w7`~{3;%Q`NOWqz=~mI{fd%-R z_#Gk@*fJ^$b16qT+!EWva5r{5n^sSbfOyZlV~E9r&Gk38V#u zK6thfE~(3zzKy%Y#B2PWI?@r5!BG@hkuW*J=ie6O+EPo`wv7ewNA9nu$2T5549B=B z$%31cD5SanYp^g%f zUksqmZ2)BRkq;^_i~VuY{|Hts2Q*OMS^}jOY139U)>HDZJ-dkXad0feYv5F}V=xKf z1yx-O?GTQvluM6d1Nbx>S3dR#tIN;U_UK-LzC%ebNHRfFG zr-!&Ka@TY1FSC;A+0);@zBZzt&*^Fz?JJ_i)R6Gn-}3qjt@*F4ta;;6!4tbLuyIw@ zb{hma7f#&-cow>8t## zKbT0g?UVWqCU_97o|7vxf(zlL0=iVYQ3NYG4zg37ib(_r2e|#nF3_wXpK3Cn)r6J; zNr!uMN@qGubk9hpQv?_`h0hkc88G>_XLk?2e>hs;#N>|Yz9Qe$6FMMnZ{#+t`c zNe6aL5_m~GmAlU0exfb0im3!da&s;RQBG@jFN|H{9Kc1NPvt~&8Ads0+wHCOb-6G5 zSi)O_)f#orA=p%Oc^F?-|1supk-4yPq#E}b+)%n{=R;pZc~ka5=t>a=#&_D} zu#SLmikje~;r9l3;4eC*tgKcbev9{}U=bs=X%TCZw(7%B3o22l?{QPNaL7rwGcuaf z<4y~aLw4esA<3Xb)yRoh;@HoFhbyT+SAXxMXz(&|$)dqkr>DH-i=txx)oUJgi$X18 ze4}IB{f&OPqX>HC+n;0h)}^;|W!fO-NG3ltV|L3eV!P#2>IGfxf62y93^p_(+o8Xc=PF>v54Qk^_R6Om{SwnY+JdV=61R2l~=~BS=E~R4K#mJDDL%k8k`Qpn?+VeRQZ;!)L97j6g$8w zCVpk3R|OSN{1Kqst?Vbx&J!^<&j+Vmm?c|BgZI121S+POG;)esk)ZQCW)qRKen_?_FZ2jr^HHh2T6E3xlu@8HE%t3(bBR4L z2P{+#En89sM%IDd7n1qcVpD(2jOc9o`b;iqzfez>40e-cZ*-OMlQ*19;ME_!g@6A4 z&UYEaD_~$?N8lAw{}ta7pS@8Zzzgd?V2x`UGUiWTa%o`SIg9x;^|$Cs%vh9 zujdqE*D8T9g1TOQ3eAijk4{tr>5!+&0HeyIYpcBH`YKyH-Hfb_;5Ydp`~L%L4}Tp`D-IG&E`D>Kh!Kje!z9h-#)LcCS0xtWTZj`;YWLm!*h#5KATfiNlCFP=h)x+JyYuSiB*g z+>Lkmv@0fg>eV=z&88g&zRP4cs(pfs#UaC9Ee|#}?p#hH`?+)}Tf1Nxp%=0#x+d?m zUNLKZo_n+3h(BtoJpE&Xw%~}oN^)u>7{Iek>J!zh4rd|yp8=^3EP>(sTKmm&)ms?@ z8v(fgeo%PAw~L4&b`W*3G+%w<*`7za;{%UF95h|WUf%B}e7SPvKSb~ABME7GgfSZ5XZM5D z_^-M-Uz7w0_=oirGsLdMCUf(?BIu5$rXE&vY)b@yotykkL-4L`Z-}V{;X|U4OS35% zN%!q)Y|(xX>U<}@8bXp}MzskIjKkntxevG@>iV`tM*d-Ou-W{gYF@2PPkywNbu0x# zU_Wo#94wB{^8fx*Ag0S3BUwP8DcWc4#lKPpH0gJqL(6+m-sx&Dcyz~@Kf|$NMyb$i ze}Uun_^t$3XR8Lw&!V7+x{{X0&|e~7u?RFBS(1BkSIEINzVrUJ@9G86Us51(+T83W z_tx7fq<6j`-*O2*kf0iH5|1UJ2ouBZC!506H1@|ZuJ{+&HjKeZE$R*0x*q0796(;R z`!gARKPgg2pc_9`8HjJ0tOrFrKsJmC z&+l*@>VZln;4<%=Za!X#b$gNCx6T#l_)cBai@y;F`moCmGziDi0Eq<-Lggli`&`Tz z=hA}L_by;GNg&}q1=PUX+&fO?Cv_}bKyIQW($0s)hv@$vtRL{U?mWJfXh`&DZ}`aIqDXY2E!|Jh?RV zi^Z_(vlgDDi`dCx`{yy&-!xWa6US!G8yivp&2e=tc8`xQtx+>k+6XT=sIePp&oc>#vm}m~YaFwKIdt46-LPF9Nyz`#s%mx!OiLJKG40D($BSZ+zr@YN81EL{IPcK-0H=x zu03*tNa$|Hm^E8Uj&3k=gqI(nLqc-e|kC+e7-&ax}npB7(u@i_Fx2ETUrQn90*w&UX&kV;!S7Tq#W!%+*_~v06f843Vfwdk}Ep~2R`o-MUPsL_j?p!D=H7jkJ4Zd5qOsC%T+D0ad^Zbk>7t(LefULXW63h2mNC~=)c4c( z@Jr@+6Zi-NnvRFtSAhW{xve2bGqspAE|{%;e68 z4bjL;LJy*9Ov0YXr=K_Kfm>)I&@-h^8q4KPzlhJ4IZzBTgjnd8kvU^5Ix6Z@H%^|{ zv5Ulx;`JgKXEouUt#%cf<4pOSqGAOyw!`Cp5;%RJe_XG1 z!!W;ox9TD1C%Xb@OLjW(z74js`F%W6V{t7|hClvE*fSC+6B9$wCVO3S#e2*yJdzO9 zJNP`!5Nun-Lyh;+B81tmFbV@>dkNLIly3hARIZsLG!z3<=WrA@GWxu%gw32BnJmpZ zLcUIX?OV&7k2R_8=$EL$y>Mnl5QnGt^S#C)E-cfYaI;Z0So4#nT;7o`X46%{@|)~|HM9~FGYoKQD4k{7cnyjljoL05i7 z4sKoPTg&`ub*Lry8;Ft~GQZTSjAQcLzeDoetI>zs5MG3h)Vm6)xaIcP=0w)va!@p? z6UGeBcw<^Jb=L=X!k|T04{63w*?mqWZF(lB%?`Nu@z|IEd!BIL(0Gj|p{m#+HNxiw z-72%8ZZw)$zk)`uR7~KNRH~I^ALs#<1Y_{}$x~Ca4e77o1xrPf_ZW}W|6u7vFl8Zw z`}mk_kG}zzST=|H4r{~5;Pt#SCiKw}O(EARVUR-!TV%#s!Mc<*HaaGNK6@8Q7f6u_ zC_wl9i>@GOz^S5r&`_{A!#)!?h3lv!$i^l>1lPts*@d_>|X5Cgux0DLQ4m_K^useJ8QDy1PYF8nZQBy;>2ar0-U|wQxcCU#j=SFhuMoXI zmG`YnD|w%q4FT}0vDC6-!f9%5_A-`NnPW1*rH~Py;a73^M@ z38tf~cHgbpo#4}{6K)K2Q&)2YEUUe?$5Se4z`k1l!%+j^6%+qEj;dn85N6J#-GQrX+Hq!`Ad3V`8x(4Ft7Mq{#e$|Wh7u6Ux&Qh%UA$T2NXMpg>f zyLS9wqauio;A`1Go09}9-O11s4{Cs=6If1YL!BP>vIq$8pPp1~k(g%DM?l#omx!r#Gm?zLzl6{nu}&$dASTzpxuJcU&STj(-3A+bh6hR9ujU)Xi=P1`2PiIte$8nB^kVuLYkGE9teV@afuYM)`N9xbk>4XmEY zaU0OzJ=k}TS&ztVbHy02(Fy!+4g`R z%)U`U@`iCWQ0$@adZ__l;j>u44ROwzx2O?PtZS|nt5+PA&U+MoE0nyWH3m44>x3TG z)V8)nn(!k<1!eZc6g0|a99Yx*Kx?#M`S7>BVdM5YR>e@yvTAn_BgrZHJoejVK%5c8 zCQw|8yD23T>P(MR9T4yTD(vbYcI>+&{Hj$f><1STSg`8#@9BlYBBqT#{c(X{s1+Z8 z#3*mLCY){WudUKch1#;#_5xk&mDE+cxhxy`qj0Xli}2YI?_u-@&a z0$;aMcgQn{{5g4bKmd`ty_%mUaVPlzjm5nPBii<6eYe-@qEU2v{CqdOE;-jl|9rnQ zv8qKv$pm9&a{I}7co%#iF%-!G$|RpdX6jE&moc723^rIs{;72RcOS+td?&(qyp@TGJ=pndhlpOYQD()nb| zs=ZcX=))Ec0_xu{QQt=drjxBks3oba+;W=Z*^i1~g)XQPzm3+4h9R%p!qd>aYt@-E zu~^V?9Wn`g=OTTWX?uuK>gQJD?p!Cm)n5}NaJ{t}*kkHuW#j*DS`~ckH!zAAoeF!{ zoaM+#XEW$mzr|1)#T#SyeEXqHcX7I;+{ zYEUwRuX|5&`_5iSB=`%mmo8hPmr^zI=OvM80a!V*mL=22zT!Men6vy`zfRn>3yT12ZnINIv3^>tR;$p9uDOQV*uV zc%9W*Z;CEGgG_r0__(HdLEfPHO?!g#YVc*yyPdxB!i}zkg0NIP!E`Ur_0BO^Hx@04 zTN3iCAQYag!0CP$d^elH_}=&?WV>btX`PJHHg9$-C#i$JNSdzjSdY_ibnHX9d%~pZ}Ng8CXVd6_y zaeD22i3ulp+Z(tx?Aq;q_D=CZ+Rg?5nIC**A16?&avya)_j_Z~sNV_hv7sH0<0SL$ zz-4rPxTG~HXBd@0i1OYh98yc;bTUVW7Ybs`QN%wX`XD7~ICP>Jz_D%8!vK)$aHWKH z`oJuoi=R+KqKWpt;a^-7%$cFMxjPR-@8KJnv*JbpDamb%7SxFtu`IGvPHecJ8Kr{i zybHgXY5oqg*qmRi4k74KJawl-YNp2Xi=8bm&}tGf)t-8hgCil;-+%Rk*S6dR_?<(P zuYVeU1)hG9q*a|C;c@~t$dMi=AT-wE7hO4m-{ahfuoCWnrcX3%4pLI>l#xB1U#}h& zXQU+%627c=!zWXcOaNy_!PX zVU;PP*5vIPUBk%-_~TA`My6>v==nd$-1|}Z9ush>AD!cljb$LBzZr}BV9yOgc;L@r zpC?`Oq}P;Q`Oe~!fKEX0`_;I$Ol~AVT8c$Dk0jsnptne_XRX7@XQ&$=kFB<4{?^9k z{fl9YJNa|sLj+yOOvO2g5%iRNOv|aUQZNjEt+}IShWn>*Pj;mm0&$zlkv{Lu z7;~)@zX`*QfmsMt%q3_SO-af@VcxF%&tv>~S*?@`*#PCre678EtuDI#flxhE$1M$l z^A41SJK4+kjfA{CH9r&Tuq9`@9ws)2)zHYSEq36h(JOrh1NzO#+KLR597B+umvY8= z)ieGo)D5nGxy&t8q{uRZeZLjxRbM`!VOiZPT=~}ASbkYBHh%T9bWolym?ESkJ-YmR z%6^ILcMGQXgD-t?5FUx(9az9 z!L}&s?PJ|1o=^wxutVaZ36m2>kCY%Mz)(UO^TI(ZdFSHL?Xfw;KMWyCI_@LKx%bV^ zWaRNiA3zQob)<}E+q1(xl}uOpl)4O?0Pld^YZ603(s@q0hx#n|>MLyhr1 z!*|EOMwiroJ#<~|ms&MkcT93r9RT1L?$5<`*ZBui;o@K>)VZc-d;C#o)c({y!LYzI zC*}Fe61oc_EY_VAjARQci(P>*uNVPmH-4Arbk4n)hcZrAcKj^yAG=?O^o>iMv|Q6r z$9B%RkQLT_&l4&EcFnyc83O@mOnOa4>N^qP1wA_o#52H9?`UKrY}`yNg*CGoe)hI$ z51ebxP@kGQ=G_H+DNv)f+#eH5UL zW!(ND+j&2{H^ZM_oV;Unx9wYe%@HXx=OEo|MOs7;)_cNZNv4Krx#oa0c6NtIMhyR7 z6k3bj+Y692i(gh*E$z%^0izX0>}wz&)!`|e^{SkNb#t~N;{JN*XImfk>HF~bGvr^q z{Gxm?LTKGPQ=rf4E9lHIT0q8)BKY`TYQpqoiLb!X)qIrl{58rqcV7D_rk*A=H{ z<^mBO@P9*McINyf%^CaclJ#wJokRMPf#(*;vKs@M_G+C!&`=;!#4#P zvp1M_(J+v*AK#cQ<~8QYXzMlAd>JsEgRBUV+ARBLV+tKMT7Nl!Jz%Bmf93$!PakKs zsef$WrjA3k7^Ud14ySPhwbE(Y<4r=zlh>qALuh+{u!(CClxGjHSXKpugv!5i9FwKJ zsZP*sy@$#Qym|YH=$q(W9BKvm!(LQ4)u&b>41OW404wGHGh~44*hCV!*w=&}P^aX3 zn#lxecGN0OSlGWEERr?0Vt?A+uLl}%3M$|O>ClwkphG5;r#4w=%51ESZqfd?wNFqX z@FCQJes3r*0H#i*K4atGYeb*$O!5E33QimJCKFsF4@Xdr4%K9O@roB{U5xHVR}gGc zx`{>;9o$ALparN#?L#HYxj_eV%U(7{9LM`d&@GM4h*Y05AwW5Oc`|rE3gazD+28 zAyA5A;dnteu0xmN;f%afXh(!YBZm9oFDrd%mvOrl$Ukk_6)HP?~ydjYJq^E~qo0|5pOE!6HT{oEBbB+ddP9Vc@ z`GWukWt#(@{D|eA3QZSWINN3TnIK5^+Dg7o65Ngr)a``sQLED~J$e#ZiYm_<%Jmbbv2i@6;8K-%LDj*z=KYoEQ z#I>qSyKZU{QMVTfKL`8De)3nAC>)Jx5XoUxSbg`zMcOzHW~KZ(4MMTZ_wO;pJDJ3+ zqV9!3xLUhr)NA$8KmCO*o)EQj=muiYs}2QYT%l(H(xD-^{A{$lCGLXY=_ep(G6kF_m1M~-mT}@SCX8G!V zI-S5#G)&6eA5u&K5#qNk+|tS!A%xR^Q~nB{@@Q&ch#1EbiGGqUr^uK#B2fyLb}C9( zS49kdb0`-elOtS44k+y^k?Ah|8}x3R3n*k&&e0pwcX<&lBu~5 zPGf9xvxBN_C1njCmP7(VVw#sAYf-NfG8axj80G%eUi^l_N;f1TT2ERg5k2Bcnpu4g zR0T98$~CJ9fzU#?;B%Njvx_N3x1>>y`~EDn_bG_BA;bq&15BWP5+35=SOfz%m2zUp zZ!KA01ez`qk$I_vhqrlho}jF%b}o?`GMCaWq$o%}y`eX#&$Hj5=yc14K?YPO>H^{6 z%_e9s(}eBBWt8th^B1r8U%*9qFZtKxJb;aj41J$t3k~`Pww$#`r0BTl)K&+27V{ZU zxIbdblmMdcZEz9fJtm*e?00Jr1MbCMe~CBjYWp3Th0$|3P7O(nWL+7AiZyH%*^+Lb zAbg6`2|vjhwcmgj1B3hvP~A1rx(h$H2&h}Rte4gR1zXkNgUi8*@x5gNc=lu}`p>fn z`k2d;zta#;^T_1?#=Sl#ak`Fq1OcJzqwE(|BHCzd@oYRFh}bgRxeVyf-Vb#(&f*Yi zQ9(}z$uGIIMtqD|#X649rb1SSa0Amv!F6QC*myyH5{cDAx!!}Q_+RyAHOEfxZ&AyU z%~}98sBXiwTsj@6JvgASg7xv+bQT&`{I0ie9RQgD1RO%<8L~EZt#Ld^!Pr9j0mbhy<@FTktlodETk=CQUG#Fnv z*@Zi?N;li+`snpMD_$1<<$!rj!TfMed*re~_cD-Tq8L3Mh!N$nG(72i;61otfsQv> zCTD_TvTU^>ke+4*CvIJ6+Pd3D)8=SEg;g=Wro3Vy*wQEMAx~%0k0#24fT&=<@yGPz zrZ?IpR5=%b7gbE_GSqDUKKy@=SW&{t#Q(Wc5Bo2nBbO;QACjxWlw<^bB;tv8h%EvM zNx+JX2PdrsE9bl0Txg=zI@Aeg#Xe5Xhm=HH7aQaLkM3C}1JF6WLkTJ({7)|F#LTo2 zGgY)vYgn#t2vCJe40syUdIR(_930XLGXsSwcN3;lGa@cq#U0J^sA}ZjEVA;7h!;KGNIw1RpD+o=t}p?###p8inX%mYZOJ4c~5yZMm(YP z5ywyO@|Ze!avkf|RQ`3L!PqpkPG^Ia&6n-h+#uYe19)zYNVo-9+v42<^Kod0+A@ji z(j^v2w2a2_=bcH!t}`ar95OOx9YNnw<7&YbPm^|kaBdc zGbcJB=|BZX3!E6*K$qzkD6=L(!+YQ>)lXs!$bd`3Xd`FKhMg*sa_Jc*>e0seG(3Ow zl3>M8Scj*PwpN&EKUdKE#laX$8|C5dSc814tn?vWFs8}+ZpOWtp)e_#Gc)`oVzVfC z^ky=Y=ZHbq6DV}gKd0E^&rFoN550siW!eHwnXb!OL^6Rkg2TC~UxZ{6z+v*WjQPKs z05Zi+)5R3+3m6B^ye7i}DpmO(`A_6DBj{EKvKgAW(Z}AExpT84Ryx3S8(DwsFnvqy zbetA}ou8 z%T1Hr#?n2W(Y<|x`XYFAoIH^XCI!kTV!80-$?laA>Fxc^A!a`zG12D+Vkaf|ayRuL zXWVdUk+pPT`w>2mZ$X#FP1t)b;=j;N-0-VDHBNgJk{)GhZj-=c8D8HO7AEv87@opi z9{}I<^FRS&m<4exlTH6wLtHYg43udLaF{^jVElwege^2HL_TIoV|rLLTsCLmIJN~N z(%W~bOWrWW-6XTbaAb?d8=jp*c;yB75*h3e#WA5Co%mDyW~NA~mf>_OO%+F8Q<%74 z0(3!z$Q#yajQtcSU_b7(t7~}D!vt$PzEd( zOKq>v^15G!Gxw1jFwKK*o0GN4t*Vl9_|i5?f8$0AXTc1!>@up7`Xe_UHZS*1Teu{` zMMYS#U_K#Ud0JS#ic+VfbX~{;Jqg1GUv$}bluOYYNz>S8_*H1?TplvLAb)i1)? zf#SOKz?g0{L2sY+%M*)`2QI3ih#BOF();~k^J~~`?1%^@cRS_)H2%fU#Wl(a6u+%} zX37UFjz1k6RitjwjaLW;x;cDWeHX2;v>&GIz|k69OrqdLLG(n4pGpregAJ|QDPbHL zYqvPLEsKtHCOyC$Eq55nc0XdDa$OXNp5ZpD8RV|Cu0egwQPgt&stVY9(xd;aD%b*6 z&i&`g_`1Hbvk$GnHnb~ra8JwxO(l|n_i!3J=k7ULmNI+3e05FwFbS_<7lWUgr{oEg z;_u)&7r|u_-WCIqgnTu);W-`T#7`7oQ4BQ0>wdxUTc6Rh%5N#|09d*3p8@|L8KV#% zqBvQTvjC(mA3f`98A%qr@k*MM*)a*Z*rw!I^~79a#1d^aHr!y6Q+bE_(XFKJ9pNQm zm06|7NPXob8kK(30M(o5uJ1^{i%snJwt&ncyfFMf739D6sQ((-;=28eGHL9^)hD4l z?XN}4x&uvZ%S{d9_o5`SjLO#6q-+2|W}#!x&vtuwEwL{7yFARofxO=Zcs)O2zAZu( zw&$nRv1q2APlz1D^t%MK)z$USptR59#0g$|HQa|jIbW_0J2ZitF=@&jLgB>vs)1Aq;G zC`g}@`{b4*tuyd&Qkq4NEd&d$LdV<&=lpT?L>f-Sly_1p#cH7*U;s>SE&Y6w-Cg}( z+Z#)8Sjj}gC0y{uYc%mAg(fg4u&H0M$OerUV}-KCBCTobw;71iOiofo+(qUuE9%~CI>qYWOEa|CTn>z z^bEWs0mves{2%tT)X+|5E*nlkU#?(Z1PJ_2w!^U)3PC}tezIySdk1Tq2_wcVMOEcH zzXnD>iO?-`rpeEwzg-DN{z5PIp}Fa~eax|E}JlG#%vFvXP`{uI4_f>+ikedV_g(v@iT} zs$Ju%pmjNb3BVuh0J%LC0r6f0T3F`1ARV^&(!#dSmfO7K0u7xGZ61_7|F&QuKC2+g z8QZAay%a61qmtyabYb6QuFyztX;?rkviancX59_6A-MW#N<`P@;%$(qrxH!8Cd&$ZLVdu8TGZyrF8~;S|Pt=KZNVpSP zpf9O%Pr#GCi1C@8qWwz>c_oCf;`r0&Q)Pf58FsG6v1&Ye^P>lTaUOrqjPhQed;zyo zd?ShXF(daLiwafa?jh|Yw-{UVG#=J)tUt(~)9|`0)27BS^;x>-(CnG_;#gM_vtHBK zD#eQ@g;!`MDE~vWR&tc*!h}`rvO9UD_=y^XQZe|rUlf>+tU_$U9Ff~Oq9oQgq_{k} zL;E|%*ql9sp6=zSbD-osbz_6oa+#bA(ViiqLqw$Xapyg-XK>tjhd6-lrn&E7}>Py2_M=XQotpR+7`bHZ!gPlkveUqRZ8$lD>8DtnUS3q z^y5waD@#eHn zHV$QJ)$H1r-aPm*o=UPA9e(fg))kuk1aATy3tgT_!g5ZHxKs&+sTM&2_pGc4vo$H@ zF;jhuSZgZ3CkkC2u+TyFXegJtv83Ql2C%^eynWvZbGhP{o`dDiM}ekQ+ug6Sq6dIk zdk0_^7gcF|mzu2D_88#SuZs2a@0xgP)9edo~HR=BQm3AxV&0P@lmib%pLD{2`ZEkJ}nxA@iqeja(Eva0!x-MaUF7o9(H z0%o=GkuSxC>BQ(#hU+Lmoc2fkEQ5!D*lxWmN#Hc z1fEII5HwM|q{ z$mDeH&~d{Dg5-c7VxxeCX`6`x!rm~v=kuH9FRV3&M$#r`%7A2-lHKOcPh+kt5Xzarcrh?7A; z-Ae?x?9ayaM}YG;Ojl9ePrV-b&x@#3B~y~X&)4)4Ly9H66((g^WSX5*iCn!Gw=1F) zh>#~enWjh1Mkx6{0HlYyn=n1LYf5>NlMJ7Si-agRkUjuVoLiqWtQExgami&*JwicX zq7mWHyX^LAhEWyRNuw>{!;U#hV2kYz+21SPZb-itQk_yeh5d`&|^g%`%(Ih@wdo>!KNUyIr-@ICPuNr~d1seI>ACOP=3tk9{of zmpjYvr~pY$scsJxycWiQQIe)aoNI229~)Hor8MP7sgH>_?_#8X2CO;_<{HSv6;AYR zf<-=6yKg5d`{Am4@eA%9gB0}HJ5Nqul1~zi5A=se&+cz(n}gb*_iFi(0ypvKNT~D6 zUN~(-%AHa1YTi`hbN+Mx(Zw8 zysur1urU@g=UMN_oW17|4a{Q#Y<99Bt@x~La&fwjJdmzI8U2+n6jv=-g2 zm1KBOPgJLzk%%%pXd9YRvO(WIUwCptV{XsvuljlAtwDG7fV6fDMgnLeySDcPOM>fu z+?70b>oBN8enj(cSv`B7%aQPGd3aG^5A+)Gdxh89Ii&!jMsf5Wi@QZqKR4}(LQNYcBb|#R)l!PU> zZqDDOV44F$?v484s*%hE#MSW|i`HBA8G~-|AovpbSK=F)r_hNWr?O994hfVXy(a0_Hqgx@J1`LE~ch|UTH9Jlw*5lOA1)O^7f1Q@74i82mj zJnO)YLrFgZP>%e6*zo~<+_@zZ*%t}_QHv@!XA{>(f5sZ91(ep+^9jv*+24kywpC)A ziVLS%+&H?vrUHSNEQQcmcK|vfOLsq`AlFPWce)l>&2f*|-MU&HG~7^}J>+TcNCnB8 z#IISbun806?8EJJRhODmddYpjh%pT32BeXi_c9SX!Z|m`<=d`wiXzr~jH}T5{i|JH z$cToJdRqSKoK@3_l1V!6or3<+9LI;;j`ng=#=bMIZwaWMg_ChG+iT#-$Ut$`ib3i| zec;W4k_^J*3mvsb2YxK&zOl1_=}4bCm|Q4AVIrF@E(63t{#`9@etP6VIqF&qp5_`L zN=Wz5P{QyYV!2O&g8ywyu6d(A`MhADlAd$l`Stg;mcelw~YmviebXg zO(7o9rLE^@vgQ}99^RIxv#;$hPkoJ4X;6NU73a{pALu4lh2{-xLQ#rXOYgK?4Gp@o zDJQz&FivQS4a#Yfcuu1h_m(6C;hF`hS?|aqC%xU~9dZxfZ6itWOC_Z}d>tVyo!|K#%c%VM<@-T-rmWrIKQFyo zhmDJ_(yhBycklWmWCsC!$9~66f7c)fGwLc2)c#tL@^??_5rf0x*5J{xHJWe@vl;P8 zDPvD}U_B( zl0JoNVI~m>FHvxSLU$(=gxescW}YS}b#(o1@T2X2BT<08pGpWCjNrF1_gV!8p?*