From ff41b77c6f90f20aa9cf8d7f6de2c376c86ca820 Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 19 May 2025 02:44:13 +0000 Subject: [PATCH 01/31] automatic update of stats files --- data/stats_current_test_info.yml | 112 ++++++++++--------------------- data/stats_weekly_data.yml | 106 +++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+), 77 deletions(-) diff --git a/data/stats_current_test_info.yml b/data/stats_current_test_info.yml index ab0a0660ce..2ee7ac8ce8 100644 --- a/data/stats_current_test_info.yml +++ b/data/stats_current_test_info.yml @@ -1,45 +1,36 @@ summary: - content_total: 350 - content_with_all_tests_passing: 31 + content_total: 366 + content_with_all_tests_passing: 0 content_with_tests_enabled: 61 sw_categories: automotive: {} cross-platform: dynamic-memory-allocator: readable_title: Write a Dynamic Memory Allocator - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] intrinsics: readable_title: Porting architecture specific intrinsics - tests_and_status: - - amd64/ubuntu:latest: passed - - arm64v8/ubuntu:latest: passed + tests_and_status: [] embedded-and-microcontrollers: tfm: readable_title: Get started with Trusted Firmware-M - tests_and_status: - - armswdev/arm-tools:bare-metal-compilers: passed + tests_and_status: [] zephyr: readable_title: Run the Zephyr RTOS on Arm Corstone-300 - tests_and_status: - - amd64/ubuntu:latest: passed + tests_and_status: [] install-guides: acfl: readable_title: Arm Compiler for Linux - tests_and_status: - - ubuntu:latest: passed - - fedora:latest: passed + tests_and_status: [] ambaviz: readable_title: Arm AMBA Viz tests_and_status: [] ams: readable_title: Arm Performance Studio - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] anaconda: readable_title: Anaconda - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] ansible: readable_title: Ansible tests_and_status: [] @@ -51,9 +42,7 @@ sw_categories: tests_and_status: [] arm-gnu: readable_title: Arm GNU Toolchain - tests_and_status: - - ubuntu:latest: passed - - fedora:latest: passed + tests_and_status: [] armclang: readable_title: Arm Compiler for Embedded tests_and_status: [] @@ -77,8 +66,7 @@ sw_categories: tests_and_status: [] azure-cli: readable_title: Azure CLI - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] bedrust: readable_title: Bedrust - invoke models on Amazon Bedrock tests_and_status: [] @@ -87,51 +75,40 @@ sw_categories: tests_and_status: [] cross: readable_title: Cross-compiler - tests_and_status: - - ubuntu:latest: passed - - fedora:latest: passed + tests_and_status: [] cyclonedds: readable_title: Cyclone DDS tests_and_status: [] dotnet: readable_title: .NET SDK - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] eksctl: readable_title: AWS EKS CLI (eksctl) - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] forge: readable_title: Linaro Forge - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] gcloud: readable_title: Google Cloud Platform (GCP) CLI tests_and_status: [] gfortran: readable_title: GFortran - tests_and_status: - - ubuntu:latest: passed - - fedora:latest: passed + tests_and_status: [] go: readable_title: Go tests_and_status: [] kubectl: readable_title: Kubectl - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] multipass: readable_title: Multipass tests_and_status: [] native: readable_title: Native compiler - tests_and_status: - - ubuntu:latest: passed - - fedora:latest: passed + tests_and_status: [] oci-cli: readable_title: Oracle Cloud Infrastructure (OCI) CLI - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] papi: readable_title: Performance API (PAPI) tests_and_status: [] @@ -143,8 +120,7 @@ sw_categories: tests_and_status: [] pytorch: readable_title: PyTorch - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] ros2: readable_title: ROS - Robot Operating System tests_and_status: [] @@ -168,8 +144,7 @@ sw_categories: tests_and_status: [] terraform: readable_title: Terraform - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] topdown-tool: readable_title: Telemetry Solution (Topdown Methodology) tests_and_status: [] @@ -178,63 +153,46 @@ sw_categories: tests_and_status: [] iot: {} laptops-and-desktops: {} - mobile-graphics-and-gaming: - voice-assistant: - readable_title: Accelerate a Voice Assistant with KleidiAI and SME2 - tests_and_status: - - ubuntu:latest: passed + mobile-graphics-and-gaming: {} servers-and-cloud-computing: clickhouse: readable_title: Measure performance of ClickHouse on Arm servers - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] codec: readable_title: Run x265 (H.265 codec) on Arm servers - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] geekbench: readable_title: Get started with Geekbench on Arm - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] memcached: readable_title: Run memcached on Arm servers and measure its performance - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] memcached_cache: readable_title: Deploy Memcached as a cache for MySQL and PostgreSQL on Arm based servers - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] ml-perf: readable_title: Measure Machine Learning Inference Performance on Arm servers - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] mysql_tune: readable_title: Learn how to Tune MySQL - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] nginx: readable_title: Learn how to deploy Nginx - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] postgresql_tune: readable_title: Learn how to Tune PostgreSQL - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] ran: readable_title: Get started with the Arm 5G RAN Acceleration Library (ArmRAL) - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] snappy: readable_title: Measure performance of compression libraries on Arm servers - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] vectorscan: readable_title: Install Vectorscan (Hyperscan on Arm) and use it with Snort 3 - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] zlib: readable_title: Learn how to build and use Cloudflare zlib on Arm servers - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index c9a26074a7..d55fd633ed 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -5797,3 +5797,109 @@ avg_close_time_hrs: 0 num_issues: 16 percent_closed_vs_total: 0.0 +- a_date: '2025-05-19' + content: + automotive: 2 + cross-platform: 32 + embedded-and-microcontrollers: 41 + install-guides: 100 + iot: 5 + laptops-and-desktops: 37 + mobile-graphics-and-gaming: 33 + servers-and-cloud-computing: 116 + total: 366 + contributions: + external: 95 + internal: 480 + github_engagement: + num_forks: 30 + num_prs: 6 + individual_authors: + adnan-alsinan: 1 + alaaeddine-chakroun: 2 + albin-bernhardsson: 1 + alex-su: 1 + alexandros-lamprineas: 1 + andrew-choi: 1 + annie-tallund: 4 + arm: 3 + arnaud-de-grandmaison: 4 + arnaud-de-grandmaison.: 1 + avin-zarlez: 1 + barbara-corriero: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong: 1 + chen-zhang: 1 + christophe-favergeon: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 2 + david-spickett: 2 + dawid-borycki: 32 + diego-russo: 2 + dominica-abena-o.-amanfo: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + georgios-mermigkis: 1 + geremy-cohen: 1 + graham-woodward: 1 + han-yin: 1 + iago-calvo-lista: 1 + james-whitaker: 1 + jason-andrews: 101 + joe-stech: 4 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez: 1 + julie-gaskin: 5 + julio-suarez: 6 + kasper-mecklenburg: 1 + kieran-hejmadi: 9 + koki-mitsunami: 2 + konstantinos-margaritis: 9 + kristof-beyls: 1 + leandro-nunes: 1 + liliya-wu: 1 + mark-thurman: 1 + masoud-koleini: 1 + mathias-brossard: 1 + michael-hall: 5 + na-li: 1 + nader-zouaoui: 2 + nikhil-gupta: 1 + nina-drozd: 1 + nobel-chowdary-mandepudi: 6 + odin-shen: 6 + owen-wu: 2 + pareena-verma: 44 + paul-howard: 3 + pranay-bakre: 5 + preema-merlin-dsouza: 1 + przemyslaw-wirkus: 2 + ravi-malhotra: 1 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + shuheng-deng: 1 + thirdai: 1 + tianyu-li: 2 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari: 2 + visualsilicon: 1 + willen-yang: 1 + ying-yu: 2 + yiyang-fan: 1 + zach-lasiuk: 2 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 9 + percent_closed_vs_total: 0.0 From f21ed164f944c8934d4d59059aac1558240d6c70 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Thu, 22 May 2025 17:16:05 +0100 Subject: [PATCH 02/31] add macOS build instructions for example application --- .../1-prerequisites.md | 5 +- .../3-converting-model.md | 24 +++---- .../4-building-litert.md | 13 +++- ... 5-creating-simple-program-for-android.md} | 14 ++-- .../6-creating-simple-program-for-macos.md | 70 +++++++++++++++++++ .../_index.md | 6 +- 6 files changed, 109 insertions(+), 23 deletions(-) rename content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/{5-creating-simple-program.md => 5-creating-simple-program-for-android.md} (82%) create mode 100644 content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md index a5435413d0..42b775e6ab 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md @@ -15,7 +15,6 @@ Your first task is to prepare a development environment with the required softwa - Android NDK: version r25b or newer. - Python: version 3.10 or newer (tested with 3.10). - CMake: version 3.16.0 or newer (tested with 3.28.1). -- [Arm GNU Toolchain](/install-guides/gcc/arm-gnu). ### Create workspace directory @@ -83,7 +82,9 @@ wget https://github.com/bazelbuild/bazel/releases/download/7.4.1/bazel-7.4.1-ins sudo bash bazel-7.4.1-installer-linux-x86_64.sh {{< /tab >}} {{< tab header="MacOS">}} -brew install bazel@7 +cd $WORKSPACE +export BAZEL_VERSION=7.4.1 +curl -fLO "https://github.com/bazelbuild/bazel/releases/download/{$BAZEL_VERSION}/bazel-{$BAZEL_VERSION}-installer-darwin-arm64.sh" {{< /tab >}} {{< /tabpane >}} diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md index c180670e3e..dffd18dc9d 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md @@ -24,22 +24,20 @@ In this section, you will explore two different conversion routes, to convert th 1. **ONNX to LiteRT**: using the `onnx2tf` tool. This is the traditional two-step approach (PyTorch -> ONNX -> LiteRT). You will use it to convert the Conditioners submodule. -2. **PyTorch to LiteRT**: using the Google AI Edge Torch tool. You will use this tool to convert the DiT and AutoEncoder submodules. +2. **PyTorch to LiteRT**: using the [Google AI Edge Torch](https://developers.googleblog.com/en/ai-edge-torch-high-performance-inference-of-pytorch-models-on-mobile-devices/) tool. You will use this tool to convert the DiT and AutoEncoder submodules. -## Download the sample code - -The Conditioners submodule is made of the T5Encoder model. You will use the ONNX to TFLite conversion for this submodule. +## Create a vritual environment To avoid dependency issues, create a virtual environment. For example, you can use the following command: ```bash cd $WORKSPACE -python3.10 -m venv env -source env/bin/activate +python3.10 -m venv .venv +source .venv/bin/activate ``` -Clone the examples repository: +## Clone the examples repository ```bash cd $WORKSPACE @@ -47,7 +45,7 @@ git clone https://github.com/ARM-software/ML-examples.git cd ML-examples/kleidiai-examples/audiogen/ ``` -Install the required Python packages for this, including *onnx2tf* and *ai_edge_litert* +## Install the required dependencies ```bash bash install_requirements.sh @@ -58,13 +56,13 @@ bash install_requirements.sh If you are using GPU on your machine, you may notice the following error: ```text Traceback (most recent call last): - File "$WORKSPACE/env/lib/python3.10/site-packages/torch/_inductor/runtime/hints.py", + File "$WORKSPACE/.venv/lib/python3.10/site-packages/torch/_inductor/runtime/hints.py", line 46, in from triton.backends.compiler import AttrsDescriptor ImportError: cannot import name 'AttrsDescriptor' from 'triton.backends.compiler' -($WORKSPACE/env/lib/python3.10/site-packages/triton/backends/compiler.py) +($WORKSPACE/.venv/lib/python3.10/site-packages/triton/backends/compiler.py) . ImportError: cannot import name 'AttrsDescriptor' from 'triton.compiler.compiler' -($WORKSPACE/env/lib/python3.10/site-packages/triton/compiler/compiler.py) +($WORKSPACE/.venv/lib/python3.10/site-packages/triton/compiler/compiler.py) ``` Reinstall the following dependency: @@ -93,9 +91,9 @@ After successful conversion, you now have a `tflite_conditioners` directory cont You will be using the float32.tflite model for on-device inference. -### Convert DiT and AutoEncoder +### Convert DiT and AutoEncoder Submodules -To convert the DiT and AutoEncoder submodules, use the [Generative API](https://github.com/google-ai-edge/ai-edge-torch/tree/main/ai_edge_torch/generative/) provided by the ai-edge-torch tools. This enables you to export a generative PyTorch model directly to `.tflite` using three main steps: +To convert the DiT and AutoEncoder submodules, use the [Generative API](https://github.com/google-ai-edge/ai-edge-torch/tree/main/ai_edge_torch/generative/) provided by the `ai-edge-torch` tools. This enables you to export a generative PyTorch model directly to `.tflite` using three main steps: 1. Model re-authoring. 2. Quantization. diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md index f61a11611b..caf9035aec 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md @@ -63,8 +63,10 @@ python3 ./configure.py |Please specify an Android build tools version to use. [Default is 35.0.0]| Enter | |Do you wish to build TensorFlow with iOS support? [y/N]:| n | -Once the Bazel configuration is complete, you can build TFLite as follows: +Once the Bazel configuration is complete, you can build LiteRT for your target platform as follows: +{{< tabpane code=true >}} + {{< tab header="Android">}} ```console bazel build -c opt --config android_arm64 //tensorflow/lite:libtensorflowlite.so \ --define tflite_with_xnnpack=true \ @@ -72,6 +74,15 @@ bazel build -c opt --config android_arm64 //tensorflow/lite:libtensorflowlite.so --define tflite_with_xnnpack_qs8=true \ --define tflite_with_xnnpack_qu8=true ``` + {{< /tab >}} + {{< tab header="MacOS">}} +bazel build -c opt --config macos //tensorflow/lite:libtensorflowlite.so \ + --define tflite_with_xnnpack=true \ + --define xnn_enable_arm_i8mm=true \ + --define tflite_with_xnnpack_qs8=true \ + --define tflite_with_xnnpack_qu8=true + {{< /tab >}} +{{< /tabpane >}} The final step is to build flatbuffers used by the application: ``` diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/5-creating-simple-program.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/5-creating-simple-program-for-android.md similarity index 82% rename from content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/5-creating-simple-program.md rename to content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/5-creating-simple-program-for-android.md index 2696b39b8a..38b2c4850d 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/5-creating-simple-program.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/5-creating-simple-program-for-android.md @@ -1,5 +1,5 @@ --- -title: Create a simple program +title: Create a simple program for Android target weight: 6 ### FIXED, DO NOT MODIFY @@ -36,7 +36,7 @@ A SentencePiece model is a type of subword tokenizer which is used by the audiog ```bash cd $WORKSPACE -wget https://huggingface.co/google-t5/t5-base/tree/main +wget https://huggingface.co/google-t5/t5-base/resolve/main/spiece.model ``` Verify this model was downloaded to your `WORKSPACE`. @@ -76,7 +76,13 @@ Start a new shell to access the device's system from your development machine: adb shell ``` -Finally, run the program on your Android device. Play around with the advice from [Download the model](../2-testing-model) section. +From there, you can then run the audiogen application, which requires just three input arguments: + +* **Model Path:** The directory containing your LiteRT models and spiece.model files +* **Prompt:** A text description of the desired audio (e.g., warm arpeggios on house beats 120BPM with drums effect) +* **CPU Threads:** The number of CPU threads to use (e.g., 4) + +Play around with the advice from [Download and test the model](../2-testing-model) section. ```bash cd /data/local/tmp/app @@ -90,4 +96,4 @@ You can now pull the generated `output.wav` back to your host machine and listen adb pull /data/local/tmp/app/output.wav ``` -You should now have gained hands-on experience running the Stable Audio Open Small model with LiteRT on Arm-based devices. This includes setting up the environment, optimizing the model for on-device inference, and understanding how efficient runtimes like LiteRT make low-latency generative AI possible at the edge. You’re now better equipped to explore and deploy AI-powered audio applications on mobile and embedded platforms. \ No newline at end of file +You should now have gained hands-on experience running the Stable Audio Open Small model with LiteRT on Arm-based devices. This includes setting up the environment, optimizing the model for on-device inference, and understanding how efficient runtimes like LiteRT make low-latency generative AI possible at the edge. You’re now better equipped to explore and deploy AI-powered audio applications on mobile and embedded platforms. diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md new file mode 100644 index 0000000000..5e82f260f7 --- /dev/null +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md @@ -0,0 +1,70 @@ +--- +title: Create a simple program for macOS target +weight: 7 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Create and build a simple program + +As a final step, you’ll build a simple program that runs inference on all three submodules directly on a macOS device. + +The program takes a text prompt as input and generates an audio file as output. + +```bash +cd $WORKSPACE/ML-examples/kleidiai-examples/audiogen/app +mkdir build && cd build +``` + +Ensure the NDK path is set correctly and build with `cmake`: + +```bash +cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ + -DTF_INCLUDE_PATH=$TF_SRC_PATH \ + -DTF_LIB_PATH=$TF_SRC_PATH/bazel-bin/tensorflow/lite \ + -DFLATBUFFER_INCLUDE_PATH=$TF_SRC_PATH/flatc-native-build/flatbuffers/include \ + .. + +make -j +``` +After the example application builds successfully, a binary file named `audiogen` is created. + +A SentencePiece model is a type of subword tokenizer which is used by the audiogen application, you’ll need to download the *spiece.model* file from: + +```bash +cd $WORKSPACE +wget https://huggingface.co/google-t5/t5-base/resolve/main/spiece.model +``` + +Verify this model was downloaded to your `WORKSPACE`. + +```text +ls $WORKSPACE/spiece.model +``` + +Copy the shared LiteRT dynamic library to the $LITERT_MODELS_PATH. +```bash +cp $TF_SRC_PATH/bazel-bin/tensorflow/lite/libtensorflowlite.so $LITERT_MODELS_PATH/ +``` + +From there, you can then run the audiogen application, which requires just three input arguments: + +* **Model Path:** The directory containing your LiteRT models and spiece.model files +* **Prompt:** A text description of the desired audio (e.g., warm arpeggios on house beats 120BPM with drums effect) +* **CPU Threads:** The number of CPU threads to use (e.g., 4) + +Play around with the advice from [Download and test the model](../2-testing-model) section. + +```bash +cd $WORKSPACE +./build/audiogen $LITERT_MODELS_PATH "warm arpeggios on house beats 120BPM with drums effect" 4 +``` + +You can now pull the generated `output.wav` back to your host machine and listen to the result. + +```bash +adb pull /data/local/tmp/app/output.wav +``` + +You should now have gained hands-on experience running the Stable Audio Open Small model with LiteRT on Arm-based devices. This includes setting up the environment, optimizing the model for on-device inference, and understanding how efficient runtimes like LiteRT make low-latency generative AI possible at the edge. You’re now better equipped to explore and deploy AI-powered audio applications on mobile and embedded platforms. diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md index f20be9c201..6494730a2f 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md @@ -3,7 +3,7 @@ title: Generate audio with Stable Audio Open Small on LiteRT minutes_to_complete: 30 -who_is_this_for: This is an introductory topic for developers looking to deploy the Stable Audio Open Small text-to-audio model using LiteRT on an Android device. +who_is_this_for: This is an introductory topic for developers looking to deploy the Stable Audio Open Small text-to-audio model using LiteRT on an Android™ device or on a reasonably modern platform with macOS®. learning_objectives: - Download and test the Stable Audio Open Small model. @@ -42,8 +42,8 @@ further_reading: link: https://stability.ai/news/stability-ai-and-arm-release-stable-audio-open-small-enabling-real-world-deployment-for-on-device-audio-control type: blog - resource: - title: Stability AI optimized its audio generation model to run on Arm chips - link: https://techcrunch.com/2025/03/03/stability-ai-optimized-its-audio-generation-model-to-run-on-arm-chips/ + title: "Unlocking audio generation on Arm CPUs to all: Running Stable Audio Open Small with KleidiAI" + link: https://community.arm.com/arm-community-blogs/b/ai-blog/posts/audio-generation-arm-cpus-stable-audio-open-small-kleidiai type: blog - resource: title: Fast Text-to-Audio Generation with Adversarial Post-Training From 738f61cec445ed02237322daea11fb17d5b864e9 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Thu, 22 May 2025 17:17:28 +0100 Subject: [PATCH 03/31] update for macOS output file --- .../6-creating-simple-program-for-macos.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md index 5e82f260f7..2ef6df179c 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md @@ -61,10 +61,6 @@ cd $WORKSPACE ./build/audiogen $LITERT_MODELS_PATH "warm arpeggios on house beats 120BPM with drums effect" 4 ``` -You can now pull the generated `output.wav` back to your host machine and listen to the result. - -```bash -adb pull /data/local/tmp/app/output.wav -``` +You can now check the generated `output.wav` and listen to the result. You should now have gained hands-on experience running the Stable Audio Open Small model with LiteRT on Arm-based devices. This includes setting up the environment, optimizing the model for on-device inference, and understanding how efficient runtimes like LiteRT make low-latency generative AI possible at the edge. You’re now better equipped to explore and deploy AI-powered audio applications on mobile and embedded platforms. From d2fb5437955663dc7b04ad670ad1c365ebb553e2 Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 26 May 2025 02:49:53 +0000 Subject: [PATCH 04/31] automatic update of stats files --- data/stats_current_test_info.yml | 5 +- data/stats_weekly_data.yml | 106 +++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 3 deletions(-) diff --git a/data/stats_current_test_info.yml b/data/stats_current_test_info.yml index acc994b7d8..cad3fceeee 100644 --- a/data/stats_current_test_info.yml +++ b/data/stats_current_test_info.yml @@ -1,5 +1,5 @@ summary: - content_total: 366 + content_total: 369 content_with_all_tests_passing: 0 content_with_tests_enabled: 61 sw_categories: @@ -63,8 +63,7 @@ sw_categories: tests_and_status: [] aws-q-cli: readable_title: Amazon Q Developer CLI - tests_and_status: - - ubuntu:latest: passed + tests_and_status: [] azure-cli: readable_title: Azure CLI tests_and_status: [] diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index d55fd633ed..178781f649 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -5903,3 +5903,109 @@ avg_close_time_hrs: 0 num_issues: 9 percent_closed_vs_total: 0.0 +- a_date: '2025-05-26' + content: + automotive: 2 + cross-platform: 32 + embedded-and-microcontrollers: 41 + install-guides: 101 + iot: 6 + laptops-and-desktops: 37 + mobile-graphics-and-gaming: 33 + servers-and-cloud-computing: 117 + total: 369 + contributions: + external: 94 + internal: 482 + github_engagement: + num_forks: 30 + num_prs: 6 + individual_authors: + adnan-alsinan: 1 + alaaeddine-chakroun: 2 + albin-bernhardsson: 1 + alex-su: 1 + alexandros-lamprineas: 1 + andrew-choi: 1 + annie-tallund: 4 + arm: 3 + arnaud-de-grandmaison: 4 + arnaud-de-grandmaison.: 1 + avin-zarlez: 1 + barbara-corriero: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong: 1 + chen-zhang: 1 + christophe-favergeon: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 2 + david-spickett: 2 + dawid-borycki: 33 + diego-russo: 2 + dominica-abena-o.-amanfo: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + georgios-mermigkis: 1 + geremy-cohen: 1 + graham-woodward: 1 + han-yin: 1 + iago-calvo-lista: 1 + james-whitaker: 1 + jason-andrews: 102 + joe-stech: 4 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez: 1 + julie-gaskin: 5 + julio-suarez: 6 + jun-he: 1 + kasper-mecklenburg: 1 + kieran-hejmadi: 9 + koki-mitsunami: 2 + konstantinos-margaritis: 8 + kristof-beyls: 1 + leandro-nunes: 1 + liliya-wu: 1 + mark-thurman: 1 + masoud-koleini: 1 + mathias-brossard: 1 + michael-hall: 5 + na-li: 1 + nader-zouaoui: 2 + nikhil-gupta: 1 + nina-drozd: 1 + nobel-chowdary-mandepudi: 6 + odin-shen: 7 + owen-wu: 2 + pareena-verma: 44 + paul-howard: 3 + pranay-bakre: 5 + preema-merlin-dsouza: 1 + przemyslaw-wirkus: 2 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + shuheng-deng: 1 + thirdai: 1 + tianyu-li: 2 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari: 2 + visualsilicon: 1 + willen-yang: 1 + ying-yu: 2 + yiyang-fan: 1 + zach-lasiuk: 2 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 9 + percent_closed_vs_total: 0.0 From 51249f6788138b022adacc2047ad2297067ac931 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Mon, 26 May 2025 15:34:55 +0100 Subject: [PATCH 05/31] fix typo --- .../3-converting-model.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md index dffd18dc9d..b0841d6392 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md @@ -27,7 +27,7 @@ In this section, you will explore two different conversion routes, to convert th 2. **PyTorch to LiteRT**: using the [Google AI Edge Torch](https://developers.googleblog.com/en/ai-edge-torch-high-performance-inference-of-pytorch-models-on-mobile-devices/) tool. You will use this tool to convert the DiT and AutoEncoder submodules. -## Create a vritual environment +## Create a virtual environment To avoid dependency issues, create a virtual environment. For example, you can use the following command: From 3fc7809d89d46c36f3b6341e324437742aa0f0a6 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Mon, 26 May 2025 22:17:28 +0100 Subject: [PATCH 06/31] updates for prerequisites and converting model pages --- .../1-prerequisites.md | 18 ++++++++++++++---- .../3-converting-model.md | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md index 42b775e6ab..a9a4dfa6c6 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md @@ -78,16 +78,26 @@ Bazel is an open-source build tool which you will use to build LiteRT libraries. {{< tabpane code=true >}} {{< tab header="Linux">}} cd $WORKSPACE -wget https://github.com/bazelbuild/bazel/releases/download/7.4.1/bazel-7.4.1-installer-linux-x86_64.sh +export BAZEL_VERSION=7.4.1 +wget https://github.com/bazelbuild/bazel/releases/download/{$BAZEL_VERSION}/bazel-{$BAZEL_VERSION}-installer-linux-x86_64.sh sudo bash bazel-7.4.1-installer-linux-x86_64.sh +export PATH="/usr/local/bin:$PATH" {{< /tab >}} {{< tab header="MacOS">}} cd $WORKSPACE export BAZEL_VERSION=7.4.1 curl -fLO "https://github.com/bazelbuild/bazel/releases/download/{$BAZEL_VERSION}/bazel-{$BAZEL_VERSION}-installer-darwin-arm64.sh" +sudo bash bazel-7.4.1-installer-darwin-arm64.sh +export PATH="/usr/local/bin:$PATH" {{< /tab >}} {{< /tabpane >}} +You can verify the installation and check the version with: + +```console +bazel --version +``` + ### Install Android NDK To run the model on Android, install Android Native Development Kit (Android NDK): @@ -99,9 +109,10 @@ wget https://dl.google.com/android/repository/android-ndk-r25b-linux.zip unzip android-ndk-r25b-linux.zip {{< /tab >}} {{< tab header="MacOS">}} +cd $WORKSPACE wget https://dl.google.com/android/repository/android-ndk-r25b-darwin.zip -unzip android-ndk-r25b-darwin -mv android-ndk-r25b-darwin ~/Library/Android/android-ndk-r25b +unzip android-ndk-r25b-darwin.zip +mv android-ndk-r25b ~/Library/Android/android-ndk-r25b {{< /tab >}} {{< /tabpane >}} @@ -115,7 +126,6 @@ export PATH=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/:$PATH {{< tab header="MacOS">}} export NDK_PATH=~/Library/Android/android-ndk-r25b export PATH=$PATH:$NDK_PATH/toolchains/llvm/prebuilt/darwin-x86_64/bin -export PATH=$PATH:~/Library/Android/sdk/cmdline-tools/latest/bin {{< /tab >}} {{< /tabpane >}} diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md index b0841d6392..cb496b94a7 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md @@ -87,7 +87,7 @@ You can use the provided script to convert the Conditioners submodule: python3 ./scripts/export_conditioners.py --model_config "$WORKSPACE/model_config.json" --ckpt_path "$WORKSPACE/model.ckpt" ``` -After successful conversion, you now have a `tflite_conditioners` directory containing models with different precisions (e.g., float16, float32). +After successful conversion, you now have a `conditioners_tflite` directory containing models with different precisions (e.g., float16, float32). You will be using the float32.tflite model for on-device inference. From 9ecf92f3c18ba2576f69eb6698f916450a6f4ec8 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Mon, 26 May 2025 22:52:04 +0100 Subject: [PATCH 07/31] add spiece model to models directory instead of workspace --- .../4-building-litert.md | 4 +--- .../6-creating-simple-program-for-macos.md | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md index caf9035aec..d8542834ab 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md @@ -67,13 +67,11 @@ Once the Bazel configuration is complete, you can build LiteRT for your target p {{< tabpane code=true >}} {{< tab header="Android">}} -```console bazel build -c opt --config android_arm64 //tensorflow/lite:libtensorflowlite.so \ --define tflite_with_xnnpack=true \ --define=xnn_enable_arm_i8mm=true \ --define tflite_with_xnnpack_qs8=true \ --define tflite_with_xnnpack_qu8=true -``` {{< /tab >}} {{< tab header="MacOS">}} bazel build -c opt --config macos //tensorflow/lite:libtensorflowlite.so \ @@ -92,7 +90,7 @@ cmake ../tensorflow/lite/tools/cmake/native_tools/flatbuffers cmake --build . ``` -Now that LiteRT and FlatBuffers are built, you're ready to compile and deploy the Stable Audio Open Small inference application on your Android device. +Now that LiteRT and FlatBuffers are built, you're ready to compile and deploy the Stable Audio Open Small inference application on your Android or macOS device. diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md index 2ef6df179c..635c2f2e95 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/6-creating-simple-program-for-macos.md @@ -33,14 +33,14 @@ After the example application builds successfully, a binary file named `audiogen A SentencePiece model is a type of subword tokenizer which is used by the audiogen application, you’ll need to download the *spiece.model* file from: ```bash -cd $WORKSPACE +cd $LITERT_MODELS_PATH wget https://huggingface.co/google-t5/t5-base/resolve/main/spiece.model ``` Verify this model was downloaded to your `WORKSPACE`. ```text -ls $WORKSPACE/spiece.model +ls $LITERT_MODELS_PATH/spiece.model ``` Copy the shared LiteRT dynamic library to the $LITERT_MODELS_PATH. @@ -57,7 +57,7 @@ From there, you can then run the audiogen application, which requires just three Play around with the advice from [Download and test the model](../2-testing-model) section. ```bash -cd $WORKSPACE +cd $WORKSPACE/ML-examples/kleidiai-examples/audiogen/app/ ./build/audiogen $LITERT_MODELS_PATH "warm arpeggios on house beats 120BPM with drums effect" 4 ``` From b9ba67147fd4a873b610e85cf2c0d8f33ded5195 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Tue, 27 May 2025 09:58:14 +0100 Subject: [PATCH 08/31] updates for liteRT build --- .../1-prerequisites.md | 7 ++++--- .../4-building-litert.md | 7 +++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md index a9a4dfa6c6..16c4e3573e 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/1-prerequisites.md @@ -112,7 +112,6 @@ unzip android-ndk-r25b-linux.zip cd $WORKSPACE wget https://dl.google.com/android/repository/android-ndk-r25b-darwin.zip unzip android-ndk-r25b-darwin.zip -mv android-ndk-r25b ~/Library/Android/android-ndk-r25b {{< /tab >}} {{< /tabpane >}} @@ -121,11 +120,13 @@ For easier access and execution of Android NDK tools, add these to the `PATH` an {{< tabpane code=true >}} {{< tab header="Linux">}} export NDK_PATH=$WORKSPACE/android-ndk-r25b/ +export ANDROID_NDK_HOME=$NDK_PATH export PATH=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/:$PATH {{< /tab >}} {{< tab header="MacOS">}} -export NDK_PATH=~/Library/Android/android-ndk-r25b -export PATH=$PATH:$NDK_PATH/toolchains/llvm/prebuilt/darwin-x86_64/bin +export NDK_PATH=$WORKSPACE/android-ndk-r25b/ +export ANDROID_NDK_HOME=$NDK_PATH +export PATH=$NDK_PATH/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$PATH {{< /tab >}} {{< /tabpane >}} diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md index d8542834ab..1d8531458e 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/4-building-litert.md @@ -33,11 +33,13 @@ Ensure the `NDK_PATH` variable is set to your previously installed Android NDK: {{< tabpane code=true >}} {{< tab header="Linux">}} export NDK_PATH=$WORKSPACE/android-ndk-r25b/ +export ANDROID_NDK_HOME=$NDK_PATH export PATH=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/:$PATH {{< /tab >}} {{< tab header="MacOS">}} -export NDK_PATH=~/Library/Android/android-ndk-r25b -export PATH=$PATH:$NDK_PATH/toolchains/llvm/prebuilt/darwin-x86_64/bin +export NDK_PATH=$WORKSPACE/android-ndk-r25b/ +export ANDROID_NDK_HOME=$NDK_PATH +export PATH=$NDK_PATH/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$PATH {{< /tab >}} {{< /tabpane >}} {{% /notice %}} @@ -54,6 +56,7 @@ python3 ./configure.py |Please input the desired Python library path to use[$WORKSPACE/lib/python3.10/site-packages] | Enter | |Do you wish to build TensorFlow with ROCm support? [y/N]|N (No)| |Do you wish to build TensorFlow with CUDA support?|N| +|Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:| Enter | |Do you want to use Clang to build TensorFlow? [Y/n]|N| |Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]|y (Yes) | |Please specify the home path of the Android NDK to use. [Default is /home/user/Android/Sdk/ndk-bundle]| Enter | From 863deb9c23e4ad8a809f2701944b276d8f854c55 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Tue, 27 May 2025 11:36:29 +0100 Subject: [PATCH 09/31] add contributors --- assets/contributors.csv | 2 ++ .../run-stable-audio-open-small-with-lite-rt/_index.md | 3 +++ 2 files changed, 5 insertions(+) diff --git a/assets/contributors.csv b/assets/contributors.csv index 2e0883a8c1..3cde0bf6d7 100644 --- a/assets/contributors.csv +++ b/assets/contributors.csv @@ -87,3 +87,5 @@ Geremy Cohen,Arm,geremyCohen,geremyinanutshell,, Barbara Corriero,Arm,,,, Nina Drozd,Arm,,ninadrozd,, Jun He,Arm,JunHe77,jun-he-91969822,, +Gian Marco Iodice,Arm,,,, +Aude Vuilliomenet,Arm,,,, diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md index 6494730a2f..4b7ca58591 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md @@ -19,6 +19,9 @@ prerequisites: author: - Nina Drozd + - Gian Marco Iodice + - Adnan AlSinan + - Aude Vuilliomenet - Annie Tallund ### Tags From e8e16bfc4f6415b4aa8c1eecc1e3131d855a9eb0 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Tue, 27 May 2025 11:39:44 +0100 Subject: [PATCH 10/31] more updates --- assets/contributors.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/contributors.csv b/assets/contributors.csv index 3cde0bf6d7..0173aa59d0 100644 --- a/assets/contributors.csv +++ b/assets/contributors.csv @@ -85,7 +85,7 @@ Yiyang Fan,Arm,,,, Julien Jayat,Arm,,,, Geremy Cohen,Arm,geremyCohen,geremyinanutshell,, Barbara Corriero,Arm,,,, -Nina Drozd,Arm,,ninadrozd,, +Nina Drozd,Arm,NinaARM,ninadrozd,, Jun He,Arm,JunHe77,jun-he-91969822,, Gian Marco Iodice,Arm,,,, Aude Vuilliomenet,Arm,,,, From 5bb7b871dd9ff6515689c596785bd50619141cad Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Wed, 28 May 2025 16:00:59 +0000 Subject: [PATCH 11/31] updates --- .../false-sharing-arm-spe/_index.md | 9 +++--- .../false-sharing-arm-spe/how-to-1.md | 32 ++++++++++++------- .../false-sharing-arm-spe/how-to-2.md | 14 ++++---- 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md index 6f9e60bff5..ccbb7c726c 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md @@ -1,16 +1,15 @@ --- title: Analyze cache behavior with Perf C2C on Arm -draft: true -cascade: - draft: true + + minutes_to_complete: 15 -who_is_this_for: This topic is for developers who want to optimize cache access patterns on Arm servers using Perf C2C. +who_is_this_for: This topic is for performance-oriented developers working on Arm-based cloud or server systems who want to optimize memory access patterns and investigate cache inefficiencies using Perf C2C and Arm SPE. learning_objectives: - - Avoid false sharing in C++ using memory alignment. + - Identify and fix false sharing issues using Perf C2C, a cache line analysis tool. - Enable and use the Arm Statistical Profiling Extension (SPE) on Linux systems. - Investigate cache line performance with Perf C2C. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md index d99dac7e85..098503eb8c 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md @@ -5,24 +5,27 @@ weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- - ## Introduction to the Arm Statistical Profiling Extension (SPE) -Standard performance tracing relies on counting completed instructions, capturing only architectural instructions without revealing the actual memory addresses, pipeline latencies, or considering micro-operations in flight. Moreover, the “skid” phenomenon where events are falsely attributed to later instructions can mislead developers. +Traditional Linux performance profiling tools often rely on retired instruction counts, which lack visibility into memory addresses, cache latencies, and micro-operation behavior. Moreover, the “skid” phenomenon where events are falsely attributed to later instructions can mislead developers. SPE integrates sampling directly into the CPU pipeline, triggering on individual micro-operations rather than retired instructions, thereby eliminating skid and blind spots. Each SPE sample record includes relevant metadata, such as data addresses, per-µop pipeline latency, triggered PMU event masks, and the memory hierarchy source, enabling fine-grained and precise cache analysis. -This enables software developers to tune user-space software for characteristics such as memory latency and cache accesses. Importantly, cache statistics are enabled with the Linux Perf cache-to-cache (C2C) utility. +SPE helps developers optimize user-space applications by showing where cache latency or memory access delays are happening. Importantly, cache statistics are enabled with the Linux Perf cache-to-cache (C2C) utility. -Please refer to the [Arm SPE white paper](https://developer.arm.com/documentation/109429/latest/) for more details. +To learn more, check out the [Arm SPE white paper](https://developer.arm.com/documentation/109429/latest/) for more information. In this Learning Path, you will use SPE and Perf C2C to diagnose a cache issue for an application running on a Neoverse server. -## False sharing within the cache +## What is false sharing and why should I care about it? + +In large-scale, multithreaded applications, false sharing can degrade performance by introducing hundreds of unnecessary cache line invalidations per second - often with no visible red flags in the source code. + +Even when two threads touch entirely separate variables, modern processors move data in fixed-size cache lines (nominally 64-bytes). If those distinct variables happen to occupy bytes within the same line, every time one thread writes its variable the core’s cache must gain exclusive ownership of the whole line, forcing the other core’s copy to be invalidated. -Even when two threads touch entirely separate variables, modern processors move data in fixed-size cache lines (nominally 64-bytes). If those distinct variables happen to occupy bytes within the same line, every time one thread writes its variable the core’s cache must gain exclusive ownership of the whole line, forcing the other core’s copy to be invalidated. The second thread, still working on its own variable, then triggers a coherence miss to fetch the line back, and the ping-pong pattern repeats. Please see the illustration below, taken from the Arm SPE white paper, for a visual explanation. +The second thread, still working on its own variable, then triggers a coherence miss to fetch the line back, and the ping-pong pattern repeats. See the illustration below, taken from the Arm SPE white paper, for a visual explanation. -![false_sharing_diagram](./false_sharing_diagram.png) +![false_sharing_diagram alt-text#center](./false_sharing_diagram.png "Two threads on separate cores alternately gain exclusive access to the same cache line.") Because false sharing hides behind ordinary writes, the easiest time to eliminate it is while reading or refactoring the source code by padding or realigning the offending variables before compilation. In large, highly concurrent codebases, however, data structures are often accessed through several layers of abstraction, and many threads touch memory via indirection, so the subtle cache-line overlap may not surface until profiling or performance counters reveal unexpected coherence misses. @@ -30,7 +33,7 @@ From a source-code perspective nothing is “shared,” but at the hardware leve ## Alignment to cache lines -In C++11, you can manually specify the alignment of an object with the `alignas` specifier. For example, the C++11 source code below manually aligns the the `struct` every 64 bytes (typical cache line size on a modern processor). This ensures that each instance of `AlignedType` is on a separate cache line. +In C++11, you can manually specify the alignment of an object with the `alignas` specifier. For example, the C++11 source code below manually aligns the `struct` every 64 bytes (typical cache line size on a modern processor). This ensures that each instance of `AlignedType` is on a separate cache line. ```cpp #include @@ -43,7 +46,7 @@ struct alignas(64) AlignedType { int main() { - // If we create four atomic integers like this, there's a high probability + // If you create four atomic integers like this, there's a high probability // they'll wind up next to each other in memory std::atomic a; std::atomic b; @@ -74,9 +77,9 @@ int main() { } ``` -The example output below shows the variables e, f, g and h occur at least 64-bytes apart in the byte-addressable architecture. Whereas variables a, b, c and d occur 8 bytes apart, occupying the same cache line. +The example output below shows the variables e, f, g and h occur at least 64 bytes apart in the byte-addressable architecture. Whereas variables a, b, c, and d occur 8 bytes apart, occupying the same cache line. -Although this is a contrived example, in a production workload there may be several layers of indirection that unintentionally result in false sharing. For these complex cases, to understand the root cause you will use Perf C2C. +Although this is a contrived example, in a production workload there might be several layers of indirection that unintentionally result in false sharing. For these complex cases, to understand the root cause you will use Perf C2C. ```output Without Alignment can occupy same cache line @@ -96,4 +99,9 @@ Address of AlignedType g - 0xffffeb6c60c0 Address of AlignedType h - 0xffffeb6c6080 ``` -Continue to the next section to learn how to set up a system to run Perf C2C. \ No newline at end of file +## Summary + +In this section, you learned what Arm SPE is and why it’s a game-changer for performance profiling. You also saw how a subtle issue like false sharing can slow down multithreaded code — and how to avoid it using alignment in C++. + +Next up: you’ll set up your environment and get ready to run Perf C2C on a real application. + diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md index a4348ad7f9..cf96a700d0 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md @@ -23,7 +23,7 @@ uname -r The output includes the CPU type and kernel release version: -```ouput +```output Model name: Neoverse-N1 6.1.134-152.225.amzn2023.aarch64 ``` @@ -43,7 +43,7 @@ Run the following command to confirm if the SPE kernel module is loaded: sudo modprobe arm_spe_pmu ``` -If the module is not loaded (blank output), SPE may still be available. +If the module is not loaded (blank output), SPE might still be available. Run this command to check if SPE is included in the kernel: @@ -63,11 +63,11 @@ If the output is blank then SPE is not available. You can install and run a Python script named Sysreport to summarize your system's performance profiling capabilities. -Refer to [Get ready for performance analysis with Sysreport](https://learn.arm.com/learning-paths/servers-and-cloud-computing/sysreport/) to learn how to install and run it. +See [Get ready for performance analysis with Sysreport](https://learn.arm.com/learning-paths/servers-and-cloud-computing/sysreport/) to learn how to install and run it. Look at the Sysreport output and confirm SPE is available by checking the `perf sampling` field. -If the printed value is SPE then SPE is available. +If the printed value is SPE, then SPE is available. ```output ... @@ -105,9 +105,9 @@ Assign capabilities to Perf by running: sudo setcap cap_perfmon,cap_sys_ptrace,cap_sys_admin+ep $(which perf) ``` -If `arm_spe` is not available because of your system configuration or if you don't have PMU permission, the `perf c2c` command will fail. +If `arm_spe` is not available because of your system configuration or if you don't have PMU permission, the `perf c2c` command fails. -To confirm Perf can access SPE run: +To confirm Perf can access SPE, run: ```bash perf c2c record @@ -120,7 +120,7 @@ failed: memory events not supported ``` {{% notice Note %}} -If you are unable to use SPE it may be a restriction based on your cloud instance size or operating system. +If you are unable to use SPE it might be a restriction based on your cloud instance size or operating system. Generally, access to a full server (also known as metal instances) with a relatively new kernel is needed for Arm SPE support. From 3eb8449c3aec43ff1bc23dec31844c4ea33a99da Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Wed, 28 May 2025 16:03:16 +0000 Subject: [PATCH 12/31] updates --- .../false-sharing-arm-spe/how-to-3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md index 69b9bfd2ba..bc7b9e47ca 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md @@ -1,5 +1,5 @@ --- -title: False Sharing Example +title: False sharing example weight: 4 ### FIXED, DO NOT MODIFY From 516a33d06273ccf51b7baaf0267f7641578fea1d Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Wed, 28 May 2025 22:18:56 +0000 Subject: [PATCH 13/31] Updates --- .../false-sharing-arm-spe/_index.md | 3 -- .../false-sharing-arm-spe/how-to-1.md | 32 ++++++++++++------- .../false-sharing-arm-spe/how-to-2.md | 29 ++++++++++------- .../false-sharing-arm-spe/how-to-3.md | 11 +++++-- .../false-sharing-arm-spe/how-to-4.md | 22 +++++++++---- 5 files changed, 61 insertions(+), 36 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md index ccbb7c726c..f56a19089e 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md @@ -1,9 +1,6 @@ --- title: Analyze cache behavior with Perf C2C on Arm - - - minutes_to_complete: 15 who_is_this_for: This topic is for performance-oriented developers working on Arm-based cloud or server systems who want to optimize memory access patterns and investigate cache inefficiencies using Perf C2C and Arm SPE. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md index 098503eb8c..1f7060ea81 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md @@ -1,19 +1,26 @@ --- -title: Introduction to Arm SPE and false sharing +title: Arm Statistical Profiling Extension and false sharing weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Introduction to the Arm Statistical Profiling Extension (SPE) -Traditional Linux performance profiling tools often rely on retired instruction counts, which lack visibility into memory addresses, cache latencies, and micro-operation behavior. Moreover, the “skid” phenomenon where events are falsely attributed to later instructions can mislead developers. +## What is the Arm Statistical Profiling Extension (SPE), and what does it do? -SPE integrates sampling directly into the CPU pipeline, triggering on individual micro-operations rather than retired instructions, thereby eliminating skid and blind spots. Each SPE sample record includes relevant metadata, such as data addresses, per-µop pipeline latency, triggered PMU event masks, and the memory hierarchy source, enabling fine-grained and precise cache analysis. +{{% notice Learning goal%}} +In this section, you will learn how the Arm Statistical Profiling Extension (SPE) gives you deeper visibility into how your applications interact with the CPU. It covers how to detect and fix false sharing, which is a hidden performance problem in multithreaded code, by using cache line alignment in C++ and tools like Perf C2C. +{{% /notice %}} + +Arm’s Statistical Profiling Extension (SPE) gives you a powerful way to understand what’s really happening inside your applications at the microarchitecture level. Introduced in Armv8.2, SPE captures a statistical view of how instructions move through the CPU, which allows you to dig into issues like memory access latency, cache misses, and pipeline behavior. + +Most Linux profiling tools focus on retired instruction counts, which means they miss key details like memory addresses, cache latency, and micro-operation behavior. This can lead to misleading results — especially due to a phenomenon called “skid,” where events are falsely attributed to later instructions. + +SPE integrates sampling directly into the CPU pipeline, triggering on individual micro-operations instead of retired instructions. This approach eliminates skid and blind spots. Each SPE sample record includes relevant metadata, such as data addresses, per-µop pipeline latency, triggered PMU event masks, and the memory hierarchy source, enabling fine-grained, precise cache analysis. SPE helps developers optimize user-space applications by showing where cache latency or memory access delays are happening. Importantly, cache statistics are enabled with the Linux Perf cache-to-cache (C2C) utility. -To learn more, check out the [Arm SPE white paper](https://developer.arm.com/documentation/109429/latest/) for more information. +For more information, see the [*Arm Statistical Profiling Extension: Performance Analysis Methodology White Paper*](https://developer.arm.com/documentation/109429/latest/). In this Learning Path, you will use SPE and Perf C2C to diagnose a cache issue for an application running on a Neoverse server. @@ -21,9 +28,11 @@ In this Learning Path, you will use SPE and Perf C2C to diagnose a cache issue f In large-scale, multithreaded applications, false sharing can degrade performance by introducing hundreds of unnecessary cache line invalidations per second - often with no visible red flags in the source code. -Even when two threads touch entirely separate variables, modern processors move data in fixed-size cache lines (nominally 64-bytes). If those distinct variables happen to occupy bytes within the same line, every time one thread writes its variable the core’s cache must gain exclusive ownership of the whole line, forcing the other core’s copy to be invalidated. +Even when two threads touch entirely separate variables, modern processors move data in fixed-size cache lines, which is typically 64 bytes. If those distinct variables happen to occupy bytes within the same line, every time one thread writes its variable the core’s cache must gain exclusive ownership of the whole line, forcing the other core’s copy to be invalidated. -The second thread, still working on its own variable, then triggers a coherence miss to fetch the line back, and the ping-pong pattern repeats. See the illustration below, taken from the Arm SPE white paper, for a visual explanation. +The second thread, still working on its own variable, then triggers a coherence miss to fetch the line back, and the ping-pong pattern repeats. + +The diagram below, taken from the Arm SPE white paper, provides a visual representation of two threads on separate cores alternately gaining exclusive access to the same cache line. ![false_sharing_diagram alt-text#center](./false_sharing_diagram.png "Two threads on separate cores alternately gain exclusive access to the same cache line.") @@ -77,9 +86,9 @@ int main() { } ``` -The example output below shows the variables e, f, g and h occur at least 64 bytes apart in the byte-addressable architecture. Whereas variables a, b, c, and d occur 8 bytes apart, occupying the same cache line. +The output below shows that the variables e, f, g and h occur at least 64 bytes apart in the byte-addressable architecture. Whereas variables a, b, c, and d occur 8 bytes apart, occupying the same cache line. -Although this is a contrived example, in a production workload there might be several layers of indirection that unintentionally result in false sharing. For these complex cases, to understand the root cause you will use Perf C2C. +Although this is a contrived example, in a production workload there might be several layers of indirection that unintentionally result in false sharing. For these complex cases, to understand the root cause, you can use Perf C2C. ```output Without Alignment can occupy same cache line @@ -101,7 +110,8 @@ Address of AlignedType h - 0xffffeb6c6080 ## Summary -In this section, you learned what Arm SPE is and why it’s a game-changer for performance profiling. You also saw how a subtle issue like false sharing can slow down multithreaded code — and how to avoid it using alignment in C++. +In this section, you explored what Arm SPE is and why it offers a deeper, more accurate view of application performance. You also examined how a subtle issue like false sharing can impact multithreaded code, and how to mitigate it using data alignment techniques in C++. + +Next, you'll set up your environment and use Perf C2C to capture and analyze real cache behavior on an Arm Neoverse system. -Next up: you’ll set up your environment and get ready to run Perf C2C on a real application. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md index cf96a700d0..d61fe3c97c 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md @@ -1,20 +1,23 @@ --- -title: Configure your environment for Arm SPE profiling +title: Environment setup for Arm SPE profiling weight: 3 ### FIXED, DO NOT MODIFY layout: learningpathall --- - ## Select a system with SPE support -SPE requires both hardware and operating system support. Many cloud instances running Linux do not enable SPE-based profiling. +{{% notice Learning goal%}} +Before you can start profiling cache behavior with Arm SPE and Perf C2C, your system needs to meet a few requirements. In this section, you’ll learn how to check whether your hardware and kernel support Arm SPE, install the necessary tools, and validate that Linux Perf can access the right performance monitoring events. By the end, your environment will be ready to record and analyze memory access patterns using Perf C2C on an Arm Neoverse system. +{{% /notice %}} + +SPE requires support from both your hardware and the operating system. Many cloud instances running Linux do not enable SPE-based profiling. You need to identify a system that supports SPE using the information below. If you are looking for an AWS system, you can use a `c6g.metal` instance running Amazon Linux 2023 (AL2023). -Check the underlying Neoverse processor and operating system kernel version with the following commands. +Check the underlying Neoverse processor and operating system kernel version with the following commands: ```bash lscpu | grep -i "model name" @@ -43,7 +46,7 @@ Run the following command to confirm if the SPE kernel module is loaded: sudo modprobe arm_spe_pmu ``` -If the module is not loaded (blank output), SPE might still be available. +If the module is not loaded (and there is blank output), SPE might still be available. Run this command to check if SPE is included in the kernel: @@ -51,7 +54,7 @@ Run this command to check if SPE is included in the kernel: ls /sys/bus/event_source/devices/ | grep arm_spe ``` -If SPE is available, the output is: +If SPE is available, the output you will see is: ```output arm_spe_0 @@ -63,7 +66,7 @@ If the output is blank then SPE is not available. You can install and run a Python script named Sysreport to summarize your system's performance profiling capabilities. -See [Get ready for performance analysis with Sysreport](https://learn.arm.com/learning-paths/servers-and-cloud-computing/sysreport/) to learn how to install and run it. +See the Learning Path [Get ready for performance analysis with Sysreport](https://learn.arm.com/learning-paths/servers-and-cloud-computing/sysreport/) to learn how to install and run it. Look at the Sysreport output and confirm SPE is available by checking the `perf sampling` field. @@ -99,13 +102,13 @@ List of pre-defined events (to be used in -e or -M): arm_spe_0// [Kernel PMU event] ``` -Assign capabilities to Perf by running: +Assign capabilities to `perf` by running: ```bash sudo setcap cap_perfmon,cap_sys_ptrace,cap_sys_admin+ep $(which perf) ``` -If `arm_spe` is not available because of your system configuration or if you don't have PMU permission, the `perf c2c` command fails. +If `arm_spe` isn’t available due to your system configuration or limited PMU access, the `perf c2c` command will fail. To confirm Perf can access SPE, run: @@ -113,7 +116,7 @@ To confirm Perf can access SPE, run: perf c2c record ``` -The output showing the failure is: +If SPE access is blocked, you’ll see output like this: ```output failed: memory events not supported @@ -122,9 +125,11 @@ failed: memory events not supported {{% notice Note %}} If you are unable to use SPE it might be a restriction based on your cloud instance size or operating system. -Generally, access to a full server (also known as metal instances) with a relatively new kernel is needed for Arm SPE support. +Generally, access to a full server (also known as metal instances) with a relatively new kernel is required for Arm SPE support. For more information about enabling SPE, see the [perf-arm-spe manual page](https://man7.org/linux/man-pages/man1/perf-arm-spe.1.html) {{% /notice %}} -Continue to learn how to use Perf C2C on an example application. +## Summary + +You've confirmed that your system supports Arm SPE, installed the necessary tools, and verified that perf can access SPE events. You're now ready to start collecting detailed performance data using perf c2c. In the next section, you’ll run a real application and use Perf C2C to capture cache sharing behavior and uncover memory performance issues. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md index bc7b9e47ca..40845f5eb2 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md @@ -8,6 +8,10 @@ layout: learningpathall ## Example code +{{% notice Learning Goal%}} +The example code in this section demonstrates how false sharing affects performance by comparing two multithreaded programs — one with cache-aligned data structures and one without. You’ll compile and run both versions, observe the runtime difference, and learn how memory layout affects cache behavior. This sets the stage for analyzing performance with Perf C2C in the next section. +{{% /notice %}} + Use a text editor to copy and paste the C example code below into a file named `false_sharing_example.c` The code is adapted from [Joe Mario](https://github.com/joemario/perf-c2c-usage-files) and is discussed thoroughly in the Arm Statistical Profiling Extension Whitepaper. @@ -285,7 +289,7 @@ int main ( int argc, char *argv[] ) ### Code explanation -The key data structure that occupies the cache is `struct Buf`. With a 64-byte cache line size, each line can hold 8, 8-byte `long` integers. +The key data structure that occupies the cache is `struct _buf`. With a 64-byte cache line size, each line can hold 8, 8-byte `long` integers. If you do not pass in the `NO_FALSE_SHARING` macro during compilation the `Buf` data structure will contain the elements below. Each structure neatly occupies the entire 64-byte cache line. @@ -306,7 +310,7 @@ typedef struct _buf { Alternatively if you pass in the `NO_FALSE_SHARING` macro during compilation, the `Buf` structure has a different shape. -The 40 bytes of padding pushes the reader variables onto a different cache line. However, notice that this is with the tradeoff the new `Buf` structures occupies multiple cache lines (12 long integers). Therefore it leaves unused cache space of 25% per `Buf` structure. +The 40 bytes of padding pushes the reader variables onto a different cache line. However, notice that this is with the tradeoff the new `Buf` structures occupies multiple cache lines (12 long integers). Therefore it leaves unused cache space of 25% per `Buf` structure. This trade-off uses more memory but eliminates false sharing, improving performance by reducing cache line contention. ```output typedef struct _buf { @@ -345,5 +349,6 @@ user 0m8.869s sys 0m0.000s ``` -Continue to the next section to learn how to use Perf C2C to analyze the example code. +## Summary +In this section, you ran a hands-on C example to see how false sharing can significantly degrade performance in multithreaded applications. By comparing two versions of the same program, one with aligned memory access and one without, you saw how something as subtle as cache line layout can result in a 2x difference in runtime. This practical example sets the foundation for using Perf C2C to capture and analyze real cache line sharing behavior in the next section. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md index 1ac72d6d95..261a9f0244 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md @@ -6,9 +6,13 @@ weight: 5 layout: learningpathall --- -## Measuring Performance +## Compare Performance with perf stat -A straight forward method to observe the performance characteristics of both binaries would be to use the `perf stat` command. +{{% notice Learning goal %}} +In this section, you’ll learn how to use Linux Perf tools and Arm SPE to identify performance bottlenecks in multithreaded applications. You’ll compare aligned and unaligned workloads, detect cache-related slowdowns like false sharing, and trace memory contention down to the source code using Perf C2C. +{{% /notice %}} + +A straightforward method to observe the performance characteristics of both binaries would be to use the `perf stat` command. For example, run the false sharing version using: @@ -66,13 +70,13 @@ The output is similar to: Comparing the results you can see the run time is significantly different (13.01 s vs. 6.49 s). -Additionally, the instructions per cycle (IPC) is notably different, (0.74 vs. 1.70) and looks to be commensurate to run time. +The instructions per cycle (IPC) are also notably different, (0.74 vs. 1.70) and look to be commensurate to run time. -## Understanding the root cause +## Pinpoint pipeline bottlenecks with top-down analysis There are many root causes of variations in IPC. -To identify an area to focus on we will start off using the [top-down methodology](https://developer.arm.com/documentation/109542/0100/Arm-Topdown-methodology). Install the python script using the [install guide](https://learn.arm.com/install-guides/topdown-tool/). +To identify where the bottleneck occurs, we’ll start by using the [Arm Topdown methodology](https://developer.arm.com/documentation/109542/0100/Arm-Topdown-methodology). Install the python script using the [Telemetry Solution Install Guide](https://learn.arm.com/install-guides/topdown-tool/). Run the following command to observe the ratio of frontend to backend stall cycles. These indicate which section of the CPU pipeline is waiting on resources and causing slower performance. @@ -92,7 +96,7 @@ Backend Stalled Cycles. 75.24% cycles The output shows there are disproportionately more backend stall cycles. This indicates the CPU is waiting for data. You could follow the top-down methodology further looking at the stage 2 microarchitecture analysis, but for sake of brevity you can jump to recording events with SPE. -## Skid when using Perf Record +## Skid: When perf record misleads The naive approach would be to record the events using the `perf record` subcommand. Running the following commands can be used to demonstrate skid, inaccuracy or "slippage" in the instruction location recorded by the Performance Monitoring Unit (PMU) when a performance event is sampled. @@ -155,4 +159,8 @@ Looking at the corresponding source code, we observe the following. The output from SPE-based profiling with Perf C2C shows that attempting to access and increment the `lock0` and `reader1` variable, is causing the bottleneck. -The insight generated from Perf C2C indicates to reorganize the layout of the data structure. \ No newline at end of file +The insight generated from Perf C2C indicates to reorganize the layout of the data structure. + +## Summary + +In this section, you used multiple tools to analyze and diagnose a real performance issue caused by false sharing. You compared performance between aligned and unaligned code using perf stat, investigated backend stalls with topdown-tool, and saw how standard perf record can mislead due to instruction skid. Finally, you used Perf C2C with Arm SPE to pinpoint the exact variables and code lines causing contention, giving you actionable insight into how to reorganize your data layout for better performance. \ No newline at end of file From 54dc9f89a30033a74613ecb8c5d23a43850ac71b Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Wed, 28 May 2025 22:21:47 +0000 Subject: [PATCH 14/31] Updates --- .../false-sharing-arm-spe/how-to-4.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md index 261a9f0244..6cb5cbb5f5 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md @@ -114,7 +114,7 @@ sudo perf c2c record -g ./false_sharing 1 sudo perf annotate ``` -The left screenshot shows the canonical `perf record` command, here the `adrp` instruction falsely reports 52% of the time. However, using `perf c2c` that leverages `arm_spe`, we observe 99% of time associated with the `ldr`, load register command. The standard `perf record` data can be quite misleading! +The left screenshot shows the canonical `perf record` command, here the `adrp` instruction falsely reports 52% of the time. However, using `perf c2c` that leverages `arm_spe`, you can see 99% of time associated with the `ldr`, load register command. The standard `perf record` data can be quite misleading! ![perf-record-annotate](./perf-record-error-skid.png) ![perf-c2c-record-annotate](./perf-c2c-record.png) @@ -148,7 +148,7 @@ Next, press `d` character to display the cache line details. The last `Source:Li ![perf-c2c-gif](./perf-c2c.gif) -Looking at the corresponding source code, we observe the following. +Looking at the corresponding source code, you can see the following: ```output ... From 6c97b4c9415c4000d442458e0241095dd89159b9 Mon Sep 17 00:00:00 2001 From: Andrew Kilroy Date: Sat, 3 May 2025 21:35:35 +0100 Subject: [PATCH 15/31] Add learning path for vertex efficiency --- .../optimizing-vertex-efficiency/_index.md | 57 ++++ .../_next-steps.md | 8 + .../fa-found-bad-vme-in-content-metrics.png | Bin 0 -> 209237 bytes .../fa-navigate-to-call.png | Bin 0 -> 237615 bytes .../initial-memory-layout.png | Bin 0 -> 32489 bytes .../initial-memory-layout.svg | 318 ++++++++++++++++++ .../vme-learning-path.md | 161 +++++++++ 7 files changed, 544 insertions(+) create mode 100644 content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md create mode 100644 content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_next-steps.md create mode 100644 content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/fa-found-bad-vme-in-content-metrics.png create mode 100644 content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/fa-navigate-to-call.png create mode 100644 content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/initial-memory-layout.png create mode 100644 content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/initial-memory-layout.svg create mode 100644 content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md new file mode 100644 index 0000000000..f232925007 --- /dev/null +++ b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md @@ -0,0 +1,57 @@ +--- +title: Optimizing graphics vertex efficiency for Arm GPUs + +minutes_to_complete: 10 + +who_is_this_for: Android graphics application developers + +learning_objectives: + - Optimize vertex representations on Arm GPUs + - How to interpret Vertex Memory Efficiency in Arm Frame Advisor + +prerequisites: + - An understanding of vertex attributes + - Familiarity with Arm Frame Advisor, part of Arm Performance Studio + +author: + - Andrew Kilroy + - Peter Harris + +### Tags +skilllevels: Intermediate +subjects: Performance +armips: + - Immortalis + - Mali +tools_software_languages: + - C + - C++ +operatingsystems: + - Android + +further_reading: + - resource: + title: Arm GPU Best Practices Developer Guide + link: https://developer.arm.com/documentation/101897/0304/Vertex-shading/Attribute-layout + type: documentation + - resource: + title: Frame Advisor user guide + link: https://developer.arm.com/documentation/102693/latest/ + type: documentation + - resource: + title: Analyse a Frame with Frame Advisor + link: https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/analyze_a_frame_with_frame_advisor/ + type: blog + - resource: + title: Arm Performance Studio + link: https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio%20for%20Mobile + type: website + + + +### FIXED, DO NOT MODIFY +# ================================================================================ +weight: 1 # _index.md always has weight of 1 to order correctly +layout: "learningpathall" # All files under learning paths have this same wrapper +learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. +--- diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_next-steps.md b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_next-steps.md new file mode 100644 index 0000000000..c3db0de5a2 --- /dev/null +++ b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_next-steps.md @@ -0,0 +1,8 @@ +--- +# ================================================================================ +# FIXED, DO NOT MODIFY THIS FILE +# ================================================================================ +weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation. +title: "Next Steps" # Always the same, html page title. +layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing. +--- diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/fa-found-bad-vme-in-content-metrics.png b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/fa-found-bad-vme-in-content-metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..2739ecc7ce1f42543fc08acfeaccb30825a38cca GIT binary patch literal 209237 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 z zkj}7rxsI+llt6NJ9oaqHZ)z~obDRO(x%t`15*r^UlxL7z(C#xgKqErSFfI-MTkPHMA|#J3F`h_Slww5A}0;!`D0oU$iz_ zXXez@qmd~-vZ_FDu?3OSj_3xYQMNhSXrLCp@tkMW-CBK`(-oP=8tSf>g(BbOQp;+8 z4rEBRs}ZL`oqkSff@DVU4^gOlV(PM+4!JchbDq;9snw3=I1~m`C3G)F3Ww(}rXuN% zO2f%y-UO_rmhq`P*p!|*K&tHv^aZ_=m-n=fMgzI%7y+SacdjeU>nGC-uNP;Fw<+OW z*Bj{Fn|GvUzqB6Rj-9p%y<|1tY*Paq!v>9kkqXb{{$;6UOr@yU_49 zPGfBf;IPEZ!@fa@n+}@gJ_=u(V@||4jFt7EugBXZb*n^4@H(#5JEPUe|_VX zE}t#hT8tKz?d`xMkk?)8;7W;xnIBtQ*YEaS?{bD-n~hyx7ge1S3qb7JO3_)-V}@f? zWobay4s0GLwbp`;aF*S8)0LSXte>73M;h@iE;ijK=(Af}O>akgFSW00opAp!_Jc|X z05fWZ&>h*qL+)f!=+C}O~xuU1u2e*WK>m~EIb;GpF3w%XcLm?MkRqv9ob zIW-{>o9QDfWmUz<&7K`>GpcolpivT(|4Y4Jo?K@LDtR9BU z{Kz8ETw(WbR@u1|7p}eO>-pu|4tx-!vN)LhW_p^wl-+C z{)|=Hok0$5CGWbj|1KnfZqaYK`Bwm_+xq!0$X-eEN|65)$Tb!D`bQSF zm-BZ@3U1g+O}-m_X7)$saH8_x+;6GupwUe%!-8pMW5p-Hp{|Swve!~7v1hUeO|+zA zMG@)WdNl8?D*+W%MuD$yd{{ZLe3!(}%&Me!b?jbO_VeG;Y=&AYfTfU;YpJ)+%^>}3 ziedyC^Z)4u$lgdBb+Ggw0?pqOLtRt8OhUgcV#2A;-0n=ath-05cT5oU?ccGNa(V+z z-U3TD-pH`!#Fd;K1i8-40Y=>FcjfTX?|==PXCZTh?C= z@3UG~74@h%dkZGRg$5M`{N_L!eSuvPSZ$kw6|+sFr6}~>%P)K{{;cP;!9_2>c6|al zEzM9_)@@wotY%w#n+5pG9i>uvFL9vciy5aTVk7N+p`dbqy|3pzsK8AqVGgBy`u z@?Y+KV#+VV2F8~~jV*X1ys%x(Zz17Od$Z2bk(0e$w(J$Y*)0I_)jV%nGU5ubt60xh z_6bcRR5kB*y+uR}oB>0{b|9p4do)J$G{{Kp&=p`BJjMz<##o@Gr?BtI{vS1P@umSH zy}Zx})y$aWg?D+DPvIkyUe^|8h*}fPlw${UTBa$;%+l-{JBIwbHfauUGONJbb(03MzD`Q?c zGonBj;>4YG#-N6X3(m}+!9SjBGnZ;torGLCm*G(M?=4+aAqRt}-ujW2$HzlL)wD5N zG`Aw+a2z$mebYH{$x0M8>9C3TC5^<3}w z!s(Xje0vNrF*J5YQgqCF?4$um84szS2=+;snR{piCh}BNMC&YAVvOwxpcnUCkz3 zcTuO|Mu*2E@Ip=5Ejb8FS!+sXR8--%WHOy)?od3{9s0hoi}B-$54wD6}kL0G

3p<8z$ffDd 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 yh)&|e$-i&MkDq73?vL(;NtoyTInm4!i$4Nur7 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�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 z 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 literal 0 HcmV?d00001 diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/fa-navigate-to-call.png b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/fa-navigate-to-call.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3287e35a7e818f9e9fc0129ed45ff131c1c157 GIT binary patch literal 237615 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≀IPdVM?F9B3a;KT7$uAp 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�_0L_@v{&<1hx3y1=(sb?QTLJ%L~mo$ z`HDniBvsM&jw9b%9TDg|Ub#yGw!DZ*NIZ~*u8{OtG62ZVe%ozQYjiAf%kBzn308)tqiBo8F z5RHpzP^%}kfxzh2VT)Qm@UE7v9Uv*8=vZSCgi$2;>jpshP1A<@$a{{gjZED=xLR$P z6}e$@YmA{-vX^}i^^}|dZzCNaK6)0fm0vT3n!dyYnMn-)nq8@U+jS+XruP%`qX^Sjm!VwU%@dM+RZIhBVjOMjH+XSj^MYZWHP}$&RGgzd) zn}pIr(^hSo-x{02(SD5Q8Q2lL#dg^Z0%y}$rYTQnh_s_GuqAsiyz%xrm){Rzqy$&v z<+?9+!#xsACj*)0Bv@^#ZKWx%`Wetdb?etu%iTJ*(g2uau@{&4a%#f2LrMBEZq@a1 ziqd+Oy6YK%pEO3R(V+#&0H;`!7TV)^0qKq~G{*>xMj*^*o%?f^%A^Ur>CUMsMByv8 z4b1t!F?CGv>_2u5YZ)eOnEAs`cde4HIwkPM#?#q!%nd>k4Fhwsd(*l7mE-FFSVKtaSi4^8Li6dOYEv*t8HIoIu6JJ#OaiSVHJwf5_&Ia*07(j>*#QQNb3Ku}@WO1GbEcY1`$rxFdvQ5T^QA5*~6RoeZa{IBph7yk!U#%W*>LtPR5(2lxX9zpdS zpk)tJqbF;EuC}$#yWQ7lUCD0h?$szVAz>lTp`?Z>DtFv~JMoXp5^dMlwuH(EH+xph zVpx2Ge56RsmKg@pA7v?RNNCfpI%un)?&v>ul-=&C9E@eYggibo2@p2MFQNNQ;*1dw z8SB(wZ9Ju(J;M{n`CiNpgeB5%F)Vqy_;M?WCNsgVPwPK_>t;44d8MSXTy0Vu!QQz6! z3a-(-YUiEoj}Ji@5U^h99;a$aI8M{OT1lGuc&||$HYg~HsTL0ntYWy3Jge3S#uI{9 zs@7d2H!7zQ8tR4H+T=f887&z_agX!uU$_WgiFLzl@P*y%0Gk<8t&-9dF&E~yom70R z+?q&3jB%j6KHtb}MESM-pW_7IE1Zm|4{V`t@h$F#9WHivSF^x_yd`3Lnp1c^g)syS zj0Y#1Rg6Nv)X8wlnRU%YvMwv8sEKv)^;?1LxY+}^?NyT(Oa(VcF2ZhC3gr$HhBVHaS28t{WY&dCjkYIvv->=bpU4(;~YF4Hud=8HP zN84KkMHX$@+Eq|M;Z?Z1ySux)yStOPQ@BIo?(XjH?(Xgs?(lQ^NOyGH|K mweip zk-1{6+;h+QjWOCLZ%Da`aNd*bw18T94x%h9s+#?7iIJlA4am=n z7Dhx}4TLwoNkjbUGVg52I=bnA1zjIesX%aAdc(*6Me=I(I zSY%IU!z)f&6_cq6^J2nee}hMt&%N2`F2+1w#?hH5+muS@?0_aC0eiGKWxy}*vWdB? z^6r=4GSE2?z8r(v9gfI3)9e|d>I4L}RIR(Loy%aN9H&HeB-RIocG;i#SeXe}Rhi7t z0t8y$F4-;DVgkWE3{>Wz=AB!7U)&LHQHclwVN3xYl<~tx{Z!kp7bj*EGE^tKi1!42 znkRUu1;Bc1R{D{pVU;t(y?yD&O~3m3Vgr09WrxuFIu^ST&bXsimK+=fr2i~04&v`G z^X_Bt8{=NCLFPn0MWMr$ABhuB={wqu*ICTrt`kdtLyZJiEEqId+CxlNHrfL6ZD)N! zr7Yrjjt3!}!_|39)H70#&A%F!Bkk5&bT;B*O&>7T%mNh6BhPu_RvQNX8)CfW7Kqg) z)GYzwoQsISf?%CMSc;>fTEi2L2NScIQ?juy3{Kt<=|j$jyU@I|UQ20DN{GLTx2(_% z^sS}yBqoFfQwOX>6PR_Ne6Ac@+-3lk%OsuQeY$1Qfd- zrGH|h`q%MO*WPs>IFN=QOA~ZPoSb><{*s(!?qAQT`dJ1wOIA}wQ(zy!Acqde`ke~#4x$~-LI!$}|)z$d|{Tg-v#d|z$F^}3l zGf+OL;wZqam}T@a|5?MRSy+Exj6;$*VF&%wSZ@oC4QEy3@Xu84%!6mJEP-Z- zo*A+dD{uw9BO}1@NPLVOT#z!=qmj7WR(5p_ebFw$tObWV-Vl*IxCZW)+6C&QRq2 z?}aB#w&16J&lZB}=up=%H1SV0{|?H$LdYvM#t0)3>ck54xyg}aAzi32GvHr~vp&m`l&n^+CV zTI)h~n;*?j-nhR$&AWb+I*#df%Qc;G;0-Su`Da|V6HhN%EW?nGsGu1@_r>S({m;@0e( zzBeSYaHr%ed3mn$JO*cya^Hvp)JC$Ku4OOTAxCiz}~8PZ~iuguwTV z(?_?y@2y&bY>lB&YEr3!S_g8xV3t2I~dzw zua2Jr3j^RTBj!N;)k?=+Lt9Kl#exe9NYCRCB;<0xdWT>BSV{sTUf()x$ z$ou3jL%@!_=ih5cqUh?3t?R}0hxp3@-{?$Q&Wwz|f~wgGfao*6Ca5t0EwxkA=HVIP zMd5!*ecz1KmVVW#+1GMfscgh7{49)wdZ<{80wMn=kGwFuIwbcEL`k;xOQhXW+Up4w z4mCnsIdA`Y4J<$TwHul90_E|L-uW3@rqx}u0hw<({`2RxPqUul48BRn3j!~0IoeZk zPuG`5Nze@~UANDLx8g{x1~kLtF(YYE&7ZLAwa8vG#;b?~jZ=@Wt9SlAMhZUDxSw9T@ofL~NDynTL zaWyDR>~Exa95{VJ3<`aMW+<}iOLeJMaTT-yVE9vrlRx-D>rzZ;!* z^yovU8SF68wR|2npk*|e@&Ie<>nw0YlkDB@Rx=xycUo=fZKQ0OOmVgFtvgY#&eK0f7o$mU5A>fl8X|E$|_VZ-pPOCnJx6f*r_b=@4KHb9W#R4e{sCX>> z`^zG=Rs&KVk*4K42Y3-#ZHcGRnfA^%7buQLqp4=I+$%r{Vn!%-@&Rm2?YHUFzKyhnx<4MOmfl`i zUh*TFOm+o=waoxIQ3Tb5n&FWrjTUU53up?}gIZCs;T_ zXCllMx)Wmwb80n^|1(5L?suWEdn(Z4ELmTt%KGd{d!4 z3}!CoQ)2xJlQlH*@bVNez>+F+u-KDF{%p@41~Qkw8W!4$rd40oBQaa_W!Dc-7BhNt z@Ktk;n(Nj+KYdpSV?;-Zg7bE(X=FSm^FaH{&l95B6vjQR;1X|xz6u3IlsFfDooi6eX8 zrUga~-aa&*sR6im`tT2CMkw^oFgNs0UIw+t3ct&blsBi@U+?S3nGmf#;a^f|FqhFu zIXqRLL>*;YG%obHw^v=enI?8x_&!^|2*BhF{asmrs{gw$OzsRF&;Ai)9qkBi<9G*8 zh7G<5ZfNLv_9Q`qI;pWjUw8WUhsOGb53|-vXJSVaUrBMhETxs#&$CUG4$?*)*kF}1 zViFUVmCv3Y?bC|3G>HNN$}^HL)V!v~e&rD=uz#XFtyqZy;Dl@2L}BltBugY{7(s*# z7HGleSDOE$!VeuKD4L_bCcwPwF`2oAQpBa}lr6N1bMu|lH{=p-oD1M@)qxLlYTR2a zZND#kPhh=4;tR)BYJLrxR$?Un`Tn$t&RV%<4exA%?eCpIGtE+S-g?w4;->SG*xUQnSj zmPcGATv)p#Q9lVH!!&A9cT@st>uvfTe+BqGHpuar-D4MtYfCa>Rw94wdVmIYSgPi^ zZbt&;rC0Lw=`|Cisy3Tguah8GuLt5xBRM#63f5L_VnTR*G7oOhoZtewMkO{|w_6~$ z_Uj{l{|MSd1+TmVq6b;4x? zBmc2T_FoqlS+T$srj4LKV0C<-;GlQN=Url@F%`XW3X4pe)1PJ&ai-XK7+6A3?=V1w zESe>sw+_%O`iO`y69tk^6F=JW=S1gp{)mffTVh?XWrQU~?HXc*NS$j7$00R{ic2k$ zRP5@Ez(tgR28EnIA*xjCFYPcL>BW$RSA_DdUHfHCL)t`RdQh3CHM(eUI-Pnc7&J4t zfmG{qJ278i2F@k`W3%D>kku*@HHhZXr4xaJ9tOlm(pnzr9nfS;PYt)44M_9@b+gE(RcTUG>oQ~K zl*x~+qU-Bvqm(Cf-!*?>vo$cfi9W~2mmJK0#|wH<-*{wFAL_*k=A2uom-)Kup6DCp z|4@&VAkO1q3s3Tv%zI_*AY1K>YaTPX%Xncpq}<$zR;)<5>pD8l)*Nz|0FL-6L#w0v zq+$xYt8qThQBs7_P+OeJkgpS)ULB^DjFFwMLmXj3o^t|22iF5*^!Gw<>I8CldOtfp z5JTbmp57+t%E@;f&J|Fs#C8=bX&N^(?8epv%h$7HivWUkZXBQLZs9alK7(Yk8Bp45 z?s|kJBV4Va1(thk_V+AMV<`0(%n>;~6D?J$4uJ=$xTyn@UD`R;xV%ts{lGY#h*&{R zaNc($KWPA8XHr#oi#yY;vxxd)X{EuVI`*^)u-zD}%o%sjp%GkAla=E>oFG?Qao^(1 zu4UDI`i1||=7suXwuat5EgHe`nB_aaiP-SER2X54n)q!tUOK?S{)6p!;3<~mT)P#> z_~RPzh)Jd6=C4(eh{@a4?HvfqUF6wMm(=zML97+2JL-QA!R8|wm=j5P@d`&++CdJv zB}>kExr%!EwN%jJomZhbG~Tj46ZJ+=$8_ z+#r-GO#QJ!ylY9_CZ#iUfW6l1l?T5l_>+bv;KEbX7y}5ad8u(pqcpbR} z-_U5_C4MEAhF78_#-m4t%f1!dxwyy$MONZ zJA|O17qhys%X3+T7ZGqL55x_`<3C!|*7WS^tRwB1%?pe@r;{J5004TOV#c*Orc~Wx z)bXZ-$v<+ndc zq*Wa3Mz9)b-+(C8y7)p8yV15jN7?+ELENke!M%c1X`c{VlvF7!{r9@h@x}2d%J%eu zf$Ul#x&xJE3@F$f(-OG*>F>-|jHKW8*AacGt(DeTfjp*Cc%Rog|( z?Wv)6#OqFAKO0s1-`6G8%C3ag&_Wovy>b;f+|K~R*c(qj)f{_MFAYies(gTqNAt(r z52S|-td%->YAUk3GYx8pL4I27OJoL!sb5?Q|#&B*|y zBYyezWybIgXp}nRO^bEz%)!sjU}%Qtp+q`IelClz2wFHNfmWox)QJJPvOe)bI%9O* z&w9*;CB97b!yteKwkF@2K6G!AMC>f1)x;l%ZLHjDEPF^WIbqD|8@!FM5e<0%jeZ-LAJTNZor67dfv2 zR6eWYDJupUXS-TeLk@nuThQu=VNP9bO%gB9`0h`&{*IG-spAjsyqk54y!TnPXKI4b z1xMSq*@Pa`w^X-^6>?8Xf@CbS9E@M)Sk^aM3cOnC3ilc45UE^VC;^Y7e}G$5TlVS> zx@uD>v3Ia{&}M{)`-dns1~|2xk4{n4w4y)C7xF^&FX zMTW_HKTNTAdbrx5%dr9lw)L3XstiRO!jLdSLiUeQ1&X?A*3Dz#z!5^IbQ394t$72o z*vP_k#h0+B7)bw)@fVA{SqU_%O`VW(iB)NyK$}888M*(w5>N^ekw+qyt z6lcMkDX6^Xo-Q(6P;hm&*TR!JGr!hL?=(lo)2eMcUCEU9+bVXZ@j3n7ox0~V2AT92 zIhV8u?_0kT&Ry*3RB=Cd2u}{Jf3h*)vHPLF0-JyBgbn4fRKKOgK_fmtF9>}j!gkaW z9At10!6k{4GEtCTJD**_{d`0*qI`~T-2C}xt{)Elb%9*noAAU{VpWemSIGDMMfFAF*k8(E0frn+Q z4M~>YtQJ^KP4L(VjyMH(=h2PVe_!AXDvzPmB~$y8jT_Ekhu_=haXaIa=&rm2jmaDB z`=G+ggunIjZ9C`kvkawQI|YbLLq!qO6B24pEHl#nA-*QqFNSW}hztcug_f>6jUdMI zaCi>07!6TiGh>2eipE=7Vj4fqzM2(66VfCMHllb)`7q6&2DrormdQR3P8@B95E_L2?+ z762mrM)={R7Z{HREq-gv$>dmlwzF?M-aiO|Ene#PPOd&(7N1&aYZ1M(Tv_(t5C=6Z1IM+(Nx|Ap(PadOb(rT~k3SR7FHN zM$&HPtLw%6`l%AWJJQW@CnZ|{Q!xJ>IyBcGH-O`49T-Cof|Y+k)3krnwotO!)7 z027=L1^Y%l3>PylZ9abxY%Be1`dnYF;#n3mGwQC^0)BIjy2VhSh&(rD0cCR(V@>4O zm|TAQs!o5a*tvW#SBP2jx0jrCiH2rjsh z=||!)b$$O5vMkZ+kZ=-aQEAzYN9#`zlfF2cN4YUVSVh8+SC@Y&Sk(}hyBJN6E)E}` z*#p4ccFjtHS$Khr5RWyiOKGN}oDS3#-zaru)2Z%aBp6!kn7j0y=0GAgI_%b3f~8+C z(6+bG{`8&^S+5Q?n0&vpEYCh3{r#ZDR3I3`*nn#(i)yM1Uteahyf+(;CrYTqDpTWj z1UBvovFGaYIlXD{nF&08f*ov1jb%J|yS374!By`5)thlw2HQERp2VK98P+Hb7~yP6 z+AzJlMqk9*Xk~)5!Xq-I1&_S!-9R-bqe?a8(?78VUu0q+Z$jP|sKi;FnCwSPZ%Y-I zv4O+5n^tPc6DLbRu&d%sRw(&VZ&uIH(&R8b8hHMBkNohdVMCMGOQDJLp(*yF1LIu+ zAyNaao~-6OJLos~@(q5|BtavPJb^4W_KOq=Y#OGBk!M?;EiSdpj>D?GHLhnrOJ*_G zZs~WjBX3>uS2Q<|RHm-VAwooqAV!z=#sOnEK1|2AF{KKY(LQ{s&~k9#Z=BCoai6xe zqGdq2Fj|-rRX3hS>*6s)+nPiE43Q5wq#}KoN;%iGh!A|`=VD~|5j^CMN}xYiPTxA~ zq%f6PMAjdDYA|(rZn1cx+YZkw6W0mxo(VZ5tO_A`JGi{2uJ5|_QQVy?pSS8nNGn|v zkE>&ZkW)3VoM*tF9H=Ju&=HVn{hI>)&N8DM zqyS{vVrFw9$%fFX0w>*9D^6OaGop91u~#!5S1x!-4jyBPWGjx{`j3~oJwa%PhwPqG zdlpRjPuPbZvA7nUwA)}K3Bt40E+!#;+`;0IvhncE(ejhDnK}#cNBO;wyV6q>=|h!S z0q-?$=%V2!v|aN6qOIZ~21`8)s%Qt`mn(LWB@vG{AsJU!P*vw@f6KdQ^KTS24!_*r z*rE~Ha~X(Dz2lWPptd_b7V0=Ipc&F-gzj|5Zs0mgx?1oAHdGWU2|^DK=gQTU@2-g-??+qVMByiKghL36>ME5|~6 zA~tt0Q2i8#mp{JJ-Oz%Zdvw5so)UEEC^pdNyMAZ+9Ek}vz3R?Yif4)^&y725iT!J! z`$(z zjmM)#`0~j43*yxNN<&FF>JDO53GZlkGb{I%-PfhYvVfU z2U`(tF0^dMl)N=#JDFKbpaA8;e^)d&%$2SWpjXJ9bdaqFVHxTXUJ?`0P;m@Dj(FqD z5c;b_>|Iwk4Q^Sxercw1QgslzzR!6Z>2i!85<{=lnjqs`Y~}}BbBaitOU_R?o^Mr$ zfYpqt?JXoGad1r@wIPUXVqddz_jcwpm!EF;{-m9&CH)9ol8Gxl3QCigfITDPLV=P@ z_w;lXfZgER%B+;_5*_{vkh#?EYcFV1L%NXcPFDFm4VN3~hIH{D7Nx}{dH}$SxF$A+ z%xtd9YDv(eJ#X7oZGWf=aFfX!N<|RK9obQ;f>T1q#E$tlAwYdaEjFG8V|_{BR9?hX zH{2e=k51Ie$fUJzoYK}kQy{oufp_CI42jbwn|O+#CdQl+)RP_y3x5(I$SN#G(4K$H zZBm40KrGhEr2UyMr^UA^koChoc$0r8h_pYu$HH~#nn*zOP-F4IPD{MVl^z@2Ybvg? zK57Dkh=x*n>E{pmF1DmzEpuEaRGQnnvRYwXHs4i_tZ;WTEZ0daO?%;j2d`uj@xaSkU z_Y&J!hDoN~oQh?S?A#;>tgk*Bl$=e}zdzcL-Mf!(uU??T%c#`q_pU0DtUnfjyz=YT znohq1Wjt>;w}Li4hYBPgV1=v?)x-gk;ji=dk!IiJmq}TK~bY%NRns;g8H7aRX zcyc1{AuGIFE<0S$B2RB4d;J>;GmETYf${VXcy}d!LQ3r{aS>*$FUYIP5^ITtekTIHA?bT$A#-xAtD#ddc|czRCI}MgHhw0Cf#;W>w=~D~Sd;x+4R+_mI324J z0lJ!=xmxc)24yJib+%WTNOH<4q4=Ph2G@rq$H;P4P98|hlP1@isrRrst}Yh_W_GJn ztYPq!{5DSr+N^2veS!!Uj2KIRU4Ijy&d0yd~jVf~F0KkWg`O!#8n)@GPyFbgn-RM7AnB(#Tz zRLgK^GMdcsa-0)UYM&K@+qy-^v!^gv}Ek`x}dzZ+qYGK z^VN;kLDBQ&Hja1n6d`1@W?dqD|D zIY#O|Gy-bZITw=KqjerlYIc)tFv@!6agY``Zg(*aM+)q^$DzUlk+~O2%69SIU2x$k z?AjvTmxPKBdicS8k4&lim6B+3;{W&fW~xYkW&|G79>v-hV7}n>?Ryey^#hRHs_~wP zt{S$oXcw1)d89vDzKZA1Nf`CH_BAJF_CZ$%eQvlHns@ZAPpqx-m5KC% zil?b%(Pfi3@{1tezJ%U^bG2Jc({in2v`yG9$}@3LzEH0zR9EE|e`b5lWYjbW5@|cz zEof3`;|t6`r)k+dbx~U^>q3^B{@XLMzrR{Df$Om!`a^1HoM}z)sXNC@U_QE%mB!yJ zn9Uf(wH~-FZ@b4Q!~Le=sT*{y?QjACAaZ10k4PtiLYHsQakx8PK3$-}AaoMcL=hFcUd zA8^q(hZ{G~8okj&*5)hh@pRElxn-U*`QeIPsBStsy{lf9DGAvF`RbA!@Mcjd=6R=Q zb`uw+XFa7auS$}BUUH`Exk+{sOTjS@D#mB;)kj*OSvYsrPN9(yi`92wtf1CeIg)d; zYZj3bB55A!3td+Ds)k~Sk2q4U6hAFXjysv=j~);_gafIvjQ4CASAOE9%p5GxqOG0U z|6{Xyxn-M49XCV9Tdhxa?sHp>0_kg=hymxn2-Y<5Vl_E3Skm^=k`k~%@p85%<9_|N zbN|U4FUmZ(2Egh|Q|{nv2a!J2Nu(iX{mNu#|D9e`&sU)>d`SMwveNud0KEO<&;H zXLm@z1BE5;b3nthw(D8lj!zo@)@RMZH7oHK)%ZL%CYUk4-emgAlruoK=&t)v*Zb-r zDJj?v_h0YAvRnKwQu2*5w6g4fidqFa{+F3@ zj!vlWe_WjZaiv_<|8hbuRyCOZOUmz+{^@)w-RlUk{1ic5T2VDk;DDc^@eNX36gQlN zrXCu1bf1;>;a^-gF60$9ft5v79n4jbL}XwE0TudM?(5X#<})6Hnw5R< z%x!9HuL)T8!T#>{%P`U4?kaEWcdss#x19q>CmiaGvkZq0JFr>+z%>oRRJX<)*{N?> z6zvBJG_Adj&z5XfE0N-VxarF-&Z5djlgbG${@Sn%WE@&#f*0g4+gu17&yC>hNt~26 zw|bC&qUK3fsRqq%)+dft_&u!Zc&jJ-3+|J>v>kK1``?c@#;)jQfaPHQABfhF8#6Tw zX`B~TQ~qYldl|qz3@(>87_r55BFA?=))-pEL;A{^AE^WkQzX?^gGVq|wUM9Y>iw3T zPFpQFLA47;jaII|r)u?r|1VKW%<2-@|6i0cS=K89JDk-n*PN`6q*YHRPGo&Gl4{*( zl=8O?+U7)_7N5i&$*zP3L!mCVzx2Ysq?0{7bdwPRodK3%8fI>%ef$CRV(sGB0rQHu zgdRM|Sna7L3`CPaX8in1v?s#W#x%4jr6l>EUFYMHE4iU7Jliuoj|J`MNL7xpx9W|j zcvN+Gv_0qf)EkYZ$X)U;P_i}}d65LR%1IoZJsL<}f~;Y@VA5%YuynCqu1-1_eI;C- z1Ug|=Zhm?!BllV4>ZQaDkrp$;UK5ybgoTE7Xy;?33Y?q-vt&1!2{d(Q&n>4bV%bAT za`HUh8iIg;Cj3Xhz}Yt6^)s~A!loqeSDLI!785?e?&luXkS%Y_u)irCOM{C)7J39s4gL(ZVjNa@j7u zG&p#tTH9Nz40=Y8+u7-UlA_{jxH_5Mje8l5#2?gM)$6*Ixctn#vV1N*q!I5kMB1v<} zp`1Kdn;29UWu`-Uri*UIsUU|c)f6dxe)`%Ref2XErx));Tk$-%DV`s!C0^m#r?smUru1Wqeg^)jv*^qlZHpI&pH@m2qD@H$>@yU zJ7r(4IwN9)-U9+A<4-A5otnLaicPWK>)p~fYf2Z_{-fXEcWwX20Js?bb2y*Y5v`3P z5s@^mrP>>Tx&oYz^ouh)n?4h3N`R+ER%Lf1>ADk1{Rd?xBCzJ7hSA~YCfg?O%Ha23 zl$mR4`P}WXi#f-Xx5p3T*DuN})bM^1%ZShMpNv_(KJ~TmHww7&@I&V%Zvb-(@M=FL zpuw)FMDS$Dejb5gfAl%7E;ohi7#j|3a(_F;Fn#SF7lSr+cwd=y>?Q>*Y2q&!C%YSf zT>j`&@agyh@Z?5GPHOl(X^2|Y)s+f^4zb8Y$mtHGZnyB(SBweao?Rhc{3F$KGXr)L5VpF8O=NC6(6yV zMq6A}+R>xZ2Hx8mIT(Ryaj6W!rlO~QiXP~p&unDfIsm5kX^%Pi=al)D0 z>=%XBcJ+_)Hahfq{G#n*2tE4a#9q&n$w(oW6>WI1^K!QN-zEoK7{BdGN#ksil@p$R7^sxQh1jIm_wzsBFivs|(fNd2AQYlA z@ieQj|G208Y9o*0VoKL+3SGy)VywA_TO>;KePP3F+W*Z#7tm(NMY%Cp$7X{n4q1@Z z!3eIWP5z4jh|Hb!Wiryv*aDjfCAa$HcGZ=%u_7X;z9t@|EoKu?uj21V>Gxd(sr8Yl zR~#OR1ps-QyKlsBv@md<`ABM>LwjpeOwA#d+?3J}jU82MaJ$hR1(stNv|~u%*Be%; z-)W{0$F3;N%OS1`A-qY9U;u2n_Pc5_2R+i+KJ$3^7~h{TOMA@a z^sAw1oQbPQLS@jexgY?*%nwQS4@9bRzxPDxve9ww@h1txbOMTVWDQFx2meSb7s=$8Vh=?5qCmJuWXtq@%{(r}NG>7R${FC>fO#DCa z9?+gh#_IZrT2jjP*#8uqTKMyPPHlRL3fp(UVtr21wB2ng3H``l&JF2kDyDzwrRc{<`_xTnU1_D0A+LGn?V3)j-(Zc9* z8E3FF^a?QF#zjL*2j4{F>F`j7`M3Dh8L!2EmFqu3Y%51qp zyO5)sB*9kl4JpoGcRB&G(E4I_C2vT*^{>R3MtY`0z~AFS*QBwcN;&?M)A@{9(kesw z3ew2-3;FM>vkB(PM_h_gf%Zi*c&N1N#CtkiU7wyrF5l7aNGheWCU;UZ+^&?PhhFmB z`Fdw(vDoF49NWc`HPyKeUZ1H2Koaio)JVj|!u-p9Q(Oq$n|QS13;w%UpNjp-hMZL2 zF|K7bSsi)y+#YsNw_p`(sLty}ES~^AO?eDC@h9G>(Q7)$B^QFuc2)qxP5l>3C0L}R z!8a5qoubH4WD1o%JGk{45EHRr z5LZDMRwvTooJ=h-d^XSG&HHpuD#aLXYK_JkJDIb8x;vFJq{UP+-@#(T0dDND_!?_- zG{m7Z*h8||juWeaT68U$nJxkCp#e-ECFE{<(qZ(#{D2?3R}gwcM2?v0);Ky9+GRX| zSDPPsK9(a_eU^Kb5{EY*)L2b618GiSwR!bS$FC%nwo-alLr|VGxm1TIO+PoV!gBOo zQrnR3JfNwlkqm6s3CL+Oggmb$;CHIhHrqGzu^x=M?CWZY`mSTMvqn>1E-)R8XS@%o zWeU~*@U>$#44+(U@wmnJkt?IE4~28iptC7M_pkAX=SLsCT-*`dZz)m1Tz}~(g1A!> zj+Ymqog4`4ee)THCTB1#KS!S~xVsnkZ~#9Yh6osg5H+J6ilksyTgs+|Gj_URHBXuT z_HiT z9W7_wsx_a1xG*#{L$KsNPP3XPH|a8K6SbjE9!>p83T0hU=v09Sg13(RL`>C!nu?BV zjlKe(-0c^f08IQm|Aa>5Z2i1F?EO@bn8hFTVT(jm<}rF6Y8c^eg{Huj7-VjwRqIV9 zR1I0uR5(mHgh5-4Or2b*LKX6Ex033|(VV!Vd~l?pKwfEOQpRvG(W`QgN8W(sVI3Tn z_Iy6U(Be(*E9QtkH?w~yUR9(_8JIHPUeK7i?h%B#Uz9IYsJiArU*T*H17*9SP(;(j$z zy^t+>pm}2(2%n@r$7!W!4wNovd7S4`Br0#4AT{AH3s#|AVK&@drH}Zy6SVk16D}P5 zo#l@GqzCZ8s}u7W<8no^G%b66N?ZDSnh-TQ`Dc4+%jB*skZja~wiU*FDmQv7yLa?k zYou=f6BO&p{odyjKnx{rHIYKQh@qoy&yaOHRe|}0b2xVTos{iviJiqbnXb;cpK%-6 z9Z(VllprY9|1w+B890}WT2^D<(XFIXVGXZ$3(WrIO(aAtW5;Xqbl?Zov~u{+28$Kr-XuPX3|J@WRu%5JOIrb5FAa+Y2+vyAUzZ2;bi0 z(cwX;(4gL~Kq5`1{(8n=;q5zV9!(16s|(_EnQaZNCfN_cAK^pqlO?{Lo;>6~U5Hab zZ;R-iYPoq3Ipk%G2^{v6yy5Ikx<5%2mWVUvD7_6&g(M}Uk43;3`NWT|o)Oitw*27- zqqEaJBfAPGcAFyoq)z2K%_e9AeP{?X08Yk1QrN!Kvm*ggF>056ThXM` zK(u#;_>IdH-5YtUC^my=RP^`o3(}D+Ms7cM7~*aRg*zFeq;&8T-S{!aje%S zi^qQ6$Spmnf9+imdZ7CD#j%HwsCJ?E`^yyR04*^n1aF1pRDR7kDcD!G%%J=`L_MVpn31MG_~{DBL`N zIxm+5ClAY&^BwoMb*->ulKo1_TmnHtZzXPq z2G!{5X!^X&M3|T2r%w!+z?Ck{=2E#|OTmm!?eq_Ly$Xb-uvoOH#}y8k_%J6k7Bq^OqJF zk?2B+6zn*qC0izXLlu8WFxzTVnDl{CzuvK0b;dbs1uZcHmpGNK9BSJ>vh?_rPBl7+ z^hr^Q(vcM^*$w(|_@S!JZC>v~LCBIxL@|bv1#bIyv)d%zr@W4J$4zl|Zdi`^7l$Q` zWGYKB@0Tb;YZd1`m2T0@pM1+kJtz^o+o6 zS3mUUbKQU3;vA@s`WXM(0FuDA#tmHhx#tT?Z(e-)+tK5>Q)|g^1Bq5H80X_#(`wMBw?PoW7<3!Av-kWBPx<`eO>B3BS!TrqYx#g?zMbY{xP!xfI zwHVkWFq6V4d7H=!*RZ&$XaFo&A;(01X%#N$J%HPw?u~u!w;>NUSo^J2WBRQ`VU7ZMeeWr zx@-ub3?~tSxA#pl6SD%FT-{%R9Jch`Q@9sw-Hh0`(hoeaE z+yLt>F3)gP0~I>=o9_m<53N;VYOSuj zikk`R-dc_jB1{<4dJjG@4iEu`n`U+m7bUmrO8I#DX?$Wa4d(BU%9vE{eH6eDTzV~ zrZ6NJsF9)VCBFX^g^AP>c|A9&p#Mbs*5XcHW)hWevhO)a)kXw@MeEz_9Zy6k0u)$5 z;Xe6w?AsEEsN4o9YH|93PYRU(b+8xcI{Logg~2%*|Jd7yZ(1GZW9_<^rHH>*5JzrD zRYuBiUCI(Ua(Ds&&W{h*?z&Fu>5&YiLxMAUGMD^+w7q3;n_IUeoY=7)bIfcfW@hG? zNoHnt%*>P+Vw9PgnVH!#+c7gUGt=n2^WJmsoVruzQb{HKQ0dXydoOkO>ZWa! zF$@%iX2YQIVN80p90@8C`3u^4aSZj#sp;v@#iu9S{Y;s=AB)Uh_38on)U;?Ijyq&d zP3`iYqSp#}MWCAhGu@wnx(hUi8=sHJes38lwa~C`(3BCaHUNk-|Oa9CD*02_X4)wjfajPw;6G6*u3Cmdh5jMHb5LA znusAH#PZq2Ve*Q7I9A<&=NDL3i*b6`0<6zLhVnA$0?C&+ya!`$K z^g2U6&#+l}I^-`AkQiPB(cqYY%Y3I{75cTYa@71NbVsc8To&0aDU}}M9AtXKmn}5X z)d|JGha#SXG;Mp#NBhhepWm+oMqFIyzHPIvjJ9_KAY`8NY##1dpL4pcwBn7cUok_# zKL9IaX>m)VuzE2eET5R#-*C!zY{KAb8z3E_tPxs+ORJgu6e)uyN@tuGFV>Yd zC*U*REcSMAM53KTgSb#!O-b7;_eTj*Dhpza!|WG%bh>S4mlsoy2bE~m;WJ6C zk2`6d?!FZJv`U-nl4-xerosWfBHMbYnsa9Ach5FGIp@*X1mg)%sUdb{VgLrVqLInA zc;v)+I>Y0B&a-|Ug8`!Brj12ERi8yy9*as)8=+fJJ4s9p1yYo(yNAA9g z-6g@?noix@ekr0Cd5mH`s5slaU!>tgj~Ce*6CO>+@@p~I!sV0zca@7pmq-;6*YN~p zoVfn73V$fljBe)`t^E8iu^tshjS)074xG51xcSIMyN&;tyxR`?7^BTc#ux+2=Mbwo z>jD;AD^W7h$1Y7q7AfZQM61|hD2YUg@f;#gX%Wcf!+)o}BO=4>%S6Aho%x0*`A|-T z!NA%3k{RgaLILx>VA4OQYK2IOq-&40>1eS2P=fcIEIIoYKjV=Gz#L^M4pCE1YF>EFt$STQvowh_WKA#DLEdCbN;I+MLndEzaTlXlB1 zP}W=B^@O!4#jyD10ckjQI{d%)-AQimq(`V1tr zqIYO>0xq#*PB%8#{_a$0TX5zJjV<92Qd#+^&80uvhb0_qW!4l&xV&*BMgH}_n@k3p z6iT2zqLIzRi%2r;^r?M9nV&VqEbL^D|9a=1H;%}$e2-uQU7xfSRqgDr-tn&x;1^49 zdY*5u?=$r6F3HvQF7ZF_5V8!3zS3QiPRpvO;rovjYnJ#pcN|*KEd~o*F;_YXs0@%2 z5~h2caaZ}OrDx&TY{9C!dt}j+vR>0spib@0O>rmKW1H&`jX$COB>o2pycq{jr<5V+ z@t?T(Qev|QxKL0;t)wuMmKBD1em(&$mHGkCGncps`y7leg@~_WtOHusTSo<4w3GEa zBNaY!XWr{hk+~y@)m-J!=Samto@*SFzdyaLRb>Dh+Z+>;DbkA@KQG!xbyoIAm(6eN zs6_8s<0{PVZn9CeP`c2)g-u7$VLyp|l{>D*L_Z@`@44ZtMqWac)-1Vo3p)E{8kqE6 zc1(x=IBsA{hd59xZM*br0sr=ITW_$?;9?5(VZxk8W0w~G za_||&0V12`eX9uo+0wR(;_3`%(8^wI3M8}fKj#0eNre+&yDU}ILF~PZL4IIF{EZ)D z0<-;4a~3r!N*TAzdJK;1U1MI0Go~J%zhl>~7Ojx%KbXLP_w&Bk)iB~@0~5nG6;Fa-En6?)w~?XLzEssMsZn%(Z>pi#Uk`7Hfx@@57maF=8Taq+*ddZ}cHX zc=vYw6@>mzbNQpM-p4ZL48FMNj?CY`J@z2Y>E7lUITBb3U5_&N*SHQrk2kZK=wGny zo%rk|CKqFCTTV8cAbOR3C@WSNN%S7smW&#L<)k9bSQ>x&jF)n28$Qu1OtB*;`;A@! zsO7ANPjFRiq4CEn!@eEd@jp)%jC9tw^8V+y!DN!su~&%Uf<~>eT%$@N)%9`YH3>s))>&JdklY&!gu6(m^2yJEx5Oq!NHQleZl|5bck>*ew)=I z=YFCM346xkpF0Gn@hx+Ee=&0Rl8b;QrQ$-`k>Q0Osae3uT=hUr`37ekRF`9GDAtE7 z=4|z|(N<+x%|Yd}6PC9vAIEFMi`Y4X3LOPVX{nc8>3dHK2h0;qJ=U zgp5=zpFGRb9$Zy1)7-ae!?R4LX*Ys5uDA56SU6mmzf+1GvCHdMIS!_lJml&w+IC>Cxw z$-udxTJsmj6G}LIF3{7e>0cG^cg_VuzU^_+xSGfpN|UtF5f($_x#Zg1uOS>O7zIj0SJ=S_6ysfZzkl!6|>k~15+#KYIE|5qV62vf1GfATv?mM>59B*KZ&nd8>i=+KGZ}-v*5tQ=J{EH3n=Xg9;+1q zH@5%2O{9Z447BaTb!_f$$v(&6Nh~4kc@D(<93>b`{HF{t(W2tKV&(YIl4TKX*$JO0 za{s8yZBE5&7FC<&(VWKD!EnwVsQnCDPM45A>98NJj=cU9>ECspotKsZYJ6;&;q+Tt zlARmN{#dVdeIxk!tCPcqq~4q-Woajm$BKGvApE~l27w~K)EWFFW^&cV2!-d;De9$V;x zoU93VwzdPFCoUDbTm$PYCAGE>&!g?pXrxn_2CqI?{2H~1js`(V3a5-jz8x_?oK^TW z`64$z?#;Yf;3f7%);j#8c;ef}X<0~_Ku)7LI{G#jZV{N-+Z)ut#GmnL2xDSOZUVvk z#oDl(dfNJ-HTa}%^vMtWkY^PDtD$&Hfb6DsXHsuEoZV; zE7rwppQu#?gWR$y|6;CW(iUga=9lOgsNw-trpv_UQT2w%+Do}eD{89y;Q4+>w?!hE zv=<(weOp5{b>iPb;|xn47*h__Mcud6U|Av1%rVlEWF8rRCqZ1;xKJ^17sg2gCrje&=_-Bv;R1^DF@5i-Im5ATU9U%n+#kc2+j?18_ zmU zkGtiwO)73k3;W|1H{CJ;Bt$gvNPwr_Dg$zHb8O3uk{@D^a-~H^&oGNC2{A|rlV9^coT!bIodrXj*o;66KKS?Zb@m&5%(gATslxuhO0K|iX zCy4o&QDZY<(ZCVE57d~DuBa({6N><T5fEA)Pe2u0HHscvZF?rAq)}L_ zI1X^5$IB+1!C;FV*Ro`n|nT+IP;)lR8FAI_4S!(&>A)PYKd?BV3Mk<`XRY32T zJ3JjdEjNL$xzbKO^$M7ev~cm7P+}wnFQyQCfDXgc06lD$Vv1iR)O7V&8nGRkO*Gd6a<`o++#AF+doLCYo?G;963Z_!8+2whoVQslgdjX z`?V z(C(KZ4-f_8t1#AX6doV0$?5W<6QK;YHUB(F+*yTjS5AXYgxOyYyBFislI43Le4p7l z?-sfog3$Wd-81)GL;*?vXWn?<>HjrvyylOxmm!2z9d8bE;%2Gu5A&<5jJ5`yrOuR^ zww#v8)`xr~=}#7&R4H?Rux@2m{Vb+o#|`qlB`FsbB(NMYp`Qy?pMJ=X`TN)(ywESJ z7=Qa!X5dW*DcM)w<}&MWTPJKPrv`M-rDOO7_qA%#YV<zV#7effCR+O1 znr{6ZM_AsUI9OlvzWVI!KwBs`usL1B0&KUEFVxxVx=cDjYWzrhJXIV&x)&ndG~Ytd zjVu4$F2>VZ9RzhfLn`CCO{z$m7Y&ZPv6ua7^D`|9h zbwtC3^xONXCovu3Q%A@#2sV5bL$m60+jpuv?q#Grq#nBEf-ys zXHUTmNwF^2Mo?FD6QbRjuABFk8tUJiD8O${@o2eka#nCWB-7UY1{eswEt0{&g8hpd zCQCOyzWkwx$oxBw2Y=Baj>n|rBD57wX9mXwzfJ5)7$-Lh-9G6wsM3x?BZ&T$P%ZMr z*fx%)-d`%4-i{xt;$A^&i;lkkD2gfC;orQlM{^GwfR=c=JvFVBK4s=_T|^tL2x6h3 z!PZsUgvJI}$c1(KB_kx)Hd1THscd8>2aCS*A8^(*{?>FBoL6W--khOc2}Hf-t>NRZ z?{!zqzE>qP7zcbM6k1}g`InfsD>^SfR|7xi7j8 z?gUMv?-JZEDCfpiuP-?&H)m-G;?rTeD?7&y)ZkIxl|3g-Bs?*_U!XBmq5oLF5QEg3 zhAN2O2MUF2qGlSD54qzH(+P-5O$w+~VmtitVOM?qgniSElzzjqSc>yP>Sl{49&r|v z`r)eXZJnu%cI*TL#P0#Y#qYf34n0w41q`J>Y5jW+7w^R7Y{>#aSCCr+KoyA!k&I3qb0%AU_|^3-kh1_;D;3sHjm6ANXivBZp)wSh*(ny99B zPcBblB__=##e4w8(!-DMRBxIRVmi!fcjx3;YU_r24S#P}@=kvN9vf8W;<5Wi(4R~W z5n14ByOt;KgCkmGUY~9=;X6*J5Psh@vu3=w~;`bFx zg}+>xG>t_7COOUNk(f{d?92&nE zCfnufcgedx>j@<3eKQ>qXP&|>r$Waq0kfEuhM%*HE|=%64&bPXWy=&;K-;(u&&PJ-zMU(xym-D2CNw- zs(3^Std)k4n|XZS6&`BpJ_Ey-ZZEj79@0`O=0cSp(_tNk9Vfxe1exL1+0ZSmrehSm ztD-{LO0jw;q<71Fc6h;t9{dEz&68%`_Zo}7xA59$O#G}3%m#gjyC1jJUz=J@YmWUj z$M&;;59Y!YfK_8_BKk|zCN zx3$OQJDY%&=%rhLNZgPgc*$(Ssh5V=v5({xYSKH=5r`_(j_D6^YXH(9kf=%M9225b zE33)j-xw{pXrw7)WK8NKe&IqAPFU9JGJ*$h6j*PQ?Tk@gSIHO;gF77pR65@zCdgYK zo+?ee)W>Q>VzMh({RmRm$u8cK0Yc1;?jeveVqkE~&z3i#*8E2@vC1S1S(;IQj*fO? zg~T@I>EVWHU|e)peJ#a8b1!tH?yNoaI9g@SJ}3haKx#3`Un3lUBXL)@GPuc!^GJoY zUKi%6?o5s*O_j;;{~x!>e|JT|(qJ;@H=}Or7vI+Hj>kr#OCLMIad88hM-~qEotA^c zq837QNd~}JVY;K`KI5^P^a{ucG=Lz_%-L=XM}wNe{L;D^7jIi-GEOwQx;L>vuPfU6 zi2BwX?ld)vaVYQxnXV?Z$Yq+7@1ZHRxK&w4q(ZeN-ER+_U1zO z1t0{yzxWq-E;62t%*CmG8y=7ri&*N}S&vZiIWQY7I{c098I2d!YpD zGH%=|(pP#**q)osAris5jA3!fnDZ0;qj0pi!&{VC>Seq0a|{`+DmbEdgPF!ya1}vl zWJ-WJC;w?BFQdkAh6U4$R5)hpoF;6pN64n5pNVD~?^$d?tb5#VT`;#NeQbQl z?N;599xT+B)7Zs|!5kV_wcT)@D!7$c7UGilZ0fc0OcxRC{=+eSY`J8yx2jF*d6SwD z8V&kwx?z#*z()%l$w@{%+kQ@ATqU*wUz5i#;0Z1CAp{yNPyCZpdpn0hq0)>U_f@J+K_BU;}sHdDJ~;V3>RCCA@}i97^}u&Z3AR33)S0C z3BMCqmHh^8{or~aD($O= zpEfdmQ68Zz%{llsvY4+S$=y?6bmoNf!mT3BvvHu1uDcG{rns!S5E{feG?r-K`CrDs&*Zj%Zfdks*<@G zX!+}24eqcI$xdc9N>|69^7x0`A$8?+X)|5nea1${U?eZ;cq(gNku!pPs$H}(#2E7- zZSkVHA_kE+OVW%K3I`3bBtb z>}P?faxVR%l3NEi2CPUG!n?y5_BF1emZyFu8(0D8>~49~qKWsd3hY);(sDS0Ax1VZ z0xhG9BR3sDs_iXF|4b4_@^pi@B0}YRs>pQ9uif6JcB~rTXm%W5c%Q3z`S*j_bv6_C zbRWF&{pigwG_v&+Ce1kUrb9bIa8N9%(%AlOa^guZ_%E{NQ> z^y2qr_SWLax6uE(hPZBIAcBcK!Bi}b_twY*BoV0V?lh!pnTQl&7p=7()%v9JIjc;L z&B6(%cW)Uv6LV*QQC1{Hsb2Czsq~sUxjJp3<+q-1#_&NkOH#wpr|1?6-*-s_rU8v+ z8h>sb+)eAtLCBOPV9Tl}OPP|1cBY-Rf>ZQ~x;KRNbOS5(?L%UC^?*h@Ns2@Hb!H~R zBcZ+IT@xpN_5v1b=bz&-n-mV8RrB$)r?AD^J?6Ll=Fw&Qcv2kjw%6gtEgiAGaZv&l zPVh{_BD}>!mT7plAbQeX%Bv14A;H&f1Zy4A`}>+bKSze`{YlAxc{-K>f$a+u!ip(B zIN&DUmC>yDdFMiN!aBmfb?3x<8d;}lK zyE&JY-`RHYpCeYjDX9*I@{DvldQd~deATqWU;#Lp#WPrGlC5qdrE30?}-M%Co<_!glVqn)xgBNk-RjKRffSjx|c7R<1>hE z$ARB%wbNQ{dsB-Lu!Bh458hxyENetG;zMB0r%kAf(9Z@f;O;pol}2R5rQ>6+GebLp zniWL|Gh^;;Q{V@|Ui#P+gs;+*ReA|UIn0JSE2%dzUp^KZ8uGs42~&_x+pd16*Z#cy zRFJLgbkyZ1ygps@`81v_zC=;MIW>6Xa1j|iK*Q{VFK*!j8n#Z=xM?6tMiFn?Sc!!i zppSMlM>(~LFuTZODYER8)k>A0I|qn;lu_fTJxjo78N=hugJit82U+K_TZ>PpafpDb zidh-X<;*8eBGt|@`gYMyRZ$z6a;DAFN(AC#6DRDQ*XNrU@OpxsVehBiX<0)ur0-De zUC34|yaA>Bt;H;k6q_h8$*5J4ksX?HX%IL;psBahQ@6;~@mZSv2Tw8QJ4D~iW)25> zl_!?6_46JI%R2}9lP@eK1bf>PYN+KE!{Vj;OuSubEqd15iVyaxNEafVX1u~!TGx-i zu0?eC`cf3iFC5(-{;-1vV!t+TX*?Y!XGeAd%2Z5R5PcITiJXZUsp8nOnF7Nt_D@Q~ zkF7KuF`w0z71sgjaw;mYG~%9wK;c!2LOYjjc6!hHf@>O=NGwGqd>9UVV#S)Tw+qzd zZ_J4}BX{=fZ->zUvR%T<7B?h@XaA5`U$dhZzzLjmpZwsXs8*%WQ$PI5rA2p^fj>4| z6Mw>fL(QetnZ5PS(=Y#(s~-}TZ+wS@CutKy65qD>2xgqu_4|Sw4^{8TE%(oNY~p3x z1RN-P@yt2v55FWL>bGGIFHPqd{lo%D!Wz7E{kp;9O6E%-cyto{(tt{7UYutDEUyn? zaa_+edtc`?tm~P>Rg9gEQjh?&1<`ZIwTIN>Fxhk04mjoBfb$nL-BG-|OEE)}%Q*a~ zfwYa72+ubxVz*@?!{g>M>aOXiB|o3vgF}i=N4WN;{po%FLkk58Dgg(+SgrN~5uo~` z`ub0KxZ=%;`S{R8<02CycGMHU3;P9YUqC@VA!V%x)qcJ{9orzU$Z?mdRx&cZt81qo z77vLzkB-XQKgo#YbbXFVuBEt8Se0pz%N$t?IN{+1%L}E2tP|E9g*Gwv-l*xwARV@MyiQiq6`oD5VLT7@=ilS94TKf z8?+6Ml{?GyuQP6%aY>vuBl35!(C2_QKS?5CPF)h3nHl&K&R;ju${@&pSD<{9#$fqO zdN2G(sLEMhi|}K!&6xn(!OB!@aUp$F-l#Dx@?0%C}gLCU;VX`8s$(qR$c&fofj4h6_u@sC9zApwr~IrKMB0y~HrxV+-X<&3%mS0I=A-iYt2=|;jJU34zg=Hj zB7LbSM!#Xm$Bgk=UbL8<`Q{g$SWaXga5_m*!C{Ouu5Ld(rHec^n#hx-nsM4=H=(s8 zpB~O0E;r*RJkoaAz5egO?(2cIiv1WXNb~yyywGyU23$T^HQ6fjR|`e9*Ml81-3>1z zl=)JJN{LlC_C;HgQ^=yj&dl9J;z>0cn4j)~BrP-dEuDJtJ6=;K+8LqwbrPs?w+{VI zs>1njb44Fu&K;VpIwh<^{UW6Tr7|ZV0#L~oXN>>c?@9)@_r2AZKAQjjZM$y!^V;85 z|4hP7rf<8_MnKb@tUZX;Gmhje`4mr33rD zd=uy^8yKD_<r4SUvQRhN1l4GpDNk>wb({b@lSO4nqKi!M8%-vzf<--? z^3k(O<}5Wv=wyK8(AP5?+}~B}2Tw~q&xPDNIcOEYn!!q{YN>LFT$E|FC7e`_$IyB- zAA`}nj874D*}9c-509;9%Hv85lmC}oK-ctKro=*EtMN+M{(WZTj%;5RhrP*@6Vm*N zh};OLlZl_XRx9fqs{UaQ4V|UE$1qAyZt9lK87u}C8@t;B@4-t~hpA(VPG&#og2(CN zTI_Y^aaS_b9drxv)xg|5BCTkIOP6%CoHlf>(U0_(6xcW^j+9jNyK2{HD@wZ-5&iH~ zz*YezCAD=hEc_f|aI#DeO6&RL&8Ez% zOd)w$-&??r%HVV-z+DXYkU2PlQebmKUyRCL57ja>y0Ye(+XsGm(t|>jc*#hX+OSk`O(GcW7dt6vaS~B&) z1Bx#@B{XKV0eR^{_U6MLKvRN*0lo)RpJgv=)sr)RT*ver1@QH-W8YOFpQ-9v??8;; zW3O7-{8SBCD{R(LKq~-^O+(T|lFKaLKz)xSWRud~#3IvBnw!RfiL_ndEvJgS&LRzS`s|wk8am28lV7ZYX!}CDzO_6sPa=Z!$ah;#HzX{iet8z zw76fOIr4Q)t@kA3@5x!F2Z%W~7h(FGjZx9lG47UA&#a@T0fM>T{XhDnkV-RnX`?kc z(Lwbuqrl2fRX9+A2=#2mNlD9wJ-0JFB53THl=qR*{(8&VxN`mi_1~gQOB1%_K`y#5WsyNtli33C3=Ogvbd2J`xahd&$81VX za$^nsa>-r3TmKYPO;`kDn4G_~nXMBsjtP&pr@cC9zr(`v8D_m1E|spOni8lZV_O9< zaBs}KBn;nRA`MAN*pl;hjAPDLcbC>vlR2|kdhZ@to*G??pYmYbxDuudw=c{WlR>)d zMbq?-8*Zci{&O|->6$}U8BGD6<;y5#AM4jG>uQ&Wo1mgu&;G=;5sGT~kfHL** zjODV5VA?Q zkYb-f15rm$x-mh^ji)wWO>DbD#S9X4U`y8{ROSDfR%)lj?bNqWPdB>l@fHCa@G|TX z^Ca5r$Gp;fidXV)p#`QS?k|B%PTKJ06noh2=+^|B#FbJWP4x<9GZ4)&zVw0w*zLH< zlLJaUHR>L@2@#Js>1=|flHg!ql1rBpt_C8)`bf#__fN$3Y(n$2W1$~{Uz+41|x(i}8y3s|O zmZ@M$>BEk71DvER7@Z?3D5KM4QDO=ThThazXJBQ0&&L(XaO=pNXwx^nA6?{fEO_C{ z=T6?7r~48c+gW>afv7l*##QUXCywajbj2o&dYh|=u$1G-)A^zNJ9K-&#R~l&zK6H$ zNTY$3$cGExY-IlR#Ah!ugR|vi!H8-PZ%%vH=@5a&WQ-uVAJcpvXeLX~J_6!!Pj1Oy z3e;kVX_|^ycI7n0ZS&u@C%kcCRZLubbie1mY_YG8Q6t&pQQk>va**+tU_-HZ|v^$jRK*A0*8sYrkD{D ztD2T9eGE_5mmb_?jCghbW!>x%K5A`$X)zw=?_I4V@!pi9EtHsjA;4|o2yYt7)< zNwzaBLhSR7i_~YD&0?RYQTgk}LCs(Lwmiz|5l5S^ji@r(sD#%#8$u?9$zxc3u51O= zW==B*3SY{wPU1Ad9t;17KI4AIMs7xDwA*$_JHnCeGA-M7tIBY+`p%I~va0uvr6E0k zF@00MQ$%1sDB#M{dc~g0VrGUKAyuA04VCc`(WXg^ zIJ`@1{o1FQHVyYU7fqnk7!q%tjxNXht(l#h${my~dM*VD^)f92JgArrVIzJWa-+O{h?IJc zOwX5vz^6js#n4mk$0X^h6wK98kN&icb{6vm3jnq}iyg8D=ItKLG=xjO{PY&+3~o&h z_(l`6P7X9wh$Rac{qZKE>HJwJr0()$G2!R>&ky*SQg~v?JmRV~7n(|IILDCywzV5X8iZn#rXJ~VH zEx?JeY+ zO_dBVlFKCvBCBm54Wb(mxqkg|rs9NLmdHrd63~~=$NAJiB+OzOTUEy}8=ZTkKPb5& zGf35wvn4T1`@x9DqSYM*dnUzH)*_F&qqMy#P{WhX&D}w5CC;P5TB~pPgPW1c95SVAC-hWqWUco*R7C-LR!y<=br$`N)!EMyh@pf5yJt>; z%FsTO3(6-pWwr02e_wAQ0QhRkg;7UU3MaBOBz$`EQmpu0bM{<`y=G2C^xB-_s+FWF z%^n9JuQhv4bz4W~mXH8pvT=6hk(_MXc%8KUwvIhgEeXlszlHFnT_14127Piq7WbuK z$y-r291p5?jf5H}@vbhF=qkuDM&v-UBH;u8pRysT_xl|5PgNr*@EGI1j19@Phk>@a z)(%%ckO&HeROk0Yc9ZXD6T6<0icBXldDCE8QCoH{EqqZei!6|xc$2xSBYjuJPHnW& zueD$m#!ZdK2`~LTwDR%(_pN;mY9hhk0%~9G%f0(L39%#%O(P?^k8=xkgk3in)^@(l zcxdYn(Pu#g8%h{sQp01vso3wpK?_7{Iqp|HzW5I83enXEX*AF6PO>(9T`Hw6GT74z zE%%Y-e9qc@=6d~$pOV9+Jr~@@0zc|pFMd(9iscXSr)jk7E@s)*0#*HZ?_Fn$N=b`w zKIL9mR!>A#j+KO8AKRmZZwW{2SvKYoNM?OEUJET7Wg{TfB! zjWv0DAk(p8Pta)Y$;F%f6GP8y=pIk*ORR~Xc;yhS_62vx{yU&H(dJs?K~aoTBCB(F zWxwUJc3p~o^fVY&{tGkY`ed<}_Z!TS@)gCNnDxds@_zNEA$g4?9k*;s|GjN}cZ4w} z@@M1Nb@Ub43d8mK)+CrQ{ljGsOrHz*AVbul%GFc`AF8#jkN=?scuk2Wv=HnaBXD$o zzphV{n#-vHhmMzVy%c&9#6f|P#~&YW`H#Q9ocp5sutZx0oq5%`(KB$g^t5GHGT+;= zYh<@yyo_VN7vnv8hog9!wolyb7D}=wZR|WlWWF={@29_qMq$Sge-2{)eYuY?7Y|SBji+POB6?EvXx! z<0uJ{!%0Yv^%iKDca#4iOE-MY_;hrSFFCM;Q3f(ORm&8SDf>9TM&Ga5NL4gDh!M73 zy)tO+pWFY6;IKbPosh?#+qese&;yY3;o+yc8ra?cUckEqF0P;{4HD9xu=` z-LYNosrLFnSJ-$)T3Z&wlr2>ipAOfCsDYvvwsUu6cW>Xy!x>UlE{j4FfiDN*2+HZzOa()`(dx=vG2As zgVECXLVx_AQW?R%-(Hs$c{!umQ*>CL4iD%z72idb`^C&$eqIzc*Op@8Nzb3WzF6bA zxa`W#q0xKjt#rbk-%%n6CO*g6M)98M1bE{{ui8Wq>2YLEqOpv%^`N{uehUZgA#-jU z0?n}%TP&vg{dy}-4}S#jNf&Qs@kV?SRpxKUJKTGtI-@uNNp$L(N_x%N46h7fYWC+Hivp1JkYe^qkgkV_+BYfX=Pps6TiQZ1&cL@06B-%-E}OD)$JE@NmkOM;Dw zSlmB4#se8vEeM}`YABua2RP>f@QG>b?6}^%eNTvBB?j|OHM_-h1PTB)A>|Np5d`k8 zX?V}<(6NX=A@;M@>gv_}BuOA%#|E!YhQ4yJQQ{xY)KjGteKvH0!qt*W$uFpWc4SlQyEA+3eeQRLf@om_ zc=r-Dg|k1uhhuYtXEpS8@@>x0)81n9VbK13Tsk)U3}Edqb+iS^Bz47cKu@jl{sxx% zH|y$-7PslBZPkWq0?n6;?6j%!>#;s&NLA>C&>e+SO=cO{wy-*O=SL7=lCk&1R9XB9 zelkVHUfk4F3!KaT2C$C*n!I^-7R=9;%nC^vhx#-sVrXNQ!&cLm{|mA}g=;P0Z#|rR z{$Fic&P_&NTOtRGl^uhsI(FB1BCNDPb`X`kR8}78(qNbfZrb6#L4*kRR|6B<0Z2!W z!x*k+7pjqlK-73eL0KzW4`e=%aC43gE*a1{8R>HD^)mC}^*R=|VP|-^R_|antf`r% zxT#ZhTPBsHi6q^A3uht@7E4q@oFDr>b0*T!#7R!QgAFy3E;AI_C!;tiD9X5dm}XUK z^g(Vu53a-=p2Z&|KE@K~Cijr|kLE6%F0@&BO%dP-y>ujRs_#VGvMdV^x7z%v9Qfyr zbU!$*AUhtNumNFE>ES1*)$t4{iAA~jo;Zc=-x3$#_c_rp2GX_pmckJb?i>QOIERww zo9$>K<5E)}o^IM%ozV|SeIB3i$DjfFRcc(bvWiCgTcJ9Wne3``?j1S^>ltlQhVx6< z6y&jbjbz@M^WEAIG6X-?+A+*J;mMe@S!`};h{O|SFx5-0heqd=c#*6J$BE$`%V>wC zm3n4ou!S}Gp^_lMcI(B|SY0usQF+gviKMWL`dvRE67OE!zawoPJdvG5rCpe>C$E(s z1!w(j7%YSc?%Gtyp1%r|Gw#)wrzWqB-dt)nV8<-9>C@Q*KulAW;9(C3=+?EvemvOi z2kSLva7gKwOA`)1A$X3|I`<4+vGbZ!SF>?5{(<>7ayQNUp1Xd!vT9h8;%P0X@|y)O zsWk00CdacrWLqwU~@$2FS$CD#F@Gan` z2-wDPg5yWPlILFPBv+5P|$@0pY+2RZI#|t)bG;F@Zt&2_fqj z5XBX#d?Rr|%D8_n^K$xyNWHMLC6(*B9Q)pa$AZr^6&z~>Z@~tVNJ>fOUt*oq7mS3v z-9}=qEDQAX4$)CFqWZC=%Nh~;E63r}uCHoyJ+C2GW8R1L zIERdmJ8Aa#-mdKJN6RcGkQF@C{Xcgx3*yTLRTUY$t>p{2_tT|M151cirMr^3cSgws zX{uMpjb$VpH2yc?2vg^4-}Y`?_QLV{EQ5HHAGcHUC*;i}woVp}S6Y#Y2WKHnTv)|r z$sBCmh-8+TtAc)=I;uJ}n(1kl2p&$RcBt|^I+)Xbf8|l)T_Zidl8^(F)Ne6j7I(QU zGa9$pV}JbEMqe&TC2<84zu&yEl_3GjjorQjo|#DOR-V{u@A{)D{J%Y8cKeoX3WB4g zD~;1pQf0?28^)%g>8HZq1p@hgy>iQQ95Qy6a}Ew2 ze2P(2lx%WOCP`Igc2(gtcVKTsbEvjF0Hy+Q1IdBMmt66N0ddkD+Ska=TMOkCtgzU27`N6sZ|qV*@`*PT#i zjYfJ$E>VBl;;OppE_L%z_hNtjzxC^%p2r%r zJ&d`4%I`gIXqJp*ZY}$iNlEi@kC%WyW{pTKBV@9IEOAJtX#PI|PVfI0fYZ-5DFV9f z1f_+Cu$X&+GvM(cKDz37o!1+NDZkpUhr+4&ZnWp>mshMGb#r0awTUdPlYl$#+iyw~ zm|v;r%-N0k;h`7#r-o%zcz!aWS;2DQgQ^7>s_4`rqnqjIb;sQ8s~BA1U^|fj&27E} zo!Zs?J)=kyPq&P%8pWAvADO8J=Bqh5aoTnLRcWdnY)GY!F~i;KA;(SG)pv=E2CjPZ z_I@S%!}Cud=6gCG_pBRlj%A@hoh;R+KYB7x7L^t46LcMP_;6Ag#~6{o^5yjv1oD*A z(R8eP(4XSG`uUwcvtPb8K!jVRnNNCt=1WbAUoezojt*Y${0&*HaUg?lK4*FuoFrn}YkFWcrW$$zi7PuT@AAH?Ax<@&Kys{21*(ERy!eoq;<8ZnimRP zT1i0Y-8AOac-_R|{xcL;3`D*;A2{+U2zVZ{c!%JZ<0=(KxYZMUC-@(ny>oPAVY}_y-BHK3 zZC1?gj&0kvosMn0<8*8%9ox2TJ9VnRy+52i?j7gc`+tp9qiU`9ectuV`OIILfvT7` zoxQ$fXml8bZe!m_p@8)2L!XFtKwkP}xW8bg#w);;;ON*Y(7LRp-csZAdVtysV-J6K zESa!b@m1Ty$wIrQ8A5}lM_^|O;_B#;Jj#mjEs)q7m$K3JPr)w9+X<$x$5aAlTejqO zh?w-GkP451BG4TN%4twzE~faKtj(DRNiSkTd>q6H_fiXDUYIY>81Q1R??lUt6c(bjSC(7>QXOVv9k{waQ!D*7}FaHNM8RLt1R@ z5q=UG8*=7*hFWp&%=C7t*`jPj842=FIJJflGCT^;MO)Y>S^mEg*steM#cAaVZ#A2KI`xkhjxJFVMf8Qno@t7w1lU zq1*|%lDzrm#q8XC0OQU$gOlIinG#T&y-%Pf2x|svFTc@|^DQIaLU-B3xTbK;u}>23 zpT%Sf7=^2E{!*j;cXhngBWYR6$j0>*QUwk zNQPy&$zitn2V2;NGbM&@e@q>dyWs%?%t58D=Z5pA@@vfTfd*`CZ|F*wA5$Uf_YZhs z{8EMeMMQgGiH^g7OizF;NZg>wI#H9ivn1dCRaWET5z$H!UqYBfbP5>maP&Xj)@;tI z@QuX0h2hmT?+N34f?B?)LS1ShR(Sc&06Dpzw~Y6;E_C|71LwM6|KbMja{eKB%YCr7 zsU`lj4N>wsp8L~Scw!9?MRtssCLf-EvLian{Bv50@BUdFP@mfl=YBkA{DnAM9#lL7 zyF@Mjly{4HtvK~hj3A(%7O`GgM3c~FYk}!Ci+kPCTY2jY%nw5wI&x%ccK8`i=(4QUDsYYnK?}92i2rei_j$G^v=4{35>;4voxizoT48U-oNXfQRn64Y zJ5~dLKUtNJjg!0YJ%HY4FXnt}LU0Mppu5&qMykvBO@$UFzE+%}0$OWhwh$ry*qH0(9k$L53B1m`1kKz&Y zC;4jIm8_P!tf$i?5XDy^-s#}~M#)rj2h_z;sDjM5$CfaBgiKB6HaKO&acwK>8|YK9 zil^hk43aiYug4YEhN6@j)3&o%!PeyZnVH#RUXtDaLagx*%!F@@I4aH)2lb1fNDk_7 zR7pgM)}Ub-_>FCR+^%1Pca8j+vdxm3aa>|@u+}QHpaWVO2E$wjd(KuU!042&#^&nF z_=;1v#9Ha^9CqBSM2Vf6$>w;h5S8sf?OtM5n~R9jC)N44~Ik&B}g)j)c?J zKx#Qoh%KTj$_EkN1smr$hY1wlwoh#XQT+kV|NRGBkWtz{$}l9`xQ4FW1MG)gjZXhvXCF1qA(e}S`-k@1V5q~By$oej%$KsQ>~wEAAE7;J9^@7y@o8X+a{ zW5y{CNsadA{lb0pY!q)?;#_jzy2tQ1N%8%Vh~|8T1Ja6HlMG`b#_KN!2fGB7@<-h7 z=Df81eO^zJeM1#-KSXO~g46@1!RxKVaAMii&1$|`ms373oo2Q!fOn+~p)iiJbr)tJahuxeD1p{E9a%>O(@emi^6F7I~}0WamRZ%V`J_`&Oja z-m&)kmox9+ZM=7MXnX9r$6Dn3-BPOe=aUagG?molmOPFQ4vhS}76`%9F>j=^0c6263cK`sBk5m7Wm0Y<@L&fZq1_qpnF zzEV4lcC^wlMpi-TR;&;(R+?TygPo-Iaz?+XKQ)+d`z47C9Egcvys;&e1&*vC6jH!e zU>W8@#xgZl2GkPaM^VLe4IPsOp8q%oWNH-NNir2!k)K2pN`IK>i6tA$E$i8=B0}?e5qpNQT=(%f@C$T6&5%9sexW)Q%*B5J~oNW4)$$v|w@-c30v7RS_AClE|cz z$Z?ycH`;f zaRb-|aD_XV>o0+}I9yayd#1$Ln!kSAjfq1>%Bgc2Dwm;O;Oq1Tk!nSVyPKSb{1+<6 zH)8vt>P(j}=E>hc_CbOTrXCB<@Av10Wa@%qqc^rAgYT@a0PE_SCgC4Hj5m>P{Vk1* zHrrN5%xW)kIqEQXVU>8mS{74KeYoMq-bD z6bB1I->KvUvOm#7q}dypnhLm0QawIP{0tHVE2uYPxqIZ#r34(~)M}H`36pIx#)B<9 z92ij!+5zQ;hu1n1eg@^Q3ev|&P$P~rPn5eSz+R^t&?-}*=`o?rrTgKzrC^DjolGw zk^5(9?wdy+3xkkId_szh%$o^=PJ2+Hs3>TADP5h}3A#L<^JT|>oh&j0s9J;<3czRJuyuRESHBw`nFwm-jtpkK3&W73;K&z(KUpEYM9B0asGHou)d zz4t?rO!+jX&}e@>15xWZJ1h-NakHkLIN=inb_+W%7G}(+E2Z#YcdtUitv(Rz`O{J! zx#Xk)?LL1bNmZclJ>Mg3_h|ideg8&KK97MI=TjxyfZbP(c)3z|2}*@$d1S z!mbZGY?OK3@(d$R#(fnaWwIvgh`Qc6$ef4@FjSJuesb3=!wzE(w7 zW09i%;WTzav$N2^8j%1fX(}bzp0AAhe*KhpskE~GMh+zQOD4>hq!S*au`^M|CS>=GB3B_4MgwdIp56}P`$N*owXPat{pad zu<}K{G#HO1H;lmX`aFaDV9&wtqSM*?pSO#l~20g!&NV zXuQkkZx8!mv_)9W0j zAsjEn$O`G#uZdxt0x?^P&s1Yt_Ev8M;~8N$Zn4Z3bvu}Dd=^Px?vhhe(=m0*<`z;* zBD{rIM1P_rh2dL}LSQi<*IdKe9AJ1_@V(JM`}Me^tY@G4ujn(;^I(T^w#CK*(y){e zmgWd$zJ1dSr=(Yk>3O+^Lf!@}`;uX*8^=h$%Y)b7pw~gFun8JH-wUn@{7#ZTM+UEF zv%5Z{L%`?AZG`<(HmYWU$wrBKpP$D{1}VEW7PT{*K4Bn>mU|)gC&E^tY|WQSY3o^H z9`CY}H0-OkgqRU`YODO9FO0MnUG`Ab3s7pC=_~NzS&J7C5g^)7V*O?|WsJvgfZh?m zB*$S#v!YnmT>Hr9&>#_Movu(d>-lI}>WT5U5b)8*Bby{IEU8KQv9VV`F?kE)uIXM3 z^l|tUy#AtoQtDNw#7;9Xw2kQ{#blKhC-i;Uv&theoaRz}@I203^YANEIZtIOqIbR| z)bu=Q_L%7muY+d6PI;)lPKO0+J*XotSfcPofl{^E_E$6=Xo}RI?nT8w_ZFb{;>gIS zJ7Qt~>Y6ZO!}vYzHEFmRS+Y}=Ql#D<)Uc(~nC^asE34cPnVo?#WYt>jNRG0C=&KC-{cV6o%sj+5=dg@{@0SF%HTO)tsAzif!{=cH(Jn;0 zJ6b;Y;d<(**0G}LgrQtH5JZz5Pc$QVH`_(zBS+p~^FY)i`5w9M&HM)8T$R|VJr@Hb zr&xRoLvv?TW;bX#Mbj>^q5^WWkhWE_Ud|>R#H37{hQi!J8k)`KW;!;NgBE&E!@HE0 zq<4$g!%2u4mE2!>n9eOKH`&^3rJmVkAsSR#nC?F~x>s(x5d8Ak12%CaIzk21&?_Oh z()!=|u-cD^Ub#+Y)(c=7 z0V{|@z+Jo_P<*1= zOAa@_0K0Q)_&&NnEQ1Ta_83H6AJ5gQRUgYc=%DEHa9q7}+@^6^5(|{WlCpQ*O{R!s zxP>>oI+z2RNo^1jiE{rT`?j-JQ%4sDdO3?1t94QSeBpbYs(HvKq_Oo38(FIgv>yHZ zW|@om81PgZ-LAzqP(&g8o;=Tb#2Lsj=u%kYJPdS*yER;{b&PTXBRX`j=>MXU-P(QaESbi3>gfX`)2-Ls+ZnWZtEq-?)4{qB z}}Fx0~&|ZTp3>)GBscGm3k7!>-m8Ug~%O`hk>yLtL}v;1W|I6ahP8_DX9a zngY3~)=8o^R(hga{8&26-91Oz^TxOKS-~Zwc(om&#lkqpsyf47_wt-m!Q6z}z=Jgu zlg5QYM59vKgQH}_J_!n=EUm%JmI(Fc7ocxem6}*cvhgMHQlPLfsctbf8G#ARpO^WSh!Dwv>L~7Avll zo)!{D%BS7By4e&zy1@Wm>;xjCEYMSe<{WOVmb@9O4Fyw}8FvhcfA&OAXlv%iL=v?o zPJ>vx$l+%hfdo-R@`llxdYZiBgzxa56u7!E3^9GPFZZOi9m!#4S6Hphq(ux^p3(7R zHGNYQGagY6mm@w)(-ByneLBAf1X85$%(rkDQb_5I;DVXk67&wtcWW&scXiNUu`txR zud7G$-2bX`6xNV4Z^5t4TIcG7^Q`mI}e@6Z`flv|yRvFh#)HGTb0Jh~Kg?|}qG zau2K~h%+KOWHVb*0*H=eGoPVpJ=>t5Am+&(9nKY!tzpS&3jH#d)b0p8?yzQU{y3&a zZc2(ZQXV!L&m49!GWGdj2Q&r88KRC&)JKmU8Mq55#*f5nOgP&!02oY&=&2#BCye>= z=W>>XE%(=y@Y?sFL=U@Mc@tses4iuROO>c%ojvXx7=~SIr$yd|VmC%Fpp0&2&+N|B z+LQ&K3i?rwQn}&t`8wT9n9*p(qlNW)HV&ObP8$ZMJHbv zXFddL88BwDtHxaY<5m(A7|#|a}%ESPaRotS$}rx z7%TIn-SrvWoHiE7o^l7Rul}d1ii%-ua~Y}m-i0a3ZX|SjI1;dSk3V$O7>$nmXChXl zuaIYNLwehHGjKyQOeO#D#2*3=5v#8&+p*|wR_ec0SD)!;GJPu(g@Hp!i63zA|ALCi zDS`spl!y6;WN9PatxrvgH~`-5>dbKBRyx(m%@n&>$EqWiotfR0t{&GSJ)AxnO_9-+ z6hdChQMq}pUJ2}zv!h4ajqev@&tr#AE1Tf5r#efW%|UGJ`ee=?5tS-QZFvaywt;)9t;mloW5fZgxt47YKsuaN#l58>`zf2nbP?J#C#T{m+;;> zu6#VzmOHw2OVl7Sw8;fa)PEB7=p<$rEDjEgJ1a0wp*QKgY$#5aihrd+W8r|{Oy4x8;B!vIzw4cn@38@hnZ9;9Hb%oZ-I_2 z<48gE|5ZjcD8o0xZ&AlCFg1$xc|>3?ZUUID5$W*k4UZ9S(s>7S3!<1#QtWPcBYm&L zpsLH~a-gZP`(yoSwh``3U+*{IVUY~w;uPFoo`)6xt~U*)D`^=0+C5ay)0 z$82d499X!279=X6*ytP#6(x;nqsydcj-Ll=o#A-wn&gZ865sXkk|`Xp{S9-FEqyH} z&^w_BZDbB_2CzkK-34ztWzTn~7j9X--JPg8G=sxVqQ$y%&0lIZAcThJo-R&+ z2Dxno9=x`C_G*O1=u?+ve=3<;tl$}0>Jya;3ieVm)NVtr@Q5@TkAuFmV`K1E9TAC4 zXUW6|gdo-TMrj}r+*uKZYF~9ArcUX9Q-!0Ane~me-5zb5N%;AW_jJOe3h7+uL4=ea zlPas)^xVH7mWrtTV`qi{@l2)mq$e{fhuQI@4crS|G|uskk>dI@=$!aZ2#k^&XlFgAkLD zOovaK^#9%%Q_rF}kDxaOuK5EY#Qtm&)@pR#(8wktLe)_R?<^wgM^BZYBEzNbAfu{P z4O3k&Xo_O&w-=p7TH@}h8eV3kPSy9aBsDG$ltO3Nf%cW39vB;NIP!lg`Bu}qC{d$E z!aX)VM_!zUBz&QAZ2Pwl-?zkAUj6l+()`e7qR1jn(e+AkNq190?fH6Sb=^+UpPxN7 z$45Xm_`B#&mC1@t42Q9yFoxY=q^F}TUE_EuvYp4O?Qd2X+^C}I_c&sVu53d|M*;uZ za){={P`1SMw@RP#Xd1CT`#|8F_k@#S<=CYJHk*9`1Iv+$wj`q$Ep9ZH+JQQIeHLCD zCxcUudt*08i%6#fFjUb`*lhxN!Ctam&=rop|RNDo#f0)4k(;NODvgqHBWUh^*gh<@GB_ywV z9#S8Bmyiuu%;SFJ3;J+-{y)OMl&G1_+?=Ph_hwx>puNvoc?NiXt-rFvLspUW zew)5Mu*SAOC$r&vpa8SIhUOG1F@;fGvS+#X46fyeS0h1TDIY>N@D7U`+B?o~ppXB*@0ubgsr~qMQ;K1QQjv~hFHGFW%>*(j8n zD+8jU_`TRoj3kTepALQR%sSfkHm3_Jbb3%4e&u)Q#df zecef#&0BM6*Yt*J^}udh2^z(6>u?CXeL5NIw(t>Krg6FtiT|w&(v`uOHWoYvcT|)S_>*y7TWZ^vh4}p3^c-4B7vV&E4DyzhjS)xeEjc9FB|if zQyHBr3spd7H-LP*;J`EqFe`~DIFZAGu3TFVxT)h3ITk$m{3MI@woeIH`KZUEt^Fp$4}6lv)6xB-`MFSQ6<+-8}?>3rh$P<3eXMt|C;V3*Zi5@cE){uqs)VnpLCdXqOAwj1#_#*TS*G;IBu_G^g~ev7S~K?>fs-tL5ujZ5}^oVZFKTUNq@C<>$hr9HYlWKzPgE z?+ikChWZh^?E>EP&=Q0jnn2ttPwZKj0ftH;(9+?=WQ8&TmWDY&+EYI*801EHz=fE?jRZ3(3|*bGSpC;P{Nvq}|56-2g4+&W1D#%d_n9 zvEg2^`x2MG=5X<6sHPWtVWux8`CKpH?8c=XwP~d&ZoP+%eS!S!KmZs z2RaNdKv4Gs=JWGwMc*2(kj%vX*~sM+>2ipwzcVg6crgUm5IWzl(UQT6YOWT6*SBNcoSDF+mW;}XQ{|-p^4(Y%H+O_Q z!}eC6yb|1Y0vQP(*mw74oHK{$ym~-V#SUCLosBN{pQ<`vgUzf#F7AB+-Qku)wTE>N z8_%e{I@`mWc_CkxruRQPQ&JLc`<_MSa1>sJ%z4o?89CCmsg;3X8UPoSr*Gn!Q|Wb5 z3jm3%euD(74LLEZ#nhTAD)@lzz-1gZ6_I5+=5f6=d;VxhK<69{u;yM69Mq*TvWQMA zAm@;U!kV&R#gZzoW`1u2dL&k#y%J(bUkHZy9kA9beh_*-;$!q*3)sDNs2+8|gnpet z<55vM>oB;SUdj`fl9FN`XH6)X7E+8H_y@<^)3%1>!9V;fN!ISj#U&!rcj0cNy^PKF z>_Yi3Z)T?-ZUs40E z_{9sf;JWM8A~GM=WUam=O%zY?EtAVH1gxQ*_cl%!s#9k>38>7R<_tNpCDxpzfd?;6 z7Bo@x5^Y>2i(JN4l?!t8Pv|<^6{Wl7kg&czzcu5Km*T(b0_0j|s>Q#)l!#U00G9bK zWesq;hDD>+r-<|kxg(JqWa|uWd;dg(MZG@e#z%qEP~xza`X76dr9{RY(!S!(SjZJ_ zY)y5FU7S>0gI>XN?-O1>5%C?$46n6uTjN6RnpcPztB1!rJdmwN393$^Mjd|^Rkht$ z(WB*7seT^hFnO^QU3P6^-FBAPzq4V{;_3d?mJH5jAr0&fz~;+Cy)Un-b(q$v+{bkE zu<1lYk*zSj@cDYm5je^39>FY#yNmaXdHXP^-}5Ky{d74~CFx>(R8QRxU$G^nIJ!%E z;fnW_$O8O#iwiTiX?2mi92j@Vv*N-i{-Kx8&&148h0a9mcq0*WLRG0|#qLcUbQ(Ob z(XDuFS*zMFH0U(mGq(WpH`+uvh$fA7?3pg&ZUPxjPo-St1f=>J=Dze#v(gV|VHDMZ zgy|5iJ6l@GFC9Dz`yc!+rm9xt*GQ+)&9m-enl$d5TSv-C{JL*_u36qNkCHiZWP5k4 zGvu0h`1IA)Zci+OQuIC2&(p&1{X0kLLUWDo9=j4@riVT2oQ;;*@3Em)!KhN6pcwv@ zIHCQY-e2q7S3>F%#P}z6oINxeVcjJzsed(N*>3JdD}TKgT(40QS8G--^daZjvDsj7 z^ZZVg`ehCg1f!G@$!oOU|GwS{SE7o635EG3y>ntNCj>Q_FRi465Tbyr#_*=ii{+I{ zqJ#ME_uUt;nC#U~1+iC8MA5nX} z3KW`)ONO5wT`mey1W&?4x!tf5bk(IFCn{2HNdpv>At#?RF_ORW|BNqY&J-ARUygYA zydXyQ1;u4TX3yOug*lp3@{q}Ooj7j?ARZAtfTjluOLFF6A2gU!c_@Z-@X%(l?mYdW zdf4Km;~B{s(qScK_J=ac+L49a+}i%}rtdUO)hI1+$qmjN^NA!6Y_~3j=J?SbT4Bg* zWLTm?<)=iJ<1f`RB`OhA3i7OG&r&QB-(QxeEnGhlwf#{m;aPHU%vDR3^;iu?4hzgS zu25BEQu|U8JW<|~;hkUG2Oo8vD9Kc(#COjk^Btl!U84d)jFak=*)V>`a8&uG<`kQr z*u=oIaO*`SgFu$QY}%dCl_j!qD61I`6+Cmzwg6pxl&6nb((usAComXvp+2y55<1K zQ!6^;7+h^8Wy=K9{OqmkG(K+ODX`T3`kU}OFgnQ|!_`ifMaytJ?^fyfk+>7;G2r5w zgNm24IS~GYJ+jnzuc@#_#k`DVr)hJ_jEqU-M$~5&6rWjVfNsA{inZ66ZVViW{tEF6 zzFY>~7`+W)y}POs>i28$va5*fvSWG&(HPat=fKzJOU&?771MC^Kz{MGQohKK$!^CW*&pJ*Ib9_9f9a6zytDks0I1CkyYkJ26#<)Y( zoN(<{NF8|Rbe2XVZ%AB0pHqD!JH!dTvROPt_B>8L2O3E$EgBcOJ0q&d_`#(VeWAtU z&il{#>ZETn(!}VNRu$5j>CYIO7qpYBfEPnccxv&|q2}25t54cvTrL!FdV77{oV=V9 zYlJ4u?&j1Kcd#S4PM9CgwHsf5E3vG%UTJ7DDltQ;alTSg3=v*CtLjd-Q6Qo=u`?co z>LPZ+Rd2m08f;3OP$$17N!-fc+sC=^HL64veX6J#leAQGV@uTc?wEShMtjE4N!(Kl z=@zWI9hW6!w!`t`(%BBcnw5j&qW73ABMfi$L8E;B{D^v=xnb{LS>-*(N*F|Y>T7s2 z39x^8&`#%;%=1A@4b-@u^y!ud?b{AyY+U&N2ye{5=J9~W#_!rX4QE#~-XQG{4Tap3 zi!1kwDu~suE$Y&d2Hc{pNWu)El*;+}%?etmn5;0#CRZyQyRXv)z${ymiBH;9q));( z-pzpK3ss75TSPu47Z8~XDofOo^DSB;ycP?-R2Gix>=A_ec6^T9%(%L{t_hF3OC&={ zh!^v+izypi1la3=SDnKcoiSD&0t30Zk`pL*uPiaXH^;!A%t@Ycc|1<1%8qh7SrFIx z?0g}pw-PPEnEPB|ZrT)Qdmx0m@e8?SS2~V~udROVt5F%$QC5-g^ic-y}=SvL&95K-~IBv{9 ztU)X@+2;0CaPQi6xtOsldaGvfQtc&;cn~$#aP*%W0`Y#hII>K810IfLDm(F0y>o=-dYb5oVW1{rgG`ait@ziRT8ux)wI z#%nL*KFaCTQ-2nC9sn4Ry_A)!Ss?lO!;L#3?OS?QKxfzD0KYgw}-lP2VC15#Sgty=#)u94KKu6OP!I&nD{j{4kXo5=H=mD4k|%U0i&rc9RJNi(VKCfdr&?SDBv$t z&TaEb4L}^3DK9%j{fskAks7L#X0=kAU8)&BZFx?GuNB~P{(HMfAvA)2@|U&+-tQ;$ z+(UVp-_3J2vI52&nko|}mf@cp8UXvh8}oge2Vt|Q$Y8@(S262Ixgqj{XwfyD^OAC~ zsf0IShf5@PZZ6Kj?~ir&%wZu4{*lPY*J1x~NAX8-(v+~$^fik6&aR<1nKfQf8QkR~ z_B!h`SMWTwo@EZ(W>iuX8;v7wxg&xbv?V3w*sP*>!gr~@>soP6k7mQ{c%fRV7|}!_ z1iFoI_t(dgw8>o`IMv0vEdz9&_j*4elKf_L6UF??2 zAZ!;NhFV)3%YLM&e7DkW&WX@|E2Yv{?3eg^QZNdrXn?`BJQY2+`bQjN(qGnd31Poj zt+&pr#NRl^G0<@l|CHsetQ8c;NS0t>9+5>Ap=E?e)?6T#YRQtC=)J*d8y`y+WGYql z1P)Q1Bn3)j^cpvccVaJREiL&K*J8nXn3p(g=KO%fH~dXDDlQ6={;)yhH`;r2htm!d zEecD`qD`#92$^D)pU4+Q6b@TsB)K}6=#}tDz85pCWc6F>HSx5YHzRUY$f__CyX+tu z3D@*L*)r~%+)j7-Kuz}7pSXw)RmzIn@8<>WIi6|3IJyKR@1t)Vn@%HKC=Tz|*ht-h z%E(e~J6Y^8`-+ks*OX#o_Xw*5x8i5lW*x4hkLoKdvca_t#y(c7ypm%)<9pvHK7L=H zvqdR(6zzM6`ueOYReuXuD8-8+8JVWaxqm=UXD2J`v)43yc)jquua)#6IOKn==1~&dq0>Wf=uI*Mb{x=?M8nAdYc3 zyw+J0aEJXok`V@Thp$KsyjR&^y;zS69lY!&qqTVOj7X1RY^)mCiXntBUGI6lc7Mvh zPv2_v!pJ;*kNySs&dK^(H6jF8LKi&OK^6>fbU!U7^N{sPcwt|LsGQI1_v`)|Ux?^a z`PkydhTYFWi&b8rv%RD3Ir7X+LaeX6fccmR0M(FEInWF{*?OC3Q2=3d9-|F&LKxo@ zrSHa9lW#F6OOl^p9xwZ1kJ0?)QDkP7eng_JqVz}-Ke)1vG6@R!8sY^VQXK(GHqVWZU?d^U?iXn#B; zT$CxHUsz57#^w2x8D2tp;QS?4Oi8JLXqTFrYyTIOiPTX2AB~J2+!Ij&#x!v~B3dMJ zQ(#8hZDD5Cfv+=yE3zF8ipGie6RoZ96Z(0Xk92y$4{P;wj}FRO2PI?X#UQ!znaY7J zxh9&*yf|_+RO@e4^A$zaUKb2ntt!3RVf#n5<68AqQim)Saw$dM6KbtA+CnRgJ>*8I z(@=dYx7$@oJyJ$nrOG-^XGzRxC4p*!Y2Tx+Wq2mq?-#Eu<|r>wI|2=Id%C|LjNApi zZJSA7u3QXpJTiG|vl?q4{E;Dq zn;{0qf^Q-XV~l0^PKkPrO&!GPE~r|$TjCX>Suk3u)fm}wy_L$WOOc3=@RVrK5kCGXu zg`a;LpTKuvkae#zBZjs(hgDZs`%(^q#KUK|X#$zSXoBv1r%yTr(X!=j_zCmcQ!5g@ zCkN^*w&$kT{?2&KNRl)vi7@5T#XjrMj9Kp;!-$+M4h*o3Iiw<{-%DeI@367H-)qJ2 zD#nwjvzany$Zimik0rrGwK6w*QrX0?$*pUhHDl&zMS4C0C<)Sb{Jc{ zGT+9lGu1CdMv@{+I)d9oKUB05@4~j0jF!4ZyCV&faBuY!r=vky=@I^GB0>&K9tCbT zh8OL3LWe=4Vb%cbLv#>4-MmV=xK6^ooU%6Ey_FJ7=2Li{NkDfzTWz{0%u-n->$K67 zCcWw7U0f);`c=quq!@NA+Lt+Qo%s{$M>QQQ)k`vZzPhQ`-1$y5qsMK&$=QpL?142Y zo-a?hO!4z!r`w~cum8wv17)50%>ogDUAQIWF;p?}pbV>FP==KeNS?0^y`fSU`crE3 zTm_!lmy7$q>F{FzGs~^uKgP)aev(Szf9UXN)W~-Kb{K%f{P4sBW791l#IAa0$!fY_ z6~1XN5eJ;+W}ekyP~Rvh?QH-A;o2`*&f_5!MJx)EwdaK&9jci;LFGSYanCs=2T{1# zT@UN^HZ|vul3BA;xz3-ecylCWBDVWJ^6?^Cg{>SY{^GwmLaVPdl$-#bXK^X+*b|ld zYbv-p*vsI$4PmsWCe_~-BV*bi_jKc=5INi3kWWDfk(a5~=0k*QoC`;ECxpyH-mc{t=H(sjMn)kc$P*w zQiz!1CQ8T5{ukZqo_e7%2CD~xne88bQUFgcnuTB1voOtR?+ND^kzR*HUG%&$u7{oV zjHVB7i2n}SBTxRy*+I9$M1hw+_{kMoihGBV&|o>y_ITM2H|L`vR9=}bf*kh*hIG01 z!`a`_A0H*YMH(7`37hLdU6KD*W2{v_JLn|OwADA5{I=14yp?xbdUdvY9ESRxUsaaS z@Du~L{Y9z2^y?Q&E;PPH*K$K!e{7Q&sPLJ*^s zok=$Wfs%RumQ1!<(Ygt6MS5)0U>x_{ivS-rXv3ykY=Pk^i8df3i9Ht%=B{{Y4USNMQVR5wVkcA$cUF~wijRDUB(~c z**9M9FkcgpYy> z+%=W=qZ=OXBQLQpI|a*Gag8H9Mg3+Ko{YlK8c*=2 zOI0mPg+o?p@pE()4c(MWPjYPJ0boQ@{Qy_#$VUV2EK+qQLAGrb^^I4*8yq2;>8)01jnmy2%a z8b$)!7_B4Ud%GsU&CZ=&K!&yyyk(?(eDIo&A-Kgudx ze>SC~^ng&vyo*NZ@{Rn|cGUfbVNk?@ZY5I!UeFODBfG$;&%tUJrpQYmsb<$_zu0&% zbYUO(@rHFlV0_%@WZ`P#SJiK*?KfvLcf66Z$Q`uxk{DYxGM+-zh9!d+MLZ5Zkf@2r zg&Je&hZw!gwt(fCxUXqIHCqc0FM-ZvLnlDQFbzV97b|;01Z?<~tK?54X^R*BU^yC2 zgsodI|K+)>nzeV=*p>RRDmCCMkf5$v8A}Bw!7X|S9P`g#GQ>?#DdY{31&PGaWC6Gf6SUn>k}#I0gVlH`H?tD>DNo0%figzdjYwo~k>~ z!mPir;Z1$U;_P%mrH)#e9-`pcj8imMU`Il{EKiZ$B=4h^J&+V%>Kl?Fym4JplF{Ps zP14TU=`^DvRb8JPK8$-0yVI&pD4CT!cDYy7xLcJuH`nAMY=|KYaJinKEDKX4djG?@ z($$K+X`j*J@C-NTTQO3(4bpc#T$BWT!{^(y-E8}1CWHvK7HOc|UB?s*=91h@pXq|3 z(i9I9q_uc`6AQsQrZ2H3tDhGlmmQNeRS~KUoM6A;-4Lt{Jh@#+R=RoewlUpZH-$C8 z{93(Q#D0~b^hbTHGXQGunfjd6T++Pb;HqQ}bh_jAtj)=$VM_FjOlJ@7%5ja2Ox1e} zJ9%PWpD!jndEF>Pn_0|IkKwcVQAc}QA|TPL$2$Bk+TJRvt#;oVZA%MB0Z=dht+?+9TlaY*!Ofvd19YYnk2NL%7 z1Hwv+XH@w*90Ryng|I%>40$1e2JR-rmh${O6_MI2wb5z1cSp?G#8yYKG(#2fHDE+RciiVJS-$3KnoRyx_2J7e|9*??Z%`8&hS@ zM-8rFVPaw_O^&pL5QDoVb=uQaBtHI3)z+h>G@t?Zh^)Hy=fb9eq-O!vuD~E3@pePh zVJ=0or;R_%{1pzL)kPR$F$CU72H@^v)ziye-W6fF{6B;SpKaVUW{1YiA)+B&i|q?cfBg5rj@Qw zwUe$3Mq@}Q&UXGB)g{5a|I^m8!PI2cAz)SWI}6;_@{#cMPfS|)T4!pS3Q!0}*VLs)>&>V))&RSb;Z4r0nI0rOPuNvv%<-(f zwo}oUPnIM|pP{);$**~8M=%Cr3mj8g&k+@_fcc{0MlcKpJ?SmDX-14@)Gta9ob7Z# zwhiZ;(i?5AN?x(lUR^damd$uj11B)9uA#}(efw^-DMd!eiYK`4hu6<3|EneG#M_sq zuap430`UaR@-K<0Awwl9R494S@o{pi?aHvRos;!ZUMy2noJ7af7E6-Z3(S!Abh%rgQhI1h zf4dWMa6SpZw4jSOJz>`}y%{L@8mS_~@y;Mi3=|7HLY7ltG-SvK$W%E4oM-a(S|=a3 zp&t8}e>H3WyV687V3M(KCG@@9b!XB&c)BnN>Yv6Ep*<5;&Ziy1@d1{eMj1X_^m;b8 zr={IjbGi!bGJdiYa5u*_Y{8r zYsz*{0Ea*S=UDeI52w$rN9ww;1zNF%yR@Iupg@B!5LCt7;3Jd1FkfLJBRYb9y!0Dq zuiIJqFHHNIK-@a+07LX@sVbm+&vBU=3=tuy+!H=qOnLTHYFwJ6YgC=-6zcR zAG4w4`|0BmG*cyqnI%mAz0=n2jG3cUIa)3xHpXRHU17~SnhF~HW8@6!t^BeYq!?s(%!R&~3|;-FlR|L&?WOOa z4XG*Xc^CQkRP#1ZYu^y`?hvTXt1q)Xecw;R<@9m%l1$Hhe0LFavJ4%u;t~$~ZFe^9 zRHr5dw^4TDgX8}%0^}%5X$ud>&v6vGAv1zl7*a_SHpC^9aEdteItpptpYSV5rvA

nsz;U%^iMIm*B(JDJy5CG0{9zFmWE^|06V?; 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%0D({(3Fi8jJV;5@D-T{gvd7a0 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 Rz%vTP4C~oer>D7x{|yV{zs~>w literal 0 HcmV?d00001 diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/initial-memory-layout.svg b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/initial-memory-layout.svg new file mode 100644 index 0000000000..66c333a834 --- /dev/null +++ b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/initial-memory-layout.svg @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + mesh[0].position + + + + mesh[0].color + + + + mesh[0].normal + + + + mesh[2].position + + + + mesh[2].color + + + + mesh[2].normal + + ... + + + + mesh[1].position + + + + mesh[1].color + + + + mesh[1].normal + + + Increasingmemoryaddress + + + diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md new file mode 100644 index 0000000000..550d68dcfa --- /dev/null +++ b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md @@ -0,0 +1,161 @@ +--- +title: Optimizing graphics vertex efficiency for Arm GPUs +weight: 5 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +# Optimizing graphics vertex efficiency for Arm GPUs + +You're writing a graphics application targeting an Arm Immortalis +GPU, and not hitting your desired performance. When running the Arm +Frame Advisor tool, you spot that the draw calls in your shadow map +creation pass have poor Vertex Memory Efficiency (VME) scores. How +should you go about improving this? + +![Frame Advisor screenshot](fa-found-bad-vme-in-content-metrics.png) + +In this article, I will outline a common source of rendering +inefficiency, how to spot the issue using Arm Frame Advisor, and how +to rectify it. + + +## Shadow mapping + +In this scenario, draw calls in our shadow map render pass are the +source of our poor VME scores. Let's start by reviewing exactly what +these draws are doing. + +Shadow mapping is the mechanism that decides, for every visible pixel, +whether it is lit or in shadow. A shadow map is a texture that is +created as the first part of this process. It is rendered from the +point of view of the light source, and stores the distance to all of +the objects that light can see. Parts of a surface that are visible +to the light are lit, and any part that is occluded must be in shadow. + +## Mesh layout + +The primary input into shadow map creation is the object geometry for +all of the objects that are shadow casters. In our scenario, let's +assume that the vertex data for each object is stored in memory as an +array structure, which is a commonly used layout in many applications: + +``` C++ +struct Vertex { + float position[3]; + float color[3]. + float normal[3]; +}; + +std::vector mesh { + // Model data ... +}; + +``` + +This would give the mesh the following layout in memory: + +![Initial memory layout](initial-memory-layout.png) + +## Why is this sub-optimal? + +This looks like a standard way of passing mesh data into a GPU, +so where is the inefficiency coming from? + +The vertex data we have defined contains all of the attributes that +we need for our object, including those that are needed to compute +color in the main lighting pass. When generating the shadow map, +we only actually need to compute the position of the object, so most +of our vertex attributes will be unused by the shadow map generation +draw calls. + +The inefficiency comes from how hardware gets the data it needs from +main memory so that computation can proceed. Processors do not fetch +single values from DRAM, but instead fetch a small neighborhood of +data, because this is the most efficient way to read from DRAM. For Arm +GPUs, the hardware will read an entire 64 byte cache line at a time. + +In our example, an attempt to fetch a vertex position during shadow +map creation would also load the nearby color and normal values, +even though we do not need them. + + +## Detecting a sub-optimal layout + +Arm Frame Advisor analyzes the attribute memory layout for each draw +call the application makes, and provides the Vertex Memory Efficiency +(VME) metric to show how efficiently that attribute layout is working. + +![Location of vertex memory efficiency in FA](fa-navigate-to-call.png) + +A VME of 1.0 would indicate that the draw call is making an optimal +use of the memory bandwidth, with no unnecessary data fetches. + +A VME of less than one indicates that unnecessary data is being loaded +from memory, wasting bandwidth on data that is not being used in the +computation on the GPU. + +In our mesh layout we are only using 12 bytes for the `position` +field, out of a total vertex size of 36 bytes, so our VME score would +be only 0.33. + + +## Fixing a sub-optimal layout + +Shadow mapping only needs to load position, so to fix this issue we +need to use a memory layout that allows position to be fetched in +isolation from the other data. It is still preferable to leave the +other attributes interleaved. This would look like this on the CPU: + +``` C++ +struct VertexPart1 { + float position[3]; +}; + +struct VertexPart2 { + float color[3]. + float normal[3]; +}; + +std::vector mesh { + // Model data ... +}; + +std::vector mesh { + // Model data ... +}; +``` + +This allows the shadow map creation pass to read only useful position +data, without any waste. The main lighting pass that renders the full +object will then read from both memory regions. + +The good news is that this technique is actually a useful one to apply +all of the time, even for the main lighting pass! Many mobile GPUs, +including Arm GPUs, process geometry in two passes. The first pass +computes only the primitive position, and second pass will processes +the remainder of the vertex shader only for the primitives that are +visible after primitive culling has been performed. By splitting +the position attributes into a separate stream, we avoid wasting +memory bandwidth fetching non-position data for primitives that are +ultimately discarded by primitive culling tests. + + +# Conclusion + +Arm Frame Advisor can give you actionable metrics that can identify +specific inefficiencies in your application to optimize. + +The VME metric shows how efficiently you are using your input +vertex memory bandwidth, indicating what proportion of the input +data is actually used by the shader program. VME can be improved by +changing vertex memory layout to separate the different streams of +data such that only the data needed for type of computation is packed +together. Try not to mix data in that a computation would not use. + +# Other links + +Arm's advice on [attribute layouts][2] + +[2]: https://developer.arm.com/documentation/101897/0304/Vertex-shading/Attribute-layout From 53b27459e714bb67cebd901ea22e4c9f23b7e058 Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Thu, 29 May 2025 11:51:23 +0000 Subject: [PATCH 16/31] Updates --- .../false-sharing-arm-spe/_index.md | 2 +- .../false-sharing-arm-spe/how-to-1.md | 33 +++++++++++++------ .../false-sharing-arm-spe/how-to-2.md | 14 ++++---- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md index f56a19089e..bed359cb52 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md @@ -1,5 +1,5 @@ --- -title: Analyze cache behavior with Perf C2C on Arm +title: Analyze cache behavior with perf c2c on Arm minutes_to_complete: 15 diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md index 1f7060ea81..3135318ea4 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md @@ -9,20 +9,29 @@ layout: learningpathall ## What is the Arm Statistical Profiling Extension (SPE), and what does it do? {{% notice Learning goal%}} -In this section, you will learn how the Arm Statistical Profiling Extension (SPE) gives you deeper visibility into how your applications interact with the CPU. It covers how to detect and fix false sharing, which is a hidden performance problem in multithreaded code, by using cache line alignment in C++ and tools like Perf C2C. +In this section, you’ll learn how to use SPE to gain low-level insight into how your applications interact with the CPU. You’ll explore how to detect and resolve false sharing. By combining cache line alignment techniques with `perf c2c`, you can identify inefficient memory access patterns and significantly boost CPU performance on Arm-based systems. {{% /notice %}} -Arm’s Statistical Profiling Extension (SPE) gives you a powerful way to understand what’s really happening inside your applications at the microarchitecture level. Introduced in Armv8.2, SPE captures a statistical view of how instructions move through the CPU, which allows you to dig into issues like memory access latency, cache misses, and pipeline behavior. +Arm’s Statistical Profiling Extension (SPE) gives you a powerful way to understand what’s really happening inside your applications at the microarchitecture level. -Most Linux profiling tools focus on retired instruction counts, which means they miss key details like memory addresses, cache latency, and micro-operation behavior. This can lead to misleading results — especially due to a phenomenon called “skid,” where events are falsely attributed to later instructions. +Introduced in Armv8.2, SPE captures a statistical view of how instructions move through the CPU, which allows you to dig into issues like memory access latency, cache misses, and pipeline behavior. -SPE integrates sampling directly into the CPU pipeline, triggering on individual micro-operations instead of retired instructions. This approach eliminates skid and blind spots. Each SPE sample record includes relevant metadata, such as data addresses, per-µop pipeline latency, triggered PMU event masks, and the memory hierarchy source, enabling fine-grained, precise cache analysis. +Most Linux profiling tools focus on retired instruction counts, which means they miss key details like memory addresses, cache latency, and micro-operation behavior. This can lead to misleading results, especially due to a phenomenon called “skid,” where events are falsely attributed to later instructions. -SPE helps developers optimize user-space applications by showing where cache latency or memory access delays are happening. Importantly, cache statistics are enabled with the Linux Perf cache-to-cache (C2C) utility. +SPE integrates sampling directly into the CPU pipeline, triggering on individual micro-operations instead of retired instructions. This approach eliminates skid and blind spots. Each SPE sample record includes relevant metadata, such as: + +* Data addresses +* Per-µop pipeline latency +* Triggered PMU event masks +* Memory hierarchy source + +This enables fine-grained, precise cache analysis. + +SPE helps developers optimize user-space applications by showing where cache latency or memory access delays are happening. Importantly, cache statistics are enabled with the Linux `perf` cache-to-cache (C2C) utility. For more information, see the [*Arm Statistical Profiling Extension: Performance Analysis Methodology White Paper*](https://developer.arm.com/documentation/109429/latest/). -In this Learning Path, you will use SPE and Perf C2C to diagnose a cache issue for an application running on a Neoverse server. +In this Learning Path, you will use SPE and `perf c2c` to diagnose a cache issue for an application running on a Neoverse server. ## What is false sharing and why should I care about it? @@ -36,13 +45,17 @@ The diagram below, taken from the Arm SPE white paper, provides a visual represe ![false_sharing_diagram alt-text#center](./false_sharing_diagram.png "Two threads on separate cores alternately gain exclusive access to the same cache line.") -Because false sharing hides behind ordinary writes, the easiest time to eliminate it is while reading or refactoring the source code by padding or realigning the offending variables before compilation. In large, highly concurrent codebases, however, data structures are often accessed through several layers of abstraction, and many threads touch memory via indirection, so the subtle cache-line overlap may not surface until profiling or performance counters reveal unexpected coherence misses. +## Why false sharing is hard to spot and fix + +False sharing often hides behind seemingly ordinary writes, making it tricky to catch without tooling. The best time to eliminate it is early, while reading or refactoring code, by padding or realigning variables before compilation. But in large, highly concurrent C++ codebases, memory is frequently accessed through multiple layers of abstraction. Threads may interact with shared data indirectly, causing subtle cache line overlaps that don’t become obvious until performance profiling reveals unexpected coherence misses. Tools like `perf c2c` can help uncover these issues by tracing cache-to-cache transfers and identifying hot memory locations affected by false sharing. From a source-code perspective nothing is “shared,” but at the hardware level both variables are implicitly coupled by their physical location. ## Alignment to cache lines -In C++11, you can manually specify the alignment of an object with the `alignas` specifier. For example, the C++11 source code below manually aligns the `struct` every 64 bytes (typical cache line size on a modern processor). This ensures that each instance of `AlignedType` is on a separate cache line. +In C++11, you can manually specify the alignment of an object with the `alignas` specifier. + +For example, the C++11 source code below manually aligns the `struct` every 64 bytes (typical cache line size on a modern processor). This ensures that each instance of `AlignedType` is on a separate cache line. ```cpp #include @@ -88,7 +101,7 @@ int main() { The output below shows that the variables e, f, g and h occur at least 64 bytes apart in the byte-addressable architecture. Whereas variables a, b, c, and d occur 8 bytes apart, occupying the same cache line. -Although this is a contrived example, in a production workload there might be several layers of indirection that unintentionally result in false sharing. For these complex cases, to understand the root cause, you can use Perf C2C. +Although this is a simplified example, in a production workload there might be several layers of indirection that unintentionally result in false sharing. For these complex cases, use `perf c2c` to trace cache line interactions and pinpoint the root cause of performance issues. ```output Without Alignment can occupy same cache line @@ -112,6 +125,6 @@ Address of AlignedType h - 0xffffeb6c6080 In this section, you explored what Arm SPE is and why it offers a deeper, more accurate view of application performance. You also examined how a subtle issue like false sharing can impact multithreaded code, and how to mitigate it using data alignment techniques in C++. -Next, you'll set up your environment and use Perf C2C to capture and analyze real cache behavior on an Arm Neoverse system. +Next, you'll set up your environment and use `perf c2c` to capture and analyze real-world cache behavior on an Arm Neoverse system. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md index d61fe3c97c..5d3497a614 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md @@ -1,5 +1,5 @@ --- -title: Environment setup for Arm SPE profiling +title: Set up your environment for Arm SPE and perf c2c profiling weight: 3 ### FIXED, DO NOT MODIFY @@ -8,7 +8,7 @@ layout: learningpathall ## Select a system with SPE support {{% notice Learning goal%}} -Before you can start profiling cache behavior with Arm SPE and Perf C2C, your system needs to meet a few requirements. In this section, you’ll learn how to check whether your hardware and kernel support Arm SPE, install the necessary tools, and validate that Linux Perf can access the right performance monitoring events. By the end, your environment will be ready to record and analyze memory access patterns using Perf C2C on an Arm Neoverse system. +Before you can start profiling cache behavior with Arm SPE and `perf c2c`, your system needs to meet a few requirements. In this section, you’ll learn how to check whether your hardware and kernel support Arm SPE, install the necessary tools, and validate that Linux perf can access the correct performance monitoring events. By the end, your environment will be ready to record and analyze memory access patterns using `perf c2c` on an Arm Neoverse system. {{% /notice %}} SPE requires support from both your hardware and the operating system. Many cloud instances running Linux do not enable SPE-based profiling. @@ -38,7 +38,7 @@ sudo dnf update -y sudo dnf install perf git gcc cmake numactl-devel -y ``` -Linux Perf is a userspace process and SPE is a hardware feature. The Linux kernel must be compiled with SPE support or the kernel module named `arm_spe_pmu` must be loaded. +Linux perf is a userspace process and SPE is a hardware feature. The Linux kernel must be compiled with SPE support or the kernel module named `arm_spe_pmu` must be loaded. Run the following command to confirm if the SPE kernel module is loaded: @@ -86,9 +86,9 @@ Performance features: perf in userspace: disabled ``` -## Confirm Arm SPE is available to Perf +## Confirm Arm SPE is available to perf -Run the following command to confirm SPE is available to Perf: +Run the following command to confirm SPE is available to `perf`: ```bash sudo perf list "arm_spe*" @@ -110,7 +110,7 @@ sudo setcap cap_perfmon,cap_sys_ptrace,cap_sys_admin+ep $(which perf) If `arm_spe` isn’t available due to your system configuration or limited PMU access, the `perf c2c` command will fail. -To confirm Perf can access SPE, run: +To confirm `perf` can access SPE, run: ```bash perf c2c record @@ -132,4 +132,4 @@ For more information about enabling SPE, see the [perf-arm-spe manual page](http ## Summary -You've confirmed that your system supports Arm SPE, installed the necessary tools, and verified that perf can access SPE events. You're now ready to start collecting detailed performance data using perf c2c. In the next section, you’ll run a real application and use Perf C2C to capture cache sharing behavior and uncover memory performance issues. +You've confirmed that your system supports Arm SPE, installed the necessary tools, and verified that `perf` can access SPE events. You're now ready to start collecting detailed performance data using `perf c2c`. In the next section, you’ll run a real application and use `perf c2c` to capture cache sharing behavior and uncover memory performance issues. From 4696bb29778a3c8500a860f2af73069cf7d29be5 Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Thu, 29 May 2025 14:23:19 +0000 Subject: [PATCH 17/31] updates --- .../false-sharing-arm-spe/how-to-3.md | 2 +- .../false-sharing-arm-spe/how-to-4.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md index 40845f5eb2..1423cf59b4 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md @@ -9,7 +9,7 @@ layout: learningpathall ## Example code {{% notice Learning Goal%}} -The example code in this section demonstrates how false sharing affects performance by comparing two multithreaded programs — one with cache-aligned data structures and one without. You’ll compile and run both versions, observe the runtime difference, and learn how memory layout affects cache behavior. This sets the stage for analyzing performance with Perf C2C in the next section. +The example code in this section demonstrates how false sharing affects performance by comparing two multithreaded programs; one with cache-aligned data structures, and one without. You’ll compile and run both versions, observe the runtime difference, and learn how memory layout affects cache behavior. This sets the stage for analyzing performance with `perf c2c` in the next section. {{% /notice %}} Use a text editor to copy and paste the C example code below into a file named `false_sharing_example.c` diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md index 6cb5cbb5f5..61fdaebbfc 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-4.md @@ -9,10 +9,10 @@ layout: learningpathall ## Compare Performance with perf stat {{% notice Learning goal %}} -In this section, you’ll learn how to use Linux Perf tools and Arm SPE to identify performance bottlenecks in multithreaded applications. You’ll compare aligned and unaligned workloads, detect cache-related slowdowns like false sharing, and trace memory contention down to the source code using Perf C2C. +In this section, you’ll learn how to use Linux Perf tools and Arm SPE to identify performance bottlenecks in multithreaded applications. You’ll compare aligned and unaligned workloads, detect cache-related slowdowns such as false sharing, and trace memory contention down to the source code using Perf C2C. {{% /notice %}} -A straightforward method to observe the performance characteristics of both binaries would be to use the `perf stat` command. +A simple way to observe the performance difference of both binaries is to use the `perf stat` command. For example, run the false sharing version using: From cc78c8e1c04d5ee57cfeb7826621607885584302 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 29 May 2025 10:24:43 -0400 Subject: [PATCH 18/31] Update _index.md --- .../optimizing-vertex-efficiency/_index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md index f232925007..144cc68a8a 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md @@ -1,6 +1,10 @@ --- title: Optimizing graphics vertex efficiency for Arm GPUs +draft: true +cascade: + draft: true + minutes_to_complete: 10 who_is_this_for: Android graphics application developers From d7c7d8a093bbb371e389fe8c2320c963db089bbc Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Thu, 29 May 2025 16:31:13 +0000 Subject: [PATCH 19/31] Updates --- .../arm_linux_page_size/_index.md | 14 +++++--------- .../arm_linux_page_size/overview.md | 6 +++--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md index b3280ab9ed..29463a45e7 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md @@ -1,19 +1,15 @@ --- -title: Explore Performance Gains by Increasing the Linux Kernel Page Size on Arm - -draft: true -cascade: - draft: true +title: Explore performance gains by increasing the Linux kernel page size on Arm minutes_to_complete: 30 who_is_this_for: This is an introductory topic for developers who want to modify the Linux kernel page size on Arm-based systems to improve performance for memory-intensive workloads. learning_objectives: - - Verify the current page size on your system. - - Install the 64K page size kernel specific to your OS. - - Verify the new 64K page size is active. - - Revert to the default 4K page size kernel (optional). + - Verify the current memory page size on your Arm-based system. + - Install and switch to a Linux kernel with 64K page size support. + - Verify that the new 64K page size is active. + - Optionally, revert to the default 4K page size kernel. prerequisites: - An Arm-based Linux system running Ubuntu, Debian, or CentOS. diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md index 4fd6d00088..5e04de21e4 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md @@ -7,13 +7,13 @@ layout: learningpathall ## How does the CPU locate data in memory? -When your program asks for a memory address, the CPU doesn’t directly reach into RAM or swap space for it; that would be slow, unsafe, and inefficient. +When your program accesses a memory address, the CPU doesn’t directly fetch data from RAM or swap space for it. That would be slow, unsafe, and inefficient. Instead, it goes through the virtual memory system, where it asks for a specific chunk of memory called a page. Pages map virtual memory locations to physical memory locations in RAM or swap space. ## What’s a memory page? -Think of your computer’s memory like a big sheet of graph paper. Each page is one square on that sheet. The page table is the legend that identifies which square (virtual address) maps to which spot in physical RAM. On x86, 4K is the only page size option, but Arm-based systems allow you to use 4K, 16K, or 64K page sizes to fine tune the performance of your applications. +Think of your computer’s memory like a big sheet of graph paper. Each page is one square on that sheet. The page table is the legend that identifies which square (virtual address) maps to which spot in physical RAM. On x86 systems, 4K pages are the standard, while Arm-based systems support multiple page sizes - typically 4K, 16K, or 64K. This flexibility allows developers to fine tune performance for specific workloads. This Learning Path explains how to switch between 4K and 64K pages on different Linux distributions. @@ -25,7 +25,7 @@ Points to consider when thinking about page size: - **64K pages** shine when you work with large, continuous data such as video frames or large database caches because they cut down on management overhead. They will use more memory if you don’t use the whole page, but they can also speed up access times for large data sets. -When selecting your page size, it's important to try both options under real-world conditions, as it will depend on the data size and retrieval patterns of the data you are working with. +Choosing the right page size depends on how your application uses memory, as both the data size and retrieval patterns of the data you are working with are influencing factors. Benchmark different options under real-world workloads to determine which delivers better performance. In addition, the page size may need to be reviewed over time as the application, memory usage patterns, and data sizes may change. From 12c00010c203c5c7021219b40c49b967a60f7ba5 Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Fri, 30 May 2025 10:10:08 +0000 Subject: [PATCH 20/31] Update index.md --- .../arm_linux_page_size/_index.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md index 29463a45e7..3121c15b64 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md @@ -6,10 +6,12 @@ minutes_to_complete: 30 who_is_this_for: This is an introductory topic for developers who want to modify the Linux kernel page size on Arm-based systems to improve performance for memory-intensive workloads. learning_objectives: - - Verify the current memory page size on your Arm-based system. - - Install and switch to a Linux kernel with 64K page size support. - - Verify that the new 64K page size is active. - - Optionally, revert to the default 4K page size kernel. + - Explain the differences in page size configuration between Arm64 and x86 architectures. + - Understand how page size affects memory efficiency and system performance. + - Check the current memory page size on an Arm-based Linux system. + - Install and switch to a Linux kernel configured with 64K page size support. + - Confirm that the 64K page size is active. + - Optionally revert to the default 4K page size kernel. prerequisites: - An Arm-based Linux system running Ubuntu, Debian, or CentOS. From a0a9b5a77994c67ad4fcc2e4d1078c311b2aa7fa Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Fri, 30 May 2025 10:17:06 +0000 Subject: [PATCH 21/31] updates --- .../servers-and-cloud-computing/arm_linux_page_size/_index.md | 4 ++-- .../arm_linux_page_size/overview.md | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md index 3121c15b64..cec85fb08f 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md @@ -9,12 +9,12 @@ learning_objectives: - Explain the differences in page size configuration between Arm64 and x86 architectures. - Understand how page size affects memory efficiency and system performance. - Check the current memory page size on an Arm-based Linux system. - - Install and switch to a Linux kernel configured with 64K page size support. + - Install and boot into a Linux kernel configured with 64K page size support. - Confirm that the 64K page size is active. - Optionally revert to the default 4K page size kernel. prerequisites: - - An Arm-based Linux system running Ubuntu, Debian, or CentOS. + - Access to an Arm-based Linux system running Ubuntu, Debian, or CentOS. author: Geremy Cohen diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md index 5e04de21e4..0d2951efdc 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md @@ -1,9 +1,11 @@ --- -title: Page Size Overview +title: Why does page size matter? weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- +Before you modify the Linux kernel page size on an Arm system, it's essential to understand what a memory page is - and why its size affects performance. + ## How does the CPU locate data in memory? From 107d3a72ad64948040703e83ddcc923d75ce2cec Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Fri, 30 May 2025 10:27:34 +0000 Subject: [PATCH 22/31] updates --- .../arm_linux_page_size/overview.md | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md index 0d2951efdc..c52e626ce6 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md @@ -6,6 +6,17 @@ layout: learningpathall --- Before you modify the Linux kernel page size on an Arm system, it's essential to understand what a memory page is - and why its size affects performance. +## What’s a memory page? + +Think of your computer’s memory like a big sheet of graph paper. In modern systems, memory is divided into chunks called pages. Each page is one square on that sheet. + +The page table is the legend that identifies which square (virtual address) maps to which spot in physical RAM. Each page represents a fixed-size block of virtual memory that maps to physical memory through the page table. This mapping is managed by the operating system and the CPU’s Memory Management Unit (MMU). + +To keep track of these mappings efficiently, CPUs use a fast lookup cache called the Translation Lookaside Buffer (TLB). Every memory access requires a TLB hit or a page table lookup. If the page isn't already in the TLB, the CPU must fetch the mapping from memory—a process that adds latency and stalls execution. + +On x86 systems, 4K pages are the standard, while Arm-based systems support multiple page sizes - typically 4K, 16K, or 64K. This flexibility allows developers to fine tune performance for specific workloads. + +This Learning Path explains how to switch between 4K and 64K pages on different Linux distributions. ## How does the CPU locate data in memory? @@ -13,11 +24,14 @@ When your program accesses a memory address, the CPU doesn’t directly fetch da Instead, it goes through the virtual memory system, where it asks for a specific chunk of memory called a page. Pages map virtual memory locations to physical memory locations in RAM or swap space. -## What’s a memory page? +## How page size affects performance +Changing the page size has a cascading effect on system performance: -Think of your computer’s memory like a big sheet of graph paper. Each page is one square on that sheet. The page table is the legend that identifies which square (virtual address) maps to which spot in physical RAM. On x86 systems, 4K pages are the standard, while Arm-based systems support multiple page sizes - typically 4K, 16K, or 64K. This flexibility allows developers to fine tune performance for specific workloads. +TLB Pressure: With smaller pages (e.g., 4K), more entries are needed to map the same amount of memory. This increases TLB misses and lookup overhead. Larger pages (e.g., 64K) reduce the number of entries and can lower TLB pressure. -This Learning Path explains how to switch between 4K and 64K pages on different Linux distributions. +Memory Fragmentation: Smaller pages reduce internal fragmentation (wasted memory per allocation). Larger pages can increase waste if your workloads don’t use the full page. + +I/O Efficiency: Disk I/O and DMA operations often perform better with larger pages, because fewer page boundaries are crossed during transfers. ## How should I select the memory page size? @@ -32,12 +46,12 @@ Choosing the right page size depends on how your application uses memory, as bot In addition, the page size may need to be reviewed over time as the application, memory usage patterns, and data sizes may change. -### Summary of page size differences +### Trade-offs to consider | Aspect | 4K Pages | 64K Pages | |-----------------|--------------------------------------|----------------------------------------| | **Size** | Small “bricks” (4 KB each) | Big “bricks” (64 KB each) | -| **Flexibility** | Very flexible—good for lots of tiny bits of data | Less flexible—best when data comes in large chunks | +| **Flexibility** | Best for flexibility and compatibility | Best for large, contiguous memory workloads | | **Efficiency** | Needs more entries (more bookkeeping) | Needs fewer entries (less bookkeeping) | | **Waste** | At most 4 KB unused per page | Up to 64 KB unused if not fully used | From 2e125f6ca893c77a685d95bfa456d738dca3e1ab Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Fri, 30 May 2025 14:26:49 +0000 Subject: [PATCH 23/31] VME LP review --- assets/contributors.csv | 2 ++ .../optimizing-vertex-efficiency/_index.md | 8 ++--- .../vme-learning-path.md | 32 +++++++++---------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/assets/contributors.csv b/assets/contributors.csv index 0173aa59d0..1bd3df8895 100644 --- a/assets/contributors.csv +++ b/assets/contributors.csv @@ -89,3 +89,5 @@ Nina Drozd,Arm,NinaARM,ninadrozd,, Jun He,Arm,JunHe77,jun-he-91969822,, Gian Marco Iodice,Arm,,,, Aude Vuilliomenet,Arm,,,, +Andrew Kilroy,Arm,,,, +Peter Harris,Arm,,,, diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md index 144cc68a8a..e94238425a 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/_index.md @@ -7,7 +7,7 @@ cascade: minutes_to_complete: 10 -who_is_this_for: Android graphics application developers +who_is_this_for: This is an advanced topic for Android graphics application developers. learning_objectives: - Optimize vertex representations on Arm GPUs @@ -22,8 +22,8 @@ author: - Peter Harris ### Tags -skilllevels: Intermediate -subjects: Performance +skilllevels: Advanced +subjects: Performance and Architecture armips: - Immortalis - Mali @@ -39,7 +39,7 @@ further_reading: link: https://developer.arm.com/documentation/101897/0304/Vertex-shading/Attribute-layout type: documentation - resource: - title: Frame Advisor user guide + title: Frame Advisor User Guide link: https://developer.arm.com/documentation/102693/latest/ type: documentation - resource: diff --git a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md index 550d68dcfa..7df536257d 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md +++ b/content/learning-paths/mobile-graphics-and-gaming/optimizing-vertex-efficiency/vme-learning-path.md @@ -8,7 +8,7 @@ layout: learningpathall # Optimizing graphics vertex efficiency for Arm GPUs -You're writing a graphics application targeting an Arm Immortalis +You are writing a graphics application targeting an Arm Immortalis GPU, and not hitting your desired performance. When running the Arm Frame Advisor tool, you spot that the draw calls in your shadow map creation pass have poor Vertex Memory Efficiency (VME) scores. How @@ -16,14 +16,14 @@ should you go about improving this? ![Frame Advisor screenshot](fa-found-bad-vme-in-content-metrics.png) -In this article, I will outline a common source of rendering +In this Learning Path, you will learn about a common source of rendering inefficiency, how to spot the issue using Arm Frame Advisor, and how to rectify it. ## Shadow mapping -In this scenario, draw calls in our shadow map render pass are the +In this scenario, draw calls in the shadow map render pass are the source of our poor VME scores. Let's start by reviewing exactly what these draws are doing. @@ -37,7 +37,7 @@ to the light are lit, and any part that is occluded must be in shadow. ## Mesh layout The primary input into shadow map creation is the object geometry for -all of the objects that are shadow casters. In our scenario, let's +all of the objects that cast shadows. In this scenario, let's assume that the vertex data for each object is stored in memory as an array structure, which is a commonly used layout in many applications: @@ -63,11 +63,11 @@ This would give the mesh the following layout in memory: This looks like a standard way of passing mesh data into a GPU, so where is the inefficiency coming from? -The vertex data we have defined contains all of the attributes that -we need for our object, including those that are needed to compute +The vertex data that is defined contains all of the attributes that +you need for your object, including those that are needed to compute color in the main lighting pass. When generating the shadow map, -we only actually need to compute the position of the object, so most -of our vertex attributes will be unused by the shadow map generation +you only need to compute the position of the object, so most +of your vertex attributes will be unused by the shadow map generation draw calls. The inefficiency comes from how hardware gets the data it needs from @@ -76,9 +76,9 @@ single values from DRAM, but instead fetch a small neighborhood of data, because this is the most efficient way to read from DRAM. For Arm GPUs, the hardware will read an entire 64 byte cache line at a time. -In our example, an attempt to fetch a vertex position during shadow +In this example, an attempt to fetch a vertex position during shadow map creation would also load the nearby color and normal values, -even though we do not need them. +even though you do not need them. ## Detecting a sub-optimal layout @@ -96,17 +96,17 @@ A VME of less than one indicates that unnecessary data is being loaded from memory, wasting bandwidth on data that is not being used in the computation on the GPU. -In our mesh layout we are only using 12 bytes for the `position` -field, out of a total vertex size of 36 bytes, so our VME score would +In this mesh layout you are only using 12 bytes for the `position` +field, out of a total vertex size of 36 bytes, so your VME score would be only 0.33. ## Fixing a sub-optimal layout -Shadow mapping only needs to load position, so to fix this issue we +Shadow mapping only needs to load position, so to fix this issue you need to use a memory layout that allows position to be fetched in isolation from the other data. It is still preferable to leave the -other attributes interleaved. This would look like this on the CPU: +other attributes interleaved. On the CPU, this would look like the following: ``` C++ struct VertexPart1 { @@ -134,10 +134,10 @@ object will then read from both memory regions. The good news is that this technique is actually a useful one to apply all of the time, even for the main lighting pass! Many mobile GPUs, including Arm GPUs, process geometry in two passes. The first pass -computes only the primitive position, and second pass will processes +computes only the primitive position, and second pass will process the remainder of the vertex shader only for the primitives that are visible after primitive culling has been performed. By splitting -the position attributes into a separate stream, we avoid wasting +the position attributes into a separate stream, you avoid wasting memory bandwidth fetching non-position data for primitives that are ultimately discarded by primitive culling tests. From 33b766fa0b3a948720b20a5b81d64c245f12313f Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Fri, 30 May 2025 15:41:51 -0500 Subject: [PATCH 24/31] Docker Model Runner Learning Path --- .../docker-models/_index.md | 53 +++++ .../docker-models/_next-steps.md | 8 + .../docker-models/compose-app.png | Bin 0 -> 106634 bytes .../docker-models/compose.md | 123 +++++++++++ .../docker-models/models-tab.png | Bin 0 -> 74288 bytes .../docker-models/models.md | 197 ++++++++++++++++++ 6 files changed, 381 insertions(+) create mode 100644 content/learning-paths/laptops-and-desktops/docker-models/_index.md create mode 100644 content/learning-paths/laptops-and-desktops/docker-models/_next-steps.md create mode 100644 content/learning-paths/laptops-and-desktops/docker-models/compose-app.png create mode 100644 content/learning-paths/laptops-and-desktops/docker-models/compose.md create mode 100644 content/learning-paths/laptops-and-desktops/docker-models/models-tab.png create mode 100644 content/learning-paths/laptops-and-desktops/docker-models/models.md diff --git a/content/learning-paths/laptops-and-desktops/docker-models/_index.md b/content/learning-paths/laptops-and-desktops/docker-models/_index.md new file mode 100644 index 0000000000..1c8661c8e9 --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/docker-models/_index.md @@ -0,0 +1,53 @@ +--- +title: Learn how to use Docker Model Runner in AI applications + +draft: true +cascade: + draft: true + +minutes_to_complete: 45 + +who_is_this_for: This is for software developers and AI enthusiasts who want to run AI models using Docker Model Runner. + +learning_objectives: + - Run AI models locally using Docker Model Runner. + - Easily build containerized applications with LLMs. + +prerequisites: + - A computer with at least 16GB of RAM (recommended) and Docker Desktop installed (version 4.40 or later). + - Basic understanding of Docker. + - Familiarity with Large Language Model (LLM) concepts. + +author: Jason Andrews + +### Tags +skilllevels: Introductory +subjects: Containers and Virtualization +armips: + - Neoverse + - Cortex-A +operatingsystems: + - Windows + - macOS +tools_software_languages: + - Docker + - Python + - LLM + +further_reading: + - resource: + title: Docker Model Runner Documentation + link: https://docs.docker.com/model-runner/ + type: documentation + - resource: + title: Introducing Docker Model Runner + link: https://www.docker.com/blog/introducing-docker-model-runner/ + type: blog + +### FIXED, DO NOT MODIFY +# ================================================================================ +weight: 1 # _index.md always has weight of 1 to order correctly +layout: "learningpathall" # All files under learning paths have this same wrapper +learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. +--- + diff --git a/content/learning-paths/laptops-and-desktops/docker-models/_next-steps.md b/content/learning-paths/laptops-and-desktops/docker-models/_next-steps.md new file mode 100644 index 0000000000..c3db0de5a2 --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/docker-models/_next-steps.md @@ -0,0 +1,8 @@ +--- +# ================================================================================ +# FIXED, DO NOT MODIFY THIS FILE +# ================================================================================ +weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation. +title: "Next Steps" # Always the same, html page title. +layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing. +--- diff --git a/content/learning-paths/laptops-and-desktops/docker-models/compose-app.png b/content/learning-paths/laptops-and-desktops/docker-models/compose-app.png new file mode 100644 index 0000000000000000000000000000000000000000..41bbd49fa1c6221c76c3f9d1fb00a7356f5ad831 GIT binary patch literal 106634 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 F{ttXYhKK+F literal 0 HcmV?d00001 diff --git a/content/learning-paths/laptops-and-desktops/docker-models/compose.md b/content/learning-paths/laptops-and-desktops/docker-models/compose.md new file mode 100644 index 0000000000..fcc3657c08 --- /dev/null +++ b/content/learning-paths/laptops-and-desktops/docker-models/compose.md @@ -0,0 +1,123 @@ +--- +title: "Run a containerized AI chat app with Docker Compose" +weight: 3 +layout: "learningpathall" +--- + +Docker Compose makes it easy to run multi-container applications. Docker Compose can also include AI models in your project. + +In this section, you'll learn how to use Docker Compose to deploy a web-based AI chat application that uses Docker Model Runner as the backend for AI inference. + +## Clone the example project + +The example project, named [docker-model-runner-chat](https://github.com/jasonrandrews/docker-model-runner-chat) is available on GitHub. It provides a simple web interface to interact with local AI models such as Llama 3.2 or Gemma 3. + +First, clone the example repository: + +```console +git clone https://github.com/jasonrandrews/docker-model-runner-chat.git +cd docker-model-runner-chat +``` + +## Review the Docker Compose file + +The `compose.yaml` file defines how the application is deployed using Docker Compose. + +It sets up two services: + +- **ai-chat**: A Flask-based web application that provides the chat user interface. It is built from the local directory, exposes port 5000 for browser access, mounts the project directory as a volume for live code updates, loads environment variables from `vars.env`, and waits for the `ai-runner` service to be ready before starting. +- **ai-runner**: This service uses the Docker Model Runner provider to run the selected AI model (for example, `ai/gemma3`). The configuration under `provider` tells Docker to use the model runner extension and specifies which model to load. + +The setup allows the web app to communicate with the model runner service as if it were an OpenAI-compatible API, making it easy to swap models or update endpoints by changing environment variables or compose options. + +Review the `compose.yaml` file to see the two services. + +```yaml +services: + ai-chat: + build: + context: . + ports: + - "5000:5000" + volumes: + - ./:/app + env_file: + - vars.env + depends_on: + - ai-runner + ai-runner: + provider: + type: model + options: + model: ai/gemma3 +``` + +## Start the application + +From the project directory, start the app with: + +```console +docker compose up --build +``` + +Docker Compose will build the web app image and start both services. + +## Access the chat interface + +Open your browser and copy and paste the local URL below: + +```console +http://localhost:5000 +``` + +You can now chat with the AI model using the web interface. Enter your prompt and view the response in real time. + +![Compose #center](compose-app.png) + +## Configuration + +You can change the AI model or endpoint by editing the `vars.env` file before starting the containers. The file contains environment variables used by the web application: + +- `BASE_URL`: The base URL for the AI model API. By default, it is set to `http://model-runner.docker.internal/engines/v1/`, which allows the web app to communicate with the Docker Model Runner service. This is the default endpoint setup by Docker to access the model. +- `MODEL`: The AI model to use (for example, `ai/gemma3` or `ai/llama3.2`). + +The `vars.env` file is shown below. + +```console +BASE_URL=http://model-runner.docker.internal/engines/v1/ +MODEL=ai/gemma3 +``` + +To use a different model, change the `MODEL` value. For example: + +```console +MODEL=ai/llama3.2 +``` + +Make sure to change the model in the `compose.yaml` file also. + +You can also change the `temperature` and `max_tokens` values in `app.py` to further customize the application. + +## Stop the application + +To stop the services, press `Ctrl+C` in the terminal. + +You can also run the command below in another terminal to stop the services. + +```console +docker compose down +``` + +## Troubleshooting + +Use the steps below if you have any issues running the application: + +- Ensure Docker and Docker Compose are installed and running +- Make sure port 5000 is not in use by another application +- Check logs with: + +```console +docker compose logs +``` + +In this section, you learned how to use Docker Compose to run a containerized AI chat application with a web interface and local model inference from Docker Model Runner. diff --git a/content/learning-paths/laptops-and-desktops/docker-models/models-tab.png b/content/learning-paths/laptops-and-desktops/docker-models/models-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..62850d0012c8684a597d6e6c2d9831789684af21 GIT binary patch literal 74288 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 h|1+xp8|Uh=;F}iQ8)3OvZb + +int main() { + std::cout << "Hello, World!" << std::endl; + return 0; +} +``` + +You can ask more questions and continue to chat. + +To exit the chat use the `/bye` command. + +You can print the list of models on your computer using: + +```console +docker model list +``` + +Your list will be different based on the models you have downloaded. + +```output +MODEL NAME PARAMETERS QUANTIZATION ARCHITECTURE MODEL ID CREATED SIZE +ai/gemma3 3.88 B IQ2_XXS/Q4_K_M gemma3 0b329b335467 2 months ago 2.31 GiB +ai/phi4 14.66 B IQ2_XXS/Q4_K_M phi3 03c0bc8e0f5a 2 months ago 8.43 GiB +ai/smollm2 361.82 M IQ2_XXS/Q4_K_M llama 354bf30d0aa3 2 months ago 256.35 MiB +ai/llama3.2 3.21 B IQ2_XXS/Q4_K_M llama 436bb282b419 2 months ago 1.87 GiB +``` + +## Use the OpenAI endpoint to call the model + +From your host computer you can access the model using the OpenAI endpoint and a TCP port. + +First, enable the TCP port to connect with the model: + +```console +docker desktop enable model-runner --tcp 12434 +``` + +Next, use a text editor to save the code below in a file named `curl-test.sh`: + +```bash +#!/bin/sh + +curl http://localhost:12434/engines/llama.cpp/v1/chat/completions \ + -H "Content-Type: application/json" \ + -d '{ + "model": "ai/smollm2", + "messages": [ + { + "role": "system", + "content": "You are a helpful assistant." + }, + { + "role": "user", + "content": "Please write a hello world program in Java." + } + ] + }' +``` + +Run the shell script: + +```console +bash ./curl-test.sh | jq +``` + +If you don't have `jq` installed, you eliminate piping the output. + +The output, including the performance information, is shown below: + +```output +{ + "choices": [ + { + "finish_reason": "stop", + "index": 0, + "message": { + "role": "assistant", + "content": "Here's a simple \"Hello World\" program in Java:\n\n```java\npublic class HelloWorld {\n public static void main(String[] args) {\n System.out.println(\"Hello, World!\");\n }\n}\n```\n\nThis program declares a `HelloWorld` class, defines a `main` method that contains the program's execution, and then uses `System.out.println` to print \"Hello, World!\" to the console." + } + } + ], + "created": 1748622685, + "model": "ai/smollm2", + "system_fingerprint": "b1-a0f7016", + "object": "chat.completion", + "usage": { + "completion_tokens": 101, + "prompt_tokens": 28, + "total_tokens": 129 + }, + "id": "chatcmpl-uZGBuFoS2ERodT4KilStxDwhySLQBTN9", + "timings": { + "prompt_n": 28, + "prompt_ms": 32.349, + "prompt_per_token_ms": 1.1553214285714284, + "prompt_per_second": 865.5599863983431, + "predicted_n": 101, + "predicted_ms": 469.524, + "predicted_per_token_ms": 4.648752475247525, + "predicted_per_second": 215.11147459980745 + } +} +``` + +In this section you learned how to run AI models using Docker Model Runner. Continue to see how to use Docker Compose to build an application with a built-in AI model. From 187e9dc693df8d7a1be07002d408edb61736f11d Mon Sep 17 00:00:00 2001 From: GitHub Actions Stats Bot <> Date: Mon, 2 Jun 2025 01:29:44 +0000 Subject: [PATCH 25/31] automatic update of stats files --- data/stats_current_test_info.yml | 2 +- data/stats_weekly_data.yml | 108 +++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 1 deletion(-) diff --git a/data/stats_current_test_info.yml b/data/stats_current_test_info.yml index cad3fceeee..eabfc682a2 100644 --- a/data/stats_current_test_info.yml +++ b/data/stats_current_test_info.yml @@ -1,5 +1,5 @@ summary: - content_total: 369 + content_total: 371 content_with_all_tests_passing: 0 content_with_tests_enabled: 61 sw_categories: diff --git a/data/stats_weekly_data.yml b/data/stats_weekly_data.yml index 178781f649..5efe046e36 100644 --- a/data/stats_weekly_data.yml +++ b/data/stats_weekly_data.yml @@ -6009,3 +6009,111 @@ avg_close_time_hrs: 0 num_issues: 9 percent_closed_vs_total: 0.0 +- a_date: '2025-06-02' + content: + automotive: 2 + cross-platform: 33 + embedded-and-microcontrollers: 41 + install-guides: 101 + iot: 6 + laptops-and-desktops: 37 + mobile-graphics-and-gaming: 33 + servers-and-cloud-computing: 118 + total: 371 + contributions: + external: 95 + internal: 497 + github_engagement: + num_forks: 30 + num_prs: 7 + individual_authors: + adnan-alsinan: 2 + alaaeddine-chakroun: 2 + albin-bernhardsson: 1 + alex-su: 1 + alexandros-lamprineas: 1 + andrew-choi: 2 + annie-tallund: 4 + arm: 3 + arnaud-de-grandmaison: 4 + arnaud-de-grandmaison.: 1 + aude-vuilliomenet: 1 + avin-zarlez: 1 + barbara-corriero: 1 + basma-el-gaabouri: 1 + ben-clark: 1 + bolt-liu: 2 + brenda-strech: 1 + chaodong-gong: 1 + chen-zhang: 1 + christophe-favergeon: 1 + christopher-seidl: 7 + cyril-rohr: 1 + daniel-gubay: 1 + daniel-nguyen: 2 + david-spickett: 2 + dawid-borycki: 33 + diego-russo: 2 + dominica-abena-o.-amanfo: 1 + elham-harirpoush: 2 + florent-lebeau: 5 + "fr\xE9d\xE9ric--lefred--descamps": 2 + gabriel-peterson: 5 + gayathri-narayana-yegna-narayanan: 1 + georgios-mermigkis: 1 + geremy-cohen: 1 + gian-marco-iodice: 1 + graham-woodward: 1 + han-yin: 1 + iago-calvo-lista: 1 + james-whitaker: 1 + jason-andrews: 102 + joe-stech: 4 + johanna-skinnider: 2 + jonathan-davies: 2 + jose-emilio-munoz-lopez: 1 + julie-gaskin: 5 + julio-suarez: 6 + jun-he: 1 + kasper-mecklenburg: 1 + kieran-hejmadi: 10 + koki-mitsunami: 2 + konstantinos-margaritis: 8 + kristof-beyls: 1 + leandro-nunes: 1 + liliya-wu: 1 + mark-thurman: 1 + masoud-koleini: 1 + mathias-brossard: 1 + michael-hall: 5 + na-li: 1 + nader-zouaoui: 2 + nikhil-gupta: 1 + nina-drozd: 1 + nobel-chowdary-mandepudi: 6 + odin-shen: 7 + owen-wu: 2 + pareena-verma: 44 + paul-howard: 3 + pranay-bakre: 5 + preema-merlin-dsouza: 1 + przemyslaw-wirkus: 2 + rin-dobrescu: 1 + roberto-lopez-mendez: 2 + ronan-synnott: 45 + shuheng-deng: 1 + thirdai: 1 + tianyu-li: 2 + tom-pilar: 1 + uma-ramalingam: 1 + varun-chari: 2 + visualsilicon: 1 + willen-yang: 1 + ying-yu: 2 + yiyang-fan: 1 + zach-lasiuk: 2 + zhengjun-xing: 2 + issues: + avg_close_time_hrs: 0 + num_issues: 12 + percent_closed_vs_total: 0.0 From d08cb81b3a826fd12144701841ac0848c57f79cf Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Mon, 2 Jun 2025 14:23:19 +0000 Subject: [PATCH 26/31] Fixed index and overview --- .../arm_linux_page_size/_index.md | 4 +- .../arm_linux_page_size/overview.md | 60 ++++++++++--------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md index cec85fb08f..823d400381 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/_index.md @@ -36,11 +36,11 @@ further_reading: link: https://amperecomputing.com/tuning-guides/understanding-memory-page-sizes-on-arm64 type: documentation - resource: - title: Page (computer memory) – Wikipedia + title: Computer Memory, Wikipedia page link: https://en.wikipedia.org/wiki/Page_(computer_memory) type: documentation - resource: - title: Debian Kernel Source Guide + title: Network setup, Debian Kernel Source Guide link: https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_kernel_source type: documentation - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md index c52e626ce6..eaf9fedc65 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md @@ -4,47 +4,38 @@ weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- -Before you modify the Linux kernel page size on an Arm system, it's essential to understand what a memory page is - and why its size affects performance. + +## Background + +Before you modify the Linux kernel page size on an Arm system, you need to know what a page is, why page size matters, and how page size directly affects performance. ## What’s a memory page? -Think of your computer’s memory like a big sheet of graph paper. In modern systems, memory is divided into chunks called pages. Each page is one square on that sheet. +Think of your computer’s memory like a big sheet of graph paper. Each page is one square on that sheet. -The page table is the legend that identifies which square (virtual address) maps to which spot in physical RAM. Each page represents a fixed-size block of virtual memory that maps to physical memory through the page table. This mapping is managed by the operating system and the CPU’s Memory Management Unit (MMU). +The page table is the legend that identifies which square, the *virtual address*, maps to which corresponding spot in physical RAM. Each page represents a fixed-size block of virtual memory that maps to physical memory through the page table. This mapping is managed by the operating system and the CPU’s Memory Management Unit (MMU). -To keep track of these mappings efficiently, CPUs use a fast lookup cache called the Translation Lookaside Buffer (TLB). Every memory access requires a TLB hit or a page table lookup. If the page isn't already in the TLB, the CPU must fetch the mapping from memory—a process that adds latency and stalls execution. +To keep track of these mappings efficiently, CPUs use a fast lookup cache called the Translation Lookaside Buffer (TLB). Every access first attempts a TLB hit; a miss forces a page table lookup. If the page isn't already in the TLB, the CPU must fetch the mapping from memory—a process that adds latency and stalls execution. -On x86 systems, 4K pages are the standard, while Arm-based systems support multiple page sizes - typically 4K, 16K, or 64K. This flexibility allows developers to fine tune performance for specific workloads. +On x86 systems, 4K pages are the standard, while Arm-based systems support multiple page sizes - typically 4K, 16K, or 64K. This flexibility allows developers to fine-tune performance for specific workloads. This Learning Path explains how to switch between 4K and 64K pages on different Linux distributions. ## How does the CPU locate data in memory? -When your program accesses a memory address, the CPU doesn’t directly fetch data from RAM or swap space for it. That would be slow, unsafe, and inefficient. +When your program accesses a memory address, the CPU doesn’t directly fetch data from RAM or swap space for it. That would be slow, unsafe, and inefficient. Direct physical access would bypass isolation and invalidate caches. Instead, it goes through the virtual memory system, where it asks for a specific chunk of memory called a page. Pages map virtual memory locations to physical memory locations in RAM or swap space. -## How page size affects performance -Changing the page size has a cascading effect on system performance: - -TLB Pressure: With smaller pages (e.g., 4K), more entries are needed to map the same amount of memory. This increases TLB misses and lookup overhead. Larger pages (e.g., 64K) reduce the number of entries and can lower TLB pressure. - -Memory Fragmentation: Smaller pages reduce internal fragmentation (wasted memory per allocation). Larger pages can increase waste if your workloads don’t use the full page. - -I/O Efficiency: Disk I/O and DMA operations often perform better with larger pages, because fewer page boundaries are crossed during transfers. - -## How should I select the memory page size? - -Points to consider when thinking about page size: - -- **4K pages** are the safe, default choice. They let you use memory in small slices and keep waste low. Since they are smaller, you need more of them when handling larger memory footprint applications. This creates more overhead for the operating system to manage, but it may be worth it for the flexibility. They are great for applications that need to access small bits of data frequently, like web servers or databases with lots of small transactions. +## How does page size affect performance? -- **64K pages** shine when you work with large, continuous data such as video frames or large database caches because they cut down on management overhead. They will use more memory if you don’t use the whole page, but they can also speed up access times for large data sets. +Changing the page size has a cascading effect on system performance: -Choosing the right page size depends on how your application uses memory, as both the data size and retrieval patterns of the data you are working with are influencing factors. Benchmark different options under real-world workloads to determine which delivers better performance. +**Memory Fragmentation**: Smaller pages reduce internal fragmentation, which is the wasted memory per allocation. Larger pages can increase waste if your workloads don’t use the full page. -In addition, the page size may need to be reviewed over time as the application, memory usage patterns, and data sizes may change. +**TLB Pressure**: With smaller pages such as 4K, more entries are needed to map the same amount of memory. This increases TLB misses and page-table-walk overhead. Larger pages, such as 64K, reduce the number of entries and can lower TLB pressure. +**I/O Efficiency**: Disk I/O and DMA operations often perform better with larger pages, because fewer page boundaries are crossed during transfers (fewer interrupts, larger DMA bursts). ### Trade-offs to consider @@ -53,16 +44,29 @@ In addition, the page size may need to be reviewed over time as the application, | **Size** | Small “bricks” (4 KB each) | Big “bricks” (64 KB each) | | **Flexibility** | Best for flexibility and compatibility | Best for large, contiguous memory workloads | | **Efficiency** | Needs more entries (more bookkeeping) | Needs fewer entries (less bookkeeping) | -| **Waste** | At most 4 KB unused per page | Up to 64 KB unused if not fully used | +| **Waste** | At most 4 KB unused per page | Up to ~63 KB unused if not fully used | +| **TLB reach** | Lower, more misses | Higher, fewer misses | + +This Learning Path covers switching between 4K and 64K page sizes because these are supported by most Arm Linux distributions. In some cases, you may find that 16K page size is a sweet spot for your application, but Linux kernel, hardware, and software support is limited. One example of 16K page size is [Asahi Linux](https://asahilinux.org/). + +## How do I select the memory page size? + +Points to consider when thinking about page size: + +- **4K pages** are the safe, default choice. They let you use memory in small slices and keep waste low. Since they are smaller, you need more of them when handling larger memory footprint applications. This creates more overhead for the operating system to manage, but it may be worth it for the flexibility. They are great for applications that need to access small bits of data frequently, like web servers or databases with lots of small transactions. + +- **64K pages** shine when you work with large, contiguous data such as video frames or large database caches because they cut down on management overhead. They will use more memory if you don’t use the whole page, but they can also speed up access times for large data sets. + +Choosing the right page size depends on how your application uses memory, as both the data size and retrieval patterns of the data you are working with are influencing factors. Benchmark different options under real-world workloads to determine which delivers better performance. -This Learning Path covers switching between 4K and 64K page sizes because these are supported by most Arm Linux distributions. In some cases, you may find that 16K page size is a sweet spot for your application, but Linux kernel, hardware, and software support is limited. One example of 16k page size is [Asahi Linux](https://asahilinux.org/). +In addition, the page size might need to be reviewed over time as the application, memory usage patterns, and data sizes might change. -## Experiment to see which works best for your workload +## Try out a page size for your workload The best way to determine the impact of page size on application performance is to experiment with both options. -{{% notice Do not test on Production%}} -Modifying the Linux kernel page size can lead to system instability or failure. Perform testing in a non-production environment before applying to production systems. +{{% notice Warning%}} +Do not test in a production environment - modifying the Linux kernel page size can lead to system instability or failure. Perform testing in a non-production environment before applying to production systems. {{% /notice %}} Select the Arm Linux distribution you are using to find out how to install the 64K page size kernel. From c0385649a09ca3c48f2bc26bed26e2017858f9bb Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 2 Jun 2025 11:24:29 -0500 Subject: [PATCH 27/31] Add Hugging Face tag to Learning Paths at https://huggingface.co/Arm --- .../embedded-and-microcontrollers/_index.md | 1 + .../llama-python-cpu/_index.md | 2 +- .../rpi-llama3/_index.md | 1 + .../yolo-on-himax/_index.md | 2 ++ content/learning-paths/laptops-and-desktops/_index.md | 11 ++++++----- .../mobile-graphics-and-gaming/_index.md | 9 +++++---- .../_index.md | 2 ++ .../_index.md | 2 ++ .../_index.md | 2 ++ .../profiling-ml-on-arm/_index.md | 2 ++ .../_index.md | 1 + .../servers-and-cloud-computing/_index.md | 1 + .../benchmark-nlp/_index.md | 1 + .../servers-and-cloud-computing/llama-cpu/_index.md | 2 +- .../servers-and-cloud-computing/milvus-rag/_index.md | 2 ++ .../nlp-hugging-face/_index.md | 1 + .../pytorch-llama/_index.md | 2 +- .../servers-and-cloud-computing/rag/_index.md | 1 + .../servers-and-cloud-computing/rtp-llm/_index.md | 2 +- .../servers-and-cloud-computing/vllm/_index.md | 2 +- .../servers-and-cloud-computing/whisper/_index.md | 2 ++ 21 files changed, 37 insertions(+), 14 deletions(-) diff --git a/content/learning-paths/embedded-and-microcontrollers/_index.md b/content/learning-paths/embedded-and-microcontrollers/_index.md index 6cf07146bb..3c103cb3c0 100644 --- a/content/learning-paths/embedded-and-microcontrollers/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/_index.md @@ -61,6 +61,7 @@ tools_software_languages_filter: - GitHub: 3 - GitLab: 1 - Himax SDK: 1 +- Hugging Face: 3 - IP Explorer: 4 - Jupyter Notebook: 1 - K3s: 1 diff --git a/content/learning-paths/embedded-and-microcontrollers/llama-python-cpu/_index.md b/content/learning-paths/embedded-and-microcontrollers/llama-python-cpu/_index.md index 89150c9af4..7f43f5a1dc 100644 --- a/content/learning-paths/embedded-and-microcontrollers/llama-python-cpu/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/llama-python-cpu/_index.md @@ -28,7 +28,7 @@ tools_software_languages: - GenAI - Raspberry Pi - Python - + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/embedded-and-microcontrollers/rpi-llama3/_index.md b/content/learning-paths/embedded-and-microcontrollers/rpi-llama3/_index.md index 03cb02bf51..83920389c6 100644 --- a/content/learning-paths/embedded-and-microcontrollers/rpi-llama3/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/rpi-llama3/_index.md @@ -31,6 +31,7 @@ tools_software_languages: - LLM - GenAI - Raspberry Pi + - Hugging Face diff --git a/content/learning-paths/embedded-and-microcontrollers/yolo-on-himax/_index.md b/content/learning-paths/embedded-and-microcontrollers/yolo-on-himax/_index.md index 71ee4e97ad..54c9844ecf 100644 --- a/content/learning-paths/embedded-and-microcontrollers/yolo-on-himax/_index.md +++ b/content/learning-paths/embedded-and-microcontrollers/yolo-on-himax/_index.md @@ -32,6 +32,8 @@ armips: tools_software_languages: - Himax SDK - Python + - Hugging Face + operatingsystems: - Linux - macOS diff --git a/content/learning-paths/laptops-and-desktops/_index.md b/content/learning-paths/laptops-and-desktops/_index.md index d061cdb95b..b3aa2da78f 100644 --- a/content/learning-paths/laptops-and-desktops/_index.md +++ b/content/learning-paths/laptops-and-desktops/_index.md @@ -10,11 +10,11 @@ operatingsystems_filter: - Android: 2 - ChromeOS: 1 - Linux: 31 -- macOS: 7 -- Windows: 43 +- macOS: 8 +- Windows: 44 subjects_filter: - CI-CD: 5 -- Containers and Virtualization: 5 +- Containers and Virtualization: 6 - Migration to Arm: 28 - ML: 2 - Performance and Architecture: 25 @@ -39,7 +39,7 @@ tools_software_languages_filter: - Coding: 16 - CSS: 1 - Daytona: 1 -- Docker: 4 +- Docker: 5 - GCC: 10 - Git: 1 - GitHub: 3 @@ -52,6 +52,7 @@ tools_software_languages_filter: - JavaScript: 2 - Kubernetes: 1 - Linux: 1 +- LLM: 1 - LLVM: 1 - llvm-mca: 1 - MSBuild: 1 @@ -62,7 +63,7 @@ tools_software_languages_filter: - ONNX Runtime: 1 - OpenCV: 1 - perf: 4 -- Python: 5 +- Python: 6 - Qt: 2 - Remote.It: 1 - RME: 1 diff --git a/content/learning-paths/mobile-graphics-and-gaming/_index.md b/content/learning-paths/mobile-graphics-and-gaming/_index.md index 2047161d94..59b948e122 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/_index.md @@ -9,7 +9,7 @@ key_ip: - Mali maintopic: true operatingsystems_filter: -- Android: 30 +- Android: 31 - Linux: 27 - macOS: 12 - Windows: 11 @@ -17,7 +17,7 @@ subjects_filter: - Gaming: 6 - Graphics: 6 - ML: 10 -- Performance and Architecture: 30 +- Performance and Architecture: 31 subtitle: Optimize Android apps and build faster games using cutting-edge Arm tech title: Mobile, Graphics, and Gaming tools_software_languages_filter: @@ -32,9 +32,9 @@ tools_software_languages_filter: - Arm Performance Studio: 2 - assembly: 1 - Bazel: 1 -- C: 1 +- C: 2 - C#: 3 -- C++: 8 +- C++: 9 - C/C++: 1 - CCA: 1 - Clang: 10 @@ -45,6 +45,7 @@ tools_software_languages_filter: - GCC: 10 - GenAI: 2 - GoogleTest: 1 +- Hugging Face: 5 - Java: 6 - KleidiAI: 1 - Kotlin: 7 diff --git a/content/learning-paths/mobile-graphics-and-gaming/build-android-chat-app-using-onnxruntime/_index.md b/content/learning-paths/mobile-graphics-and-gaming/build-android-chat-app-using-onnxruntime/_index.md index cdcdd640e1..b8ac59ad38 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/build-android-chat-app-using-onnxruntime/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/build-android-chat-app-using-onnxruntime/_index.md @@ -26,6 +26,8 @@ tools_software_languages: - ONNX Runtime - Android - Mobile + - Hugging Face + operatingsystems: - Windows - Android diff --git a/content/learning-paths/mobile-graphics-and-gaming/build-llama3-chat-android-app-using-executorch-and-xnnpack/_index.md b/content/learning-paths/mobile-graphics-and-gaming/build-llama3-chat-android-app-using-executorch-and-xnnpack/_index.md index 8be35d1194..878514a0c7 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/build-llama3-chat-android-app-using-executorch-and-xnnpack/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/build-llama3-chat-android-app-using-executorch-and-xnnpack/_index.md @@ -35,6 +35,8 @@ tools_software_languages: - Java - C++ - Python + - Hugging Face + operatingsystems: - macOS - Android diff --git a/content/learning-paths/mobile-graphics-and-gaming/kleidiai-on-android-with-mediapipe-and-xnnpack/_index.md b/content/learning-paths/mobile-graphics-and-gaming/kleidiai-on-android-with-mediapipe-and-xnnpack/_index.md index f0c8835231..59f5b162c7 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/kleidiai-on-android-with-mediapipe-and-xnnpack/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/kleidiai-on-android-with-mediapipe-and-xnnpack/_index.md @@ -31,6 +31,8 @@ tools_software_languages: - Android NDK - Bazel - XNNPACK + - Hugging Face + operatingsystems: - Linux diff --git a/content/learning-paths/mobile-graphics-and-gaming/profiling-ml-on-arm/_index.md b/content/learning-paths/mobile-graphics-and-gaming/profiling-ml-on-arm/_index.md index 0854d2f8d7..a6766f609c 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/profiling-ml-on-arm/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/profiling-ml-on-arm/_index.md @@ -29,6 +29,8 @@ armips: tools_software_languages: - Android Studio - LiteRT + - Hugging Face + operatingsystems: - Android - Linux diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md index 4b7ca58591..87385c6769 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/_index.md @@ -34,6 +34,7 @@ armips: tools_software_languages: - C++ - Python + - Hugging Face operatingsystems: - Linux diff --git a/content/learning-paths/servers-and-cloud-computing/_index.md b/content/learning-paths/servers-and-cloud-computing/_index.md index 1ba6abdd1f..35e65e6093 100644 --- a/content/learning-paths/servers-and-cloud-computing/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/_index.md @@ -95,6 +95,7 @@ tools_software_languages_filter: - GoogleTest: 1 - HammerDB: 1 - Herd7: 1 +- Hugging Face: 9 - InnoDB: 1 - Intrinsics: 1 - Java: 3 diff --git a/content/learning-paths/servers-and-cloud-computing/benchmark-nlp/_index.md b/content/learning-paths/servers-and-cloud-computing/benchmark-nlp/_index.md index a833648990..7f91f0ce13 100644 --- a/content/learning-paths/servers-and-cloud-computing/benchmark-nlp/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/benchmark-nlp/_index.md @@ -25,6 +25,7 @@ operatingsystems: tools_software_languages: - Python - PyTorch + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/llama-cpu/_index.md b/content/learning-paths/servers-and-cloud-computing/llama-cpu/_index.md index 686f36cb46..75904fd24f 100644 --- a/content/learning-paths/servers-and-cloud-computing/llama-cpu/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/llama-cpu/_index.md @@ -30,7 +30,7 @@ tools_software_languages: - GenAI - Python - Demo - + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/milvus-rag/_index.md b/content/learning-paths/servers-and-cloud-computing/milvus-rag/_index.md index af5a970ed4..fc2f68b7d8 100644 --- a/content/learning-paths/servers-and-cloud-computing/milvus-rag/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/milvus-rag/_index.md @@ -25,6 +25,8 @@ tools_software_languages: - Python - GenAI - RAG + - Hugging Face + operatingsystems: - Linux diff --git a/content/learning-paths/servers-and-cloud-computing/nlp-hugging-face/_index.md b/content/learning-paths/servers-and-cloud-computing/nlp-hugging-face/_index.md index 5481736d3c..efddeacee2 100644 --- a/content/learning-paths/servers-and-cloud-computing/nlp-hugging-face/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/nlp-hugging-face/_index.md @@ -24,6 +24,7 @@ operatingsystems: tools_software_languages: - Python - PyTorch + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/pytorch-llama/_index.md b/content/learning-paths/servers-and-cloud-computing/pytorch-llama/_index.md index 1e79d82bcc..59ac9e3129 100644 --- a/content/learning-paths/servers-and-cloud-computing/pytorch-llama/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/pytorch-llama/_index.md @@ -32,7 +32,7 @@ tools_software_languages: - GenAI - Python - PyTorch - + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/rag/_index.md b/content/learning-paths/servers-and-cloud-computing/rag/_index.md index 46fefc235b..5687564dc8 100644 --- a/content/learning-paths/servers-and-cloud-computing/rag/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/rag/_index.md @@ -34,6 +34,7 @@ tools_software_languages: - Streamlit - Google Axion - Demo + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/rtp-llm/_index.md b/content/learning-paths/servers-and-cloud-computing/rtp-llm/_index.md index cb0bb86cc5..ebd2ade135 100644 --- a/content/learning-paths/servers-and-cloud-computing/rtp-llm/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/rtp-llm/_index.md @@ -27,7 +27,7 @@ tools_software_languages: - LLM - GenAI - Python - + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/vllm/_index.md b/content/learning-paths/servers-and-cloud-computing/vllm/_index.md index 13ee6081d4..4ab33e47ca 100644 --- a/content/learning-paths/servers-and-cloud-computing/vllm/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/vllm/_index.md @@ -28,7 +28,7 @@ tools_software_languages: - LLM - GenAI - Python - + - Hugging Face further_reading: - resource: diff --git a/content/learning-paths/servers-and-cloud-computing/whisper/_index.md b/content/learning-paths/servers-and-cloud-computing/whisper/_index.md index 55d39188e0..8f05259578 100644 --- a/content/learning-paths/servers-and-cloud-computing/whisper/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/whisper/_index.md @@ -31,6 +31,8 @@ tools_software_languages: - Python - Whisper - Demo + - Hugging Face + cloud_service_providers: AWS From 53548ab63538f220b7258352daf82ac92da9f486 Mon Sep 17 00:00:00 2001 From: Maddy Underwood Date: Mon, 2 Jun 2025 18:50:58 +0000 Subject: [PATCH 28/31] Content review --- .../arm_linux_page_size/centos.md | 12 +++++----- .../arm_linux_page_size/debian.md | 12 +++++----- .../arm_linux_page_size/overview.md | 10 ++++---- .../arm_linux_page_size/ubuntu.md | 24 +++++++++---------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/centos.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/centos.md index 2906c9f9ce..8191301d2c 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/centos.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/centos.md @@ -5,11 +5,11 @@ weight: 5 layout: learningpathall --- -Follow the steps below to install a 64K page size kernel on [CentOS 9 or newer](https://www.centos.org/download/). +Follow the steps below to install a 64K page size kernel on [CentOS 9 or later](https://www.centos.org/download/). ## Verify the current page size -Verify you’re using a 4 KB pagesize kernel by entering the following commands: +Verify you’re using a 4KB pagesize kernel by entering the following commands: ```bash getconf PAGESIZE @@ -25,9 +25,9 @@ The output should be similar to below. The kernel flavor (the string after the v The 4096 indicates the current page size is 4KB. If you see a value that is different, you are already using a page size other than 4096 (4K). On Arm systems, the valid options are 4K, 16K, and 64K. -## Install the 64k kernel package: +## Install the 64K kernel package: -Enter the command below to install the 64k kernel: +Enter the command below to install the 64K kernel: ```bash sudo dnf -y install kernel-64k @@ -68,7 +68,7 @@ The output shows the 64k kernel is running: 5.14.0-583.el9.aarch64+64k ``` -## Revert back to the 4K kernel +## Revert to the 4K kernel To revert to the original 4K kernel, enter the following: @@ -100,7 +100,7 @@ sudo grubby --set-default "$k4" sudo reboot ``` -Upon reboot, verify you’re on a 4 KB pagesize kernel by entering the following commands: +Upon reboot, verify you’re on a 4KB pagesize kernel by entering the following commands: ```bash getconf PAGESIZE diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/debian.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/debian.md index 496c381307..487bb9ef7b 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/debian.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/debian.md @@ -5,7 +5,7 @@ weight: 4 layout: learningpathall --- -Follow the steps below to install a 64K page size kernel on [Debian 11 “Bullseye” or newer](https://www.debian.org/releases/bullseye/). +Follow the steps below to install a 64K page size kernel on [Debian 11 “Bullseye” or later](https://www.debian.org/releases/bullseye/). Debian does not provide a 64K kernel package, so you will need to compile it from source. @@ -17,7 +17,7 @@ The instructions below use the Debian source package. ## Verify the current page size -Verify you’re using a 4 KB pagesize kernel by entering the following commands: +Verify you’re using a 4KB pagesize kernel by entering the following commands: ```bash getconf PAGESIZE @@ -100,11 +100,11 @@ The output shows the 64k kernel is running: 6.12.22-64k ``` -This indicates the current page size is 64K, and you are using the new custom made 64k kernel. +This indicates the current page size is 64K, and you are using the new custom-built 64k kernel. -## Revert back to the 4K kernel +## Revert to the 4K kernel -To revert back to the kernel we started with, enter: +To revert to the kernel we started with, enter: ```bash dpkg-query -W -f='${Package}\n' 'linux-image-*-64k*' 'linux-headers-*-64k*' \ @@ -127,4 +127,4 @@ The output should be similar to below -- the full kernel name may vary, but the 6.1.0-34-cloud-arm64 ``` -The 4096 indicates the current page size has been reverted to 4KB. \ No newline at end of file +The 4096 indicates the current page size has been reverted to 4 KB. \ No newline at end of file diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md index eaf9fedc65..8eeced1079 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/overview.md @@ -1,19 +1,19 @@ --- -title: Why does page size matter? +title: Overview weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Background +## Page size fundamentals -Before you modify the Linux kernel page size on an Arm system, you need to know what a page is, why page size matters, and how page size directly affects performance. +Before you modify the Linux kernel page size on an Arm system, you need to know what a page is, why size matters, and how size affects performance. ## What’s a memory page? Think of your computer’s memory like a big sheet of graph paper. Each page is one square on that sheet. -The page table is the legend that identifies which square, the *virtual address*, maps to which corresponding spot in physical RAM. Each page represents a fixed-size block of virtual memory that maps to physical memory through the page table. This mapping is managed by the operating system and the CPU’s Memory Management Unit (MMU). +The page table acts like a legend on the map, showing which virtual address square corresponds to a specific location in physical RAM. This mapping is managed by the operating system and the CPU’s Memory Management Unit (MMU). To keep track of these mappings efficiently, CPUs use a fast lookup cache called the Translation Lookaside Buffer (TLB). Every access first attempts a TLB hit; a miss forces a page table lookup. If the page isn't already in the TLB, the CPU must fetch the mapping from memory—a process that adds latency and stalls execution. @@ -66,7 +66,7 @@ In addition, the page size might need to be reviewed over time as the applicatio The best way to determine the impact of page size on application performance is to experiment with both options. {{% notice Warning%}} -Do not test in a production environment - modifying the Linux kernel page size can lead to system instability or failure. Perform testing in a non-production environment before applying to production systems. +Do not modify the Linux kernel page size in a production environment. It can lead to system instability or failure. Perform testing in a non-production environment before applying to production systems. {{% /notice %}} Select the Arm Linux distribution you are using to find out how to install the 64K page size kernel. diff --git a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/ubuntu.md b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/ubuntu.md index 07cf938a72..5b55c62b93 100644 --- a/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/ubuntu.md +++ b/content/learning-paths/servers-and-cloud-computing/arm_linux_page_size/ubuntu.md @@ -5,11 +5,11 @@ weight: 3 layout: learningpathall --- -Follow the steps below to install a 64K page size kernel on [Ubuntu 22.04 LTS or newer](https://releases.ubuntu.com/22.04/). +To install a 64 K page size kernel on [Ubuntu 22.04 LTS or later](https://releases.ubuntu.com/22.04/), follow the steps below. ## Verify the current page size -Verify you’re using a 4 KB pagesize kernel by entering the following commands: +Verify you’re using a 4KB base-page-size kernel by entering the following commands: ```bash getconf PAGESIZE @@ -23,7 +23,7 @@ The output should be similar to below. The kernel flavor (the string after the v 6.1.0-34-cloud-arm64 ``` -The 4096 indicates the current page size is 4KB. If you see a value that is different, you are already using a page size other than 4096 (4K). On Arm systems, the valid options are 4K, 16K, and 64K. +The 4096 indicates the current page size is 4 KB. If you see a value that is different, you are already using a page size other than 4096 (4K). On Arm systems, the valid options are 4K, 16K, and 64K. ## Install the required dependencies and the 64K kernel @@ -34,15 +34,15 @@ sudo apt-get -y update sudo apt-get -y install git build-essential autoconf automake libtool gdb wget linux-generic-64k ``` -Next, run the following command to configure grub to load the 64K kernel by default: +Next, run the following command to configure GRUB to load the 64K kernel by default: ```bash echo "GRUB_FLAVOUR_ORDER=generic-64k" | sudo tee /etc/default/grub.d/local-order.cfg ``` -## Update grub and reboot +## Update GRUB and reboot -Commit your changes to grub and reboot by entering the following: +Commit your changes to GRUB and reboot by entering the following: ```bash sudo update-grub @@ -56,32 +56,32 @@ getconf PAGESIZE uname -r ``` -The output shows the 64k kernel is running: +The output shows the 64K kernel is running: ```output 65536 6.8.0-59-generic-64k ``` -This indicates the current page size is 64K and you are running the new 64K kernel. +This indicates that the current page size is 64K and that you are running the new 64K kernel. -## Revert back to the 4K kernel +## Revert to the 4K kernel -To revert back to the original 4K kernel, run the following commands: +To revert to the original 4K kernel, run the following commands: ```bash echo "GRUB_FLAVOUR_ORDER=generic" | sudo tee /etc/default/grub.d/local-order.cfg sudo update-grub sudo reboot ``` -Upon reboot, verify you’re on a 4 KB pagesize kernel by entering the following commands: +Upon reboot, verify you’re on a 4KB pagesize kernel by entering the following commands: ```bash getconf PAGESIZE uname -r ``` -The output shows the 4k kernel is running: +The output shows the 4K kernel is running: ```output 4096 From 37416f58b5a69565ea6c11ecdc46f55c03756439 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 2 Jun 2025 15:45:33 -0500 Subject: [PATCH 29/31] spelling updates --- .wordlist.txt | 14 +++++++++++++- .../cross-platform/mcp-ai-agent/intro-to-mcp-uv.md | 2 +- .../cross-platform/mcp-ai-agent/mcp-server.md | 2 +- .../3-converting-model.md | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.wordlist.txt b/.wordlist.txt index 19e20f6759..86d16cf9d3 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -4184,4 +4184,16 @@ subgenre submodule subword techcrunch -transformative \ No newline at end of file +transformative +Aude +Gian +Iodice +SmolLM +VME +Vuilliomenet +cpus +fLO +invalidations +libtensorflowlite +macos +multithreaded \ No newline at end of file diff --git a/content/learning-paths/cross-platform/mcp-ai-agent/intro-to-mcp-uv.md b/content/learning-paths/cross-platform/mcp-ai-agent/intro-to-mcp-uv.md index e1bd041ca8..94ff72c1f7 100644 --- a/content/learning-paths/cross-platform/mcp-ai-agent/intro-to-mcp-uv.md +++ b/content/learning-paths/cross-platform/mcp-ai-agent/intro-to-mcp-uv.md @@ -17,7 +17,7 @@ The Model Context Protocol (MCP) is an open specification designed to connect La - **Security by design:** MCP encourages running servers inside your own infrastructure, so sensitive data stays within your infrastructure unless explicitly shared. -- **Cross-ecosystem momentum:** recent roll-outs from an official C# SDK to Wix’s production MCP server and Microsoft’s Azure support show the MCP spec is gathering real-world traction. +- **Cross-ecosystem momentum:** recent roll-outs from an official C# SDK to Wix's production MCP server and Microsoft’s Azure support show the MCP spec is gathering real-world traction. ## What is uv? diff --git a/content/learning-paths/cross-platform/mcp-ai-agent/mcp-server.md b/content/learning-paths/cross-platform/mcp-ai-agent/mcp-server.md index caada03d31..a05eb66864 100644 --- a/content/learning-paths/cross-platform/mcp-ai-agent/mcp-server.md +++ b/content/learning-paths/cross-platform/mcp-ai-agent/mcp-server.md @@ -115,7 +115,7 @@ INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) You will now use ngrok to expose your locally running MCP server to the public internet over HTTPS. -1. Add ngrok’s repo to the apt package manager and install: +1. Add ngrok's repo to the apt package manager and install: ```bash curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \ | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \ diff --git a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md index 00e45fc53a..af2aa9f56d 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md +++ b/content/learning-paths/mobile-graphics-and-gaming/run-stable-audio-open-small-with-lite-rt/3-converting-model.md @@ -88,7 +88,7 @@ python3 ./scripts/export_conditioners.py --model_config "$WORKSPACE/model_config ``` -After successful conversion, you now have a `conditioners_tflite` directory containing models with different precisions (e.g., float16, float32). +After successful conversion, you now have a `conditioners_tflite` directory containing models with different precision (e.g., float16, float32). You will be using the float32.tflite model for on-device inference. From 926a163ce7752736435ea8e6a6c28465db3cf737 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 2 Jun 2025 15:53:55 -0500 Subject: [PATCH 30/31] spelling updates --- .wordlist.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.wordlist.txt b/.wordlist.txt index 86d16cf9d3..96d2c99b80 100644 --- a/.wordlist.txt +++ b/.wordlist.txt @@ -4196,4 +4196,8 @@ fLO invalidations libtensorflowlite macos -multithreaded \ No newline at end of file +multithreaded +Wix's +ngrok's +qs +qu \ No newline at end of file From 3646adea849cabb842ca171df12451206d4f3f54 Mon Sep 17 00:00:00 2001 From: Maddy Underwood <167196745+madeline-underwood@users.noreply.github.com> Date: Mon, 2 Jun 2025 21:35:33 +0000 Subject: [PATCH 31/31] terminology fixes --- .../false-sharing-arm-spe/_index.md | 2 +- .../false-sharing-arm-spe/how-to-1.md | 12 ++++++------ .../false-sharing-arm-spe/how-to-2.md | 10 +++++----- .../false-sharing-arm-spe/how-to-3.md | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md index bed359cb52..f56a19089e 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/_index.md @@ -1,5 +1,5 @@ --- -title: Analyze cache behavior with perf c2c on Arm +title: Analyze cache behavior with Perf C2C on Arm minutes_to_complete: 15 diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md index 3135318ea4..7cea8d6ff9 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-1.md @@ -9,7 +9,7 @@ layout: learningpathall ## What is the Arm Statistical Profiling Extension (SPE), and what does it do? {{% notice Learning goal%}} -In this section, you’ll learn how to use SPE to gain low-level insight into how your applications interact with the CPU. You’ll explore how to detect and resolve false sharing. By combining cache line alignment techniques with `perf c2c`, you can identify inefficient memory access patterns and significantly boost CPU performance on Arm-based systems. +In this section, you’ll learn how to use SPE to gain low-level insight into how your applications interact with the CPU. You’ll explore how to detect and resolve false sharing. By combining cache line alignment techniques with Perf C2C, you can identify inefficient memory access patterns and significantly boost CPU performance on Arm-based systems. {{% /notice %}} Arm’s Statistical Profiling Extension (SPE) gives you a powerful way to understand what’s really happening inside your applications at the microarchitecture level. @@ -27,11 +27,11 @@ SPE integrates sampling directly into the CPU pipeline, triggering on individual This enables fine-grained, precise cache analysis. -SPE helps developers optimize user-space applications by showing where cache latency or memory access delays are happening. Importantly, cache statistics are enabled with the Linux `perf` cache-to-cache (C2C) utility. +SPE helps developers optimize user-space applications by showing where cache latency or memory access delays are happening. Importantly, cache statistics are enabled with the Linux Perf Cache-to-Cache (C2C) utility. For more information, see the [*Arm Statistical Profiling Extension: Performance Analysis Methodology White Paper*](https://developer.arm.com/documentation/109429/latest/). -In this Learning Path, you will use SPE and `perf c2c` to diagnose a cache issue for an application running on a Neoverse server. +In this Learning Path, you will use SPE and Perf C2C to diagnose a cache issue for an application running on a Neoverse server. ## What is false sharing and why should I care about it? @@ -47,7 +47,7 @@ The diagram below, taken from the Arm SPE white paper, provides a visual represe ## Why false sharing is hard to spot and fix -False sharing often hides behind seemingly ordinary writes, making it tricky to catch without tooling. The best time to eliminate it is early, while reading or refactoring code, by padding or realigning variables before compilation. But in large, highly concurrent C++ codebases, memory is frequently accessed through multiple layers of abstraction. Threads may interact with shared data indirectly, causing subtle cache line overlaps that don’t become obvious until performance profiling reveals unexpected coherence misses. Tools like `perf c2c` can help uncover these issues by tracing cache-to-cache transfers and identifying hot memory locations affected by false sharing. +False sharing often hides behind seemingly ordinary writes, making it tricky to catch without tooling. The best time to eliminate it is early, while reading or refactoring code, by padding or realigning variables before compilation. But in large, highly concurrent C++ codebases, memory is frequently accessed through multiple layers of abstraction. Threads may interact with shared data indirectly, causing subtle cache line overlaps that don’t become obvious until performance profiling reveals unexpected coherence misses. Tools like Perf C2C can help uncover these issues by tracing cache-to-cache transfers and identifying hot memory locations affected by false sharing. From a source-code perspective nothing is “shared,” but at the hardware level both variables are implicitly coupled by their physical location. @@ -101,7 +101,7 @@ int main() { The output below shows that the variables e, f, g and h occur at least 64 bytes apart in the byte-addressable architecture. Whereas variables a, b, c, and d occur 8 bytes apart, occupying the same cache line. -Although this is a simplified example, in a production workload there might be several layers of indirection that unintentionally result in false sharing. For these complex cases, use `perf c2c` to trace cache line interactions and pinpoint the root cause of performance issues. +Although this is a simplified example, in a production workload there might be several layers of indirection that unintentionally result in false sharing. For these complex cases, use Perf C2C to trace cache line interactions and pinpoint the root cause of performance issues. ```output Without Alignment can occupy same cache line @@ -125,6 +125,6 @@ Address of AlignedType h - 0xffffeb6c6080 In this section, you explored what Arm SPE is and why it offers a deeper, more accurate view of application performance. You also examined how a subtle issue like false sharing can impact multithreaded code, and how to mitigate it using data alignment techniques in C++. -Next, you'll set up your environment and use `perf c2c` to capture and analyze real-world cache behavior on an Arm Neoverse system. +Next, you'll set up your environment and use Perf C2C to capture and analyze real-world cache behavior on an Arm Neoverse system. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md index 5d3497a614..d4dbd95c6f 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-2.md @@ -1,5 +1,5 @@ --- -title: Set up your environment for Arm SPE and perf c2c profiling +title: Set up your environment for Arm SPE and Perf C2C profiling weight: 3 ### FIXED, DO NOT MODIFY @@ -8,7 +8,7 @@ layout: learningpathall ## Select a system with SPE support {{% notice Learning goal%}} -Before you can start profiling cache behavior with Arm SPE and `perf c2c`, your system needs to meet a few requirements. In this section, you’ll learn how to check whether your hardware and kernel support Arm SPE, install the necessary tools, and validate that Linux perf can access the correct performance monitoring events. By the end, your environment will be ready to record and analyze memory access patterns using `perf c2c` on an Arm Neoverse system. +Before you can start profiling cache behavior with Arm SPE and Perf C2C, your system needs to meet a few requirements. In this section, you’ll learn how to check whether your hardware and kernel support Arm SPE, install the necessary tools, and validate that Linux Perf can access the correct performance monitoring events. By the end, your environment will be ready to record and analyze memory access patterns using `perf c2c` on an Arm Neoverse system. {{% /notice %}} SPE requires support from both your hardware and the operating system. Many cloud instances running Linux do not enable SPE-based profiling. @@ -38,7 +38,7 @@ sudo dnf update -y sudo dnf install perf git gcc cmake numactl-devel -y ``` -Linux perf is a userspace process and SPE is a hardware feature. The Linux kernel must be compiled with SPE support or the kernel module named `arm_spe_pmu` must be loaded. +Linux Perf is a userspace process and SPE is a hardware feature. The Linux kernel must be compiled with SPE support or the kernel module named `arm_spe_pmu` must be loaded. Run the following command to confirm if the SPE kernel module is loaded: @@ -86,7 +86,7 @@ Performance features: perf in userspace: disabled ``` -## Confirm Arm SPE is available to perf +## Confirm Arm SPE is available to Perf Run the following command to confirm SPE is available to `perf`: @@ -132,4 +132,4 @@ For more information about enabling SPE, see the [perf-arm-spe manual page](http ## Summary -You've confirmed that your system supports Arm SPE, installed the necessary tools, and verified that `perf` can access SPE events. You're now ready to start collecting detailed performance data using `perf c2c`. In the next section, you’ll run a real application and use `perf c2c` to capture cache sharing behavior and uncover memory performance issues. +You've confirmed that your system supports Arm SPE, installed the necessary tools, and verified that Perf C2C can access SPE events. You're now ready to start collecting detailed performance data using Perf C2C. In the next section, you’ll run a real application and use Perf C2C to capture cache sharing behavior and uncover memory performance issues. diff --git a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md index 1423cf59b4..0e587a2990 100644 --- a/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md +++ b/content/learning-paths/servers-and-cloud-computing/false-sharing-arm-spe/how-to-3.md @@ -9,7 +9,7 @@ layout: learningpathall ## Example code {{% notice Learning Goal%}} -The example code in this section demonstrates how false sharing affects performance by comparing two multithreaded programs; one with cache-aligned data structures, and one without. You’ll compile and run both versions, observe the runtime difference, and learn how memory layout affects cache behavior. This sets the stage for analyzing performance with `perf c2c` in the next section. +The example code in this section demonstrates how false sharing affects performance by comparing two multithreaded programs; one with cache-aligned data structures, and one without. You’ll compile and run both versions, observe the runtime difference, and learn how memory layout affects cache behavior. This sets the stage for analyzing performance with Perf C2C in the next section. {{% /notice %}} Use a text editor to copy and paste the C example code below into a file named `false_sharing_example.c`