Make use of SIMD in SFOS on ARM

asked 2016-05-16 15:07:25 +0200

lpr gravatar image

updated 2016-06-08 01:06:06 +0200

If your app heavily relies on Vector / Matrix/ FFT operations (single precision) then you are able to use the NEON instruction set for this. But if you don't like to use inline assembler and/or you would like your app to run on an non NEON chip (like Snapdragon 212 in Intex Aquafish) too, you'll need a solution.
ProjectNe10 shows a way to get rid of this problems. It's easy to complile it on SFOS:
unpack the tarball and in the new created folder

mkdir build && cd build
export NE10_LINUX_TARGET_ARCH=armv7
cmake -DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON ..
make

then you get the static and shared version. In the new created samples folder you should see two executables called NE10_test_static and NE10_test_dynamic with which you are able to check if the steps above had worked. The output should be Going to initialze NE10...\n NE10 has been initialized
Now you are able to use SIMD in your apps:

 #include <stdio.h>
 #include <stdlib.h> 
 #include "NE10.h"

then you are able to call the NE10_ functions in your C source code...

edit retag flag offensive close delete