Arm NEON technology


#1

Hi,
in my quest to compile the most optimise version of opencv. I have found the ARM processor May support Arm NEON technology.

Does the Rockpi4 support Arm NEON technology?
If so How can we used it?

Thanks
Pierre


#2

Hi,

Quote from stackoverflow. NEON is enabled by default is you compile natively on ROCK Pi 4.

Advanced SIMD (aka NEON) is mandatory for AArch64, so no command line option is needed to instruct the compiler to use NEON.

If you want to enable auto vectorization optimisations so that the compiler automatically uses NEON instructions, then compile with -O3 or -O2 -ftree-vectorize .

The AArch64 and ARM backends are completely separate in gcc. The ARM back end only targets the traditional 32 bit ARM instructions sets (ARM, Thumb, Thumb-2). This is in contrast to the situation with x86, where the 32 bit and 64 bit code generation is combined into a single GCC back end.


#3

What Jack mentions is indeed the compiler auto-vectorizing your code. But on the other hand, compilers are often not the best at this. You probably need to work with “intrinsics” in your code, and also need to design your code to use multi-processing/-threading to make the best of the CPU power of the RK3399…