Frequently asked questions

This FAQ provides quick, task-oriented answers. The linked platform, release, and component documentation remains authoritative for complete procedures, current requirements, and version-specific details.

Which host and target platforms are supported?

Linux AArch64 and x86-64, and Windows x86-64, are supported. Windows AArch64 and Darwin x86-64 are unsupported. Darwin AArch64 supports Model Converter and VGF Library, with experimental Workload Library, Scenario Runner, and Emulation Layer support. Android™ AArch64 support is experimental for VGF Library, Workload Library, Scenario Runner, and Emulation Layer, while Model Converter is not an Android™ target. Android™ x86-64 runtime components are unsupported.

Use the authoritative Platforms table for the component-by-component status and Building the ML SDK for Vulkan® for current host prerequisites and component build documentation.

Which Vulkan® extensions and capabilities are required for Scenario Runner and the Emulation Layer?

See Vulkan® runtime requirements for the minimum Vulkan® version and platform-specific runtime setup.

For data graph execution with a native Vulkan® implementation, the device must provide VK_ARM_tensors, with the tensors, tensorNonPacked, and shaderTensorAccess features, and VK_ARM_data_graph, with the dataGraph and dataGraphShaderModule features.

When the native driver does not provide these extensions, the Emulation Layer exposes them through its graph and tensor layers. Data graph workloads require both layers, with the graph layer enabled before the tensor layer. Additional extensions and capabilities depend on the operations used by the workload.

See the Emulation Layer extension overview and the Scenario Runner usage guide for detailed extension coverage. See also How do I collect and interpret performance data? and Which versions support Optical Flow? for the requirements of those optional features.

How do I choose compatible ML SDK, VGF and component versions?

Start from a tagged ai-ml-sdk-manifest release. It pins the coordinated ML SDK components and dependencies. Prefer revisions from the same coordinated release.

To migrate a valid older VGF file to the format supported by the installed VGF Library, run:

vgf_updater -i input.vgf -o output.vgf

Use the tagged manifest together with the ML SDK release notes, the Platforms guidance, and the VGF Updater documentation.

Where can I find supported prebuilt packages, and how do I get started?

Supported prebuilt ML SDK packages are distributed through PyPI. Install the component you need. See Install prebuilt packages for the available packages, host requirements, platform guidance, and instructions for checking wheel compatibility.

What is supported on Darwin, and how should it be configured?

Darwin support is limited to Apple silicon. Model Converter and VGF Library are supported, while Workload Library, Scenario Runner, and Emulation Layer are experimental.

Applications using the Workload Library and Scenario Runner both use the Vulkan® Loader. The Emulation Layer can be enabled on either path, with MoltenVK or KosmicKrisp providing the underlying Vulkan® implementation. MoltenVK is the default compatibility option. KosmicKrisp is an optional technical preview in recent Vulkan® SDK releases.

After sourcing the Vulkan® SDK environment, select exactly one driver by setting VK_DRIVER_FILES to its manifest. After enabling the graph and tensor layers, run vulkaninfo --summary. Confirm that it reports the selected MoltenVK or KosmicKrisp driver and lists VK_LAYER_ML_Graph_Emulation and VK_LAYER_ML_Tensor_Emulation.

Check the authoritative Platforms table and follow the canonical Darwin build, driver, and layer setup for prerequisites, driver selection, layer configuration, and validation.

How do I build and run ML SDK components on Android™?

Build the VGF Library, Workload Library, Scenario Runner, and Emulation Layer for Android™ AArch64 with the Android™ NDK toolchain. On a device with Vulkan® 1.3 support, run scenarios with Scenario Runner or run an application linked with the Workload Library. APK packaging also requires Gradle 8.4 or later on PATH. ANDROID_HOME should point to an Android™ SDK containing the platform package for API level 34 and Build Tools 34.0.0, or compatible versions.

For the Scenario Runner APK, install the generated package and start its foreground service with:

adb install -r build/scenario-runner-debug.apk

adb shell am start-foreground-service \
    -n com.arm.ai_ml_sdk_scenario_runner/.Main \
    --esa args --scenario,/data/user/0/com.arm.ai_ml_sdk_scenario_runner/scenario.json

The scenario, VGF, and input files must already be accessible at the paths passed to Scenario Runner. Deploy the Emulation Layer either as an APK-packaged Vulkan® layer or by placing its layer libraries under /data/local/debug/vulkan. Then enable the graph and tensor layers through Android™’s GPU debug-layer settings.

See the complete documented Scenario Runner Android™ build and execution flows, and the Emulation Layer sections for Building for Android™, Usage on Android™, and APK Packaging. The Android™ Vulkan layer deployment guide covers the platform’s layer file-transfer and enablement procedures.

Note

Android™ AArch64 support is experimental for the VGF Library, Workload Library, Scenario Runner, and Emulation Layer. Model Converter is an offline host tool and is not an Android™ target. Behavior depends on the device, API level, app permissions, and whether the build is debuggable.

Where can I find sample models, VGFs and workload examples?

Use one of the end-to-end tutorials for PyTorch, TensorFlow Lite, or ONNX to generate VGF files and Scenario Runner workloads. The TensorFlow Lite tutorial uses the SESR super-resolution example from the Arm® Model Zoo, including its model and NumPy reference data.

For C++ application integration, see the ML Workload Library for Vulkan® usage guide and its complete programs for VGF inspection and execution, standalone workloads, runtime allocations, and wrapped Vulkan® contexts.

For an existing VGF, generate a scenario template:

vgf_dump --input model.vgf --output scenario.json --scenario-template

Before running the scenario, edit scenario.json and replace the generated input and output path placeholders with paths to your files:

scenario-runner --scenario scenario.json

Use the VGF execution tutorial for the full scenario-editing and execution procedure.

What tools can create or inspect VGF files?

The linked pages contain each tool’s complete build, API, and command-line documentation.

How do I collect and interpret performance data?

Use Scenario Runner dump options for runtime profiling, performance counters, neural statistics, and debug databases:

  • --profiling-dump-path FILE for runtime profiling

  • --perf-counters-dump-path FILE for performance counters

  • --neural-statistics-dump-dir DIR with --neural-statistics-mode 0|1 for neural statistics

  • --neural-debug-database-dump-dir DIR for the accelerator debug database

Neural-statistics and debug-database dumps require both the VK_ARM_data_graph_neural_accelerator_statistics extension and its dataGraphNeuralAcceleratorStatistics feature. Scenario Runner fails before creating the Vulkan® device if either dump is requested without both.

Important

Neural-statistics and debug-database dumps are native-driver diagnostics whose contents and interpretation depend on the target hardware and driver. The Emulation Layer does not implement this hardware-specific extension, so these dumps are unavailable with it.

See Performance data and analysis, the Scenario Runner CLI, and Neural accelerator statistics for complete details.

Which versions support Optical Flow?

Support for VK_ARM_data_graph_optical_flow starts with ML SDK 2026.06.0. That coordinated release uses Scenario Runner 0.10.0 and Emulation Layer 0.10.0.

See the Compatibility matrix for the complete release and component version mapping. See also the tagged ML SDK 2026.06.0 release notes, the 2026.06.0 manifest, and the Scenario Runner 0.10.0 and Emulation Layer 0.10.0 release notes for details.