Skip to content

Overview

Note: The Workload Services Framework is a benchmarking framework and is not intended to be used for the deployment of workloads in production environments. It is recommended that users consider any adjustments which may be necessary for the deployment of these workloads in a production environment including those necessary for implementing software best practices for workload scalability and security.

Introduction

This is a General Video Analytics workload that focuses on the analytics capability of an EPU (irrespective of HW acceleration available) and will stress the system in compute/memory BW/media/cache/Power/Icc etc. to understand the true limitations of a system under a specific configuration. It mainly includes decode, object detection, object tracking, and object classification stages. The workload takes advantage of DLStreamer.

The pipeline for all GPU testcases.

flowchart LR;

  videostream["Video Stream<br/> (Local file, 1080p,<br/>30fps, H265)"];
  decrypt["Decrypt<br/>(AES 256, CPU)"]
  decode["Decode<br/>(GPU)"];
  detect["Detect<br/>(yolov5s/yolv5m/yolov10m,<br/>10ips, GPU)"];
  classify1["Classify1<br/>(resnet50, 10ips, GPU)"];
  classify2["Classify2<br/>(mobilenetv2, 10ips, GPU)"];
  classDef media fill:#76ceff,stroke:#000000
  classDef ai fill:#ffe17a,stroke:#000000


  videostream:::media --> decrypt;
  decrypt:::media --> decode;
  decode:::media --> detect;
  detect:::ai ------> classify1:::ai;
  classify1 --> classify2:::ai;

The pipeline for GPU+NPU testcases.

flowchart LR;

  videostream["Video Stream<br/> (Local file, 1080p,<br/>30fps, H265)"];
  decrypt["Decrypt<br/>(AES 256, CPU)"]
  decode["Decode<br/>(GPU)"];
  detect["Detect<br/>(yolov5s/yolv5m/yolov10m,<br/>10ips, GPU)"];
  crop["Crop<br/>(224x224,<br/>GPU)"]
  classify1["Classify1<br/>(resnet50, 10ips, NPU)"];
  classify2["Classify2<br/>(mobilenetv2, 10ips, NPU)"];
  classDef media fill:#76ceff,stroke:#000000
  classDef ai fill:#ffe17a,stroke:#000000

  videostream:::media --> decrypt;
  decrypt:::media --> decode;
  decode:::media --> detect;
  detect:::ai --> crop;
  crop:::media --> classify1;
  classify1:::ai --> classify2:::ai;

Test Case

This workload provides several tests cases with the following configuration parameters. - TestName: It is a test case and contains a specific video analytics pipeline. - G_NumofVaStream: Specify the number of VA streams, default is 1. - SCALING_GOVERNOR:Specify the"scaling_governor" value which enables setting a static frequency to the CPU. Default value is powersave to measure workload with platform default setting after booting. - G_CPU_Bind: Specify CPU cores for launching the VA process. This accepts cpu numbers as shown in the processor fields of /proc/cpuinfo, or relative cpus as in relative to the current cpuset. Refer to the --physcpubind parameter of numactl for more details. Default is 6-13, which are the E cores on ARL.

The following are all the testcases supported by platform ARL.

No. Testcases Platform OD Model OC Model OD inference_device OC inference device OD inference batch size OC inference batch size
1 test_general-video-analytics-cnn-generic_arl-light-igpu-bs1 ARL yolov5s Resnet50 and Mobilenet-v2 iGPU iGPU 1 1
2 test_general-video-analytics-cnn-generic_arl-light-igpu-bs8 ARL yolov5s Resnet50 and Mobilenet-v2 iGPU iGPU 8 8
3 test_general-video-analytics-cnn-generic_arl-medium-igpu-bs1 ARL yolov5m Resnet50 and Mobilenet-v2 iGPU iGPU 1 1
4 test_general-video-analytics-cnn-generic_arl-medium-igpu-bs8 ARL yolov5m Resnet50 and Mobilenet-v2 iGPU iGPU 8 8
5 test_general-video-analytics-cnn-generic_arl-heavy-igpu-bs1 ARL yolov10m Resnet50 and Mobilenet-v2 iGPU iGPU 1 1
6 test_general-video-analytics-cnn-generic_arl-heavy-igpu-bs8 ARL yolov10m Resnet50 and Mobilenet-v2 iGPU iGPU 8 8
7 test_general-video-analytics-cnn-generic_arl-light-igpu-bs1-ivpu-bs1 ARL yolov5s Resnet50 and Mobilenet-v2 iGPU NPU 1 1
8 test_general-video-analytics-cnn-generic_arl-light-igpu-bs8-ivpu-bs1 ARL yolov5s Resnet50 and Mobilenet-v2 iGPU NPU 8 1
9 test_general-video-analytics-cnn-generic_arl-medium-igpu-bs1-ivpu-bs1 ARL yolov5m Resnet50 and Mobilenet-v2 iGPU NPU 1 1
10 test_general-video-analytics-cnn-generic_arl-medium-igpu-bs8-ivpu-bs1 ARL yolov5m Resnet50 and Mobilenet-v2 iGPU NPU 8 1
11 test_general-video-analytics-cnn-generic_arl-heavy-igpu-bs1-ivpu-bs1 ARL yolov10m Resnet50 and Mobilenet-v2 iGPU NPU 1 1
12 test_general-video-analytics-cnn-generic_arl-heavy-igpu-bs8-ivpu-bs1 ARL yolov10m Resnet50 and Mobilenet-v2 iGPU NPU 8 1
13 test_general-video-analytics-cnn-generic_arl-light-igpu-bs8_pkm ARL yolov5s Resnet50 and Mobilenet-v2 iGPU iGPU 8 8
14 test_general-video-analytics-cnn-generic_arl-light-igpu-bs1_gated ARL yolov5s Resnet50 and Mobilenet-v2 iGPU iGPU 1 1

Environment Setup for Host

Hardware:

  • Arrow Lake - U/H CRB

Software:

  1. Download and install BIOS.
  2. Install Ubuntu 24.04 OS
  3. Install kernel in OS.

    • Get the latest apt from Ubuntu* archive before setting up PPA from 01.org

      sudo apt update

      sudo apt upgrade * Create a file at /etc/apt/sources.list.d/intel-arl.list with the content to set PPA from 01.org

      sudo vi /etc/apt/sources.list.d/intel-arl.list

    • Add the following content, and then save and exit.

        deb https://download.01.org/intel-linux-overlay/ubuntu noble main non-free multimedia kernels 
        deb-src https://download.01.org/intel-linux-overlay/ubuntu noble main non-free multimedia kernels
      
    • Download the GPG key to /etc/apt/trusted.gpg.d and rename it to arl.gpg

      sudo wget https://download.01.org/intel-linux-overlay/ubuntu/E6FA98203588250569758E97D176E3162086EE4C.gpg -O /etc/apt/trusted.gpg.d/arl.gpg

    • Set the preferred list.

      sudo vi /etc/apt/preferences.d/intel-arl

    • Add the following content, and then save and exit.

          Package: *
          Pin: release o=intel-iot-linux-overlay-noble
          Pin-Priority: 2000
      

    • Install kernel, download the package information from all configured sources
          sudo apt update
          apt-get install linux-headers-6.11-intel linux-image-6.11-intel vim m4 gawk cmake docker.io docker-buildx
      
    • Install NPU firmware
        wget https://github.com/intel/linux-npu-driver/releases/download/v1.17.0/intel-fw-npu_1.17.0.20250508-14912879441_ubuntu24.04_amd64.deb
        sudo dpkg -i *.deb 
    
  4. Reboot the machine

    sudo reboot

Required dataset:

Customize Test Configuration

There are two ways for you to customize your test parameters.

Specify a global test configuration file to overwrite any configuration parameter of a test case and use the ctest.sh to set the parameters.

Refer to ctest.md to customize test parameters.

Run customized test cases for ARL platform:

cd build
cmake -DPLATFORM=ARL -DRELEASE=:$RELEASETAG -DBENCHMARK=general-video-analytics-cnn-generic -DBACKEND=docker ..
make
cd workload/General-Video-Analytics-CNN/
./ctest.sh -N # Can list the testcases that support
./ctest.sh -R test_general-video-analytics-cnn-generic_arl-light-igpu-bs1 -VV --config=../../../workload/General-Video-Analytics-CNN/test-config/test_config_arl_pta.yaml

Docker Image

There will be a final docker image: gva-cnn-instance-dlstreamer-$PLATFORM.

Below is an example of running the test_general-video-analytics-cnn-generic_arl-light-igpu-bs1 test case on ARL.

mkdir -p logs

id=$(docker run --detach --rm --privileged -e TestName=arl-light-igpu-bs1 -e TestTimeout=100 gva-cnn-instance-dlstreamer-arl:$RELEASETAG)
docker exec $id cat /export-logs | tar xf - -C logs
docker rm -f $id

KPI

Run the kpi.sh script to generate the KPIs.

here is kpi example:

kpi No. of VAs: 1
kpi pipeline_fps: 29

Index Info

  • Name: General Video Analytics CNN
  • Category: Edge
  • Platform: ARL

See Also