From 55ae4a0955b611d15a035898a02614d102c7af01 Mon Sep 17 00:00:00 2001 From: kokmit01 Date: Wed, 16 Oct 2024 22:31:09 +0100 Subject: [PATCH 01/34] Add Build an Android chat app with ONNX Runtime generate() API Learning Path --- .../1-dev-env-setup.md | 61 ++++++++++++ .../2-build-onnxruntime.md | 52 ++++++++++ .../3-build-onnxruntime-generate-api.md | 43 +++++++++ .../4-run-benchmark-on-android.md | 91 ++++++++++++++++++ .../5-build-android-chat-app.md | 53 ++++++++++ .../_index.md | 41 ++++++++ .../_next-steps.md | 27 ++++++ .../_review.md | 44 +++++++++ .../screenshot.png | Bin 0 -> 119505 bytes 9 files changed, 412 insertions(+) create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md create mode 100644 content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/screenshot.png diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md new file mode 100644 index 0000000000..8a8a1a5d0a --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md @@ -0,0 +1,61 @@ +--- +title: Create a development environment +weight: 2 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Set up your development environment + +In this Learning Path, you will learn how to build and deploy a simple LLM-based chat app to an Android device using ONNX Runtime. You will learn how to build the ONNX runtime and ONNX Runtime generate() API and how to run the Phi-3 model for the Android application. + +The first step is to prepare a development environment with the required software: + +- Android Studio (latest version recommended) +- Android NDK (tested with version 27.0.12077973) +- Python 3.11 +- CMake (tested with version 3.28.1) +- Ninja (tested with version 1.11.1) + +The instructions assume x86 Windows with at least 16GB of RAM. + +## Install Android Studio and Android NDK + +Follow these steps to install and configure Android Studio: + +1. Download and install the latest version of [Android Studio](https://developer.android.com/studio/). + +2. Navigate to `Tools -> SDK Manager`. + +3. In the `SDK Platforms` tab, check `Android 14.0 ("UpsideDownCake")`. + +4. In the `SDK Tools` tab, check `NDK (Side by side)`. + +## Install Python 3.11 + +Download and install Python: https://www.python.org/downloads/ + +## Install CMake + +CMake is an open-source tool that automates the build process for software projects, helping to generate platform-specific build configurations. + +Download and install CMake: https://cmake.org/download/ + +{{% notice Note %}} +We tested with version 3.28.1 +{{% /notice %}} + +## Install Ninja + +Ninja is a minimalistic build system designed to efficiently handle incremental builds, particularly in large-scale software projects, by focusing on speed and simplicity. + +The Ninja generator needs to be used to build on Windows for Android. + +Download and install Ninja: https://github.com/ninja-build/ninja/releases + +{{% notice Note %}} +We tested with version 1.11.1 +{{% /notice %}} + +You now have the required development tools installed. diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md new file mode 100644 index 0000000000..ab6a85a996 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md @@ -0,0 +1,52 @@ +--- +title: Build ONNX Runtime +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Cross-compile ONNX Runtime for Android CPU + +Now that you have your environment set up correctly, you can build the ONNX Runtime inference engine. + +ONNX Runtime is an open-source inference engine designed to accelerate the deployment of machine learning models, particularly those in the Open Neural Network Exchange (ONNX) format. ONNX Runtime is optimized for high performance and low latency, making it popular for production deployment of AI models. You can learn more by reading the [ONNX Runtime Overview](https://onnxruntime.ai/). + + +### Clone onnxruntime repo + +Checkout the source tree: + +```bash +git clone --recursive https://github.com/Microsoft/onnxruntime.git +cd onnxruntime +``` + +{{% notice Note %}} +These steps have been tested with the commit `9b37b3ea4467b3aab9110e0d259d0cf27478697d`. +{{% /notice %}} + +### Build for Android CPU + +The Ninja generator needs to be used to build on Windows. + +```bash + +./build.bat --config Release --build_shared_lib --android --android_sdk_path --android_ndk_path --android_abi arm64-v8a --android_api --cmake_generator Ninja --build_java + + # Example for building with default SDK/NDK paths +./build.bat --config Release --build_shared_lib --android --android_sdk_path C:\Users\$env:USERNAME\AppData\Local\Android\Sdk --android_ndk_path C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973 --android_abi arm64-v8a --android_api 27 --cmake_generator Ninja --build_java + +``` + +Android Archive (AAR) files, which can be imported directly in Android Studio, will be generated by using the above building commands with `--build_java` + +When the build is complete, confirm the shared library and the AAR file have been created: + +``` +ls build\Windows\Release\onnxruntime.so +ls build\Windows\Release\java\build\android\outputs\aar\onnxruntime-release.aar +``` + + + diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md new file mode 100644 index 0000000000..b22425a130 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md @@ -0,0 +1,43 @@ +--- +title: Build ONNX Runtime Generate() API +weight: 4 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Cross-compile the ONNX Runtime generate() API for Android CPU + +The Generate() API in ONNX Runtime is designed for text generation tasks using models like Phi-3. It implements the generative AI loop for ONNX models, including pre and post processing, inference with ONNX Runtime, logits processing, search and sampling, and KV cache management. You can learn more by reading the [ONNX Runtime generate() API page](https://onnxruntime.ai/docs/genai/). + + +### Clone onnxruntime-genai repo + +Checkout the source tree: + +```bash +git clone https://github.com/microsoft/onnxruntime-genai +cd onnxruntime-genai +``` + +{{% notice Note %}} +These steps have been tested with the commit `1e4d289502a61265c3b07efb17d8796225bb0b7f`. +{{% /notice %}} + +### Build for Android CPU + +The Ninja generator needs to be used to build on Windows for Android. + +```bash +python build.py --build_java --android --android_home --android_ndk_path --android_abi arm64-v8a --config Release + + # Example for building with default SDK/NDK paths +python3.11 build.py --build_java --android --android_home C:\Users\$env:USERNAME\AppData\Local\Android\Sdk --android_ndk_path C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973 --android_abi arm64-v8a --config Release + +``` + +When the build is complete, confirm the shared library has been created: + +``` +ls build\Android\Release\onnxruntime-genai.so +``` diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md new file mode 100644 index 0000000000..5a4085ebe8 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md @@ -0,0 +1,91 @@ +--- +title: Run Benchmark on Android phone +weight: 5 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Run example code for running Phi-3-mini + + +### Build model runner + +Cross-compile the model runner to run on Android using the commands below. + +``` bash +cd onnxruntime-genai +copy src\ort_genai.h examples\c\include\ +copy src\ort_genai_c.h examples\c\include\ +cd examples\c +mkdir build +cd build + +### Build for Android +cmake -DCMAKE_TOOLCHAIN_FILE=\build\cmake\android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android- -DCMAKE_BUILD_TYPE=Release -G "Ninja" .. +ninja + +# example for building on Windows +cmake -DCMAKE_TOOLCHAIN_FILE=C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973\build\cmake\android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-27 -DCMAKE_BUILD_TYPE=Release -G "Ninja" .. +ninja +``` + +After successful build, a binary program called `phi3` will be created. + +### Prepare phi-3-mini model + +Phi-3 ONNX models are hosted on HuggingFace. You can download the Phi-3-mini model with huggingface-cli command. + +``` bash +pip install huggingface-hub[cli] + +# This command downloads the model into a folder called cpu_and_mobile +huggingface-cli download microsoft/Phi-3-mini-4k-instruct-onnx --include cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/* --local-dir . +``` + +The phi-3-mini (3B) have a short (4k) context version and a long (128k) context version. The long context version can accept much longer prompts and produce longer output text, but it does consume more memory. This tutorial uses the short context version, which is quantized to 4-bits. + + +### Run on Android via adb shell + +#### Connect your android phone +Connect your phone to your computer using a USB cable. + +You need to enable USB debugging on your Android device. You can follow [Configure on-device developer options](https://developer.android.com/studio/debug/dev-options) to enable USB debugging. + +Once you have enabled USB debugging and connected via USB, run: + +``` +adb devices +``` + +You should see your device listed to confirm it is connected. + +#### Copy the runner binary and the model files to the phone + +``` bash +adb push cpu-int4-rtn-block-32-acc-level-4 /data/local/tmp +adb push .\phi3 /data/local/tmp +adb push onnxruntime-genai\build\Android\Release\libonnxruntime-genai.so /data/local/tmp +adb push onnxruntime\build\Windows\Release\libonnxruntime.so /data/local/tmp +``` + +#### Run the model + +Use the runner to execute the model on the phone with the `adb` command: + +``` bash +adb shell +cd /data/local/tmp +chmod 777 phi3 +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp +./phi3 cpu-int4-rtn-block-32-acc-level-4 +``` + +This will allow the runner program to load the model, and then it will prompt you to input the text prompt to be given to the model. After inputting, the text output by the model will be displayed sequentially, and upon completion, the following performance metrics should be displayed. + +``` +Prompt length: 64, New tokens: 931, Time to first: 1.79s, Prompt tokens per second: 35.74 tps, New tokens per second: 6.34 tps +``` + +You have successfully run a model on your Android smartphone. diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md new file mode 100644 index 0000000000..fbaec5a7a8 --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md @@ -0,0 +1,53 @@ +--- +title: Build and Run Android chat app +weight: 6 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Build Android chat app + +Another way to run the model is to use a GUI Android app. +You can use the Android demo application included in [onnxruntime-inference-examples repository](https://github.com/microsoft/onnxruntime-inference-examples) to demonstrate local inference. + +### Clone the repo + +``` bash +git clone https://github.com/microsoft/onnxruntime-inference-examples +cd onnxruntime-inference-examples +``` + +{{% notice Note %}} +These steps have been tested with the commit `009920df0136d7dfa53944d06af01002fb63e2f5`. +{{% /notice %}} + +### Build the app using Android Studio + +Open `mobile\examples\phi-3\android` directory with Android Studio. + +#### (Optional) In case you want to use ONNX Runtime AAR you built + +Copy ONNX Runtime AAR you built before if needed + +```bash +Copy onnxruntime\build\Windows\Release\java\build\android\outputs\aar\onnxruntime-release.aar mobile\examples\phi-3\android\app\libs +``` + +Update build.gradle.kts (:app) as below: + +``` kotlin +// ONNX Runtime with GenAI +//implementation("com.microsoft.onnxruntime:onnxruntime-android:latest.release") +implementation(files("libs/onnxruntime-release.aar")) +``` + +After that, click `File`->`Sync Project with Gradle` + +#### Build and run the app + +When you press Run, the build will be executed, and then the app will be transferred and installed on the Android device. This app will automatically download the Phi-3-mini model during the first run. After the download, you can input the prompt in the text box and execute it to run the model. + +You should now see a running app on your phone that looks like this: + +![App screenshot](screenshot.png) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md new file mode 100644 index 0000000000..394e79caae --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md @@ -0,0 +1,41 @@ +--- +title: Build an Android chat app with ONNX Runtime generate() API + +minutes_to_complete: 60 + +who_is_this_for: This is an intermediate topic for software developers interested in learning how to build an Android chat app with ONNX Runtime and ONNX Runtime Generate() API. + +learning_objectives: + - Install the prerequisites for cross-compiling ONNX Runtime for Android. + - Build ONNX Runtime and ONNX Runtime generate() API for Android. + - Run the Phi-3 model using ONNX Runtime on an Arm-based smartphone. + +prerequisites: + - A Windows development machine with at least 16GB of RAM. (You should also be able to use Linux or Apple machines, so please replace the paths and commands as appropriate. Please note that the operation has not been tested.) + - An Android phone with at least 8GB of RAM (tested on Samsung Galaxy S24). + +author_primary: Koki Mitsunami + +### Tags +skilllevels: Intermediate +subjects: ML +armips: + - Cortex-A + - Cortex-X +tools_software_languages: + - Kotlin + - C++ + - ONNX Runtime + - Android + - Mobile +operatingsystems: + - Windows + - Android + + +### 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/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md new file mode 100644 index 0000000000..16b12cdf0b --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md @@ -0,0 +1,27 @@ +--- +next_step_guidance: Now that you are familiar with building LLM applications with ONNX Runtime, you are ready to incorporate LLMs into your Android applications. + +recommended_path: /learning-paths/cross-platform/kleidiai-explainer/ + +further_reading: + - resource: + title: ONNX Runtime + link: https://onnxruntime.ai/docs/ + type: documentation + - resource: + title: ONNX Runtime generate() API + link: https://onnxruntime.ai/docs/genai/ + type: documentation + - resource: + title: Accelerating AI Developer Innovation Everywhere with New Arm Kleidi + link: https://newsroom.arm.com/blog/arm-kleidi + type: blog + + +# ================================================================================ +# FIXED, DO NOT MODIFY +# ================================================================================ +weight: 21 # set to always be larger than the content in this path, and one more than 'review' +title: "Next Steps" # Always the same +layout: "learningpathall" # All files under learning paths have this same wrapper +--- diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md new file mode 100644 index 0000000000..5caceb45bf --- /dev/null +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md @@ -0,0 +1,44 @@ +--- +review: + - questions: + question: > + What is ONNX Runtime? + answers: + - A cross-platform inference engine for running machine learning models. + - A platform for training machine learning models from scratch. + - A cloud-based data storage service for deep learning models. + correct_answer: 1 + explanation: > + ONNX Runtime is a cross-platform inference engine designed to to run machine-learning models in the ONNX format. It optimizes model performance across various hardware environments, including CPUs, GPUs, and specialized accelerators. + + - questions: + question: > + What is Phi? + answers: + - A new optimization algorithm for neural networks. + - A family of pre-trained language model. + - A toolkit for converting machine learning models to ONNX format. + correct_answer: 2 + explanation: > + Phi models are a series of large language models developed to perform natural language processing tasks such as text generation, completion, and comprehension. + + - questions: + question: > + Why is ONNX format important in machine learning? + answers: + - It is a proprietary format developed exclusively for cloud-based AI systems. + - It compresses models to reduce memory usage during training. + - It allows models to be exchanged between different frameworks, such as PyTorch and TensorFlow. + correct_answer: 3 + explanation: > + The ONNX (Open Neural Network Exchange) format is an open-source standard designed to enable the sharing and use of machine learning models across different frameworks such as PyTorch, TensorFlow, and others. It allows models to be exported in a unified format, making them interoperable and ensuring they can run on various platforms or hardware. + + + +# ================================================================================ +# FIXED, DO NOT MODIFY +# ================================================================================ +title: "Review" # Always the same title +weight: 20 # Set to always be larger than the content in this path +layout: "learningpathall" # All files under learning paths have this same wrapper +--- diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/screenshot.png b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0724683b99e87f5f0b8a5169afbca4e4a3f00c GIT binary patch literal 119505 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

vaGv% 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 KXYw_!2mBX!B=X(> literal 0 HcmV?d00001 diff --git a/content/install-guides/_images/wpa-timeline-by-core.png b/content/install-guides/_images/wpa-timeline-by-core.png new file mode 100644 index 0000000000000000000000000000000000000000..b35f6df648f4d66b6d5eb9bba0287ce7bca39398 GIT binary patch literal 61177 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

y)AV~2zKJ0iNd6&= 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 DBVfHF literal 0 HcmV?d00001 diff --git a/content/install-guides/windows-perf-wpa-plugin.md b/content/install-guides/windows-perf-wpa-plugin.md new file mode 100644 index 0000000000..88e308b366 --- /dev/null +++ b/content/install-guides/windows-perf-wpa-plugin.md @@ -0,0 +1,132 @@ +--- +### Title the install tools article with the name of the tool to be installed +### Include vendor name where appropriate +title: WindowsPerf Ecosystem - the Windows Performance Analyzer (WPA) Plugin +minutes_to_complete: 5 + +official_docs: https://github.com/arm-developer-tools/windowsperf-wpa-plugin + +author_primary: Alaaeddine Chakroun + +### Optional additional search terms (one per line) to assist in finding the article +additional_search_terms: + - perf + - profiling + - profiler + - windows + - woa + - windows on arm + - open source windows on arm + - windows performance analyzer + - wpa +### FIXED, DO NOT MODIFY +weight: 1 # Defines page ordering. Must be 1 for first (or only) page. +tool_install: true # Set to true to be listed in main selection page, else false +multi_install: FALSE # Set to true if first page of multi-page article, else false +multitool_install_part: false # Set to true if a sub-page of a multi-page article, else false +layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles +--- + +## Introduction + +[**WindowsPerf**](https://gitlab.com/Linaro/WindowsPerf/windowsperf) is a lightweight performance profiling tool inspired by Linux perf, specifically tailored for Windows on ARM. +It leverages the ARM64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. +The **WindowsPerf WPA plugin** bridges the gap between the detailed output of **WindowsPerf** and the powerful capabilities of **Windows Performance Analyzer**. + +The plugin is built on the [`microsoft-performance-toolkit-sdk`](https://github.com/microsoft/microsoft-performance-toolkit-sdk) +and is shipped as a single `.dll` file. + + +**Windows Performance Analyzer (WPA)** is a tool that creates graphs and data tables of Event Tracing for Windows (ETW) events +that are recorded by Windows Performance Recorder (WPR), Xperf, or an assessment that is run in the +Assessment Platform. WPA can open any event trace log (ETL) file for analysis. + +WPA's capabilities can be expanded upon using the `microsoft-performance-toolkit-sdk` by creating +plugins which enables parsing any type of data (`.json` in this case). + + +## A Glimpse of the available features + +The WindowsPerf GUI extension is composed of several key features, each designed to streamline the user experience: + +- **Timeline View**: Visualize a `wperf stat` timeline command output as a plotted graph grouped by event group. +![Timeline By Core Table](_images/wpa-timeline-by-core.png) + +- **Telemetry View**: Display telemetry events grouped by unit ready to be compared and diagnosed. +![Telemetry Table](_images/wpa-telemetry-table.png) + +## Getting Started +### Installation + +WPA is included in the Windows Assessment and Deployment Kit (Windows ADK) +that can be downloaded [here](https://go.microsoft.com/fwlink/?linkid=2243390). + +> The wperf WPA plugin requires a WPA version of `11.0.7.2` or higher. + +Once downloaded, make sure that "Windows Performance Toolkit" checkbox is +checked under "Select the features you want to install/change". + +![WPA Installation](_images/wpa-installation.png) + +The plugin can be downloaded from the [releases page](https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases). + +To install the plugin you have the option between: + +- Moving the plugin dll to the **CustomDataSources** directory next +to the WPA executable (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources`). +- Setting up the `WPA_ADDITIONAL_SEARCH_DIRECTORIES` env variable and moving the dll to that directory +- Calling `wpa` from the command line and passing the plugin directory +to the `-addsearchdir` flag (example : `wpa -addsearchdir "%USERPROFILE%\plugins"`). + +About WPA + +> To verify that the plugin is loaded successfully, launch WPA then the plugin +should appear under Help > About Windows Performance Analyzer. + + +### Running from the command line + +After installing WPA, it should be added automatically to the path environnment variable. +If it's not the case, add the WPA directory (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit`) +to your environnment variable. + + +To open a json file directly from the command line, you can use the `-i` flag to specify the +file path to open. + +Example: to open a `timeline_long.json` that sits in the Downloads directory, run the following +command in the command line: + +`wpa -i \"%USERPROFILE%\\Downloads\\timeline_long.json\"` + +### Running in debug mode + +To run the plugin in debug mode, clone the repository then edit `WPAPlugin/Properties/launchSettings.json` file. + +```json +{ + "profiles": { + "Debug": { + "commandName": "Executable", + "executablePath": "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\wpa.exe", + "commandLineArgs": "-nodefault -addsearchdir \"%USERPROFILE%\\devProjects\\wpa-plugin\\WPAPlugin\\bin\\Debug\\netstandard2.0\"" + } + } +} + +``` + +- `executablePath`: Path to the `wpa` executable +- `commandLineArgs`: Absolute path to `bin/Debug/netstandard2.0` + + +> Make sure that no other version of the plugin is in the same directory as WPA. + + +### Uninstalling the plugin + +To uninstall the plugin simply delete the `.dll` file. From 7f9c058a442d8c3865ecef7340509c6a3e2775cb Mon Sep 17 00:00:00 2001 From: Alaaeddine Chakroun Date: Thu, 17 Oct 2024 15:56:57 +0100 Subject: [PATCH 04/34] docs: fix formatting --- .../install-guides/windows-perf-wpa-plugin.md | 34 ++++++------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/content/install-guides/windows-perf-wpa-plugin.md b/content/install-guides/windows-perf-wpa-plugin.md index 88e308b366..f4ed529824 100644 --- a/content/install-guides/windows-perf-wpa-plugin.md +++ b/content/install-guides/windows-perf-wpa-plugin.md @@ -33,16 +33,12 @@ layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles It leverages the ARM64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. The **WindowsPerf WPA plugin** bridges the gap between the detailed output of **WindowsPerf** and the powerful capabilities of **Windows Performance Analyzer**. -The plugin is built on the [`microsoft-performance-toolkit-sdk`](https://github.com/microsoft/microsoft-performance-toolkit-sdk) -and is shipped as a single `.dll` file. +The plugin is built on the [`microsoft-performance-toolkit-sdk`](https://github.com/microsoft/microsoft-performance-toolkit-sdk) and is shipped as a single `.dll` file. -**Windows Performance Analyzer (WPA)** is a tool that creates graphs and data tables of Event Tracing for Windows (ETW) events -that are recorded by Windows Performance Recorder (WPR), Xperf, or an assessment that is run in the -Assessment Platform. WPA can open any event trace log (ETL) file for analysis. +**Windows Performance Analyzer (WPA)** is a tool that creates graphs and data tables of Event Tracing for Windows (ETW) events that are recorded by Windows Performance Recorder (WPR), Xperf, or an assessment that is run in the Assessment Platform. WPA can open any event trace log (ETL) file for analysis. -WPA's capabilities can be expanded upon using the `microsoft-performance-toolkit-sdk` by creating -plugins which enables parsing any type of data (`.json` in this case). +WPA's capabilities can be expanded upon using the `microsoft-performance-toolkit-sdk` by creating plugins which enables parsing any type of data (`.json` in this case). ## A Glimpse of the available features @@ -58,13 +54,11 @@ The WindowsPerf GUI extension is composed of several key features, each designed ## Getting Started ### Installation -WPA is included in the Windows Assessment and Deployment Kit (Windows ADK) -that can be downloaded [here](https://go.microsoft.com/fwlink/?linkid=2243390). +WPA is included in the Windows Assessment and Deployment Kit (Windows ADK) that can be downloaded [here](https://go.microsoft.com/fwlink/?linkid=2243390). > The wperf WPA plugin requires a WPA version of `11.0.7.2` or higher. -Once downloaded, make sure that "Windows Performance Toolkit" checkbox is -checked under "Select the features you want to install/change". +Once downloaded, make sure that "Windows Performance Toolkit" checkbox is checked under "Select the features you want to install/change". ![WPA Installation](_images/wpa-installation.png) @@ -72,11 +66,9 @@ The plugin can be downloaded from the [releases page](https://github.com/arm-dev To install the plugin you have the option between: -- Moving the plugin dll to the **CustomDataSources** directory next -to the WPA executable (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources`). +- Moving the plugin dll to the **CustomDataSources** directory next to the WPA executable (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources`). - Setting up the `WPA_ADDITIONAL_SEARCH_DIRECTORIES` env variable and moving the dll to that directory -- Calling `wpa` from the command line and passing the plugin directory -to the `-addsearchdir` flag (example : `wpa -addsearchdir "%USERPROFILE%\plugins"`). +- Calling `wpa` from the command line and passing the plugin directory to the `-addsearchdir` flag (example : `wpa -addsearchdir "%USERPROFILE%\plugins"`). -> To verify that the plugin is loaded successfully, launch WPA then the plugin -should appear under Help > About Windows Performance Analyzer. +> To verify that the plugin is loaded successfully, launch WPA then the plugin should appear under Help > About Windows Performance Analyzer. ### Running from the command line After installing WPA, it should be added automatically to the path environnment variable. -If it's not the case, add the WPA directory (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit`) -to your environnment variable. +If it's not the case, add the WPA directory (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit`) to your environnment variable. -To open a json file directly from the command line, you can use the `-i` flag to specify the -file path to open. +To open a json file directly from the command line, you can use the `-i` flag to specify the file path to open. -Example: to open a `timeline_long.json` that sits in the Downloads directory, run the following -command in the command line: +Example: to open a `timeline_long.json` that sits in the Downloads directory, run the following command in the command line: `wpa -i \"%USERPROFILE%\\Downloads\\timeline_long.json\"` From f975590fffad20d54446dcff1cd8efd7900dfc3d Mon Sep 17 00:00:00 2001 From: Alaaeddine Chakroun Date: Thu, 17 Oct 2024 16:02:57 +0100 Subject: [PATCH 05/34] docs: fix repo links --- content/install-guides/windows-perf-wpa-plugin.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/install-guides/windows-perf-wpa-plugin.md b/content/install-guides/windows-perf-wpa-plugin.md index f4ed529824..64b8296ad2 100644 --- a/content/install-guides/windows-perf-wpa-plugin.md +++ b/content/install-guides/windows-perf-wpa-plugin.md @@ -19,6 +19,7 @@ additional_search_terms: - open source windows on arm - windows performance analyzer - wpa + - windowsperf ### FIXED, DO NOT MODIFY weight: 1 # Defines page ordering. Must be 1 for first (or only) page. tool_install: true # Set to true to be listed in main selection page, else false @@ -29,8 +30,8 @@ layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles ## Introduction -[**WindowsPerf**](https://gitlab.com/Linaro/WindowsPerf/windowsperf) is a lightweight performance profiling tool inspired by Linux perf, specifically tailored for Windows on ARM. -It leverages the ARM64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. +[**WindowsPerf**](https://github.com/arm-developer-tools/windowsperf) is a lightweight performance profiling tool inspired by Linux perf, specifically tailored for Windows on Arm. +It leverages the Arm64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. The **WindowsPerf WPA plugin** bridges the gap between the detailed output of **WindowsPerf** and the powerful capabilities of **Windows Performance Analyzer**. The plugin is built on the [`microsoft-performance-toolkit-sdk`](https://github.com/microsoft/microsoft-performance-toolkit-sdk) and is shipped as a single `.dll` file. From 9f05eadcd1cf955e11cf9bc04ae08b94c2ab2113 Mon Sep 17 00:00:00 2001 From: NickSample <93723054+NickSample@users.noreply.github.com> Date: Wed, 23 Oct 2024 13:06:23 +0000 Subject: [PATCH 06/34] Editorial review --- .../windows-perf-vs-extension.md | 50 ++++++++----------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/content/install-guides/windows-perf-vs-extension.md b/content/install-guides/windows-perf-vs-extension.md index 5b5fad1397..dc258b6658 100644 --- a/content/install-guides/windows-perf-vs-extension.md +++ b/content/install-guides/windows-perf-vs-extension.md @@ -24,52 +24,46 @@ multi_install: FALSE # Set to true if first page of multi-page article, else fal multitool_install_part: false # Set to true if a sub-page of a multi-page article, else false layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles --- - -## Introduction - -WindowsPerf is a lightweight performance profiling tool inspired by Linux Perf, and specifically tailored for Windows on Arm. It leverages the ARM64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. +[WindowsPerf](https://learn.arm.com/install-guides/wperf/) is a lightweight performance profiling tool inspired by Linux Perf, and specifically tailored for Windows on Arm. It leverages the ARM64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. Recognizing the complexities of command-line interaction, the WindowsPerf GUI is a Visual Studio 2022 extension created to provide a more intuitive, integrated experience within the integrated development environment (IDE). This tool enables developers to interact with WindowsPerf, adjust settings, and visualize performance data seamlessly in Visual Studio. -## A Glimpse of the available features +## Overview of key features The WindowsPerf GUI extension is composed of several key features, each designed to streamline the user experience: -- **WindowsPerf Configuration**: Connect directly to `wperf.exe` for a seamless integration. Configuration is accessible via `Tools -> Options -> Windows Perf -> WindowsPerf Path`. -- **Host Data**: Understand your environment with `Tools -> WindowsPerf Host Data`, offering insights into tests run by WindowsPerf. -- **Output Logging**: All commands executed through the GUI are logged, ensuring transparency and aiding in performance analysis. -- **Sampling UI**: Customize your sampling experience by selecting events, setting frequency and duration, choosing programs for sampling, and comprehensively analyzing results. +- **WindowsPerf Configuration**: Connect directly to `wperf.exe` for a seamless integration. Configuration is accessible by selecting **Tools > Options > Windows Perf > WindowsPerf Path**. +- **Host Data**: Understand your environment by selecting **Tools** then **WindowsPerf Host Data**. This offers insights into tests run by WindowsPerf. +- **Output Logging**: All commands executed through the GUI are logged, ensuring transparency and supporting performance analysis. +- **Sampling UI**: Customize your sampling experience by selecting events, setting frequency and duration, choosing programs for sampling, and comprehensively analyzing results. See screenshot below. ![Sampling preview #center](../_images/wperf-vs-extension-sampling-preview.png "Sampling settings UI Overview") -- **Counting Settings UI**: Build a `wperf stat` command from scratch using the configuration interface, then view the output in the IDE or open it with Windows Performance Analyzer (WPA) - - -![Counting preview #center](../_images/wperf-vs-extension-counting-preview.png "_Counting settings UI Overview_") +- **Counting Settings UI**: Build a `wperf stat` command from scratch using the configuration interface, then view the output in the IDE or open it with Windows Performance Analyzer (WPA). See screenshot below. -## Getting Started +![Counting preview #center](../_images/wperf-vs-extension-counting-preview.png "Counting settings UI Overview") -### Prerequisites +## Before you begin -- **Visual Studio 2022**: Ensure you have Visual Studio 2022 installed on your Windows on Arm device. -- **WindowsPerf**: Download and install WindowsPerf by following the [WindowsPerf install guide](/install-guides/wperf/). -- **LLVM** (Recommended): You can install the LLVM toolchain by following the [LLVM toolchain for Windows on Arm install guide](/install-guides/llvm-woa). +Before installing WindowsPerf Visual Studio Extension, check the following: +1. Ensure Visual Studio 2022 is installed on your Windows on Arm device. +2. Download and install WindowsPerf by following the [WindowsPerf install guide](/install-guides/wperf/). +3. (Recommended) You can install the LLVM toolchain by following the [LLVM toolchain for Windows on Arm install guide](/install-guides/llvm-woa). {{% notice llvm-objdump %}} -The disassembly feature needs to have `llvm-objdump` available at `%PATH%` to work properly. +Note that the disassembly feature needs to have `llvm-objdump` available at `%PATH%` to work properly. {{% /notice %}} ### Installation from Visual Studio Extension Manager To install the WindowsPerf Visual Studio Extension from Visual Studio: -1. Open Visual Studio 2022 -2. Go to the `Extensions` menu -3. Select **Manage Extensions** -4. Click on the search bar ( or tap `Ctrl` + `L` ) and type `WindowsPerf` -5. Click on the install button and restart Visual Studio +1. Open Visual Studio 2022. +2. Go to the **Extensions** menu and select **Manage Extensions**. +4. Click on the search bar (Ctrl+L) and type `WindowsPerf`. +5. Click on the **Install** button and restart Visual Studio. ![WindowsPerf install page #center](../_images/wperf-vs-extension-install-page.png) @@ -79,7 +73,7 @@ You can also install the WindowsPerf Visual Studio Extension from GitHub. Download the installation file directly from the [GitHub release page](https://github.com/arm-developer-tools/windowsperf-vs-extension/releases). -Unzip the downloaded file and double click on the `WindowsPerfGUI.vsix` file +Unzip the downloaded file and double click on the `WindowsPerfGUI.vsix` file. {{% notice Note %}} Make sure that any previous version of the extension is uninstalled and that Visual Studio is closed before installing the extension. @@ -93,10 +87,10 @@ Building the source is not required, but offered as an alternative installation ### WindowsPerf Setup -To get started, you must link the GUI with the executable file `wperf.exe` by navigating to `Tools -> Options -> WindowsPerf -> WindowsPerf Path`. This step is crucial for utilizing the GUI, and the extension will not work if you don't do it. +To get started, you must link the GUI with the executable file `wperf.exe` by navigating to **Tools > Options > WindowsPerf > WindowsPerf Path**. This step is crucial for utilizing the GUI, and the extension will not work if you don't do it. ## Uninstall the WindowsPerfGUI extension -In Visual Studio go to `Extensions` -> `Manage Extensions` -> `Installed` -> `All` -> `WindowsPerfGUI` and select "Uninstall". +In Visual Studio go to **Extensions > Manage Extensions > Installed > All > WindowsPerfGUI** and select **Uninstall**. -Please note that this will be scheduled by Visual Studio. You may need to close VS instance and follow uninstall wizard to remove the extension. +Please note that this will be scheduled by Visual Studio. You may need to close the VS instance and follow the uninstall wizard to remove the extension. From 0fb1157b5e215d00183e9ddee2f8e47d5a4ee6a1 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Thu, 24 Oct 2024 00:24:40 +0000 Subject: [PATCH 07/34] add missing python package for tools scripts. --- tools/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/requirements.txt b/tools/requirements.txt index d28433e30f..43764fce73 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -2,3 +2,4 @@ junit-xml pyyaml inclusivewriting pyspellchecker +setuptools From a4b4713e90015ccd13226d3a4d3a70b4c5f68b0d Mon Sep 17 00:00:00 2001 From: NickSample <93723054+NickSample@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:11:45 +0100 Subject: [PATCH 08/34] Test update windows-perf-vs-extension.md --- content/install-guides/windows-perf-vs-extension.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/install-guides/windows-perf-vs-extension.md b/content/install-guides/windows-perf-vs-extension.md index dc258b6658..10ab61559c 100644 --- a/content/install-guides/windows-perf-vs-extension.md +++ b/content/install-guides/windows-perf-vs-extension.md @@ -28,7 +28,7 @@ layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles Recognizing the complexities of command-line interaction, the WindowsPerf GUI is a Visual Studio 2022 extension created to provide a more intuitive, integrated experience within the integrated development environment (IDE). This tool enables developers to interact with WindowsPerf, adjust settings, and visualize performance data seamlessly in Visual Studio. -## Overview of key features +## Overview key features The WindowsPerf GUI extension is composed of several key features, each designed to streamline the user experience: From 7e317088d662976c3bb591e2f442e7d922a7a4dc Mon Sep 17 00:00:00 2001 From: NickSample <93723054+NickSample@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:53:22 +0000 Subject: [PATCH 09/34] Incorporating Maddy updates --- content/install-guides/windows-perf-vs-extension.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/install-guides/windows-perf-vs-extension.md b/content/install-guides/windows-perf-vs-extension.md index 10ab61559c..b06283c4bd 100644 --- a/content/install-guides/windows-perf-vs-extension.md +++ b/content/install-guides/windows-perf-vs-extension.md @@ -24,11 +24,11 @@ multi_install: FALSE # Set to true if first page of multi-page article, else fal multitool_install_part: false # Set to true if a sub-page of a multi-page article, else false layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles --- -[WindowsPerf](https://learn.arm.com/install-guides/wperf/) is a lightweight performance profiling tool inspired by Linux Perf, and specifically tailored for Windows on Arm. It leverages the ARM64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. +[WindowsPerf](/install-guides/wperf/) is a lightweight performance profiling tool inspired by Linux Perf, and specifically tailored for Windows on Arm. It leverages the AArch64 Performance Monitoring Unit (PMU) and its hardware counters to offer precise profiling capabilities. -Recognizing the complexities of command-line interaction, the WindowsPerf GUI is a Visual Studio 2022 extension created to provide a more intuitive, integrated experience within the integrated development environment (IDE). This tool enables developers to interact with WindowsPerf, adjust settings, and visualize performance data seamlessly in Visual Studio. +Recognizing the complexities of command-line interaction, the WindowsPerf GUI is a Visual Studio 2022 extension created to provide a more intuitive, integrated experience within the Integrated Development Environment (IDE). This tool enables developers to interact with WindowsPerf, adjust settings, and visualize performance data seamlessly in Visual Studio. -## Overview key features +## Overview of key features The WindowsPerf GUI extension is composed of several key features, each designed to streamline the user experience: @@ -53,7 +53,7 @@ Before installing WindowsPerf Visual Studio Extension, check the following: 3. (Recommended) You can install the LLVM toolchain by following the [LLVM toolchain for Windows on Arm install guide](/install-guides/llvm-woa). {{% notice llvm-objdump %}} -Note that the disassembly feature needs to have `llvm-objdump` available at `%PATH%` to work properly. +The disassembly feature needs to have `llvm-objdump` available at `%PATH%` to work properly. {{% /notice %}} ### Installation from Visual Studio Extension Manager @@ -93,4 +93,4 @@ To get started, you must link the GUI with the executable file `wperf.exe` by na In Visual Studio go to **Extensions > Manage Extensions > Installed > All > WindowsPerfGUI** and select **Uninstall**. -Please note that this will be scheduled by Visual Studio. You may need to close the VS instance and follow the uninstall wizard to remove the extension. +As this will be scheduled by Visual Studio, you might need to close the VS instance and follow the uninstall wizard to remove the extension. From 359ad5ed12f20fa31401b08c38ab70ba1996eacf Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 11:03:30 -0400 Subject: [PATCH 10/34] Update _index.md --- .../build-android-chat-app-using-onnxruntime/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md index a23aa72fd8..91ca06e9c9 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md @@ -10,7 +10,7 @@ learning_objectives: - Run the Phi-3 model using ONNX Runtime on an Arm-based smartphone. prerequisites: - - A Windows development machine with at least 16GB of RAM. You should also be able to use Linux or MacOS for the build, but the instructions for it have not been included in this learning path. + - A Windows x86_64 development machine with at least 16GB of RAM. You should also be able to use Linux or MacOS for the build, but the instructions for it have not been included in this learning path. - An Android phone with at least 8GB of RAM. This learning path was tested on Samsung Galaxy S24. author_primary: Koki Mitsunami From 0264d529592c9d9f2ad48f311deadb22814bf8c7 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 11:09:28 -0400 Subject: [PATCH 11/34] Update 1-dev-env-setup.md --- .../1-dev-env-setup.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md index 8a8a1a5d0a..5a2996191c 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md @@ -18,7 +18,7 @@ The first step is to prepare a development environment with the required softwar - CMake (tested with version 3.28.1) - Ninja (tested with version 1.11.1) -The instructions assume x86 Windows with at least 16GB of RAM. +The instructions were tested on an x86 Windows machine with at least 16GB of RAM. ## Install Android Studio and Android NDK @@ -32,18 +32,20 @@ Follow these steps to install and configure Android Studio: 4. In the `SDK Tools` tab, check `NDK (Side by side)`. +5. Click Ok and Apply. + ## Install Python 3.11 -Download and install Python: https://www.python.org/downloads/ +Download and install [Python version 3.11](https://www.python.org/downloads/release/python-3110/) ## Install CMake CMake is an open-source tool that automates the build process for software projects, helping to generate platform-specific build configurations. -Download and install CMake: https://cmake.org/download/ +[Download and install CMake](https://cmake.org/download/) {{% notice Note %}} -We tested with version 3.28.1 +The instructions were tested with version 3.28.1 {{% /notice %}} ## Install Ninja @@ -52,10 +54,10 @@ Ninja is a minimalistic build system designed to efficiently handle incremental The Ninja generator needs to be used to build on Windows for Android. -Download and install Ninja: https://github.com/ninja-build/ninja/releases +[Download and install Ninja]( https://github.com/ninja-build/ninja/releases) {{% notice Note %}} -We tested with version 1.11.1 +The instructions were tested with version 1.11.1 {{% /notice %}} -You now have the required development tools installed. +You now have the required development tools installed to follow this learning path. From 2ef718b77de244f2e4e7c34e4f2223d3e42f05c2 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 11:14:40 -0400 Subject: [PATCH 12/34] Update 3-build-onnxruntime-generate-api.md --- .../3-build-onnxruntime-generate-api.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md index b22425a130..144c0836e1 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md @@ -12,16 +12,17 @@ The Generate() API in ONNX Runtime is designed for text generation tasks using m ### Clone onnxruntime-genai repo - -Checkout the source tree: +Open up a Windows Powershell prompt and checkout the source repo: ```bash +C:\Users\$env:USERNAME git clone https://github.com/microsoft/onnxruntime-genai cd onnxruntime-genai +git checkout 1e4d289502a61265c3b07efb17d8796225bb0b7f ``` {{% notice Note %}} -These steps have been tested with the commit `1e4d289502a61265c3b07efb17d8796225bb0b7f`. +You might be able to use later commits. These steps have been tested with the commit `1e4d289502a61265c3b07efb17d8796225bb0b7f`. {{% /notice %}} ### Build for Android CPU @@ -29,9 +30,8 @@ These steps have been tested with the commit `1e4d289502a61265c3b07efb17d8796225 The Ninja generator needs to be used to build on Windows for Android. ```bash -python build.py --build_java --android --android_home --android_ndk_path --android_abi arm64-v8a --config Release - # Example for building with default SDK/NDK paths + # Example python3.11 build.py --build_java --android --android_home C:\Users\$env:USERNAME\AppData\Local\Android\Sdk --android_ndk_path C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973 --android_abi arm64-v8a --config Release ``` From 60359af213ce8ca1118d4c8ac7cf74314b7b3f64 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 11:17:59 -0400 Subject: [PATCH 13/34] Update 2-build-onnxruntime.md --- .../2-build-onnxruntime.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md index ab6a85a996..680b86b6e4 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md @@ -15,31 +15,30 @@ ONNX Runtime is an open-source inference engine designed to accelerate the deplo ### Clone onnxruntime repo -Checkout the source tree: +Open up a Windows Powershell and checkout the source tree: ```bash +cd C:\Users\$env:USERNAME git clone --recursive https://github.com/Microsoft/onnxruntime.git cd onnxruntime +git checkout 9b37b3ea4467b3aab9110e0d259d0cf27478697d ``` {{% notice Note %}} -These steps have been tested with the commit `9b37b3ea4467b3aab9110e0d259d0cf27478697d`. +You might be able to use a later commit. These steps have been tested with the commit `9b37b3ea4467b3aab9110e0d259d0cf27478697d`. {{% /notice %}} ### Build for Android CPU -The Ninja generator needs to be used to build on Windows. +The Ninja generator needs to be used to build on Windows. Run the following command: ```bash -./build.bat --config Release --build_shared_lib --android --android_sdk_path --android_ndk_path --android_abi arm64-v8a --android_api --cmake_generator Ninja --build_java - - # Example for building with default SDK/NDK paths ./build.bat --config Release --build_shared_lib --android --android_sdk_path C:\Users\$env:USERNAME\AppData\Local\Android\Sdk --android_ndk_path C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973 --android_abi arm64-v8a --android_api 27 --cmake_generator Ninja --build_java ``` -Android Archive (AAR) files, which can be imported directly in Android Studio, will be generated by using the above building commands with `--build_java` +Android Archive (AAR) files, which can be imported directly in Android Studio, will be generated by using the above command with `--build_java` When the build is complete, confirm the shared library and the AAR file have been created: From 783fb7fb60564a0e3a1fd332f964e70a7691d5d6 Mon Sep 17 00:00:00 2001 From: NickSample <93723054+NickSample@users.noreply.github.com> Date: Thu, 24 Oct 2024 15:32:18 +0000 Subject: [PATCH 14/34] Editorial review --- .../kubearchinspect/_index.md | 7 ++----- .../kubearchinspect/_next-steps.md | 2 +- .../kubearchinspect/_review.md | 4 ++-- .../kubearchinspect/analyse-results.md | 16 +++++++++------- .../kubearchinspect/before-you-begin.md | 5 +++++ .../kubearchinspect/run-kubearchinspect.md | 8 -------- 6 files changed, 19 insertions(+), 23 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_index.md b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_index.md index ff83f6bff4..de2a37aecb 100644 --- a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_index.md @@ -1,15 +1,12 @@ --- title: Migrate containers to Arm using KubeArchInspect -draft: true -cascade: - draft: true minutes_to_complete: 15 -who_is_this_for: This is an introductory topic for software developers who want to know if the containers running in a Kubernetes cluster are available for the Arm architecture. +who_is_this_for: This is an introductory topic for software developers who want to ensure containers running in a Kubernetes cluster support the Arm architecture. learning_objectives: - - Run KubeArchInspect to get a quick report of the containers running in a Kubernetes cluster. + - Run KubeArchInspect to generate a report on the containers running in a Kubernetes cluster. - Discover which images support the Arm architecture. - Understand common reasons for an image not supporting Arm. - Make configuration changes to upgrade images with Arm support. diff --git a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_next-steps.md b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_next-steps.md index 3174193d80..8e40a1f93b 100644 --- a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_next-steps.md +++ b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_next-steps.md @@ -1,5 +1,5 @@ --- -next_step_guidance: Now you know how to use the KubeArchInspect tool to understand the Arm support of your Kubernetes cluster images. +next_step_guidance: You now know how to use the KubeArchInspect tool to ensure containers running in a Kubernetes cluster support the Arm architecture. To learn more about related topics, please explore the resources below. recommended_path: /learning-paths/servers-and-cloud-computing/eks-multi-arch/ diff --git a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_review.md b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_review.md index 378a647733..fdc1d2d118 100644 --- a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_review.md +++ b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/_review.md @@ -2,7 +2,7 @@ review: - questions: question: > - Which of the following statements is true about kubearchinspect? + Which of the following statements is true about KubeArchInspect? answers: - KubeArchInspect displays a report of the images running in a Kubernetes cluster, but it does not identify which images support arm64. - KubeArchInspect displays a report of the images running in a Kubernetes cluster and identifies which images support arm64. @@ -25,7 +25,7 @@ review: question: > Which of the following is NOT a way to improve your cluster's Arm compatibility? answers: - - Upgrade images to a newer version -- if they support arm64. + - Upgrade images to a newer version that supports arm64. - Find an alternative image that supports arm64. - Request that the developers of an image build and publish an arm64 version. - Contact the Kubernetes community to upgrade your cluster. diff --git a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/analyse-results.md b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/analyse-results.md index a3bdc0efec..3635d50cb7 100644 --- a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/analyse-results.md +++ b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/analyse-results.md @@ -8,7 +8,12 @@ layout: learningpathall ## Identifying issues and opportunities -After running KubeArchInspect, you can examine the output to determine if the cluster image architectures are suitable for your needs. +After running KubeArchInspect, you can examine the output to determine if the cluster image architectures are suitable for your needs. Each image running in the cluster appears on a separate line, including name, tag (version), and test result: + +* A green tick (✅) indicates the image already supports arm64. +* A red cross (❌) indicates that arm64 support is not available. +* An upward arrow (⬆) shows that arm64 support is included in a newer version. +* A red exclamation mark (❗) is shown when an error occurs checking the image. This may indicate an error connecting to the image registry. If you want to run an all Arm cluster, you need to use images which include arm64 support. @@ -25,17 +30,14 @@ Legends: ... sergrua/kube-tagger:release-0.1.1 ❌ ``` - These images are identified as not supporting arm64 (`❌`). ## Addressing issues The KubeArchInspect report provides valuable information for improving the cluster's performance and compatibility with the Arm architecture. -Several approaches can be taken to address the issues identified: +There are several approaches you can take to address issues identified in the report: -* **Upgrade images:** If an image with an available arm64 version (`⬆`) is detected, consider upgrading to that version. This can be done by modifying the deployment configuration and restarting the containers using the new image tag. -* **Find alternative images:** For images with no available arm64 version, look for alternative images that offer arm64 support. For example, instead of a specific image from the registry, try using a more general image like `busybox`, which supports multiple architectures, including arm64. +* **Upgrade images:** If an image with an available arm64 version (`⬆`) is detected, consider upgrading to that version. You can do this by modifying the deployment configuration and restarting the containers using the new image tag. +* **Find alternative images:** For images with no available arm64 version (`❌`), look for alternative images that offer arm64 support. For example, instead of a specific image from the registry, try using a more general image like `busybox`, which supports multiple architectures, including arm64. * **Request Arm support:** If there is no suitable alternative image available, you can contact the image developers or the Kubernetes community and request them to build and publish an arm64 version of the image. - -KubeArchInspect provides an efficient way to understand and improve the Arm architecture support within your Kubernetes cluster, ensuring your cluster runs efficiently and effectively. \ No newline at end of file diff --git a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md index d59fe366bb..bcbe690dae 100644 --- a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md +++ b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md @@ -5,6 +5,11 @@ weight: 2 ### FIXED, DO NOT MODIFY layout: learningpathall --- +## How does KubeArchInspect help? + +KubeArchInspect provides an efficient way to understand and improve the Arm architecture support within your Kubernetes cluster, ensuring your cluster runs efficiently and effectively. + +KubeArchInspect identifies images in a Kubernetes cluster which support the Arm architecture. It does this by checking each image against the source registry for the image and identifying which architectures are available. You can use the results to identify potential issues or opportunities for optimizing the cluster to run on Arm. {{% notice Note %}} KubeArchInspect is a command-line tool which requires a running Kubernetes cluster. diff --git a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/run-kubearchinspect.md b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/run-kubearchinspect.md index 61d3f4830d..18daf3fb29 100644 --- a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/run-kubearchinspect.md +++ b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/run-kubearchinspect.md @@ -6,8 +6,6 @@ weight: 3 layout: learningpathall --- -KubeArchInspect identifies images in a Kubernetes cluster which have support for the Arm architecture. It checks each image against the image registry, checking the available architectures for each image tag. The results can be used to identify potential issues or opportunities for optimizing the cluster for Arm. - ## How do I run KubeArchInspect? To run KubeArchInspect, you need to have `kubearchinspect` installed and ensure that the `kubectl` command is configured to connect to your cluster. If not already configured, you should set up `kubectcl` to connect to your cluster. @@ -65,9 +63,3 @@ quay.io/prometheus/alertmanager:v0.25.0 ✅ 602401143452.dkr.ecr.eu-west-1.amazonaws.com/amazon-k8s-cni-init:v1.15.4-eksbuild.1 ❗ 602401143452.dkr.ecr.eu-west-1.amazonaws.com/amazon-k8s-cni:v1.15.4-eksbuild.1 ❗ ``` - -Each image running in the cluster appears on a separate line, including name, tag (version), and test result. - -A green tick indicates the image already supports arm64, a red cross that arm64 support is not available, an upward arrow shows that arm64 support is included in a newer version. - -A red exclamation mark is shown when an error occurs checking the image. This may indicate an error connecting to the image registry. \ No newline at end of file From 05d48c7ece97f7611bd85002f77f19e3c772d185 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 11:44:24 -0400 Subject: [PATCH 15/34] Update 3-build-onnxruntime-generate-api.md --- .../3-build-onnxruntime-generate-api.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md index 144c0836e1..152b1f07ba 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md @@ -12,7 +12,7 @@ The Generate() API in ONNX Runtime is designed for text generation tasks using m ### Clone onnxruntime-genai repo -Open up a Windows Powershell prompt and checkout the source repo: +Within your Windows Powershell prompt, checkout the source repo: ```bash C:\Users\$env:USERNAME @@ -27,17 +27,15 @@ You might be able to use later commits. These steps have been tested with the co ### Build for Android CPU -The Ninja generator needs to be used to build on Windows for Android. +The Ninja generator needs to be used to build on Windows for Android. Run the following command: ```bash - - # Example +python -m pip install requests python3.11 build.py --build_java --android --android_home C:\Users\$env:USERNAME\AppData\Local\Android\Sdk --android_ndk_path C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973 --android_abi arm64-v8a --config Release - ``` When the build is complete, confirm the shared library has been created: -``` +```output ls build\Android\Release\onnxruntime-genai.so ``` From a7fb7163d093bfa1dcfd4fea970e6370a252992a Mon Sep 17 00:00:00 2001 From: Pranay Bakre Date: Thu, 24 Oct 2024 08:50:56 -0700 Subject: [PATCH 16/34] Google Axion Updates --- .../cross-platform/gitlab/1-gitlab-runner.md | 4 +--- .../servers-and-cloud-computing/csp/google.md | 10 +++++----- .../gcp/jump_server.md | 4 ++-- .../gcp/terraform.md | 2 +- .../gke-multi-arch/_index.md | 4 ++-- .../gke-multi-arch/how-to-1.md | 6 +++--- .../java-on-axion/1-create-instance.md | 6 +----- .../java-on-axion/2-deploy-java.md | 4 ++-- .../java-on-axion/select_axion_instance.png | Bin 165411 -> 0 bytes .../mysql_tune/kernel_comp_lib.md | 2 +- 10 files changed, 18 insertions(+), 24 deletions(-) delete mode 100644 content/learning-paths/servers-and-cloud-computing/java-on-axion/select_axion_instance.png diff --git a/content/learning-paths/cross-platform/gitlab/1-gitlab-runner.md b/content/learning-paths/cross-platform/gitlab/1-gitlab-runner.md index 97d56ca788..d11f820821 100644 --- a/content/learning-paths/cross-platform/gitlab/1-gitlab-runner.md +++ b/content/learning-paths/cross-platform/gitlab/1-gitlab-runner.md @@ -16,9 +16,7 @@ A GitLab Runner works with GitLab CI/CD to run jobs in a pipeline. It acts as an 3. Multi-architecture support: GitLab runners support multiple architectures including - `x86/amd64` and `arm64` ## What is Google Axion? -Axion is Google’s first Arm-based server processor, built using the Armv9 Neoverse V2 CPU. The VM instances are part of the `C4A` family of compute instances. To learn more about Google Axion refer to this [blog](https://cloud.google.com/blog/products/compute/introducing-googles-new-arm-based-cpu). - -Note: These `C4A` VM instances are in public preview and needs a signup to be enabled in your Google Cloud account/project. +Axion is Google’s first Arm-based server processor, built using the Armv9 Neoverse V2 CPU. The VM instances are part of the `C4A` family of compute instances. To learn more about Google Axion refer to this [page](cloud.google.com/products/axion). ## Install GitLab runner on a Google Axion VM diff --git a/content/learning-paths/servers-and-cloud-computing/csp/google.md b/content/learning-paths/servers-and-cloud-computing/csp/google.md index 282fea34a4..c4430cb9de 100644 --- a/content/learning-paths/servers-and-cloud-computing/csp/google.md +++ b/content/learning-paths/servers-and-cloud-computing/csp/google.md @@ -11,7 +11,7 @@ layout: "learningpathall" As with most cloud service providers, Google Cloud offers a pay-as-you-use [pricing policy](https://cloud.google.com/pricing), including a number of [free](https://cloud.google.com/free/docs/free-cloud-features) services. -This section is to help you get started with [Google Cloud Compute Engine](https://cloud.google.com/compute) compute services, using Arm-based [Tau T2A](https://cloud.google.com/tau-vm) Virtual Machines. This is a general-purpose compute platform, essentially your own personal computer in the cloud. +This section is to help you get started with [Google Cloud Compute Engine](https://cloud.google.com/compute) compute services, using Arm-based Virtual Machines. Google Cloud offers two generations of Arm-based VMs, `C4A` is the latest generation based on [Google Axion](cloud.google.com/products/axion), Google’s first Arm-based server processor, built using the Armv9 Neoverse V2 CPU. The previous generation VMs are based on Ampere Altra processor and part of [Tau T2A](https://cloud.google.com/tau-vm) family of Virtual Machines. Detailed instructions are available in the Google Cloud [documentation](https://cloud.google.com/compute/docs/instances). @@ -23,7 +23,7 @@ If using an organization's account, you will likely need to consult with your in ## Browse for an appropriate instance -Google Cloud offers a wide range of instance types, covering all performance (and pricing) points. For an overview of the Tau T2A instance types, see the [General-purpose machine family](https://cloud.google.com/compute/docs/general-purpose-machines#t2a_machines) overview. +Google Cloud offers a wide range of instance types, covering all performance (and pricing) points. For an overview of the `C4A` instance types, see this [page](cloud.google.com/products/axion). Similarly, to know more about the `T2A` instance types, see the [General-purpose machine family](https://cloud.google.com/compute/docs/general-purpose-machines#t2a_machines) overview. Also note which [regions](https://cloud.google.com/compute/docs/regions-zones#available) these servers are available in. @@ -49,15 +49,15 @@ Select an appropriate `region` and `zone` that support Arm-based servers. ![google3 #center](https://github.com/ArmDeveloperEcosystem/arm-learning-paths/assets/71631645/f2a19cd0-7565-44d3-9e6f-b27bccad3e86 "Select an appropriate region and zone") -To view the latest information on which available regions and zones support Arm-based servers, see the [Compute Engine documentation](https://cloud.google.com/compute/docs/regions-zones#available). To filter for Arm-based machines, click on `Select a machine type`, then select `T2A` from the pull-down menu. +To view the latest information on which available regions and zones support Arm-based servers, see the [Compute Engine documentation](https://cloud.google.com/compute/docs/regions-zones#available). To filter for Arm-based machines, click on `Select a machine type`, then select `T2A` or `C4A` from the pull-down menu. ![google4 #center](https://github.com/ArmDeveloperEcosystem/arm-learning-paths/assets/71631645/5b1683dc-724f-4c60-aea6-dc945c7bf6bc "Check which regions and zones support Arm-based machines") ### Machine configuration -Select `T2A` from the `Series` pull-down menu. Then select an appropriate `Machine type` configuration for your needs. +Select `C4A` from the `Series` pull-down menu. Then select an appropriate `Machine type` configuration for your needs. -![google5 #center](images/gcp_instance.png "Select an appropriate T2A machine type") +![google5 #center](images/gcp_instance_new.png "Select an appropriate C4A machine type") ### Boot disk configuration diff --git a/content/learning-paths/servers-and-cloud-computing/gcp/jump_server.md b/content/learning-paths/servers-and-cloud-computing/gcp/jump_server.md index 27c8c36046..9c67fa700c 100644 --- a/content/learning-paths/servers-and-cloud-computing/gcp/jump_server.md +++ b/content/learning-paths/servers-and-cloud-computing/gcp/jump_server.md @@ -69,7 +69,7 @@ resource "google_project_iam_member" "project" { resource "google_compute_instance" "bastion_host" { project = var.project name = "bastion-vm" - machine_type = "t2a-standard-1" + machine_type = "c4a-standard-1" zone = var.zone tags = ["public"] boot_disk { @@ -91,7 +91,7 @@ resource "google_compute_instance" "bastion_host" { resource "google_compute_instance" "private" { project = var.project name = "bastion-private" - machine_type = "t2a-standard-1" + machine_type = "c4a-standard-1" zone = var.zone allow_stopping_for_update = true tags = ["private"] diff --git a/content/learning-paths/servers-and-cloud-computing/gcp/terraform.md b/content/learning-paths/servers-and-cloud-computing/gcp/terraform.md index 63a4622941..bfedc010ba 100644 --- a/content/learning-paths/servers-and-cloud-computing/gcp/terraform.md +++ b/content/learning-paths/servers-and-cloud-computing/gcp/terraform.md @@ -39,7 +39,7 @@ provider "google" { resource "google_compute_instance" "vm_instance" { name = "instance-arm" - machine_type = "t2a-standard-1" + machine_type = "c4a-standard-1" boot_disk { initialize_params { diff --git a/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/_index.md b/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/_index.md index 4188422e34..d093594ea4 100644 --- a/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/_index.md @@ -1,12 +1,12 @@ --- -title: Learn how to migrate an x86 application to multi-architecture with Arm on Google Kubernetes Engine (GKE) +title: Learn how to migrate an x86 application to multi-architecture with Arm-based on Google Axion Processor on GKE minutes_to_complete: 30 who_is_this_for: This is an advanced topic for software developers who are looking to migrate their existing x86 containerized applications to Arm learning_objectives: - - Add Arm-based nodes to an existing x86-based GKE cluster + - Add Arm-based nodes (Google Axion) to an existing x86-based GKE cluster - Rebuild an x86-based application to make it multi-arch and run on Arm - Learn how to add taints and tolerations to GKE clusters to schedule application pods on architecture specific nodes - Run a multi-arch application across multiple architectures on a single GKE cluster diff --git a/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/how-to-1.md b/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/how-to-1.md index adff9915da..63016134df 100644 --- a/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/how-to-1.md +++ b/content/learning-paths/servers-and-cloud-computing/gke-multi-arch/how-to-1.md @@ -8,7 +8,7 @@ layout: learningpathall ## Migrate an existing x86-based application to run on Arm-based nodes in a single GKE cluster -Google Kubernetes Engine (GKE) supports hybrid clusters with x86 and Arm based nodes. The Arm-based nodes can be deployed on the `Tau T2A` family of virtual machines. The `Tau T2A` virtual machines are powered by Ampere Altra Arm-based processors. +Google Kubernetes Engine (GKE) supports hybrid clusters with x86 and Arm based nodes. The Arm-based nodes can be deployed on the `C4A` family of virtual machines. The `C4A` VMs are based on [Google Axion](cloud.google.com/products/axion), Google’s first Arm-based server processor, built using the Armv9 Neoverse V2 CPU. ## Before you begin @@ -102,13 +102,13 @@ Hello from NODE:gke-multi-arch-cluster-default-pool-45537239-q83v, POD:x86-hello ## Add Arm-based nodes to your GKE cluster -Use the following command to add an Arm-based node pool with VM type `t2a-standard-2` to your GKE cluster: +Use the following command to add an Arm-based node pool with VM type `c4a-standard-2` to your GKE cluster: ```console gcloud container node-pools create arm-pool \ --cluster $CLUSTER_NAME \ --zone $ZONE \ - --machine-type=t2a-standard-2 \ + --machine-type=c4a-standard-2 \ --num-nodes=3 ``` After the Arm-nodes are successfully added to the cluster, run the following command to check if both types of nodes show up in the cluster: diff --git a/content/learning-paths/servers-and-cloud-computing/java-on-axion/1-create-instance.md b/content/learning-paths/servers-and-cloud-computing/java-on-axion/1-create-instance.md index 7d4604d0fc..0e30ae6993 100644 --- a/content/learning-paths/servers-and-cloud-computing/java-on-axion/1-create-instance.md +++ b/content/learning-paths/servers-and-cloud-computing/java-on-axion/1-create-instance.md @@ -8,11 +8,7 @@ layout: learningpathall ## Create an Axion instance -Axion is Google’s first Arm-based server processor, built using the Armv9 Neoverse V2 CPU. Created specifically for the data center, Axion delivers industry-leading performance and energy efficiency. - -{{% notice Note %}} -The Axion instance type (C4A) is currently in public preview. A GA (General Availability) release will happen in the coming months. -{{% /notice %}} +Axion is Google’s first Arm-based server processor, built using the Armv9 Neoverse V2 CPU. Created specifically for the data center, Axion delivers industry-leading performance and energy efficiency. To learn more about Google Axion, refer to this [page](cloud.google.com/products/axion) There are several ways to create an Arm-based Google Axion VM: the Google Cloud console, the gcloud CLI tool, or using your choice of IaC (Infrastructure as Code). diff --git a/content/learning-paths/servers-and-cloud-computing/java-on-axion/2-deploy-java.md b/content/learning-paths/servers-and-cloud-computing/java-on-axion/2-deploy-java.md index 65c89d4af8..98313d2d6a 100644 --- a/content/learning-paths/servers-and-cloud-computing/java-on-axion/2-deploy-java.md +++ b/content/learning-paths/servers-and-cloud-computing/java-on-axion/2-deploy-java.md @@ -90,7 +90,7 @@ java -jar target/*.jar Once the application is running, you can open the web app in a web browser by visiting ```bash -http://[EXTERNAL IP]:8080 +http://:8080 ``` -Where `[EXTERNAL IP]` is the value you obtained in the [last section](/learning-paths/servers-and-cloud-computing/java-on-axion/1-create-instance/#obtain-the-ip-of-your-instance). +Where `` is the value you obtained in the [last section](/learning-paths/servers-and-cloud-computing/java-on-axion/1-create-instance/#obtain-the-ip-of-your-instance). diff --git a/content/learning-paths/servers-and-cloud-computing/java-on-axion/select_axion_instance.png b/content/learning-paths/servers-and-cloud-computing/java-on-axion/select_axion_instance.png deleted file mode 100644 index d537fd83d19420a820e155fb2ce53bb369bfbec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165411 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

}hDb%)X-<=?Aj=ra>O%!drh3 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 UJ#_c}3GffDsHspacR%3&0ktT?jQ{`u diff --git a/content/learning-paths/servers-and-cloud-computing/mysql_tune/kernel_comp_lib.md b/content/learning-paths/servers-and-cloud-computing/mysql_tune/kernel_comp_lib.md index 95d35ff73b..e42c507ac0 100644 --- a/content/learning-paths/servers-and-cloud-computing/mysql_tune/kernel_comp_lib.md +++ b/content/learning-paths/servers-and-cloud-computing/mysql_tune/kernel_comp_lib.md @@ -14,7 +14,7 @@ The underlying storage technology and the file system format can impact performa Aside from the storage technology, the file system format used with `MySQL` can impact performance. The `xfs` file system is a good starting point. The `ext4` file system is another good alternative. Last, it is recommended to use storage drives that are dedicated to the database (i.e. not shared with the OS or other applications). -When running in the cloud, the disk scheduling algorithm is typically set to `noop` or a similar "dumb" algorithm. This is typically optimal for `MySQL` in the cloud, so no adjustment is needed. However, if running `MySQL` on an on-prem server, it's a good idea to double check what the disk scheduling algorithm is, and possibly change it. According to the [Optimizing InnoDB Disk I/O documentation]https://dev.mysql.com/doc/refman/en/optimizing-innodb-diskio.html), `noop` or `deadline` might be better options. It's worth testing this with on-prem systems. +When running in the cloud, the disk scheduling algorithm is typically set to `noop` or a similar "dumb" algorithm. This is typically optimal for `MySQL` in the cloud, so no adjustment is needed. However, if running `MySQL` on an on-prem server, it's a good idea to double check what the disk scheduling algorithm is, and possibly change it. According to the [Optimizing InnoDB Disk I/O documentation](https://dev.mysql.com/doc/refman/en/optimizing-innodb-diskio.html), `noop` or `deadline` might be better options. It's worth testing this with on-prem systems. ## MySQL storage engines From e750a1b219b80534b0cd2344d30ce3af8acd2d8c Mon Sep 17 00:00:00 2001 From: NickSample <93723054+NickSample@users.noreply.github.com> Date: Thu, 24 Oct 2024 16:29:11 +0000 Subject: [PATCH 17/34] Further edit from KB --- .../kubearchinspect/before-you-begin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md index bcbe690dae..9d909ef123 100644 --- a/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md +++ b/content/learning-paths/servers-and-cloud-computing/kubearchinspect/before-you-begin.md @@ -7,7 +7,7 @@ layout: learningpathall --- ## How does KubeArchInspect help? -KubeArchInspect provides an efficient way to understand and improve the Arm architecture support within your Kubernetes cluster, ensuring your cluster runs efficiently and effectively. +KubeArchInspect is a tool developed by Arm. It provides an efficient way to understand and improve the Arm architecture support within your Kubernetes cluster, ensuring your cluster runs efficiently and effectively. KubeArchInspect identifies images in a Kubernetes cluster which support the Arm architecture. It does this by checking each image against the source registry for the image and identifying which architectures are available. You can use the results to identify potential issues or opportunities for optimizing the cluster to run on Arm. From e93454e55d73123bd5b8f6dff050884646595602 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 13:17:45 -0400 Subject: [PATCH 18/34] Update 2-build-onnxruntime.md --- .../2-build-onnxruntime.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md index 680b86b6e4..c71f05d6e0 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md @@ -30,7 +30,13 @@ You might be able to use a later commit. These steps have been tested with the c ### Build for Android CPU -The Ninja generator needs to be used to build on Windows. Run the following command: +The Ninja generator needs to be used to build on Windows. First, set JAVA_HOME to the path to your JDK install. You can point to the JDK from Android Studio, or a standalone JDK install. + +```bash +$env:JAVA_HOME="C:\Program Files\Android\Android Studio\jbr" +``` + +Now run the following command: ```bash From 579e4902f3c7b3296ae96d79ffe3f2765d14c7e6 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 13:25:53 -0400 Subject: [PATCH 19/34] Update 3-build-onnxruntime-generate-api.md --- .../3-build-onnxruntime-generate-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md index 152b1f07ba..75a870e81e 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md @@ -27,7 +27,7 @@ You might be able to use later commits. These steps have been tested with the co ### Build for Android CPU -The Ninja generator needs to be used to build on Windows for Android. Run the following command: +The Ninja generator needs to be used to build on Windows for Android. Make sure JAVA_HOME is set before running the following command: ```bash python -m pip install requests From 775aab882c7b41852f706fd89c1d3f0bc7c31fa5 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 13:52:22 -0400 Subject: [PATCH 20/34] Update 4-run-benchmark-on-android.md --- .../4-run-benchmark-on-android.md | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md index 5a4085ebe8..595f8859a4 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md @@ -11,7 +11,7 @@ layout: learningpathall ### Build model runner -Cross-compile the model runner to run on Android using the commands below. +You will now cross-compile the model runner to run on Android using the commands below: ``` bash cd onnxruntime-genai @@ -20,12 +20,10 @@ copy src\ort_genai_c.h examples\c\include\ cd examples\c mkdir build cd build +`` +Run the cmake command as shown: -### Build for Android -cmake -DCMAKE_TOOLCHAIN_FILE=\build\cmake\android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android- -DCMAKE_BUILD_TYPE=Release -G "Ninja" .. -ninja - -# example for building on Windows +```bash cmake -DCMAKE_TOOLCHAIN_FILE=C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973\build\cmake\android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-27 -DCMAKE_BUILD_TYPE=Release -G "Ninja" .. ninja ``` @@ -34,16 +32,15 @@ After successful build, a binary program called `phi3` will be created. ### Prepare phi-3-mini model -Phi-3 ONNX models are hosted on HuggingFace. You can download the Phi-3-mini model with huggingface-cli command. +Phi-3 ONNX models are hosted on HuggingFace. You can download the Phi-3-mini model with huggingface-cli command: ``` bash pip install huggingface-hub[cli] - -# This command downloads the model into a folder called cpu_and_mobile huggingface-cli download microsoft/Phi-3-mini-4k-instruct-onnx --include cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/* --local-dir . ``` +This command downloads the model into a folder called cpu_and_mobile. -The phi-3-mini (3B) have a short (4k) context version and a long (128k) context version. The long context version can accept much longer prompts and produce longer output text, but it does consume more memory. This tutorial uses the short context version, which is quantized to 4-bits. +The phi-3-mini (3B) model has a short (4k) context version and a long (128k) context version. The long context version can accept much longer prompts and produce longer output text, but it does consume more memory. In this learning path, you will use the short context version, which is quantized to 4-bits. ### Run on Android via adb shell @@ -82,10 +79,10 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp ./phi3 cpu-int4-rtn-block-32-acc-level-4 ``` -This will allow the runner program to load the model, and then it will prompt you to input the text prompt to be given to the model. After inputting, the text output by the model will be displayed sequentially, and upon completion, the following performance metrics should be displayed. +This will allow the runner program to load the model, and then it will prompt you to input the text prompt to the model. After you enter yout input prompt, the text output by the model will be displayed. On completion, the performance metrics similar to what is shown below should be displayed: ``` Prompt length: 64, New tokens: 931, Time to first: 1.79s, Prompt tokens per second: 35.74 tps, New tokens per second: 6.34 tps ``` -You have successfully run a model on your Android smartphone. +You have successfully run the Phi-3 model on your Android smartphone powered by Arm. From 28b931757f754b7e5217cd720e7f46e8d01c7b6e Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 13:55:15 -0400 Subject: [PATCH 21/34] Update 5-build-android-chat-app.md --- .../5-build-android-chat-app.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md index fbaec5a7a8..189f1882e7 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md @@ -8,33 +8,34 @@ layout: learningpathall ## Build Android chat app -Another way to run the model is to use a GUI Android app. -You can use the Android demo application included in [onnxruntime-inference-examples repository](https://github.com/microsoft/onnxruntime-inference-examples) to demonstrate local inference. +Another way to run the model is to use an Android GUI app. +You can use the Android demo application included in the [onnxruntime-inference-examples repository](https://github.com/microsoft/onnxruntime-inference-examples) to demonstrate local inference. ### Clone the repo ``` bash git clone https://github.com/microsoft/onnxruntime-inference-examples cd onnxruntime-inference-examples +git checkout 009920df0136d7dfa53944d06af01002fb63e2f5 ``` {{% notice Note %}} -These steps have been tested with the commit `009920df0136d7dfa53944d06af01002fb63e2f5`. +You could probably use a later commit but these steps have been tested with the commit `009920df0136d7dfa53944d06af01002fb63e2f5`. {{% /notice %}} ### Build the app using Android Studio -Open `mobile\examples\phi-3\android` directory with Android Studio. +Open the `mobile\examples\phi-3\android` directory with Android Studio. #### (Optional) In case you want to use ONNX Runtime AAR you built -Copy ONNX Runtime AAR you built before if needed +Copy ONNX Runtime AAR you built before if needed: ```bash Copy onnxruntime\build\Windows\Release\java\build\android\outputs\aar\onnxruntime-release.aar mobile\examples\phi-3\android\app\libs ``` -Update build.gradle.kts (:app) as below: +Update `build.gradle.kts (:app)` as below: ``` kotlin // ONNX Runtime with GenAI @@ -46,7 +47,7 @@ After that, click `File`->`Sync Project with Gradle` #### Build and run the app -When you press Run, the build will be executed, and then the app will be transferred and installed on the Android device. This app will automatically download the Phi-3-mini model during the first run. After the download, you can input the prompt in the text box and execute it to run the model. +When you press Run, the build will be executed, and then the app will be copied and installed on the Android device. This app will automatically download the Phi-3-mini model during the first run. After the download, you can input the prompt in the text box and execute it to run the model. You should now see a running app on your phone that looks like this: From 9df01577ebe03b55f19854be1652cdbce899b9be Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 13:56:16 -0400 Subject: [PATCH 22/34] Update _review.md --- .../build-android-chat-app-using-onnxruntime/_review.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md index 5caceb45bf..cb625f676a 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md @@ -16,7 +16,7 @@ review: What is Phi? answers: - A new optimization algorithm for neural networks. - - A family of pre-trained language model. + - A family of pre-trained language models. - A toolkit for converting machine learning models to ONNX format. correct_answer: 2 explanation: > From a7b00fe7320886adfb289a12e636615d844e9d40 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 13:57:14 -0400 Subject: [PATCH 23/34] Update _next-steps.md --- .../build-android-chat-app-using-onnxruntime/_next-steps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md index 16b12cdf0b..43c72da9b1 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md @@ -1,5 +1,5 @@ --- -next_step_guidance: Now that you are familiar with building LLM applications with ONNX Runtime, you are ready to incorporate LLMs into your Android applications. +next_step_guidance: Now that you are familiar with building LLM applications with ONNX Runtime, you are ready to incorporate LLMs into your Android applications. You can learn how to further accelerate the performance of your LLMs using KleidiAI: recommended_path: /learning-paths/cross-platform/kleidiai-explainer/ From 204d820aadee1a0f219ecb7d41f838fcc9b18f42 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 13:59:19 -0400 Subject: [PATCH 24/34] Update _next-steps.md --- .../build-android-chat-app-using-onnxruntime/_next-steps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md index 43c72da9b1..3be9b43e25 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_next-steps.md @@ -1,5 +1,5 @@ --- -next_step_guidance: Now that you are familiar with building LLM applications with ONNX Runtime, you are ready to incorporate LLMs into your Android applications. You can learn how to further accelerate the performance of your LLMs using KleidiAI: +next_step_guidance: Now that you are familiar with building LLM applications with ONNX Runtime, you are ready to incorporate LLMs into your Android applications. You can learn how to further accelerate the performance of your LLMs using KleidiAI. recommended_path: /learning-paths/cross-platform/kleidiai-explainer/ From 595187fb8194640ed013a0c06ebb84f22bbb9243 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Thu, 24 Oct 2024 14:03:02 -0400 Subject: [PATCH 25/34] Update 4-run-benchmark-on-android.md --- .../4-run-benchmark-on-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md index 595f8859a4..160f0ba5fd 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md @@ -20,7 +20,7 @@ copy src\ort_genai_c.h examples\c\include\ cd examples\c mkdir build cd build -`` +``` Run the cmake command as shown: ```bash From 5bc176cd7766bd09ab8a144b85b509b76f0bad20 Mon Sep 17 00:00:00 2001 From: ChengZi Date: Fri, 25 Oct 2024 16:39:29 +0800 Subject: [PATCH 26/34] add utm in zilliz document Signed-off-by: ChengZi --- .../servers-and-cloud-computing/milvus-rag/_index.md | 2 +- .../milvus-rag/offline_data_loading.md | 10 +++++----- .../milvus-rag/prerequisite.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) 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 8cd15700f2..82820bf743 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 @@ -12,7 +12,7 @@ learning_objectives: prerequisites: - A basic understanding of a RAG pipeline. - An AWS Graviton3 C7g.2xlarge instance, or any [Arm-based instance](/learning-paths/servers-and-cloud-computing/csp) from a cloud service provider or an on-premise Arm server. - - A [Zilliz account](https://zilliz.com/cloud), which you can sign up for with a free trial. + - A [Zilliz account](https://zilliz.com/cloud?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm), which you can sign up for with a free trial. author_primary: Chen Zhang diff --git a/content/learning-paths/servers-and-cloud-computing/milvus-rag/offline_data_loading.md b/content/learning-paths/servers-and-cloud-computing/milvus-rag/offline_data_loading.md index 0299590493..6b0465696d 100644 --- a/content/learning-paths/servers-and-cloud-computing/milvus-rag/offline_data_loading.md +++ b/content/learning-paths/servers-and-cloud-computing/milvus-rag/offline_data_loading.md @@ -9,9 +9,9 @@ layout: learningpathall In this section, you will set up a cluster on Zilliz Cloud. -Begin by [registering](https://docs.zilliz.com/docs/register-with-zilliz-cloud) for a free account on Zilliz Cloud. +Begin by [registering](https://docs.zilliz.com/docs/register-with-zilliz-cloud?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm) for a free account on Zilliz Cloud. -After you register, [create a cluster](https://docs.zilliz.com/docs/create-cluster). +After you register, [create a cluster](https://docs.zilliz.com/docs/create-cluster?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm). Now create a **Dedicated** cluster deployed in AWS using Arm-based machines to store and retrieve the vector data as shown: @@ -22,7 +22,7 @@ When you select the **Create Cluster** Button, you should see the cluster runnin ![running](running_cluster.png) {{% notice Note %}} -You can use self-hosted Milvus as an alternative to Zilliz Cloud. This option is more complicated to set up. You can also deploy [Milvus Standalone](https://milvus.io/docs/install_standalone-docker-compose.md) and [Kubernetes](https://milvus.io/docs/install_cluster-milvusoperator.md) on Arm-based machines. For more information about installing Milvus, see the [Milvus installation documentation](https://milvus.io/docs/install-overview.md). +You can use self-hosted Milvus as an alternative to Zilliz Cloud. This option is more complicated to set up. You can also deploy [Milvus Standalone](https://milvus.io/docs/install_standalone-docker-compose.md?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm) and [Kubernetes](https://milvus.io/docs/install_cluster-milvusoperator.md?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm) on Arm-based machines. For more information about installing Milvus, see the [Milvus installation documentation](https://milvus.io/docs/install-overview.md?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm). {{% /notice %}} ## Create the Collection @@ -39,7 +39,7 @@ milvus_client = MilvusClient( ) ``` -Replace ** and ** with the `URI` and `Token` for your running cluster. Refer to [Public Endpoint and Api key](https://docs.zilliz.com/docs/on-zilliz-cloud-console#free-cluster-details) in Zilliz Cloud for further information. +Replace ** and ** with the `URI` and `Token` for your running cluster. Refer to [Public Endpoint and Api key](https://docs.zilliz.com/docs/on-zilliz-cloud-console#free-cluster-details?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm) in Zilliz Cloud for further information. Now, append the following code to `zilliz-llm-rag.py` and save the contents: @@ -60,7 +60,7 @@ milvus_client.create_collection( This code checks if a collection already exists and drops it if it does. If this happens, you can create a new collection with the specified parameters. If you do not specify any field information, Milvus automatically creates a default `id` field for the primary key, and a `vector` field to store the vector data. A reserved JSON field is used to store non-schema defined fields and their values. -You can use inner product distance as the default metric type. For more information about distance types, you can refer to [Similarity Metrics page](https://milvus.io/docs/metric.md?tab=floating). +You can use inner product distance as the default metric type. For more information about distance types, you can refer to [Similarity Metrics page](https://milvus.io/docs/metric.md?tab=floating?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm). You can now prepare the data to use in this collection. diff --git a/content/learning-paths/servers-and-cloud-computing/milvus-rag/prerequisite.md b/content/learning-paths/servers-and-cloud-computing/milvus-rag/prerequisite.md index 1008493283..41ef015331 100644 --- a/content/learning-paths/servers-and-cloud-computing/milvus-rag/prerequisite.md +++ b/content/learning-paths/servers-and-cloud-computing/milvus-rag/prerequisite.md @@ -12,7 +12,7 @@ In this Learning Path, you will learn how to build a Retrieval-Augmented Generat RAG applications often use vector databases to efficiently store and retrieve high-dimensional vector representations of text data. Vector databases are optimized for similarity search and can handle large volumes of vector data, making them ideal for the retrieval component of RAG systems. -In this Learning Path, you will use [Zilliz Cloud](https://zilliz.com/cloud) for your vector storage, which is a fully managed Milvus vector database. Zilliz Cloud is available on major cloud computing service providers; for example, AWS, GCP, and Azure. +In this Learning Path, you will use [Zilliz Cloud](https://zilliz.com/cloud?utm_source=partner&utm_medium=referral&utm_campaign=2024-10-24_web_arm-dev-hub-data-loading_arm) for your vector storage, which is a fully managed Milvus vector database. Zilliz Cloud is available on major cloud computing service providers; for example, AWS, GCP, and Azure. Here, you will use Zilliz Cloud deployed on AWS with an Arm-based server. For the LLM, you will use the Llama-3.1-8B model also running on an AWS Arm-based server, but using `llama.cpp`. From ebc70c376ae6286280cda86f5352f3895b4c75f0 Mon Sep 17 00:00:00 2001 From: NickSample <93723054+NickSample@users.noreply.github.com> Date: Fri, 25 Oct 2024 11:28:41 +0000 Subject: [PATCH 27/34] Editorial review --- .../1-dev-env-setup.md | 18 +++++++-------- .../2-build-onnxruntime.md | 4 ++-- .../3-build-onnxruntime-generate-api.md | 10 ++++++-- .../4-run-benchmark-on-android.md | 23 ++++++++++--------- .../5-build-android-chat-app.md | 14 +++++------ .../_index.md | 4 ++-- .../_review.md | 6 ++--- 7 files changed, 42 insertions(+), 37 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md index 5a2996191c..6c640dd1f8 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/1-dev-env-setup.md @@ -8,9 +8,9 @@ layout: learningpathall ## Set up your development environment -In this Learning Path, you will learn how to build and deploy a simple LLM-based chat app to an Android device using ONNX Runtime. You will learn how to build the ONNX runtime and ONNX Runtime generate() API and how to run the Phi-3 model for the Android application. +In this learning path, you will learn how to build and deploy a simple LLM-based chat app to an Android device using ONNX Runtime. You will learn how to build the ONNX Runtime and ONNX Runtime generate() API and how to run the Phi-3 model for the Android application. -The first step is to prepare a development environment with the required software: +Your first task is to prepare a development environment with the required software: - Android Studio (latest version recommended) - Android NDK (tested with version 27.0.12077973) @@ -18,7 +18,7 @@ The first step is to prepare a development environment with the required softwar - CMake (tested with version 3.28.1) - Ninja (tested with version 1.11.1) -The instructions were tested on an x86 Windows machine with at least 16GB of RAM. +The following instructions were tested on an x86 Windows machine with at least 16GB of RAM. ## Install Android Studio and Android NDK @@ -26,13 +26,13 @@ Follow these steps to install and configure Android Studio: 1. Download and install the latest version of [Android Studio](https://developer.android.com/studio/). -2. Navigate to `Tools -> SDK Manager`. +2. Navigate to **Tools > SDK Manager**. -3. In the `SDK Platforms` tab, check `Android 14.0 ("UpsideDownCake")`. +3. In the **SDK Platforms** tab, check **Android 14.0 ("UpsideDownCake")**. -4. In the `SDK Tools` tab, check `NDK (Side by side)`. +4. In the **SDK Tools** tab, check **NDK (Side by side)**. -5. Click Ok and Apply. +5. Click **OK** and **Apply**. ## Install Python 3.11 @@ -50,9 +50,7 @@ The instructions were tested with version 3.28.1 ## Install Ninja -Ninja is a minimalistic build system designed to efficiently handle incremental builds, particularly in large-scale software projects, by focusing on speed and simplicity. - -The Ninja generator needs to be used to build on Windows for Android. +Ninja is a minimalistic build system designed to efficiently handle incremental builds, particularly in large-scale software projects, by focusing on speed and simplicity. The Ninja generator is used to build on Windows for Android. [Download and install Ninja]( https://github.com/ninja-build/ninja/releases) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md index c71f05d6e0..d6541e2bd6 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/2-build-onnxruntime.md @@ -30,7 +30,7 @@ You might be able to use a later commit. These steps have been tested with the c ### Build for Android CPU -The Ninja generator needs to be used to build on Windows. First, set JAVA_HOME to the path to your JDK install. You can point to the JDK from Android Studio, or a standalone JDK install. +You use the Ninja generator to build on Windows for Android. First, set JAVA_HOME to the path to your JDK install. You can point to the JDK from Android Studio, or a standalone JDK install. ```bash $env:JAVA_HOME="C:\Program Files\Android\Android Studio\jbr" @@ -44,7 +44,7 @@ Now run the following command: ``` -Android Archive (AAR) files, which can be imported directly in Android Studio, will be generated by using the above command with `--build_java` +An Android Archive (AAR) file, which can be imported directly in Android Studio, will be generated by using the above command with `--build_java` When the build is complete, confirm the shared library and the AAR file have been created: diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md index 75a870e81e..64bf0127ae 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md @@ -8,7 +8,13 @@ layout: learningpathall ## Cross-compile the ONNX Runtime generate() API for Android CPU -The Generate() API in ONNX Runtime is designed for text generation tasks using models like Phi-3. It implements the generative AI loop for ONNX models, including pre and post processing, inference with ONNX Runtime, logits processing, search and sampling, and KV cache management. You can learn more by reading the [ONNX Runtime generate() API page](https://onnxruntime.ai/docs/genai/). +The Generate() API in ONNX Runtime is designed for text generation tasks using models like Phi-3. It implements the generative AI loop for ONNX models, including: +- pre- and post-processing +- inference with ONNX Runtime +- logits processing +- search and sampling +- KV cache management. +You can learn more by reading the [ONNX Runtime generate() API page](https://onnxruntime.ai/docs/genai/). ### Clone onnxruntime-genai repo @@ -27,7 +33,7 @@ You might be able to use later commits. These steps have been tested with the co ### Build for Android CPU -The Ninja generator needs to be used to build on Windows for Android. Make sure JAVA_HOME is set before running the following command: +Ninja generator is used to build on Windows for Android. Make sure you have set JAVA_HOME before running the following command: ```bash python -m pip install requests diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md index 160f0ba5fd..4d231a3eef 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/4-run-benchmark-on-android.md @@ -1,17 +1,18 @@ --- -title: Run Benchmark on Android phone +title: Run a benchmark on an Android phone weight: 5 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Run example code for running Phi-3-mini +## Run a Phi-3 model on your Android phone +You can now prepare and run a Phi-3-mini model on your Android smartphone, and view performance metrics: ### Build model runner -You will now cross-compile the model runner to run on Android using the commands below: +First, cross-compile the model runner to run on Android using the commands below: ``` bash cd onnxruntime-genai @@ -21,7 +22,7 @@ cd examples\c mkdir build cd build ``` -Run the cmake command as shown: +Run the `cmake` command as shown: ```bash cmake -DCMAKE_TOOLCHAIN_FILE=C:\Users\$env:USERNAME\AppData\Local\Android\Sdk\ndk\27.0.12077973\build\cmake\android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-27 -DCMAKE_BUILD_TYPE=Release -G "Ninja" .. @@ -30,25 +31,25 @@ ninja After successful build, a binary program called `phi3` will be created. -### Prepare phi-3-mini model +### Prepare Phi-3-mini model -Phi-3 ONNX models are hosted on HuggingFace. You can download the Phi-3-mini model with huggingface-cli command: +Phi-3 ONNX models are hosted on HuggingFace. You can download the Phi-3-mini model by using the `huggingface-cli` command: ``` bash pip install huggingface-hub[cli] huggingface-cli download microsoft/Phi-3-mini-4k-instruct-onnx --include cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/* --local-dir . ``` -This command downloads the model into a folder called cpu_and_mobile. +This command downloads the model into a folder called `cpu_and_mobile`. -The phi-3-mini (3B) model has a short (4k) context version and a long (128k) context version. The long context version can accept much longer prompts and produce longer output text, but it does consume more memory. In this learning path, you will use the short context version, which is quantized to 4-bits. +The Phi-3-mini (3B) model has a short (4k) context version and a long (128k) context version. The long context version can accept much longer prompts and produce longer output text, but it does consume more memory. In this learning path, you will use the short context version, which is quantized to 4-bits. ### Run on Android via adb shell -#### Connect your android phone +#### Connect your Android phone Connect your phone to your computer using a USB cable. -You need to enable USB debugging on your Android device. You can follow [Configure on-device developer options](https://developer.android.com/studio/debug/dev-options) to enable USB debugging. +You need to enable USB debugging on your Android device. You can follow [Configure on-device developer options](https://developer.android.com/studio/debug/dev-options) to do this. Once you have enabled USB debugging and connected via USB, run: @@ -79,7 +80,7 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp ./phi3 cpu-int4-rtn-block-32-acc-level-4 ``` -This will allow the runner program to load the model, and then it will prompt you to input the text prompt to the model. After you enter yout input prompt, the text output by the model will be displayed. On completion, the performance metrics similar to what is shown below should be displayed: +This will allow the runner program to load the model. It will then prompt you to input the text prompt to the model. After you enter your input prompt, the text output by the model will be displayed. On completion, performance metrics similar to those shown below should be displayed: ``` Prompt length: 64, New tokens: 931, Time to first: 1.79s, Prompt tokens per second: 35.74 tps, New tokens per second: 6.34 tps diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md index 189f1882e7..a7a9d85cce 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/5-build-android-chat-app.md @@ -1,12 +1,12 @@ --- -title: Build and Run Android chat app +title: Build and run an Android chat app weight: 6 ### FIXED, DO NOT MODIFY layout: learningpathall --- -## Build Android chat app +## Build an Android chat app Another way to run the model is to use an Android GUI app. You can use the Android demo application included in the [onnxruntime-inference-examples repository](https://github.com/microsoft/onnxruntime-inference-examples) to demonstrate local inference. @@ -27,9 +27,9 @@ You could probably use a later commit but these steps have been tested with the Open the `mobile\examples\phi-3\android` directory with Android Studio. -#### (Optional) In case you want to use ONNX Runtime AAR you built +#### (Optional) In case you want to use the ONNX Runtime AAR you built -Copy ONNX Runtime AAR you built before if needed: +Copy ONNX Runtime AAR you built earlier in this learning path: ```bash Copy onnxruntime\build\Windows\Release\java\build\android\outputs\aar\onnxruntime-release.aar mobile\examples\phi-3\android\app\libs @@ -43,12 +43,12 @@ Update `build.gradle.kts (:app)` as below: implementation(files("libs/onnxruntime-release.aar")) ``` -After that, click `File`->`Sync Project with Gradle` +Finally, click **File > Sync Project with Gradle** #### Build and run the app -When you press Run, the build will be executed, and then the app will be copied and installed on the Android device. This app will automatically download the Phi-3-mini model during the first run. After the download, you can input the prompt in the text box and execute it to run the model. +When you select **Run**, the build will be executed, and then the app will be copied and installed on the Android device. This app will automatically download the Phi-3-mini model during the first run. After the download, you can input the prompt in the text box and execute it to run the model. -You should now see a running app on your phone that looks like this: +You should now see a running app on your phone, which looks like this: ![App screenshot](screenshot.png) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md index 91ca06e9c9..2bb14e1297 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md @@ -7,10 +7,10 @@ who_is_this_for: This is an advanced topic for software developers interested in learning_objectives: - Build ONNX Runtime and ONNX Runtime generate() API for Android. - - Run the Phi-3 model using ONNX Runtime on an Arm-based smartphone. + - Run a Phi-3 model using ONNX Runtime on an Arm-based smartphone. prerequisites: - - A Windows x86_64 development machine with at least 16GB of RAM. You should also be able to use Linux or MacOS for the build, but the instructions for it have not been included in this learning path. + - A Windows x86_64 development machine with at least 16GB of RAM. (You should also be able to use Linux or MacOS for the build, but the instructions for this are not included in this learning path.) - An Android phone with at least 8GB of RAM. This learning path was tested on Samsung Galaxy S24. author_primary: Koki Mitsunami diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md index cb625f676a..10e994b600 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_review.md @@ -9,7 +9,7 @@ review: - A cloud-based data storage service for deep learning models. correct_answer: 1 explanation: > - ONNX Runtime is a cross-platform inference engine designed to to run machine-learning models in the ONNX format. It optimizes model performance across various hardware environments, including CPUs, GPUs, and specialized accelerators. + ONNX Runtime is a cross-platform inference engine designed to to run machine learning models in the ONNX format. It optimizes model performance across various hardware environments, including CPUs, GPUs and specialized accelerators. - questions: question: > @@ -20,7 +20,7 @@ review: - A toolkit for converting machine learning models to ONNX format. correct_answer: 2 explanation: > - Phi models are a series of large language models developed to perform natural language processing tasks such as text generation, completion, and comprehension. + Phi models are a series of Large Language Models developed to perform natural language processing tasks such as text generation, completion and comprehension. - questions: question: > @@ -31,7 +31,7 @@ review: - It allows models to be exchanged between different frameworks, such as PyTorch and TensorFlow. correct_answer: 3 explanation: > - The ONNX (Open Neural Network Exchange) format is an open-source standard designed to enable the sharing and use of machine learning models across different frameworks such as PyTorch, TensorFlow, and others. It allows models to be exported in a unified format, making them interoperable and ensuring they can run on various platforms or hardware. + The ONNX (Open Neural Network Exchange) format is an open-source standard designed to enable the sharing and use of machine learning models across different frameworks such as PyTorch and TensorFlow. It allows models to be exported in a unified format, making them interoperable and ensuring they can run on various platforms or hardware. From 60a5f60acf04be036bdf525bca9d37852e271f9e Mon Sep 17 00:00:00 2001 From: NickSample <93723054+NickSample@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:27:17 +0000 Subject: [PATCH 28/34] KB updates --- .../3-build-onnxruntime-generate-api.md | 2 +- .../build-android-chat-app-using-onnxruntime/_index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md index 64bf0127ae..4ca2983bec 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/3-build-onnxruntime-generate-api.md @@ -6,7 +6,7 @@ weight: 4 layout: learningpathall --- -## Cross-compile the ONNX Runtime generate() API for Android CPU +## Cross-compile the ONNX Runtime Generate() API for Android CPU The Generate() API in ONNX Runtime is designed for text generation tasks using models like Phi-3. It implements the generative AI loop for ONNX models, including: - pre- and post-processing diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md index 2bb14e1297..73ef3146ae 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md @@ -10,7 +10,7 @@ learning_objectives: - Run a Phi-3 model using ONNX Runtime on an Arm-based smartphone. prerequisites: - - A Windows x86_64 development machine with at least 16GB of RAM. (You should also be able to use Linux or MacOS for the build, but the instructions for this are not included in this learning path.) + - A Windows x86_64 development machine with at least 16GB of RAM. - An Android phone with at least 8GB of RAM. This learning path was tested on Samsung Galaxy S24. author_primary: Koki Mitsunami From 7be857456e1891127f692df0f19e872925021419 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Mon, 28 Oct 2024 14:24:45 -0700 Subject: [PATCH 29/34] Review the WPA plugin install guide --- .../install-guides/windows-perf-wpa-plugin.md | 130 ++++++++++-------- 1 file changed, 73 insertions(+), 57 deletions(-) diff --git a/content/install-guides/windows-perf-wpa-plugin.md b/content/install-guides/windows-perf-wpa-plugin.md index 64b8296ad2..0970049519 100644 --- a/content/install-guides/windows-perf-wpa-plugin.md +++ b/content/install-guides/windows-perf-wpa-plugin.md @@ -1,8 +1,8 @@ --- ### Title the install tools article with the name of the tool to be installed ### Include vendor name where appropriate -title: WindowsPerf Ecosystem - the Windows Performance Analyzer (WPA) Plugin -minutes_to_complete: 5 +title: Windows Performance Analyzer (WPA) Plugin +minutes_to_complete: 15 official_docs: https://github.com/arm-developer-tools/windowsperf-wpa-plugin @@ -16,10 +16,9 @@ additional_search_terms: - windows - woa - windows on arm - - open source windows on arm - windows performance analyzer - wpa - - windowsperf + ### FIXED, DO NOT MODIFY weight: 1 # Defines page ordering. Must be 1 for first (or only) page. tool_install: true # Set to true to be listed in main selection page, else false @@ -28,94 +27,111 @@ multitool_install_part: false # Set to true if a sub-page of a multi-page articl layout: installtoolsall # DO NOT MODIFY. Always true for tool install articles --- -## Introduction +## What is the Windows Performance Analyzer plugin? -[**WindowsPerf**](https://github.com/arm-developer-tools/windowsperf) is a lightweight performance profiling tool inspired by Linux perf, specifically tailored for Windows on Arm. -It leverages the Arm64 PMU (Performance Monitor Unit) and its hardware counters to offer precise profiling capabilities. -The **WindowsPerf WPA plugin** bridges the gap between the detailed output of **WindowsPerf** and the powerful capabilities of **Windows Performance Analyzer**. +The Windows Performance Analyzer plugin connects Windows Perf to the Windows Performance Analyzer (WPA). -The plugin is built on the [`microsoft-performance-toolkit-sdk`](https://github.com/microsoft/microsoft-performance-toolkit-sdk) and is shipped as a single `.dll` file. +[WindowsPerf](https://github.com/arm-developer-tools/windowsperf) is a lightweight performance profiling tool inspired by Linux Perf and designed for Windows on Arm. +Windows Performance Analyzer (WPA) is a tool that creates graphs and data tables of Event Tracing for Windows (ETW) events that are recorded by Windows Performance Recorder (WPR), Xperf, or an assessment that is run in the Assessment Platform. WPA opens event trace log (ETL) files for analysis. -**Windows Performance Analyzer (WPA)** is a tool that creates graphs and data tables of Event Tracing for Windows (ETW) events that are recorded by Windows Performance Recorder (WPR), Xperf, or an assessment that is run in the Assessment Platform. WPA can open any event trace log (ETL) file for analysis. +The WPA plugin is built using the [Microsoft Performance Toolkit SDK](https://github.com/microsoft/microsoft-performance-toolkit-sdk), a collection of tools to create and extend performance analysis applications. The plugin parses json output from WidowsPerf so that it can be visualized in WPA. -WPA's capabilities can be expanded upon using the `microsoft-performance-toolkit-sdk` by creating plugins which enables parsing any type of data (`.json` in this case). +## What are some of the features of the WPA plugin? +The WindowsPerf GUI extension is composed of several key features, each designed to streamline the user experience: -## A Glimpse of the available features +### What is the timeline view? -The WindowsPerf GUI extension is composed of several key features, each designed to streamline the user experience: +The timeline view visualizes the `wperf stat` timeline data plotted by event group. -- **Timeline View**: Visualize a `wperf stat` timeline command output as a plotted graph grouped by event group. -![Timeline By Core Table](_images/wpa-timeline-by-core.png) +![Timeline By Core Table](/install-guides/_images/wpa-timeline-by-core.png) -- **Telemetry View**: Display telemetry events grouped by unit ready to be compared and diagnosed. -![Telemetry Table](_images/wpa-telemetry-table.png) +### What is the telemetry view? -## Getting Started -### Installation +The telemetry view displays telemetry events grouped by unit. -WPA is included in the Windows Assessment and Deployment Kit (Windows ADK) that can be downloaded [here](https://go.microsoft.com/fwlink/?linkid=2243390). +![Telemetry Table](/install-guides/_images/wpa-telemetry-table.png) -> The wperf WPA plugin requires a WPA version of `11.0.7.2` or higher. +## How do I install the WPA plugin? -Once downloaded, make sure that "Windows Performance Toolkit" checkbox is checked under "Select the features you want to install/change". +Before using the WPA plugin, make sure you have installed WPA. -![WPA Installation](_images/wpa-installation.png) +### Windows Performance Analyzer -The plugin can be downloaded from the [releases page](https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases). +WPA is included in the Windows Assessment and Deployment Kit (Windows ADK) that can be downloaded from [Microsoft](https://go.microsoft.com/fwlink/?linkid=2243390). -To install the plugin you have the option between: +{{% notice Note %}} +The WPA plugin requires WPA version `11.0.7.2` or higher. +{{% /notice %}} -- Moving the plugin dll to the **CustomDataSources** directory next to the WPA executable (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources`). -- Setting up the `WPA_ADDITIONAL_SEARCH_DIRECTORIES` env variable and moving the dll to that directory -- Calling `wpa` from the command line and passing the plugin directory to the `-addsearchdir` flag (example : `wpa -addsearchdir "%USERPROFILE%\plugins"`). +Run the downloaded `adksetup.exe` program. -About WPA +Specify the default installation location and accept the license agreement. -> To verify that the plugin is loaded successfully, launch WPA then the plugin should appear under Help > About Windows Performance Analyzer. +Make sure that "Windows Performance Toolkit" is checked under "Select the features you want to install". +![WPA Installation](/install-guides/_images/wpa-installation.png) -### Running from the command line +Finally, click Install. -After installing WPA, it should be added automatically to the path environnment variable. -If it's not the case, add the WPA directory (defaults to `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit`) to your environnment variable. +### Windows Performance Analyzer plugin +The plugin is a single `.dll` file. -To open a json file directly from the command line, you can use the `-i` flag to specify the file path to open. +Download a `.zip` file from the [GitHub releases page](https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases). + +To download the latest version from the command prompt: + +```console +mkdir wpa-plugin +cd wpa-plugin +curl -L -O https://github.com/arm-developer-tools/windowsperf-wpa-plugin/releases/download/1.0.2/wpa-plugin-1.0.2.zip +``` + +Extract the `.dll` file from the downloaded `.zip` file. + +```console +tar -xmf wpa-plugin-1.0.2.zip +``` + +You now have the file `WPAPlugin.dll` in your `wpa-plugin` directory. + +There are three ways you can install the `WPAPlugin.dll` file: + +###### 1. Copy the plugin dll to the CustomDataSources directory next to the WPA executable. -Example: to open a `timeline_long.json` that sits in the Downloads directory, run the following command in the command line: +The default location is: + `C:\\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\CustomDataSources` -`wpa -i \"%USERPROFILE%\\Downloads\\timeline_long.json\"` +###### 2. Set an environment variable -### Running in debug mode +Set the `WPA_ADDITIONAL_SEARCH_DIRECTORIES` environment variable to the location of the DLL file. -To run the plugin in debug mode, clone the repository then edit `WPAPlugin/Properties/launchSettings.json` file. +###### 3. Start WPA from the command line and pass the plugin directory location using a flag. -```json -{ - "profiles": { - "Debug": { - "commandName": "Executable", - "executablePath": "C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\wpa.exe", - "commandLineArgs": "-nodefault -addsearchdir \"%USERPROFILE%\\devProjects\\wpa-plugin\\WPAPlugin\\bin\\Debug\\netstandard2.0\"" - } - } -} +Use the `-addsearchdir` flag for `wpa`: +```bash +wpa -addsearchdir "%USERPROFILE%\plugins" ``` + +## How can I verify the WPA plugin is installed? -- `executablePath`: Path to the `wpa` executable -- `commandLineArgs`: Absolute path to `bin/Debug/netstandard2.0` +To verify the plugin is loaded, launch WPA and the plugin should appear under `Help > About Windows Performance Analyzer` +![WPA installation confirmation](/install-guides/_images/about-wpa.png) -> Make sure that no other version of the plugin is in the same directory as WPA. +## How can I run the WPA plugin from the command line? +To open a json file directly from the command line, you can use the `-i` flag to specify the file path to open. + +For example: to open `timeline_long.json` in your downloads directory, run the command: + +```console +wpa -i "%USERPROFILE%\\Downloads\\timeline_long.json" +``` +## How do I uninstall the WPA plugin? -### Uninstalling the plugin +To uninstall the plugin simply delete the `WPAPlugin.dll` file. -To uninstall the plugin simply delete the `.dll` file. From b6c0549aff834bd4eb053929b88c887fa7b8ae58 Mon Sep 17 00:00:00 2001 From: Jason Andrews Date: Tue, 29 Oct 2024 22:14:58 -0700 Subject: [PATCH 30/34] WPA plugin install guide to draft mode --- content/install-guides/windows-perf-wpa-plugin.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/install-guides/windows-perf-wpa-plugin.md b/content/install-guides/windows-perf-wpa-plugin.md index 0970049519..f23f5cc042 100644 --- a/content/install-guides/windows-perf-wpa-plugin.md +++ b/content/install-guides/windows-perf-wpa-plugin.md @@ -4,6 +4,8 @@ title: Windows Performance Analyzer (WPA) Plugin minutes_to_complete: 15 +draft: true + official_docs: https://github.com/arm-developer-tools/windowsperf-wpa-plugin author_primary: Alaaeddine Chakroun From e1dbeccff990b04f8555a020b7234811fa0d1fe9 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Wed, 30 Oct 2024 09:53:51 -0400 Subject: [PATCH 31/34] Update _index.md remove draft --- .../servers-and-cloud-computing/java-on-axion/_index.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/java-on-axion/_index.md b/content/learning-paths/servers-and-cloud-computing/java-on-axion/_index.md index 425b8702a5..b469bfbe86 100644 --- a/content/learning-paths/servers-and-cloud-computing/java-on-axion/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/java-on-axion/_index.md @@ -1,8 +1,5 @@ --- title: Run Java applications on Google Axion processors -draft: true -cascade: - draft: true minutes_to_complete: 20 From 8210175bcf15541db798ae8dfed582f8e8bd554d Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Wed, 30 Oct 2024 09:54:26 -0400 Subject: [PATCH 32/34] Update _index.md remove draft --- .../servers-and-cloud-computing/gh-runners/_index.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md index 3057703032..3e2e93a039 100644 --- a/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/gh-runners/_index.md @@ -1,8 +1,5 @@ --- title: Optimize MLOps with Arm-hosted GitHub Runners -draft: true -cascade: - draft: true minutes_to_complete: 60 From 64268b7810fe335e54c2d2943ca3285e8da9871b Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Wed, 30 Oct 2024 09:55:01 -0400 Subject: [PATCH 33/34] Update _index.md remove draft --- content/learning-paths/cross-platform/gitlab/_index.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/learning-paths/cross-platform/gitlab/_index.md b/content/learning-paths/cross-platform/gitlab/_index.md index 2ce96256e0..0aeb2d98e7 100644 --- a/content/learning-paths/cross-platform/gitlab/_index.md +++ b/content/learning-paths/cross-platform/gitlab/_index.md @@ -1,8 +1,5 @@ --- title: Build a CI/CD pipeline with GitLab on Google Axion -draft: true -cascade: - draft: true minutes_to_complete: 30 From 446888fd5e122c563a0aa2d76654035b97881ef1 Mon Sep 17 00:00:00 2001 From: pareenaverma Date: Wed, 30 Oct 2024 09:57:52 -0400 Subject: [PATCH 34/34] Update contributors.csv --- assets/contributors.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/assets/contributors.csv b/assets/contributors.csv index 3a7562182f..d599b57494 100644 --- a/assets/contributors.csv +++ b/assets/contributors.csv @@ -43,3 +43,5 @@ Rin Dobrescu,Arm,,,, Przemyslaw Wirkus,Arm,PrzemekWirkus,przemyslaw-wirkus-78b73352,, Nader Zouaoui,Day Devs,nader-zouaoui,nader-zouaoui,@zouaoui_nader,https://daydevs.com/ Alaaeddine Chakroun,Day Devs,Alaaeddine-Chakroun,alaaeddine-chakroun,,https://daydevs.com/ +Koki Mitsunami,Arm,,,, +Chen Zhang,Zilliz,,,,

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 Date: Thu, 17 Oct 2024 09:59:17 -0400 Subject: [PATCH 02/34] Update _index.md --- .../_index.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md index 394e79caae..a23aa72fd8 100644 --- a/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md +++ b/content/learning-paths/smartphones-and-mobile/build-android-chat-app-using-onnxruntime/_index.md @@ -1,23 +1,22 @@ --- -title: Build an Android chat app with ONNX Runtime generate() API +title: Build an Android chat application with ONNX Runtime API minutes_to_complete: 60 -who_is_this_for: This is an intermediate topic for software developers interested in learning how to build an Android chat app with ONNX Runtime and ONNX Runtime Generate() API. +who_is_this_for: This is an advanced topic for software developers interested in learning how to build an Android chat app with ONNX Runtime and ONNX Runtime Generate() API. learning_objectives: - - Install the prerequisites for cross-compiling ONNX Runtime for Android. - Build ONNX Runtime and ONNX Runtime generate() API for Android. - Run the Phi-3 model using ONNX Runtime on an Arm-based smartphone. prerequisites: - - A Windows development machine with at least 16GB of RAM. (You should also be able to use Linux or Apple machines, so please replace the paths and commands as appropriate. Please note that the operation has not been tested.) - - An Android phone with at least 8GB of RAM (tested on Samsung Galaxy S24). + - A Windows development machine with at least 16GB of RAM. You should also be able to use Linux or MacOS for the build, but the instructions for it have not been included in this learning path. + - An Android phone with at least 8GB of RAM. This learning path was tested on Samsung Galaxy S24. author_primary: Koki Mitsunami ### Tags -skilllevels: Intermediate +skilllevels: Advanced subjects: ML armips: - Cortex-A From 594b8fc97f5db63a6b269b3aecea249818cebe05 Mon Sep 17 00:00:00 2001 From: Alaaeddine-Chakroun Date: Wed, 16 Oct 2024 16:06:53 +0100 Subject: [PATCH 03/34] feat: wpa install guide --- assets/contributors.csv | 1 + content/install-guides/_images/about-wpa.png | Bin 0 -> 28103 bytes .../_images/wpa-installation.png | Bin 0 -> 68266 bytes .../_images/wpa-telemetry-table.png | Bin 0 -> 65577 bytes .../_images/wpa-timeline-by-core.png | Bin 0 -> 61177 bytes .../install-guides/windows-perf-wpa-plugin.md | 132 ++++++++++++++++++ 6 files changed, 133 insertions(+) create mode 100644 content/install-guides/_images/about-wpa.png create mode 100644 content/install-guides/_images/wpa-installation.png create mode 100644 content/install-guides/_images/wpa-telemetry-table.png create mode 100644 content/install-guides/_images/wpa-timeline-by-core.png create mode 100644 content/install-guides/windows-perf-wpa-plugin.md diff --git a/assets/contributors.csv b/assets/contributors.csv index 33d3bfb507..3a7562182f 100644 --- a/assets/contributors.csv +++ b/assets/contributors.csv @@ -42,3 +42,4 @@ Cyril Rohr,RunsOn,crohr,cyrilrohr,, Rin Dobrescu,Arm,,,, Przemyslaw Wirkus,Arm,PrzemekWirkus,przemyslaw-wirkus-78b73352,, Nader Zouaoui,Day Devs,nader-zouaoui,nader-zouaoui,@zouaoui_nader,https://daydevs.com/ +Alaaeddine Chakroun,Day Devs,Alaaeddine-Chakroun,alaaeddine-chakroun,,https://daydevs.com/ diff --git a/content/install-guides/_images/about-wpa.png b/content/install-guides/_images/about-wpa.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd513105905e312c851d2fd1413e1c692f46993 GIT binary patch literal 28103 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 bgYSq-e`PgQpAP#&LH?w~<=>Wz>iPZ;$jfUN literal 0 HcmV?d00001 diff --git a/content/install-guides/_images/wpa-installation.png b/content/install-guides/_images/wpa-installation.png new file mode 100644 index 0000000000000000000000000000000000000000..207ce3bf8a4ba01012bfc43d240407037488c890 GIT binary patch literal 68266 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 Cn6uIV literal 0 HcmV?d00001 diff --git a/content/install-guides/_images/wpa-telemetry-table.png b/content/install-guides/_images/wpa-telemetry-table.png new file mode 100644 index 0000000000000000000000000000000000000000..eb85d412704b3c0361d9d4aac99101caa53ccb1f GIT binary patch literal 65577 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