2013年12月18日 星期三

fann neural network without openMP cross compile on arm64

refer to:
https://github.com/libfann/fann

 ////////////
Modify toolchain.make to fit your compiler
////////////
set( CMAKE_SYSTEM_PROCESSOR aarch64 )
set( CMAKE_C_COMPILER /opt/toolchain/aarch64-asustor_arm64_2024.04.26-linux-gnu/bin/aarch64-asustor_arm64_2024.04.26-linux-gnu-gcc )
set( CMAKE_CXX_COMPILER /opt/toolchain/aarch64-asustor_arm64_2024.04.26-linux-gnu/bin/aarch64-asustor_arm64_2024.04.26-linux-gnu-g++ )

////////////
Debug
////////////
CPU_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}')
echo "CPU number = "$CPU_NUM

mkdir -p _mpsoc
cd _mpsoc
cmake .. -G"Unix Makefiles" \
-DCMAKE_TOOLCHAIN_FILE=toolchain.make \
-DCMAKE_INSTALL_PREFIX=/opt/fann/arm64/debug \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_C_FLAGS_DEBUG="-O0 -g" \
-DCMAKE_CXX_FLAGS_DEBUG="-O0 -g" \
-DOpenMP_C_FLAGS=OFF \
-DOpenMP_CXX_FLAGS=OFF \
-DOpenMP_C_LIB_NAMES=OFF \
-DOpenMP_CXX_LIB_NAMES=OFF

cmake --build . --config Debug --target install -- -j$CPU_NUM VERBOSE=1

cd ../examples
make

////////////
Release
////////////
CPU_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}')
echo "CPU number = "$CPU_NUM

mkdir -p _mpsoc
cd _mpsoc
cmake .. -G"Unix Makefiles" \
-DCMAKE_TOOLCHAIN_FILE=toolchain.make \
-DCMAKE_INSTALL_PREFIX=/opt/fann/arm64/release \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS_RELEASE="-Ofast" \
-DCMAKE_CXX_FLAGS_RELEASE="-Ofast" \
-DOpenMP_C_FLAGS=OFF \
-DOpenMP_CXX_FLAGS=OFF \
-DOpenMP_C_LIB_NAMES=OFF \
-DOpenMP_CXX_LIB_NAMES=OFF

cmake --build . --config Release --target install -- -j$CPU_NUM VERBOSE=1

cd ../examples
make

download:
https://www.mediafire.com/file/6dr1dq8igd2x44x/fann-2.3.tar.xz

沒有留言:

張貼留言