2020-10-12 17:28:20 +00:00
---
title: ARM NN
parent: Execution Providers
2021-09-15 21:23:42 +00:00
nav_order: 3
2020-10-12 17:28:20 +00:00
---
2021-05-10 22:19:37 +00:00
# ArmNN Execution Provider
{: .no_toc}
## Contents
{: .no_toc }
* TOC placeholder
{:toc}
2020-10-12 17:28:20 +00:00
[ArmNN ](https://github.com/ARM-software/armnn ) is an open source inference engine maintained by Arm and Linaro companies. The integration of ArmNN as an execution provider (EP) into ONNX Runtime accelerates performance of ONNX model workloads across Armv8 cores.
2021-05-10 22:19:37 +00:00
## Build
2021-09-15 21:23:42 +00:00
For build instructions, please see the [BUILD page ](./build/eps.md#armnn ).
2020-10-12 17:28:20 +00:00
2021-05-10 22:19:37 +00:00
## Usage
### C/C++
2020-10-12 17:28:20 +00:00
To use ArmNN as execution provider for inferencing, please register it as below.
```
2020-12-02 00:10:58 +00:00
Ort::Env env = Ort::Env{ORT_LOGGING_LEVEL_ERROR, "Default"};
2021-08-12 16:59:32 +00:00
Ort::SessionOptions so;
2020-12-02 00:10:58 +00:00
bool enable_cpu_mem_arena = true;
2021-08-12 16:59:32 +00:00
Ort::ThrowOnError(OrtSessionOptionsAppendExecutionProvider_ArmNN(so, enable_cpu_mem_arena));
2020-10-12 17:28:20 +00:00
```
2021-09-15 21:23:42 +00:00
The C API details are [here ](./get-started/with-c.html.md ).
2020-10-12 17:28:20 +00:00
2021-05-10 22:19:37 +00:00
## Performance Tuning
2021-09-15 21:23:42 +00:00
For performance tuning, please see guidance on this page: [ONNX Runtime Perf Tuning ](./performance/tune-performance.md )
2020-10-12 17:28:20 +00:00
When/if using [onnxruntime_perf_test ](https://github.com/microsoft/onnxruntime/tree/master/onnxruntime/test/perftest ), use the flag -e armnn