You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Arm backend: Introduce support for a VGF runtime backend. (#12426)
This is a first version of a VGF runtime with spport for simple VGF
files containing inputs and outputs (no weights) and will prepare the
appropriate Vulkan structures and dispatch the workload following the
normal backend delegate interfaces. It's intended to be extended to take
advantage of the existing Vulkan delegate by replacing the basic object
creation, and by re-using the VgfRepr in the appropriate way in either a
"direct" Arm backend for testing and simple deployment, or integrated
with the Vulkan backend to have good memory, sync and performance
interop with existing Vulkan delegate operators.
It re-uses the build-setup (headers, volk, etc) and
vulkan_executor_runner and has been tested on linux only. This was on
the simple S32 add kernel from the aot_arm_compiler, and a quantized and
non-quantized mv2.
It depends on a number of components which are not yet released, and the
script for these is not included, as our third party dependencies are
still evolving.
Details:
* Minor build fix for vulkan runtime.
* Bump vulkan and volk headers to get tensor and graph extensions
* First version of VGFBackend, dispatching on a vulkan layer driver
* Will process the examples/models mv2 model and constants
### Testing
This change currently requires internal dependencies while a few pieces
are upstreamed. The following is reproducable for those with full access
to the ML SDK for Vulkan
(https://github.com/arm/ai-ml-sdk-model-converter)
```
# test models
python3 -m examples.arm.aot_arm_compiler -t vgf --delegate --model_name="add" -i ./out_add -o out_add.pte
python3 -m examples.arm.aot_arm_compiler -t vgf --delegate --model_name="mv2" -i ./out_mv2 -o out_mv2.pte
#quantized test models
python3 -m examples.arm.aot_arm_compiler -t vgf --delegate --quantize --model_name=add -i ./out_add_quant -o out_add_quant.pte
python3 -m examples.arm.aot_arm_compiler --model_name=mv2 --target=vgf --quantize --delegate -i ./out_mv2_quant -o out_mv2_quant.pte
# commands to execute them using the vulkan executor runner
./cmake-out/backends/vulkan/vulkan_executor_runner -model_path out_add.pte
./cmake-out/backends/vulkan/vulkan_executor_runner -model_path out_mv2.pte
./cmake-out/backends/vulkan/vulkan_executor_runner -model_path out_add_quant.pte
./cmake-out/backends/vulkan/vulkan_executor_runner -model_path out_mv2_quant.pte
```
Signed-off-by: Rob Elliott <[email protected]>
0 commit comments