The Edge AI Sizing Tool showcases the scalability and performance of AI use cases on Intel-based edge devices. With zero-code configuration, users can effortlessly set up AI applications by selecting inputs, accelerators, performance modes, and AI models. The tool provides real-time monitoring of system performance metrics, such as CPU and GPU usage, memory consumption, and inference speed, enabling users to optimize AI workflows and make informed decisions.
Usage guidance: This software is provided for evaluation and demonstration on a single, trusted machine. It has not been validated for production deployments—if you intend to use it in other environments, perform appropriate testing and security reviews for your target deployment.
- Requirements
- Supported AI Models
- Quick Start
- Deployment
- Development
- Troubleshooting
- Limitations
- Licensing
- Contributing
- CPU: Intel® Core™ Ultra Processor (Products formerly Meteor Lake-UH) and above
- GPU:
- Intel® Arc™ Graphics (iGPU)
- Intel® Arc™ A770 Graphics (dGPU)
- RAM: 64GB
- DISK: 256GB+
- Operating system:
- Linux: Ubuntu* 24.04 LTS Desktop
- Windows: Windows* 11
- Python version: 3.10+
- Node.js version: 22+
- Intel GPU drivers version: 25.09.32961.5
- Intel NPU drivers version: v1.13.0
- Ubuntu intel-gpu-tools package version: 1.28-1ubuntu2
Please ensure that these ports are available before running the application.
| Services | Port |
|---|---|
| Frontend | 8080 |
| Worker services | 5000-6000 |
The Edge AI Sizing Tool supports the following types of AI models:
A curated set of popular models for common AI tasks:
| Model Name | Task Type | Source / License Information |
|---|---|---|
| YOLOv8 | Object Detection | Ultralytics Docs |
| YOLOv11 | Object Detection | Ultralytics Docs |
| YOLOv8-seg | Instance Segmentation | Ultralytics Docs |
| YOLOv11-seg | Instance Segmentation | Ultralytics Docs |
| mask_rcnn_resnet50_atrous_coco | Instance Segmentation | Open Model Zoo |
| mask_rcnn_inception_resnet_v2_atrous_coco | Instance Segmentation | Open Model Zoo |
| dreamlike-art/dreamlike-anime-1.0 | Text-To-Image | Hugging Face |
| TinyLlama/TinyLlama-1.1B-Chat-v1.0 | Text Generation | Hugging Face |
| Qwen/Qwen1.5-7B-Chat | Text Generation | Hugging Face |
| OpenVINO/Mistral-7B-Instruct-v0.2-int4-ov | Text Generation | Hugging Face |
| OpenVINO/Phi-3-mini-4k-instruct-int4-ov | Text Generation | Hugging Face |
| openai/whisper-tiny | Automatic Speech Recognition | Hugging Face |
| openai/whisper-base | Automatic Speech Recognition | Hugging Face |
| microsoft/speecht5_tts | Text-To-Speech | Hugging Face |
Licensing: Before setting up and starting the application, review the license terms for each model above and ensure your intended use complies with those licenses.
Note: Models will be downloaded from their respective sources (Hugging Face, Ultralytics, etc.). You can update the
HF_ENDPOINTvariable in the.envfile to use a different Hugging Face endpoint if needed.
Specify a Hugging Face model repository ID to download and use models directly from Hugging Face.
-
For models requiring authentication, set your Hugging Face access token using one of the following methods:
Method 1 (Recommended): Update the frontend/.env file
Add or update the
HF_TOKENvariable in thefrontend/.envfile:HF_TOKEN=your_huggingface_tokenMethod 2: Export as environment variable
Set the token as an environment variable before starting the application:
For Linux:
export HF_TOKEN='your_huggingface_token'
For Windows:
set HF_TOKEN=your_huggingface_token
Replace
your_huggingface_tokenwith your actual token from Hugging Face account settings. -
By default,
HF_ENDPOINTis set tohttps://huggingface.co. You can configure a custom endpoint by updating the environment variable:Method 1 (Recommended): Update the frontend/.env file
Add or update the
HF_ENDPOINTvariable in thefrontend/.envfile:HF_ENDPOINT=https://your-custom-endpoint.comMethod 2: Export as environment variable
Set the endpoint as an environment variable before starting the application:
For Linux:
export HF_ENDPOINT='https://your-custom-endpoint.com'
For Windows:
set HF_ENDPOINT=https://your-custom-endpoint.com
Note: Some models may not be supported by the libraries or accelerators used in this application.
Specify a ModelScope model repository ID to download and use models directly from ModelScope.
-
By default,
MODELSCOPE_DOMAINis set tohttps://modelscope.cn. You can configure a custom endpoint by updating the environment variable:Method 1 (Recommended): Update the frontend/.env file
Add or update the
MODELSCOPE_DOMAINvariable in thefrontend/.envfile:MODELSCOPE_DOMAIN=https://your-custom-endpoint.comMethod 2: Export as environment variable
Set the endpoint as an environment variable before starting the application:
For Linux:
export MODELSCOPE_DOMAIN='https://your-custom-endpoint.com'
For Windows:
set MODELSCOPE_DOMAIN=https://your-custom-endpoint.com
Note: Some models may not be supported by the libraries or accelerators used in this application.
Upload your own custom model as a ZIP file.
-
The ZIP must contain all necessary model files in OpenVINO IR format (e.g.,
.xml,.bin, and optionallylabels.txtfor object detection). -
If your model requires custom processing (e.g., instance segmentation), you may optionally include a
model_proc.jsonfile with the appropriate configuration.my-model.zip ├── model.xml ├── model.bin └── labels.txt # (optional) -
Only OpenVINO models are supported. Ensure your model is exported to OpenVINO IR format before uploading.
Note: Some workloads may fail if the model is not compatible with the application's supported libraries or accelerators.
Place your custom model files in the ./custom_models/ directory as described in custom_models/README.md:
- Each model should be placed in its own subdirectory under custom_models, containing all required files in OpenVINO IR format (e.g.,
.xml,.bin). Optionally, includelabels.txtfor object detection andmodel_proc.jsonfor instance segmentation that require custom processing. - The application will automatically detect and list models found in this directory.
- For details, refer to custom_models/README.md.
Note: Only OpenVINO IR models are supported in the custom model directory. Ensure your model files are correctly structured and compatible.
This section provides a streamlined process for setting up and running the Edge AI Sizing Tool on your local or isolated system. Follow these steps to quickly configure the environment and launch the application, allowing you to explore its features and capabilities with minimal setup.
Follow the Edge Developer Kit Reference Scripts to install drivers and configure your system.
sudo ./install.shThis installs all required packages, sets up Python and Node.js environments.
Note: The first time you run the installation script, the process may take several minutes to complete. Installation time depends on your system configuration and internet speed.
- Run
./start.shto start services either from a fresh state or restore their previous states if a PM2 process dump exists.
Configuration: When you execute
start.sh, if.envdoes not contain aPAYLOAD_SECRET, the setup will generate a randomPAYLOAD_SECRETand write it to.env. To supply your own secret instead, copy.env.exampleto.envand set thePAYLOAD_SECRETvalue before running the script.
You can also update the
HF_TOKEN,HF_ENDPOINT, andMODELSCOPE_DOMAINvariables in the.envfile as needed for your environment.
./start.shOnce started, open http://localhost:8080 in your browser.
To stop the application gracefully:
./stop.shThis script ensures that all services are properly shut down, including background workers.
If your system has a GPU, install the GPU driver. If your system has an NPU, install the NPU driver.
Right-click the install.bat file and click "Run as administrator".
This installs all required packages, sets up Python and Node.js environments.
Note: The first time you run the installation script, the process may take several minutes to complete. Installation time depends on your system configuration and internet speed.
- Double-click the
start.batshortcut on your Desktop to start services either from a fresh state or restore their previous states.
Configuration: When you execute
start.bat, if.envdoes not contain aPAYLOAD_SECRET, the setup will generate a randomPAYLOAD_SECRETand write it to.env. To supply your own secret instead, copy.env.exampleto.envand set thePAYLOAD_SECRETvalue before running the script.
You can also update the
HF_TOKEN,HF_ENDPOINT, andMODELSCOPE_DOMAINvariables in the.envfile as needed for your environment.
Once started, open http://localhost:8080 in your browser.
To stop the application gracefully:
Double-click the stop.bat shortcut on your Desktop.
This script ensures that all services are properly shut down, including background workers.
Please refer to DEPLOYMENT.md for detailed steps on preparing and deploying the application.
Please refer to DEVELOPMENT.md for detailed steps on setting up a development environment.
Follow the steps below to enable the functionality of perf_events for non-root users.
Note: Only relevant for Linux systems.
Security guidance: Changing
kernel.perf_event_paranoid=0expands access to performance monitoring features and can expose system information. Assess the security implications and apply appropriate access controls before making this change.
To temporarily enable the available functionality of perf_events for non-root users, execute the following command:
sudo sysctl kernel.perf_event_paranoid=0This command will adjust the kernel parameter for the current session. Note that this change will be reverted upon system reboot.
To permanently enable perf_events for non-root users, you need to modify the system configuration file. Follow these steps:
1. Open the /etc/sysctl.conf file in a text editor with root privileges. You can use nano, vim, or any other editor of your choice:
sudo nano /etc/sysctl.confkernel.perf_event_paranoid=0
Apply the changes by running:
sudo sysctl -pThis will ensure that the perf_events functionality remains enabled across system reboots.
If you experience frequent crashes or the tool stops working unexpectedly, try enabling Resizable BAR first under BIOS setting.
Restart your computer. Press the appropriate key during startup to enter BIOS menu (usually F2, DEL, F10, or F12, depending on your motherboard)
Look for settings related to "Resizable BAR" or "Re-Size BAR Support". These settings are typically found under sections like "Advanced","PCI Subsystem Settings" or "PCI Configuration". Set the option to "Enabled" for Resizable Bar.
Save your changes and exit BIOS. Your system will restart with Resizable BAR enabled.
If the installation script encounters dependency conflicts during Intel® XPU Manager installation and returns an apt --fix-broken install error, follow the steps below:
Note: Only relevant for Linux systems.
Execute the following command to address broken package dependencies:
sudo apt --fix-broken installAfter successfully resolving the dependency issues, re-execute the installation script:
./install.shThis procedure addresses common package dependency conflicts encountered on Ubuntu systems, particularly during Intel® XPU Manager installation.
-
iGPU utilization and device name may not be displayed on Intel® Core™ Ultra 9 288V processors.
-
On Ubuntu, the Object Detection inferencing stream window may stop displaying results after running for extended periods.
-
System Overview and System Monitor may only show the PCI ID (e.g., e20b) for certain GPU models instead of the actual descriptive name.
-
Text generation may produce gibberish and illogical output for some LLM models when using Intel® Arc™ Ultra 7 Processor 155H iGPUs.
-
DLStreamer is not supported on Windows. Hence, the Object Detection and Instance Segmentation use cases for Computer Vision task are currently unavailable on Windows.
The Edge AI Sizing Tool and its components is licensed under the APACHE 2.0 license, except for the following components:
| Component | License |
|---|---|
| GStreamer | LGPL |
Contributions are welcome and appreciated! Whether it's a bug report, a feature suggestion, documentation improvement, or a code change, your input helps make this project better. Check our Contributing Guide to get started.
For bugs or suggestions, please open an issue and include relevant details such as your hardware, operating system, reproduction steps, and any error output. This application has been validated on the hardware listed in the documentation; behavior on other configurations may vary.
