• Home
Name Date Size #Lines LOC

..--

cmake/03-May-2024-2,7142,472

delegate/03-May-2024-20,75616,487

docker/03-May-2024-606425

docs/03-May-2024-4,8103,647

include/03-May-2024-9,1295,915

profiling/03-May-2024-4,0222,914

python/pyarmnn/03-May-2024-12,5569,046

samples/03-May-2024-3,8942,536

scripts/03-May-2024-156108

src/03-May-2024-245,068185,854

tests/03-May-2024-26,25723,414

third-party/03-May-2024-32,93424,637

Android.bpD03-May-2024192 96

Android.mkD03-May-202419 KiB468393

BuildGuideAndroidNDK.mdD03-May-202412.2 KiB308242

BuildGuideCrossCompilation.mdD03-May-202414.8 KiB384353

CMakeLists.txtD03-May-202446.7 KiB1,1931,076

ContributorGuide.mdD03-May-20242.3 KiB4826

InstallationViaAptRepository.mdD03-May-20243.6 KiB9884

LICENSED03-May-20241 KiB2217

OWNERSD03-May-202481 54

README.mdD03-May-20246.4 KiB7342

SECURITY.mdD03-May-20244.1 KiB6960

README.md

1# Arm NN
2
3Arm NN is a key component of the [machine learning platform](https://mlplatform.org/), which is part of the [Linaro Machine Intelligence Initiative](https://www.linaro.org/news/linaro-announces-launch-of-machine-intelligence-initiative/). For more information on the machine learning platform and Arm NN, see: <https://mlplatform.org/>, also there is further Arm NN information available from <https://developer.arm.com/products/processors/machine-learning/arm-nn>
4
5There is a getting started guide here using TensorFlow: <https://developer.arm.com/solutions/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment-for-tensorflow>
6
7There is a getting started guide here using TensorFlow Lite: <https://developer.arm.com/solutions/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment-for-tensorflow-lite>
8
9There is a getting started guide here using Caffe: <https://developer.arm.com/solutions/machine-learning-on-arm/developer-material/how-to-guides/configure-the-arm-nn-sdk-build-environment-for-caffe>
10
11There is a getting started guide here using ONNX: <https://developer.arm.com/solutions/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment-for-onnx>
12
13There is a guide for backend development: [Backend development guide](src/backends/README.md)
14
15There is a guide for installation of ArmNN, Tensorflow Lite Parser and PyArmnn via our Apt Repository: [Installation via Apt Repository](InstallationViaAptRepository.md)
16
17There is a getting started guide for our ArmNN TfLite Delegate: [Build the TfLite Delegate natively](delegate/BuildGuideNative.md)
18
19API Documentation is available at https://github.com/ARM-software/armnn/wiki/Documentation.
20
21Dox files to generate Arm NN doxygen files can be found at armnn/docs/. Following generation the xhtml files can be found at armnn/documentation/
22
23### Build Instructions
24
25Arm tests the build system of Arm NN with the following build environments:
26
27* Android NDK: [How to use Android NDK to build Arm NN](BuildGuideAndroidNDK.md)
28* Cross compilation from x86_64 Ubuntu to arm64 Linux: [Arm NN Cross Compilation](BuildGuideCrossCompilation.md)
29* Native compilation under aarch64 Debian 9
30
31Arm NN is written using portable C++14 and the build system uses [CMake](https://cmake.org/), therefore it is possible to build for a wide variety of target platforms, from a wide variety of host environments.
32
33The armnn/tests directory contains tests used during Arm NN development. Many of them depend on third-party IP, model protobufs and image files not distributed with Arm NN. The dependencies of some of the tests are available freely on the Internet, for those who wish to experiment.
34
35The 'armnn/samples' directory contains SimpleSample.cpp, a very basic example of the ArmNN SDK API in use, and DynamicSample.cpp, a very basic example of using the ArmNN SDK API with the standalone sample dynamic backend.
36
37The 'ExecuteNetwork' program, in armnn/tests/ExecuteNetwork, has no additional dependencies beyond those required by Arm NN and the model parsers. It takes any model and any input tensor, and simply prints out the output tensor. Run it with no arguments to see command-line help.
38
39The 'ArmnnConverter' program, in armnn/src/armnnConverter, has no additional dependencies beyond those required by Arm NN and the model parsers. It takes a model in TensorFlow format and produces a serialized model in Arm NN format. Run it with no arguments to see command-line help. Note that this program can only convert models for which all operations are supported by the serialization tool [src/armnnSerializer](src/armnnSerializer/README.md).
40
41The 'ArmnnQuantizer' program, in armnn/src/armnnQuantizer, has no additional dependencies beyond those required by Arm NN and the model parsers. It takes a 32-bit float network and converts it into a quantized asymmetric 8-bit or quantized symmetric 16-bit network.
42Static quantization is supported by default but dynamic quantization can be enabled if CSV file of raw input tensors is specified. Run it with no arguments to see command-line help.
43
44Note that Arm NN needs to be built against a particular version of [ARM's Compute Library](https://github.com/ARM-software/ComputeLibrary). The get_compute_library.sh in the scripts subdirectory will clone the compute library from the review.mlplatform.org github repository into a directory alongside armnn named 'clframework' and checks out the correct revision.
45
46For FAQs and troubleshooting advice, see [FAQ.md](docs/FAQ.md)
47
48### License
49
50Arm NN is provided under the [MIT](https://spdx.org/licenses/MIT.html) license.
51See [LICENSE](LICENSE) for more information. Contributions to this project are accepted under the same license.
52
53Individual files contain the following tag instead of the full license text.
54
55    SPDX-License-Identifier: MIT
56
57This enables machine processing of license information based on the SPDX License Identifiers that are available here: http://spdx.org/licenses/
58
59Third party tools used by Arm NN:
60
61| Tool           | License (SPDX ID) | Description                    | Version | Provenience
62|----------------|-------------------|------------------------------------------------------------------|-------------|-------------------
63| cxxopts        | MIT               | A lightweight C++ option parser library | SHA 12e496da3d486b87fa9df43edea65232ed852510 | https://github.com/jarro2783/cxxopts
64| fmt            | MIT               | {fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. | 7.0.1 | https://github.com/fmtlib/fmt
65| ghc            | MIT               | A header-only single-file std::filesystem compatible helper library | 1.3.2 | https://github.com/gulrak/filesystem
66| half           | MIT               | IEEE 754 conformant 16-bit half-precision floating point library | 1.12.0 | http://half.sourceforge.net
67| mapbox/variant | BSD               | A header-only alternative to 'boost::variant' | 1.1.3 | https://github.com/mapbox/variant
68| stb            | MIT               | Image loader, resize and writer | 2.16 | https://github.com/nothings/stb
69
70### Contributions
71
72The Arm NN project welcomes contributions. For more details on contributing to Arm NN see the [Contributing page](https://mlplatform.org/contributing/) on the [MLPlatform.org](https://mlplatform.org/) website, or see the [Contributor Guide](ContributorGuide.md).
73