ARM Releases Ne10: An Open Source Library with NEON Optimized Functions

The Advanced SIMD extension (aka NEON or “MPE” Media Processing Engine) is a combined 64- and 128-bit single instruction multiple data (SIMD) instruction set that provides standardized acceleration for media and signal processing applications for ARM Cortex-A (ARMv7) processors and the goal of these instructions is similar to MMX, SSE, and 3DNow! extensions for x86 processors.

Starting early 2011, ARM has been working internally on a project codenamed Snappy to develop common functions accelerated by NEON. They have now released the first version of Snappy, now called the Ne10 library, which is available on GitHub at https://github.com/projectNe10/Ne10 .

Arm NE10

The code has been developed in C and Assembler and tested on Ubuntu on ARM (Linaro). A Makefile is also included to build it for Android (AOSP). The current functions include vector and matrix operations accelerated by NEON instructions.

Since the library is open source, ARM hopes developers will make use of the Ne10 library in their open-source packages, add new functions and port the Ne10 libraries to other operating systems.

In the video below Rod Crawford, Principal Engineer at ARM, explains why they started the NE10 Project, what can be done with it, and what’s next for the project.

If you would like to contribute to the project, you can join the community at www.ProjectNe10.org.

If you are not familiar with NEON or just want to improve your skills, you can check the ARM NEON Tutorial in C and Assembler and/or read the 5 parts Coding for NEON on the ARM blog.

Finally, you may also want to see the performance improvement brought by NEON instructions on a real project (JPEG Decoding) by reading “Faster JPEG decoding on ARM with libjpeg-turbo and NEON Instructions” blog post.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX Rockchip RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
1 Comment
oldest
newest
yehuda marko
6 years ago

hello
it appears that the NE10 project is supported using GNU compiler , and 32 bit .

my compiler is llvm 3.8.1.1, is there another library that can work using llvm?
is there a way how to have it work in llvm , and 64bit aarch64?

Boardcon Rockchip RK3588S SBC with 8K, WiFI 6, 4G LTE, NVME SSD, HDMI 2.1...