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?
Model Converter converts supported TOSA FlatBuffer or MLIR input into VGF.
The VGF Library provides C++ encoder, C encoder, C++ decoder, and C decoder APIs for programmatic encoding and decoding.
vgf_dump produces a human-readable view, extracts embedded data, and generates Scenario Runner templates.
vgf_updater migrates a valid older file to the format supported by that VGF Library version.
The ML Workload Library for Vulkan® loads VGF content into inspectable workload, resource, module, and executable views and can prepare that workload for Vulkan® execution.
The VGF Adapter for Model Explorer provides graphical inspection of VGF inputs, outputs, constants, and graphs.
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 FILEfor runtime profiling--perf-counters-dump-path FILEfor performance counters--neural-statistics-dump-dir DIRwith--neural-statistics-mode 0|1for neural statistics--neural-debug-database-dump-dir DIRfor 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.