ARM Compute Library heralds computer vision and machine learning
The ARM Compute Library makes low-level software functions optimised for ARM Cortex central processor unit (CPU) and ARM Mali graphics processor unit (GPU) architectures, targeted image processing, computer vision and machine learning. It is available free of charge under a permissive MIT open-source license.
Emerging technologies like machine learning (ML), virtual reality (VR), augmented reality (AR), and computer vision (CV) provide opportunities for innovation across the whole ARM ecosystem.
Software developers throughout the semiconductor supply chain can focus efforts on innovation, and not on re-implementing common technologies and optimisations. It also allows partners to spend time on features and differentiation, not on enabling at the product development stages.
The ARM Compute Library initially contains a large number of functions implemented for the Cortex-A family of CPUs and for the Midgard and Bifrost families of Mali GPUs. It is a convenient repository of low-level, optimised software functions that developers can source individually or use as part of complex pipelines in order to accelerate their algorithms and applications.
The first release of this library includes a set of functions around imaging and vision based products, as well as optimising machine learning frameworks such as Google TensorFlow.
The libraries include basic arithmetic, mathematical and binary operator functions, colour manipulation (conversion, channel extraction), convolution filters (Sobel, Gaussian, for example), Canny Edge, Harris corners and optical flow, pyramids (such as Laplacians), History of Oriented Gradients (HOG), Support Vector Machines (SVM), Half and Single precision General Matrix Multiply (H/SGEMM) and convolutional neural networks building blocks (activation, convolution, fully connected, locally connected, normalisation, pooling, soft-max).
The ARM Compute Library is portable. The CPU functions are implemented using NEON intrinsics, which enables developers to re-compile them for their target architecture. This means the code is transferable between ARMv7 or ARMv8 processor implementations and can be compiled for 32-bit and 64-bit. The GPU version of the library consists of kernel programs written using the OpenCL standard API, which again is portable across multiple processors and architectures (albeit specifically optimised for ARM Mali GPUs).
The library functions can accelerate key stages of computer vision and machine learning pipelines
The library is operating system (OS) agnostic and has already been deployed on a variety of modern Linux and Android ARM-based system-on-chip platforms.
The ARM Compute library is mature and tested, has been utilised by several consumer and mobile silicon vendors and OEMs inside their products, as well as many independent software vendors across the globe.