• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2> **⚠ Important**
3> From release 22.05: 'master' branch has been replaced with 'main' following our inclusive language update, more information [here](https://arm-software.github.io/ComputeLibrary/v23.02.1/contribution_guidelines.xhtml#S5_0_inc_lang).
4
5> **⚠ Important**
6> From release 22.08: armv7a with Android build will no longer be tested or maintained.
7
8> **⚠ Important**
9> From release 23.02: The 23.02 release introduces a change to the default tensor extend padding behavior.
10> To remain compatible with previous behavior, users will need to set the new flag `ITensorInfo::lock_paddings()` on
11> tensors for which paddings should not be extended, such as the input and output of the model that need to be mapped to
12> a camera frame or frame buffer.
13
14<br>
15<div align="center">
16 <img src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png"/><br><br>
17</div>
18
19# Compute Library ![](https://img.shields.io/badge/latest_release-23.02.1-green)
20
21
22The Compute Library is a collection of low-level machine learning functions optimized for Arm® Cortex®-A, Arm® Neoverse® and Arm® Mali™ GPUs architectures.<br>
23
24The library provides superior performance to other open source alternatives and immediate support for new Arm® technologies e.g. SVE2.
25
26Key Features:
27
28- Open source software available under a permissive MIT license
29- Over 100 machine learning functions for CPU and GPU
30- Multiple convolution algorithms (GeMM, Winograd, FFT, Direct and indirect-GeMM)
31- Support for multiple data types: FP32, FP16, INT8, UINT8, BFLOAT16
32- Micro-architecture optimization for key ML primitives
33- Highly configurable build options enabling lightweight binaries
34- Advanced optimization techniques such as kernel fusion, Fast math enablement and texture utilization
35- Device and workload specific tuning using OpenCL tuner and GeMM optimized heuristics
36
37<br>
38
39| Repository  | Link                                                             |
40| ----------- | ---------------------------------------------------------------- |
41| Release     | https://github.com/arm-software/ComputeLibrary                   |
42| Development | https://review.mlplatform.org/#/admin/projects/ml/ComputeLibrary |
43
44<br>
45
46## Documentation
47[![Documentation](https://img.shields.io/badge/documentation-23.02.1-green)](https://arm-software.github.io/ComputeLibrary/v23.02.1)
48
49> Note: The documentation includes the reference API, changelogs, build guide, contribution guide, errata, etc.
50
51<br>
52
53## Pre-built binaries
54All the binaries can be downloaded from [here](https://github.com/ARM-software/ComputeLibrary/releases) or from the tables below.
55
56<br>
57
58| Platform       | Operating System | Release archive (Download) |
59| -------------- | ---------------- | -------------------------- |
60| Raspberry Pi 4 | Linux 32bit      | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-armv7a-neon.tar.gz) |
61| Raspberry Pi 4 | Linux 64bit      | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-neon.tar.gz) |
62| Odroid N2      | Linux 64bit      | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-neon-cl.tar.gz) |
63| HiKey960       | Linux 64bit      | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-neon-cl.tar.gz) |
64
65<br>
66
67| Architecture | Operating System | Release archive (Download) |
68| ------------ | ---------------- | -------------------------- |
69| armv7        | Linux            | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-armv7a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-armv7a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-armv7a-neon-cl.tar.gz) |
70| arm64-v8a    | Android          | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-android-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-android-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-android-arm64-v8a-neon-cl.tar.gz) |
71| arm64-v8a    | Linux            | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8a-neon-cl.tar.gz) |
72| arm64-v8.2-a | Android          | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-android-arm64-v8.2-a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-android-arm64-v8.2-a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-android-arm64-v8.2-a-neon-cl.tar.gz) |
73| arm64-v8.2-a | Linux            | [![](https://img.shields.io/badge/build-neon-orange)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8.2-a-neon.tar.gz) [![](https://img.shields.io/badge/build-opencl-blue)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8.2-a-cl.tar.gz) [![](https://img.shields.io/badge/build-neon+cl-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/download/v23.02.1/arm_compute-v23.02.1-bin-linux-arm64-v8.2-a-neon-cl.tar.gz) |
74
75<br>
76
77Please refer to the following link for more pre-built binaries: [![](https://img.shields.io/badge/v23.02.1-bins-yellowgreen)](https://github.com/ARM-software/ComputeLibrary/releases/tag/v23.02.1)
78
79Pre-build binaries are generated with the following security / good coding practices related flags:
80> -Wall, -Wextra, -Wformat=2, -Winit-self, -Wstrict-overflow=2, -Wswitch-default, -Woverloaded-virtual, -Wformat-security, -Wctor-dtor-privacy, -Wsign-promo, -Weffc++, -pedantic, -fstack-protector-strong
81
82## Supported Architectures/Technologies
83
84- Arm® CPUs:
85    - Arm® Cortex®-A processor family using Arm® Neon™ technology
86    - Arm® Neoverse® processor family
87    - Arm® Cortex®-R processor family with Armv8-R AArch64 architecture using Arm® Neon™ technology
88    - Arm® Cortex®-X1 processor using Arm® Neon™ technology
89
90- Arm® Mali™ GPUs:
91    - Arm® Mali™-G processor family
92    - Arm® Mali™-T processor family
93
94- x86
95
96<br>
97
98## Supported Systems
99
100- Android™
101- Bare Metal
102- Linux®
103- OpenBSD®
104- macOS®
105- Tizen™
106
107<br>
108
109## Resources
110- [Tutorial: Running AlexNet on Raspberry Pi with Compute Library](https://community.arm.com/processors/b/blog/posts/running-alexnet-on-raspberry-pi-with-compute-library)
111- [Gian Marco's talk on Performance Analysis for Optimizing Embedded Deep Learning Inference Software](https://www.embedded-vision.com/platinum-members/arm/embedded-vision-training/videos/pages/may-2019-embedded-vision-summit)
112- [Gian Marco's talk on optimizing CNNs with Winograd algorithms at the EVS](https://www.embedded-vision.com/platinum-members/arm/embedded-vision-training/videos/pages/may-2018-embedded-vision-summit-iodice)
113- [Gian Marco's talk on using SGEMM and FFTs to Accelerate Deep Learning](https://www.embedded-vision.com/platinum-members/arm/embedded-vision-training/videos/pages/may-2016-embedded-vision-summit-iodice)
114
115<br>
116
117## Experimental builds
118
119**⚠ Important** Bazel and CMake builds are experimental CPU only builds, please see the [documentation](https://arm-software.github.io/ComputeLibrary/v23.02.1/how_to_build.xhtml) for more details.
120
121<br>
122
123## How to contribute
124
125Contributions to the Compute Library are more than welcome. If you are interested on contributing, please have a look at our [how to contribute guidelines](https://arm-software.github.io/ComputeLibrary/v23.02.1/contribution_guidelines.xhtml).
126
127### Developer Certificate of Origin (DCO)
128Before the Compute Library accepts your contribution, you need to certify its origin and give us your permission. To manage this process we use the Developer Certificate of Origin (DCO) V1.1 (https://developercertificate.org/)
129
130To indicate that you agree to the the terms of the DCO, you "sign off" your contribution by adding a line with your name and e-mail address to every git commit message:
131
132```Signed-off-by: John Doe <john.doe@example.org>```
133
134You must use your real name, no pseudonyms or anonymous contributions are accepted.
135
136### Public mailing list
137For technical discussion, the ComputeLibrary project has a public mailing list: acl-dev@lists.linaro.org
138The list is open to anyone inside or outside of Arm to self subscribe.  In order to subscribe, please visit the following website:
139https://lists.linaro.org/mailman3/lists/acl-dev.lists.linaro.org/
140
141<br>
142
143## License and Contributions
144
145The software is provided under MIT license. Contributions to this project are accepted under the same license.
146
147### Other Projects
148This project contains code from other projects as listed below. The original license text is included in those source files.
149
150* The OpenCL header library is licensed under Apache License, Version 2.0, which is a permissive license compatible with MIT license.
151
152* The half library is licensed under MIT license.
153
154* The libnpy library is licensed under MIT license.
155
156* The stb image library is either licensed under MIT license or is in Public Domain. It is used by this project under the terms of MIT license.
157
158<br>
159
160## Trademarks and Copyrights
161
162Android is a trademark of Google LLC.
163
164Arm, Cortex, Mali and Neon are registered trademarks or trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
165
166Bazel is a trademark of Google LLC., registered in the U.S. and other
167countries.
168
169CMake is a trademark of Kitware, Inc., registered in the U.S. and other
170countries.
171
172Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
173
174Mac and macOS are trademarks of Apple Inc., registered in the U.S. and other
175countries.
176
177Tizen is a registered trademark of The Linux Foundation.
178
179