Git Product home page Git Product logo

arm-software / armnn Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 304.0 340.62 MB

Arm NN ML Software. The code here is a read-only mirror of https://review.mlplatform.org/admin/repos/ml/armnn

Home Page: https://developer.arm.com/products/processors/machine-learning/arm-nn

License: MIT License

Makefile 0.29% CMake 1.64% C++ 94.72% Shell 0.54% Assembly 0.01% Dockerfile 0.02% Python 1.79% Mako 0.01% SWIG 1.00%
machine-learning neural-network neural-networks

armnn's People

Contributors

armryan avatar arovir01 avatar brunomorishita avatar catcor01 avatar colm-in-arm avatar davmon01 avatar dbeck-arm avatar dereklambertiofarm avatar eanoca01 avatar ferbal01 avatar finnwilliamsarm avatar francismurtagh-arm avatar james-conroy-arm avatar janeil01 avatar jimfly01 avatar keidav01 avatar kevinarm avatar matjac02 avatar matteoarm avatar matthewarm avatar matthewsloyanarm avatar mikejkelly avatar narumol-arm avatar nattapat-arm avatar nikraj01 avatar ninaarm avatar rob-hughes-arm avatar ryanatarm avatar sadikarm avatar teresaarm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

armnn's Issues

order in Tensor

Hi,

Since I want to extract the values in convolution layer from 1D array (tensordata),
I would like to confirm that the order in tensor is NCHW or NHWC ?

In other words, the order in 1D array is (RGB represents different channels)
NCHW: RRR, GGG ,BBB or
NHWC: RGB, RGB, RGB ?

Thanks!

How to properly release resources?

Hi,
I am looking for the right way to release resources. I can see in the source code that there's the UnloadNetwork function, but it's not clear for the rest. Would it be possible to have a small code snippet that shows how to release resources?
Thank you very much in advance,
Kind regards,

Roadmap Questions

Hi everybody,

I'm trying to get started using object detection nets like ssd_mobilenet (tensorflow) on my ARM Devices.
But seeing that right now mainly CNN building blocks are added I was wondering what your plans are in the near future.

1. Is enabling object detection tasks with the necessary ops one of your near-future targets?

2. Seeing that somebody added a pull request adding Yolo support, it looks like I can add the missing operators for my networks to the project without modifying the main structure of the project. Is that assumption right? How would one go about with that on the tensorflow side?

3. Is there somekind of Documentation that could help me with that already?

4. Are you going to stay machine vision focused or expand to other areas like RNN as well?

I think this is a very cool and promising project and I would love to know where you are headed with this.

Build error with option " BUILD_TESTS " 'stb_image.h' file not found

Hello,

I could successfully build UnitTests and it worked on Galaxy S8.

I want to build the InceptionV3 and other CNN models provided in the "armnn/tests" folder.

I made one change in the cmake/GlobalConfig.cmake file. The change is at the line 4 as follows:
option(BUILD_TESTS "Build test applications" ON)

So this should build the examples of tests folder. However, The cmake command is same as UnitTest cmake command:
CXX=aarch64-linux-android-clang++
CC=aarch64-linux-android-clang
CXX_FLAGS="-fPIE -fPIC"
cmake ..
-DCMAKE_SYSTEM_NAME=Linux
-DCMAKE_EXE_LINKER_FLAGS=-pie
-DARMCOMPUTE_ROOT=/home/atul/git_work/ARM/armnn-devenv/ComputeLibrary/
-DARMCOMPUTE_BUILD_DIR=/home/atul/git_work/ARM/armnn-devenv/ComputeLibrary/build
-DBOOST_ROOT=/home/atul/git_work/ARM/armnn-devenv/boost/install/
-DARMCOMPUTENEON=1 -DARMCOMPUTECL=1
-DTF_GENERATED_SOURCES=/home/atul/git_work/ARM/armnn-devenv/google/tf_pb/ -DBUILD_TF_PARSER=1
-DPROTOBUF_ROOT=/home/atul/git_work/ARM/armnn-devenv/google/arm64_pb_install/

I received the error with make command:

make -j16
[ 1%] Building CXX object tests/CMakeFiles/inferenceTest.dir/InferenceTest.cpp.o
[ 1%] Building CXX object tests/CMakeFiles/inferenceTest.dir/InferenceTestImage.cpp.o
[ 2%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/HeapProfiling.cpp.o
[ 3%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/Logging.cpp.o
[ 3%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/Permute.cpp.o
[ 3%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/DotSerializer.cpp.o
[ 3%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/LeakChecking.cpp.o
/ARM/armnn-devenv/armnn/tests/InferenceTestImage.cpp:15:10: fatal error:
'stb_image.h' file not found
#include <stb_image.h>
^~~~~~~~~~~~~
1 error generated.
make[2]: *** [tests/CMakeFiles/inferenceTest.dir/InferenceTestImage.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [tests/CMakeFiles/inferenceTest.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 3%] Linking CXX static library libarmnnUtils.a
[ 3%] Built target armnnUtils
make: *** [all] Error 2

problem running ExecuteNetwork test

Hi,
I'm trying to test ExecuteNetwork example on LeNet example in Caffe tutorial

http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/01-learning-lenet.ipynb

After training process I have both binary weights file and the prototxt deploy model attached
new_shape_deploy.zip

If I run ExecuteNetwork passing binary file I have the following error

Armnn Error: Unsupported layer type 'Data'

since only "Input" type layer is supported.

If I run ExecuteNetwork passing text file I have the following error

Armnn Error: Expected data blob at index 0 in layer conv1 not found

Can someone help me to solve the issue?

Compile for target 'UnitTests' failed

Dear MatthewARM,
My hardware platform info as below:
i.Mx6, Dual Cortex®-A9 core, GPU, 1G DDR3, 4G EMMC.
1,That is ok to support ARM-NN to run on this platform ?

2,I have changed g++-4.9 to g++-5.5 , and compiled arm-nn succeed ,but target 'UnitTests' failed.
my CMakeLists.txt add setup as below:
#add by mike start
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wold-style-cast -Wno-missing-braces -Wconversion -Wsign-conversion -pthread")
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_STAGING_PREFIX /home/ning/source/arm_nn/arm_nn_imx6)
set(CMAKE_SYSROOT /opt/tools_chain/sysroot_3.14.52)
set(tools /opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf)
set(CMAKE_C_COMPILER ${tools}/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/arm-linux-gnueabihf-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

and cmake configure as below:
cmake -DPROTOBUF_LIBRARY_DEBUG=/home/ning/source/arm_nn/protobuf/lib/libprotobuf.so
DPROTOBUF_LIBRARY_RELEASE=/home/ning/source/arm_nn/protobuf/lib/libprotobuf.so
DARMCOMPUTE_ROOT=/home/ning/source/arm_nn/ComputeLibrary-master
DARMCOMPUTE_BUILD_DIR=/home/ning/source/arm_nn/ComputeLibrary-master/build
DBOOST_ROOT=/home/ning/source/arm_nn/boost_1_64_0
DCAFFE_GENERATED_SOURCES=/home/ning/source/arm_nn/caffe
DBUILD_CAFFE_PARSER=1
DARMCOMPUTENEON=1
DARMCOMPUTECL=1 ..

and re-cmake and re-compile , error info as below:

ning@mike:~/source/arm_nn/armnn-master/build$ cmake -DPROTOBUF_LIBRARY_DEBUG=/home/ning/source/arm_nn/protobuf/lib/libprotobuf.so -DPROTOBUF_LIBRARY_RELEASE=/home/ning/source/arm_nn/protobuf/lib/libprotobuf.so -DARMCOMPUTE_ROOT=/home/ning/source/arm_nn/ComputeLibrary-master -DARMCOMPUTE_BUILD_DIR=/home/ning/source/arm_nn/ComputeLibrary-master/build -DBOOST_ROOT=/home/ning/source/arm_nn/boost -DCAFFE_GENERATED_SOURCES=/home/ning/source/arm_nn/caffe -DBUILD_CAFFE_PARSER=1 -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 ..
-- Boost version: 1.64.0
-- Found the following Boost libraries:
-- unit_test_framework
-- system
-- filesystem
-- log
-- program_options
-- date_time
-- log_setup
-- thread
-- regex
-- chrono
-- atomic
-- Tensorflow parser support is disabled
-- Configuring done
CMake Error at cmake/Utils.cmake:41 (add_library):
Cannot find source file:

/home/ning/source/arm_nn/caffe/caffe/proto/caffe.pb.cc
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
Call Stack (most recent call first):
CMakeLists.txt:77 (add_library_ex)

-- Generating done
-- Build files have been written to: /home/ning/source/arm_nn/armnn-master
ning@mike:/source/arm_nn/armnn-master/build$
ning@mike:/source/arm_nn/armnn-master/build$
ning@mike:~/source/arm_nn/armnn-master/build$ make -j6
-- Boost version: 1.64.0
-- Found the following Boost libraries:
-- unit_test_framework
-- system
-- filesystem
-- log
-- program_options
-- date_time
-- log_setup
-- thread
-- regex
-- chrono
-- atomic
-- Tensorflow parser support is disabled
-- Configuring done
CMake Error at cmake/Utils.cmake:41 (add_library):
Cannot find source file:

/home/ning/source/arm_nn/caffe/caffe/proto/caffe.pb.cc
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
Call Stack (most recent call first):
CMakeLists.txt:77 (add_library_ex)

-- Generating done
-- Build files have been written to: /home/ning/source/arm_nn/armnn-master/build
Makefile:5800: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
ning@mike:~/source/arm_nn/armnn-master/build$ make -j6
[ 1%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/LeakChecking.cpp.o
[ 0%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/HeapProfiling.cpp.o
[ 1%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/Permute.cpp.o
[ 3%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/Logging.cpp.o
[ 3%] Building CXX object CMakeFiles/armnnUtils.dir/src/armnnUtils/DotSerializer.cpp.o
[ 4%] Linking CXX static library libarmnnUtils.a
[ 4%] Built target armnnUtils
[ 5%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClContextControl.cpp.o
[ 5%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClLayerSupport.cpp.o
[ 5%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloadFactory.cpp.o
[ 6%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/CpuTensorHandle.cpp.o
[ 6%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloadFactory.cpp.o
[ 7%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefLayerSupport.cpp.o
[ 8%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloadFactory.cpp.o
[ 8%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonLayerSupport.cpp.o
[ 9%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/WorkloadData.cpp.o
[ 9%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/WorkloadFactory.cpp.o
[ 10%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/AclBaseMemoryManager.cpp.o
[ 10%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/MemCopyWorkload.cpp.o
[ 11%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/Broadcast.cpp.o
[ 11%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefMergerUint8Workload.cpp.o
[ 12%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefResizeBilinearUint8Workload.cpp.o
[ 12%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/FullyConnected.cpp.o
[ 13%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefFullyConnectedFloat32Workload.cpp.o
[ 13%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefSoftmaxFloat32Workload.cpp.o
[ 14%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefActivationFloat32Workload.cpp.o
[ 14%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefBatchNormalizationUint8Workload.cpp.o
[ 15%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/Multiplication.cpp.o
[ 15%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefMultiplicationUint8Workload.cpp.o
[ 16%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefBaseConstantWorkload.cpp.o
[ 17%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefAdditionUint8Workload.cpp.o
[ 17%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefResizeBilinearFloat32Workload.cpp.o
[ 18%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefBatchNormalizationFloat32Workload.cpp.o
[ 18%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/Addition.cpp.o
[ 19%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefFakeQuantizationFloat32Workload.cpp.o
[ 19%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/ResizeBilinear.cpp.o
[ 20%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefSoftmaxUint8Workload.cpp.o
[ 20%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefDepthwiseConvolution2dFloat32Workload.cpp.o
[ 21%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefPooling2dUint8Workload.cpp.o
[ 21%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefFloorFloat32Workload.cpp.o
[ 22%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/ConvImpl.cpp.o
[ 22%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/Activation.cpp.o
[ 23%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefReshapeUint8Workload.cpp.o
[ 23%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefL2NormalizationFloat32Workload.cpp.o
[ 24%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefConvolution2dFloat32Workload.cpp.o
[ 24%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefConvolution2dUint8Workload.cpp.o
[ 25%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefSplitterFloat32Workload.cpp.o
[ 26%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefActivationUint8Workload.cpp.o
[ 26%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefSplitterUint8Workload.cpp.o
[ 27%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefPooling2dFloat32Workload.cpp.o
[ 27%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefMultiplicationFloat32Workload.cpp.o
[ 28%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefReshapeFloat32Workload.cpp.o
[ 28%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefNormalizationFloat32Workload.cpp.o
[ 29%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/Softmax.cpp.o
[ 29%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefDepthwiseConvolution2dUint8Workload.cpp.o
[ 30%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefConstantUint8Workload.cpp.o
[ 30%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefConstantFloat32Workload.cpp.o
[ 31%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/Pooling2d.cpp.o
[ 31%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefAdditionFloat32Workload.cpp.o
[ 32%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefMergerFloat32Workload.cpp.o
[ 32%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefFullyConnectedUint8Workload.cpp.o
[ 33%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/RefWorkloads/RefPermuteWorkload.cpp.o
[ 33%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/ActivationLayer.cpp.o
[ 34%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/AdditionLayer.cpp.o
[ 35%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/BatchNormalizationLayer.cpp.o
[ 35%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/ConstantLayer.cpp.o
[ 36%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/Convolution2dLayer.cpp.o
[ 36%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/DepthwiseConvolution2dLayer.cpp.o
[ 37%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/FakeQuantizationLayer.cpp.o
[ 37%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/FloorLayer.cpp.o
[ 38%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/FullyConnectedLayer.cpp.o
[ 38%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/InputLayer.cpp.o
[ 39%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/L2NormalizationLayer.cpp.o
[ 39%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/MemCopyLayer.cpp.o
[ 40%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/MergerLayer.cpp.o
[ 40%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/MultiplicationLayer.cpp.o
[ 41%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/NormalizationLayer.cpp.o
[ 41%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/OutputLayer.cpp.o
[ 42%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/PermuteLayer.cpp.o
[ 42%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/Pooling2dLayer.cpp.o
[ 43%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/ReshapeLayer.cpp.o
[ 44%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/ResizeBilinearLayer.cpp.o
[ 44%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/SoftmaxLayer.cpp.o
[ 45%] Building CXX object CMakeFiles/armnn.dir/src/armnn/layers/SplitterLayer.cpp.o
[ 45%] Building CXX object CMakeFiles/armnn.dir/src/armnn/InternalTypes.cpp.o
[ 46%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Layer.cpp.o
[ 46%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Runtime.cpp.o
[ 47%] Building CXX object CMakeFiles/armnn.dir/src/armnn/SerializeLayerParameters.cpp.o
[ 47%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Descriptors.cpp.o
[ 48%] Building CXX object CMakeFiles/armnn.dir/src/armnn/LoadedNetwork.cpp.o
[ 48%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Exceptions.cpp.o
[ 49%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Graph.cpp.o
[ 49%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Network.cpp.o
[ 50%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/OutputHandler.cpp.o
[ 50%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Profiling.cpp.o
[ 51%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Tensor.cpp.o
[ 51%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Utils.cpp.o
[ 52%] Building CXX object CMakeFiles/armnn.dir/src/armnn/LayerSupport.cpp.o
[ 53%] Building CXX object CMakeFiles/armnn.dir/src/armnn/Optimizer.cpp.o
[ 53%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonActivationFloat32Workload.cpp.o
[ 54%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonActivationUint8Workload.cpp.o
[ 54%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonAdditionFloat32Workload.cpp.o
[ 55%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonBatchNormalizationFloat32Workload.cpp.o
[ 55%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonConstantFloat32Workload.cpp.o
[ 56%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonConstantUint8Workload.cpp.o
[ 56%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonConvolution2dBaseWorkload.cpp.o
[ 57%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonConvolution2dFloat32Workload.cpp.o
[ 57%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonConvolution2dUint8Workload.cpp.o
[ 58%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionFloat32Workload.cpp.o
[ 58%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonDepthwiseConvolutionUint8Workload.cpp.o
[ 59%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonFloorFloat32Workload.cpp.o
[ 59%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonFullyConnectedFloat32Workload.cpp.o
[ 60%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonL2NormalizationFloat32Workload.cpp.o
[ 60%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonMergerFloat32Workload.cpp.o
[ 61%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonMergerUint8Workload.cpp.o
[ 61%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonNormalizationFloat32Workload.cpp.o
[ 62%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonMultiplicationFloat32Workload.cpp.o
[ 63%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonPermuteWorkload.cpp.o
[ 63%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonPooling2dBaseWorkload.cpp.o
[ 64%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonPooling2dFloat32Workload.cpp.o
[ 64%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonPooling2dUint8Workload.cpp.o
[ 65%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonReshapeFloat32Workload.cpp.o
[ 65%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonReshapeUint8Workload.cpp.o
[ 66%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonSoftmaxFloat32Workload.cpp.o
[ 66%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonSoftmaxUint8Workload.cpp.o
[ 67%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonSplitterFloat32Workload.cpp.o
[ 67%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloads/NeonSplitterUint8Workload.cpp.o
[ 68%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/NeonWorkloadUtils.cpp.o
[ 68%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClActivationFloat32Workload.cpp.o
[ 69%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClActivationUint8Workload.cpp.o
[ 69%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClAdditionFloat32Workload.cpp.o
[ 70%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClBaseConstantWorkload.cpp.o
[ 71%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClBatchNormalizationFloat32Workload.cpp.o
[ 71%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClConstantFloat32Workload.cpp.o
[ 72%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClConstantUint8Workload.cpp.o
[ 72%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClConvolution2dBaseWorkload.cpp.o
[ 73%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClConvolution2dFloat32Workload.cpp.o
[ 73%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClConvolution2dUint8Workload.cpp.o
[ 74%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionFloat32Workload.cpp.o
[ 74%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClDepthwiseConvolutionUint8Workload.cpp.o
[ 75%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClFloorFloat32Workload.cpp.o
[ 75%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClFullyConnectedFloat32Workload.cpp.o
[ 76%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClL2NormalizationFloat32Workload.cpp.o
[ 76%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClMergerFloat32Workload.cpp.o
[ 77%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClMergerUint8Workload.cpp.o
[ 77%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClMultiplicationFloat32Workload.cpp.o
[ 78%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClNormalizationFloat32Workload.cpp.o
[ 78%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClPermuteWorkload.cpp.o
[ 79%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClPooling2dBaseWorkload.cpp.o
[ 80%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClPooling2dFloat32Workload.cpp.o
[ 80%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClPooling2dUint8Workload.cpp.o
[ 81%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClReshapeFloat32Workload.cpp.o
[ 81%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClReshapeUint8Workload.cpp.o
[ 82%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClResizeBilinearFloat32Workload.cpp.o
[ 82%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClSoftmaxFloat32Workload.cpp.o
[ 83%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClSoftmaxUint8Workload.cpp.o
[ 83%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClSplitterFloat32Workload.cpp.o
[ 84%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ClWorkloads/ClSplitterUint8Workload.cpp.o
[ 84%] Building CXX object CMakeFiles/armnn.dir/src/armnn/backends/ArmComputeTensorUtils.cpp.o
[ 85%] Linking CXX shared library libarmnn.so
[ 85%] Built target armnn
[ 85%] Linking CXX shared library libarmnnCaffeParser.so
[ 85%] Built target armnnCaffeParser
[ 85%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/UnitTests.cpp.o
[ 86%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/EndToEndTest.cpp.o
[ 87%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/GraphTests.cpp.o
[ 88%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/RuntimeTests.cpp.o
[ 88%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/OptimizerTests.cpp.o
[ 88%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/UtilsTests.cpp.o
[ 88%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/TensorTest.cpp.o
[ 89%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/test/Network_test.cpp.o
[ 89%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/IsLayerSupportedTest.cpp.o
[ 90%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/Reference.cpp.o
[ 90%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/WorkloadDataValidation.cpp.o
[ 91%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/TensorCopyUtils.cpp.o
[ 91%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/LayerTests.cpp.o
[ 92%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/CreateWorkloadRef.cpp.o
[ 92%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/ArmComputeNeon.cpp.o
[ 93%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/CreateWorkloadNeon.cpp.o
[ 93%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/ArmComputeCl.cpp.o
[ 94%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/CreateWorkloadCl.cpp.o
[ 95%] Building CXX object CMakeFiles/UnitTests.dir/src/armnn/backends/test/MemCopyTests.cpp.o
[ 95%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestAdd.cpp.o
[ 96%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestConcat.cpp.o
[ 96%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestDropout.cpp.o
[ 97%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestInputs.cpp.o
[ 97%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestMul.cpp.o
[ 98%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestPooling2d.cpp.o
[ 98%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestInPlace.cpp.o
[ 99%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestMultiInputsOutputs.cpp.o
[ 99%] Building CXX object CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestSplit.cpp.o
[100%] Linking CXX executable UnitTests
CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestInputs.cpp.o: In function CaffeParser::InputShapes::test_method()': TestInputs.cpp:(.text+0x538): undefined reference toarmnnCaffeParser::ICaffeParser::Create()'
CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestInPlace.cpp.o: In function CaffeParser::ParseInPlace_invoker()': TestInPlace.cpp:(.text+0x2ec): undefined reference toarmnnCaffeParser::ICaffeParser::Create()'
CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestInPlace.cpp.o: In function CaffeParser::InPlaceOutput_invoker()': TestInPlace.cpp:(.text+0x142c): undefined reference toarmnnCaffeParser::ICaffeParser::Create()'
CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestMultiInputsOutputs.cpp.o: In function CaffeParser::MultiInputsOutputs_invoker()': TestMultiInputsOutputs.cpp:(.text+0x838): undefined reference toarmnnCaffeParser::ICaffeParser::Create()'
CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestSplit.cpp.o: In function CaffeParser::Split_invoker()': TestSplit.cpp:(.text+0x2ec): undefined reference toarmnnCaffeParser::ICaffeParser::Create()'
CMakeFiles/UnitTests.dir/src/armnnCaffeParser/test/TestAdd.cpp.o:TestAdd.cpp:(.text+0x364): more undefined references to `armnnCaffeParser::ICaffeParser::Create()' follow
collect2: error: ld returned 1 exit status
CMakeFiles/UnitTests.dir/build.make:809: recipe for target 'UnitTests' failed
make[2]: *** [UnitTests] Error 1
CMakeFiles/Makefile2:144: recipe for target 'CMakeFiles/UnitTests.dir/all' failed
make[1]: *** [CMakeFiles/UnitTests.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

thank you very much !

About running unit test

After setting LD_LIBRARY_PATH and compile the binary, I met below abort issues. Could any one provide any ideas on how to solve below issues while running unit test?

maestro9610:/data/local/tmp # echo $LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
/data/local/tmp
maestro9610:/data/local/tmp # ./UnitTests
./UnitTests
WARNING: linker: "/data/local/tmp/UnitTests" unused DT entry: type 0xf arg 0x11
65
CANNOT LINK EXECUTABLE "./UnitTests": library "libarmnnTfParser.so" not found
Aborted
Best,

phamyphen

Porting Error (S9/Mate-10)

I am testing your ARMNN API on a galaxy s9 and a Mate-10 smartphone.
However, when I run the Unitests program, the following error occurs.

Running 226 test cases ...
Invalid address 0x7E7B96E920 passed to free: value not allocated
Aborted

The current Android MALI-G7X series
S9, MATE-10 DRIVER has not been updated?

Thank you

Linking issues

How do you guys solve the below linking issues?

~/armnn-devenv/toolchains/aarch64-android-r17b/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: libarmnnUtils.a(Logging.cpp.o): undefined reference to symbol '__android_log_write'

File to add OpenCL lib

Could anyone know how to solve below issues?

/usr/local/lib/libOpenCL.so: error adding symbols: File in wrong format
clang60++: error: linker command failed with exit code 1 (use -v to see invocation)

cmake build error

cmake build error occured whilng buiding arm nn .
Any of you guys who release on this topic, please share the solution to find out this problem.

cmake -DARMCOMPUTE_ROOT= -DARMCOMPUTE_BUILD_DIR=/build -- Boost version: 1.64.0
-- Found the following Boost libraries:
-- unit_test_framework
-- system
-- filesystem
-- log
-- program_options
-- date_time
-- log_setup
-- thread
-- regex
-- chrono
-- atomic
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PROTOBUF_LIBRARY
linked by target "armnnCaffeParser" in directory

Comparison between Caffe and ArmnnCaffeParser processing time

I'm trying to compare the processing time running a convolutional network with Caffe C++ library and ArmnnCaffeParser built on ARM ComputeLibrary. These are details:

target architecture: Freescale IMX6Q

input image: 256x256 pixel and 3 channels

architecture:
conv2d 3x3 - 32 filters + RELU
conv2d 3x3 - 32 filters + RELU
max pool 2x2
conv2d 3x3 - 64 filters + RELU
conv2d 3x3 - 64 filters + RELU
max pool 2x2
conv2d 3x3 - 128 filters + RELU
max pool 2x2
conv2d 3x3 - 256 filters + RELU
max pool 2x2
conv2d 3x3 - 256 filters + RELU
max pool 2x2
fully connected layer with 48 output
relu
fully connected layer with 3 output
softmax

processing time:

  • Caffe c++ library (without ComputeLibrary optimization) : 4.5 seconds
  • ArmnnCaffeParser (with ComputeLibrary optimization): 2.2 seconds

I'm a little bit disappointed since my expectations were to boost the processing time more than a factor 2

Do you think that I'm doing something wrong or is this improvement factor comparable with your benchmarks?

Thanks

Cortex-R and Tensorflow

Hi there,

I was wondering if ARM NN will support Cortex-R processors. Also, around when will ARM NN support Tensorflow?

Thanks,
Edward

armnn sdk compile question

hello
I compile armnn SDK according to the https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment/configuring-the-arm-nn-sdk-build-environment-single-page,but there was some mistakes。
/usr/bin/ld: ComputeLibrary-master/build/libarm_compute-static.a(ITensorAllocator.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: ComputeLibrary-master/build/libarm_compute-static.a(ITensorAllocator.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: ComputeLibrary-master/build/libarm_compute-static.a(ITensorAllocator.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: ComputeLibrary-master/build/libarm_compute-static.a(ITensorAllocator.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: ComputeLibrary-master/build/libarm_compute-static.a(ITensorAllocator.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: ComputeLibrary-master/build/libarm_compute-static.a(ITensorAllocator.o): Relocations in generic ELF (EM: 40)
/usr/bin/ld: ComputeLibrary-master/build/libarm_compute-static.a(ITensorAllocator.o): Relocations in generic ELF (EM: 40)
ComputeLibrary-master/build/libarm_compute-static.a: error adding symbols: File in wrong format
ComputeLibrary-master compiled with arm-linux-gnueabihf-gcc-4.9.1, armnn-master compiled with gcc-5.4
armnn-master requires other compilers to compile?
thank you!

armnn build issue

Hi ARM,

I'm trying to run armnn on raspberry pi 3.
Building Caffe on pi3 was failed due to lack of memory so I tried to build armnn on my ubuntu host machine.

Host info
4.13.0-32-generic #35~16.04.1-Ubuntu SMP x86_64

I referred to
https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment-for-caffe/building-the-environment
#9
#2.

What I've done is

  • built boost for arm in /home/ryan/Desktop/rasp3
  • built protobuf for x86-64 and arm in /home/ryan/Desktop/rasp3
  • built Caffe on my host
  • failed to build armnn with this configuration

export CXX=arm-linux-gnueabihf-g++
export CC=arm-linux-gnueabihf-gcc
cmake -DARMCOMPUTENEON=1 -DPROTOBUF_LIBRARY_DEBUG=/home/ryan/Desktop/rasp3/lib -DPROTOBUF_LIBRARY_RELEASE=/home/ryan/Desktop/rasp3/lib -DARMCOMPUTE_ROOT=/home/ryan/Desktop/AI/ComputeLibrary -DARMCOMPUTE_BUILD_DIR=/home/ryan/Desktop/AI/ComputeLibrary/build -DBOOST_ROOT=/home/ryan/Desktop/rasp3 -DCAFFE_GENERATED_SOURCES=/home/ryan/Desktop/AI/Caffe/build/src -DBUILD_CAFFE_PARSER=1 ..

I got these errors.

_libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::RegisterAllTypes(google::protobuf::Metadata const*, int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::Refresh()'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteUInt32(int, unsigned int, google::protobuf::io::CodedOutputStream*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned char*)'
libarmnn.so: undefined reference to pthread_rwlock_unlock' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteEnum(int, int, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::ArenaImpl::AllocateAlignedAndAddCleanup(unsigned int, void (*)(void*))' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::ReadVarintSizeAsIntFallback()' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteInt32(int, int, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::Message::CheckTypeAndMergeFrom(google::protobuf::MessageLite const&)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::ReadVarint64Fallback()'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::ReadTagFallback(unsigned int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::UInt32Size(google::protobuf::RepeatedField const&)'
libarmnn.so: undefined reference to pthread_mutexattr_destroy' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::fixed_address_empty_string[abi:cxx11]'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)' libarmnn.so: undefined reference to pthread_create'
libarmnnCaffeParser.so: undefined reference to google::protobuf::Message::GetTypeName[abi:cxx11]() const' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedOutputStream::WriteVarint32SlowPath(unsigned int)'
libarmnnCaffeParser.so: undefined reference to vtable for google::protobuf::io::FileInputStream' libarmnnCaffeParser.so: undefined reference to google::protobuf::Message::InitializationErrorStringabi:cxx11 const'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteFloat(int, float, google::protobuf::io::CodedOutputStream*)' libarmnn.so: undefined reference to pthread_key_create'
libarmnn.so: undefined reference to pthread_rwlock_init' libarmnnCaffeParser.so: undefined reference to google::protobuf::MessageLite::ParseFromCodedStream(google::protobuf::io::CodedInputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormat::SerializeUnknownFields(google::protobuf::UnknownFieldSet const&, google::protobuf::io::CodedOutputStream*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::Message::DiscardUnknownFields()'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::BytesUntilLimit() const' libarmnn.so: undefined reference to pthread_getspecific'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::BytesUntilTotalBytesLimit() const' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::FileInputStream::CopyingFileInputStream::~CopyingFileInputStream()'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::ReadLittleEndian32Fallback(unsigned int*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteBool(int, bool, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::MessageLite::SerializeWithCachedSizesToArray(unsigned char*) const' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(int, google::protobuf::MessageLite const&, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)' libarmnn.so: undefined reference to pthread_mutex_trylock'
libarmnn.so: undefined reference to pthread_key_delete' libarmnn.so: undefined reference to pthread_rwlock_rdlock'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::OnShutdownDestroyMessage(void const*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteInt64(int, long long, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::Arena::OnArenaAllocation(std::type_info const*, unsigned int) const' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteFloatArray(float const*, int, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*, int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::ReflectionOps::Merge(google::protobuf::Message const&, google::protobuf::Message*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::TextFormat::ParseFromString(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Message*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CopyingInputStreamAdaptor::~CopyingInputStreamAdaptor()'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::SetTotalBytesLimit(int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::TextFormat::Parse(google::protobuf::io::ZeroCopyInputStream*, google::protobuf::Message*)'
libarmnnCaffeParser.so: undefined reference to typeinfo for google::protobuf::Message' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::OnShutdownDestroyString(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::InitSCCImpl(google::protobuf::internal::SCCInfoBase*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteString(int, std::_cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::io::CodedOutputStream*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::VerifyVersion(int, int, char const*)' libarmnn.so: undefined reference to pthread_rwlock_destroy'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteDoubleArray(double const*, int, google::protobuf::io::CodedOutputStream*)' libarmnn.so: undefined reference to pthread_rwlock_wrlock'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::Int32Size(google::protobuf::RepeatedField<int> const&)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::ArenaImpl::AllocateAligned(unsigned int)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::PushLimit(int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::UnknownFieldSet::MergeFrom(google::protobuf::UnknownFieldSet const&)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::AssignDescriptors(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::internal::MigrationSchema const*, google::protobuf::Message const* const*, unsigned int const*, google::protobuf::Metadata*, google::protobuf::EnumDescriptor const**, google::protobuf::ServiceDescriptor const**)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedOutputStream::WriteVarint64SlowPath(unsigned long long)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::ReadRaw(void*, int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::UnknownFieldSet::ClearFallback()'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::~CodedInputStream()' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::IncrementRecursionDepthAndPushLimit(int)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(google::protobuf::UnknownFieldSet const&)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::Message::SpaceUsedLong() const' libarmnnCaffeParser.so: undefined reference to google::protobuf::UnknownFieldSet::AddVarint(int, unsigned long long)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::FileInputStream::FileInputStream(int, int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::ReadVarint32Fallback(unsigned int)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::Int64Size(google::protobuf::RepeatedField<long long> const&)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::PopLimit(int)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::RepeatedPtrFieldBase::InternalExtend(int)' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormat::SkipField(google::protobuf::io::CodedInputStream*, unsigned int, google::protobuf::UnknownFieldSet*)'
libarmnn.so: undefined reference to pthread_mutexattr_settype' libarmnnCaffeParser.so: undefined reference to google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void ()(std::_cxx11::basic_string<char, std::char_traits, std::allocator > const&))'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::SkipFallback(int, int)' libarmnn.so: undefined reference to pthread_join'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::DecrementRecursionDepthAndPopLimit(int)'
libarmnn.so: undefined reference to pthread_setspecific' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::default_recursion_limit
'
libarmnn.so: undefined reference to pthread_detach' libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormat::ReadPackedEnumPreserveUnknowns(google::protobuf::io::CodedInputStream
, unsigned int, bool ()(int), google::protobuf::UnknownFieldSet, google::protobuf::RepeatedField*)'
libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::ReadLittleEndian64Fallback(unsigned long long*)' libarmnn.so: undefined reference to pthread_mutexattr_init'
collect2: error: ld returned 1 exit status
CMakeFiles/UnitTests.dir/build.make:755: recipe for target 'UnitTests' failed
make[2]: *** [UnitTests] Error 1
make[2]: Target 'CMakeFiles/UnitTests.dir/build' not remade because of errors.
CMakeFiles/Makefile2:144: recipe for target 'CMakeFiles/UnitTests.dir/all' failed
make[1]: *** [CMakeFiles/UnitTests.dir/all] Error 2
make[1]: Target 'all' not remade because of errors.
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
make: Target 'default_target' not remade because of errors.

Is there anything I missed? I guess libpthread for arm will be required..
I will appreciate your feedback

Regards,
Dongjin.

Performance on Cortex-A53 (Galaxy S7)

Hi,
I am running some benchmarks to see how Arm NN performs on the CPU and GPU and I am noticing something a bit strange.
I am using the Galaxy S7 (Cortex-A53 / Mali-T880) for the benchmark, as well as a OnePlus 3 (Snapdragon 820, I know it's not an Arm chip but I was just curious to see what happens since I know the performance of the same model using TFMobile, TFLite and Qualcomm SNPE (GPU mode) on that device).
Everything is running on Android as follows: image reading/resizing is done on Android, the float array version of the image is passed to a JNI/C++ interface that returns predictions, then the predictions are parsed in Java. So basically every prediction call is like this:

//Parse image data from Java
 armnn_status = runtime.get()->EnqueueWorkload(networkIdentifier,
                                                       MakeInputTensors(inputBindingInfo, input_cpp),
                                                       MakeOutputTensors(outputBindingInfo_prediction, 
                                                       &output_prediction_cpp[0]));
//Return predicitons to Java

Benchmark

ArmNN CpuAcc mode (Galaxy S7)

The first predictions are quite fast, then suddenly it becomes much slower. Here's the detailed log in the form () on the app start:

99 ms (1/35)
69 ms (2/35)
70 ms (3/35)
74 ms (4/35)
73 ms (5/35)
69 ms (6/35)
69 ms (7/35)
70 ms (8/35)
68 ms (9/35)
73 ms (10/35)
78 ms (11/35)
90 ms (12/35)
94 ms (13/35)
83 ms (14/35)
78 ms (15/35)
83 ms (16/35)
72 ms (17/35)
77 ms (18/35)
89 ms (19/35)
232 ms (20/35)
256 ms (21/35)
252 ms (22/35)
346 ms (23/35)
247 ms (24/35)
242 ms (25/35)
310 ms (26/35)
271 ms (27/35)
295 ms (28/35)
260 ms (29/35)
338 ms (30/35)
295 ms (31/35)
296 ms (32/35)
271 ms (33/35)
269 ms (34/35)
297 ms (35/35)

In fact, it becomes ridiculously slow after longer runs:

429 ms (249/256)
405 ms (250/256)
412 ms (251/256)
2605 ms (252/256)
3960 ms (253/256)
4117 ms (254/256)
4155 ms (255/256)
3925 ms (256/256)

ArmNN GpuAcc mode (Galaxy S7)

Processing is pretty stable on the GPU as you can see but becomes slightly slower after the first runs (for the sake of comparison, the same architecture runs at a stable ~30ms/img on the OnePlus3 using the SNPE SDK):

123 ms (1/35)
57 ms (2/35)
57 ms (3/35)
56 ms (4/35)
54 ms (5/35)
55 ms (6/35)
54 ms (7/35)
54 ms (8/35)
53 ms (9/35)
54 ms (10/35)
54 ms (11/35)
55 ms (12/35)
58 ms (13/35)
62 ms (14/35)
65 ms (15/35)
62 ms (16/35)
80 ms (17/35)
66 ms (18/35)
62 ms (19/35)
57 ms (20/35)
81 ms (21/35)
59 ms (22/35)
87 ms (23/35)
62 ms (24/35)
57 ms (25/35)
64 ms (26/35)
62 ms (27/35)
75 ms (28/35)
57 ms (29/35)
62 ms (30/35)
75 ms (31/35)
74 ms (32/35)
59 ms (33/35)
64 ms (34/35)
58 ms (35/35)

TFMobile (OnePlus 3)

Processing is stable on the CPU using TFMobile on the OnePlus 3:

167 ms (1/35)
93 ms (2/35)
96 ms (3/35)
107 ms (4/35)
93 ms (5/35)
93 ms (6/35)
93 ms (7/35)
94 ms (8/35)
93 ms (9/35)
90 ms (10/35)
94 ms (11/35)
97 ms (12/35)
91 ms (13/35)
90 ms (14/35)
89 ms (15/35)
93 ms (16/35)
91 ms (17/35)
91 ms (18/35)
93 ms (19/35)
96 ms (20/35)
100 ms (21/35)
88 ms (22/35)
92 ms (23/35)
93 ms (24/35)
92 ms (25/35)
92 ms (26/35)
94 ms (27/35)
85 ms (28/35)
89 ms (29/35)
93 ms (30/35)
91 ms (31/35)
87 ms (32/35)
92 ms (33/35)
89 ms (34/35)
87 ms (35/35)

ArmNN CpuAcc mode (OnePlus 3)

Stable processing at around ~100ms/img and pretty good performance compared to TFMobile even-though the chip is not ARM:

181 ms (1/35)
101 ms (2/35)
117 ms (3/35)
147 ms (4/35)
112 ms (5/35)
105 ms (6/35)
103 ms (7/35)
101 ms (8/35)
107 ms (9/35)
102 ms (10/35)
103 ms (11/35)
104 ms (12/35)
114 ms (13/35)
135 ms (14/35)
136 ms (15/35)
107 ms (16/35)
103 ms (17/35)
102 ms (18/35)
115 ms (19/35)
101 ms (20/35)
102 ms (21/35)
103 ms (22/35)
102 ms (23/35)
103 ms (24/35)
100 ms (25/35)
106 ms (26/35)
100 ms (27/35)
103 ms (28/35)
102 ms (29/35)
104 ms (30/35)
99 ms (31/35)
105 ms (32/35)
100 ms (33/35)
100 ms (34/35)
103 ms (35/35)

So the question is why ArmNN becomes slower on the Cortex-A53 after several runs? Anyone experienced something similar on other Arm chips?

Thanks a lot in advance,
Kind regards,

cross-compiling linker error: libarmnn.so: unexpected reloc type 0x03

Hi, I am cross-compiling armnn for the beaglebone black (ARM Cortex-A8) using the arm-linux-gnueabihf-g++ packages from Debian. I managed to get the compile working without errors on the host machine, but when I attempt to run the UnitTests on the target as below, I get the following error:

debian@beaglebone ~/armnn % LD_LIBRARY_PATH=. ./UnitTests
./UnitTests: error while loading shared libraries: ./libarmnn.so: unexpected reloc type 0x03

I am generated the makefiles for armnn using the following:

~/Downloads/compiled_protobuf/lib % cmake -DARMCOMPUTE_ROOT=/home/curt/ComputeLibrary -DARMCOMPUTE_BUILD_DIR=/home/curt/ComputeLibrary/build -DBOOST_ROOT=/home/curt/Downloads/compiled_boost -DTF_GENERATED_SOURCES=/home/curt/Downloads/tensorflow/ -DBUILD_TF_PARSER=1 -DARMCOMPUTENEON=1 -DPROTOBUF_ROOT=/home/curt/Downloads/compiled_protobuf ..

Then I ran make as usual. I've looked for a while and it looks like the relocation being complained about is static relocation error R_ARM_REL32, but I can't figure out where something was linked statically but something else was dynamically linked.

The tests for the ARM Compute Library compile and run successfully on the target, if that helps narrow it down. Is there anything else I could try adding to the GlobalConfig.cmake file to help? Thanks!

ARM-NN for Caffe SDK : build error in Ubuntu 18.04 LTS

Hi, =v=
I tried to build armnn environment in Ubuntu 18.04 LTS. In the meantime, I set up in accordance with the official Step-by-Step manual. No errors occurred, and every step was tested as far as possible until the last step(cd armnn/; cmake & make).

Here is my configurations and build environment version
Version
cmake: 3.10.1
scons: 2.4.1
boost: 1.64.0 1.67.0(tested)
protobuf: 3.5.1 3.6.0(tested)
armnn: 18.05.02 18.05(tested)
CROSS_CPMPILE: gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux
caffe: 1.0.0 (sudo apt install caffe-cpu)
ComputeLibrary

Hardware
ARMv7-A(CPU-Only)

Configure the Arm NN SDK build using CMake
image

Executing cmake ... seems OK
image

But a fatal error occured when make -j32
image

make stop
image

Can you tell me where the problem is? Thank you QvQ

Quesry on network creation / testing

Hi

In the tests that are provided, they seem to be expecting the network models in either Caffe or Tensorflow formats. I have below queries:

  1. Can we use our own trained network models (other than Caffe or TensorFlow) and use ARM NN to test it

  2. Are there any APIs, to create a network on our own by designing the network using various Layers (without using the Caffe or TensorFlow models)

It would be very helpful, if you could clarify on the above and point to any examples.

Thank you
Kamrao

loading data into InferenceModel

Dear all,
I tried to modify InferenceModel in order to run a CNN network on single image. The problem is that if I compare the output of the network with the same model using Caffe library I get different output. I guess that the problem could be related to how the image data are loaded into input vector for the net.

This is how i done, starting from OpenCV image:

cv::Mat image = cv::imread("img.png", CV_LOAD_IMAGE_COLOR);
cv::Mat image_float;
image.convertTo(image_float, CV_32FC3);
image_float = image_float / 255.0;
std::vector<float> input_array;
input_array.assign((float*)image_float.datastart, (float*)image_float.dataend);

    ...........

    InferenceModel<armnnCaffeParser::ICaffeParser, float> model(params);
    std::vector<float> output(model.GetOutputSize());
    model.Run(input_array, output);

Can anyone give me some feedback about this or explain me how the image data has to be organized into input_vector?

Regards

arm-nn link error

hello
I compiled armnn for errors in the link process
/boost_1_64_0/stage/lib/libboost_unit_test_framework.a(unit_test_main.o): In function boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**)': unit_test_main.cpp:(.text+0xec): undefined reference to stdin'
unit_test_main.cpp:(.text+0xf0): undefined reference to stdin' unit_test_main.cpp:(.text+0xf8): undefined reference to _IO_getc'
/boost_1_64_0/stage/lib/libboost_unit_test_framework.a(execution_monitor.o): In function boost::detail::signal_handler::~signal_handler()': execution_monitor.cpp:(.text+0x104): undefined reference to __errno_location'
/boost_1_64_0/stage/lib/libboost_unit_test_framework.a(execution_monitor.o): In function boost::system_error::system_error(char const*)': execution_monitor.cpp:(.text+0x390): undefined reference to __errno_location'
libarmnnCaffeParser.so: undefined reference to google::protobuf::internal::WireFormat::SerializeUnknownFields(google::protobuf::UnknownFieldSet const&, google::protobuf::io::CodedOutputStream*)' libarmnnCaffeParser.so: undefined reference to google::protobuf::Message::SpaceUsed() const'
libarmnnCaffeParser.so: undefined reference to google::protobuf::DescriptorPool::FindFileByName(std::string const&) const' libarmnnCaffeParser.so: undefined reference to google::protobuf::io::CodedInputStream::BytesUntilTotalBytesLimit() const'
libarmnnCaffeParser.so: undefined reference to `google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*, int)'

arm-nn can run on arm-linux-32bit(imx6)?

I arm porting arm nn to embedded platforms(imx6d ,linux), refer to Configuring the Arm NN SDK build environment for Caffe step by step and I have some doubts as below:

1,all of source code need to compile by arm-linux-gnueabihf-gcc/g++ (GCC-4.9) ?

2,arm-nn can only run embedded platforms arm64 not arm32?

3,arm-nn can run embedded platforms with embedded linux system?

Thank you very much!

does Arm NN support Android 5.1?

We have a legacy board of Android 5.1. I have seen that the BuildGuideAndroidNDK.md talks about using API level 26. So, is Android 8.0 (or higher) is required?

size of convolution layer

Hello,

I would like to know the usage of GetNumElements() in Tensor.

When I use MakeOutputTensors and check the Tensor size with GetNumElements(), it only shows the size of channel (not multiple with H and W).

Since my output layer is convolution layer, number of element should be C * H * W.

Is it normal that GetNumElements() only shows the number of output channel?

Moreover, I use an array with size of C * H * W as outputTensordata, the array seems could not capture all the value of convolution layer (it only contains C (number of channel) values), how to extract all value of a convolution layer??

Thanks!

Arm build error

Hi,
I am trying to build arm environment on RPi and im following the installation procedure present in the official website.
While building, after the cmake command i encountered some errors regarding ARMCOMPUTE path i manually set them to Compute library folder in the CMakeCache.txt file which is present in armnn folder.
screenshot from 2018-06-14 12-13-10

And after executing the command it showed warnings that " targets may link only to libraries. CMake is dropping the item" for some items.

I ignored that and proceeded with 'make' it is showing file not found for the headers mentioned, for some files i set manually the whole path but it is asking for all the files mentioned in header.

screenshot from 2018-06-19 11-37-47

is it because of the warning it was showing or is there any way to resolve this issue?

Thank you,

Yeshwanth R

stl gnustl and libc++

Hi,

I'm trying to compile ARM NN using Android toolchain (aarch64-linux-android-)

ACL recomends using "--stl gnustl" here

ARM NN recommends using "--stl=libc++" here

Currently I have two standalone toolchains. One to build ACL (with gnustl), the other to build ARM NN using libc++.

Is this the right way to do? Would there be any conflicts with the final library/exec?

Thanks,
San

Error in linking libarmnn.so

I am trying to cross-compiling for an ARM from Ubuntu 64bit and got this error when make . Thanks to other posts, I solved some of issues I have had so far, but I am stuck here. :( Anybody has similar error?

I used
cmake -DARMCOMPUTE_ROOT=/home/dajung/ComputeLibrary -DARMCOMPUTE_BUILD_DIR=/home/dajung/ComputeLibrary/build -DBOOST_ROOT=/usr/include/boost -DCAFFE_GENERATED_SOURCES=/home/dajung/caffe/.build_release/src -DBUILD_CAFFE_PARSER=1 -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DPROTOBUF_LIBRARY_DEBUG=/usr/local/lib/libprotobuf.so -DPROTOBUF_LIBRARY_RELEASE=/usr/local/lib/libprotobuf.so ..

[ 78%] Linking CXX shared library libarmnn.so
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/lib/gcc-cross/aarch64-linux-gnu/5/../../../../aarch64-linux-gnu/bin/ld: /usr/local/lib/libboost_log.a(attribute_name.o): Relocations in generic ELF (EM: 62)
/usr/local/lib/libboost_log.a: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
CMakeFiles/armnn.dir/build.make:2464: recipe for target 'libarmnn.so' failed
make[2]: *** [libarmnn.so] Error 1
CMakeFiles/Makefile2:105: recipe for target 'CMakeFiles/armnn.dir/all' failed
make[1]: *** [CMakeFiles/armnn.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

I followed this instuction and used protoc and boost 1.64, arm-compiled.

armnn is not supported layer Deconvolution

hello
I run a network(caffe network) with deconvolution layer,there are some errors:

WARNING: linker: /data/armnn_caffe_test: unsupported flags DT_FLAGS_1=0x8000000
WARNING: linker: /system/lib64/libarmnnCaffeParser.so: unused DT entry: type 0xf
arg 0x2dbdd
terminating with uncaught exception of type armnn::ParseException: Unsupported l
ayer type 'Deconvolution'
Aborted

armnn is not supported deconvolution?

Linking CXX executable UnitTests error

Hello support-ARM,

While using static boost libs I face linking error in UnitTests executable.

Linking CXX executable UnitTests

libarmnn.so: undefined reference to `boost::detail::add_thread_exit_function(boost::detail::thread_exit_function_base*)'
libarmnn.so: undefined reference to `boost::detail::get_tss_data(void const*)'
libarmnn.so: undefined reference to `boost::detail::set_tss_data(void const*, boost::shared_ptr<boost::detail::tss_cleanup_function>, void*, bool)'

Changing in file cmake/GlobalConfig.cmake

-find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework system filesystem log program_options)
+find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework system filesystem log **thread** program_options)

makes it link properly.

Regards,
Harsh

MobileSSD net

Hey,
Where can I find an implementation of SSDmobile net with armnn?

Thanks

Fatal signal 11 libc_malloc (Android)

I am trying to test the TF-MNIST example on Android via JNI. Unfortunately, whenever I make a call related to Armnn, I get:

A/libc: Fatal signal 11 (SIGSEGV), code 2, fault addr 0x72e0b43b00 in tid 28503 (ius.visionarmnn)

So for example, this happens when I run armnnTfParser::ITfParserPtr parser = armnnTfParser::ITfParser::Create();

Using logcat I get the following log:

06-28 15:48:05.430 28882 28882 W google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
06-28 15:48:05.430 28882 28882 W google-breakpad: Chrome build fingerprint:
06-28 15:48:05.430 28882 28882 W google-breakpad: 67.0.3396.87
06-28 15:48:05.430 28882 28882 W google-breakpad: 339608752
06-28 15:48:05.430 28882 28882 W google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
06-28 15:48:05.430 28882 28882 F libc : Fatal signal 11 (SIGSEGV), code 2, fault addr 0x72e227eb00 in tid 28882 (ius.visionarmnn)
06-28 15:48:05.494 29016 29016 I crash_dump64: obtaining output fd from tombstoned
06-28 15:48:05.495 3375 3375 I /system/bin/tombstoned: received crash request for pid 28882
06-28 15:48:05.496 29016 29016 I crash_dump64: performing dump of process 28882 (target tid = 28882)
06-28 15:48:05.497 29016 29016 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
...
06-28 15:48:05.497 29016 29016 F DEBUG : ABI: 'arm64'
06-28 15:48:05.497 29016 29016 F DEBUG : pid: 28882, tid: 28882, name: ius.visionarmnn >>> ml.mobius.visionarmnn <<<
06-28 15:48:05.497 29016 29016 F DEBUG : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x72e227eb00
06-28 15:48:05.497 29016 29016 F DEBUG : x0 00000072e1c44b94 x1 00000072e227dc00 x2 00000072e2200000 x3 0000000000000004
06-28 15:48:05.497 29016 29016 F DEBUG : x4 000000000000007d x5 0000007fd0b70870 x6 656e1f63ff737264 x7 7f7f7f7f7f7f7f7f
06-28 15:48:05.497 29016 29016 F DEBUG : x8 35b8fa3c82ee61a3 x9 35b8fa3c82ee61a3 x10 000000000000007d x11 35b8fa3c82ee61a3
06-28 15:48:05.497 29016 29016 F DEBUG : x12 35b8fa3c82ee61a3 x13 0000000000000000 x14 000000730314b092 x15 ffffffffffffffff
06-28 15:48:05.497 29016 29016 F DEBUG : x16 00000072e1a5c9b8 x17 00000072e19c33d0 x18 000000000000121f x19 00000073034c0a00
06-28 15:48:05.497 29016 29016 F DEBUG : x20 0000007303128a80 x21 00000073034c0a00 x22 0000007fd0b70d9c x23 00000072e70b7be6
06-28 15:48:05.497 29016 29016 F DEBUG : x24 0000000000000000 x25 00000073034c0a98 x26 0000000000000000 x27 0000000000000000
06-28 15:48:05.497 29016 29016 F DEBUG : x28 0000000000000000 x29 0000007fd0b70a60 x30 00000072e19c261c
06-28 15:48:05.497 29016 29016 F DEBUG : sp 0000007fd0b70a30 pc 00000072e227eb00 pstate 0000000060000000
06-28 15:48:05.502 29016 29016 F DEBUG :
06-28 15:48:05.502 29016 29016 F DEBUG : backtrace:
06-28 15:48:05.502 29016 29016 F DEBUG : #00 pc 000000000007eb00 [anon:libc_malloc:00000072e2200000]
06-28 15:48:05.502 29016 29016 F DEBUG : #1 pc 0000000000017618 /data/app/armnntest-bSXLFIuFCXxZgS0VskYytg==/lib/arm64/libnnbackend.so (_ZNSt10unique_ptrIN13armnnTfParser9ITfParserEPFvPS1_EED2Ev+76)

I got the same error when I was trying the Compute Library with pre-built libraries (18.05 with neon-cl)

Thank you very much in advance,

armnnTfParser CreateNetwork from pb file as String instead of path

The TF parser so far supports 3 ways of loading a model: from text file (prototxt), from binary file (pb), and from a string (basically the content of the prototxt in a string).

Would it be possible to create a network from the content of the pb file (like theCreateNetworkFromString function but for .pb) ?
The reason why it's important to have this is because using files via paths is not always possible to do in Android. Also, for security reasons, the models are usually encrypted and they are decrypted on runtime in memory. For example, both TensorFlow and the Qualcomm SNPE SDK accept "InputStream" in Java to load a model instead of paths.
Kind regards,

UnitTests errors

Hi,

I managed to build ARMNN and ran UnitTests. There are 4 failures detected and below is the log. I reviewed the whole build procedure again throughly couldn't find any issue. Moreover, I don't think these errors are related to the way the libraries are built.

Before debugging further, thought of checking if something else is going wrong.

Or any pointers for further debugging would be great.

Thank you.

There is no change in any of the source files. I'm just following the build instructions from here and running the UnitTests on and Android board (Firefly RK3399) with Android 7.1.2.

D_LIBRARY_PATH=/data/local/tmp ./UnitTests <
Running 626 test cases...
unknown location(0): fatal error: in "Compute_ArmComputeNeon/MultiplicationBroadcast1Element": std::runtime_error: in validate_arguments src/core/NEON/kernels/NEPixelWiseMultiplicationKernel.cpp:62: Tensors have different shapes
/home/san/san/armnn/src/armnn/backends/test/ArmComputeNeon.cpp(245): last checkpoint: "MultiplicationBroadcast1Element" entry.
unknown location(0): fatal error: in "Compute_ArmComputeNeon/MultiplicationBroadcast1DVector": std::runtime_error: in validate_arguments src/core/NEON/kernels/NEPixelWiseMultiplicationKernel.cpp:62: Tensors have different shapes
/home/san/san/armnn/src/armnn/backends/test/ArmComputeNeon.cpp(246): last checkpoint: "MultiplicationBroadcast1DVector" entry.
unknown location(0): fatal error: in "TensorflowParser/ParseMultiplicationBroadcast4D1D": armnn::Exception: LoadNetwork failed
/home/san/san/armnn/src/armnnTfParser/test/Multiplication.cpp(141): last checkpoint: "ParseMultiplicationBroadcast4D1D" fixture entry.
unknown location(0): fatal error: in "TensorflowParser/ParseMultiplicationBroadcast1D4D": armnn::Exception: LoadNetwork failed
/home/san/san/armnn/src/armnnTfParser/test/Multiplication.cpp(159): last checkpoint: "ParseMultiplicationBroadcast1D4D" fixture entry.

*** 4 failures are detected in the test module "UnitTests"

Thanks,
San

Include ArmNN in Android Studio

I was able to build ArmNN for arm64-v8a and armeabi-v7a, so I ended up with the following libraries:
libarmnnUtils.a, libarmnn.so, libarmnnTfParser.so, libc++_shared.so, libprotobuf.so.
However, it is not clear how use these libraries via JNI in Android Studio.
It cannot find armnn because of linking problems, so I tried to add the include files in the cpp and adapted the headers accordingly but then it cannot find boost.
Anyone was able to make it work with Android Studio? Any help regarding linking and configuring the gradle file would be much appreciated, thank you.

Cortex-M support

Hi,

is the support for Cortex-M available in this release yet?

thanks

hardware platforms

Hi

I see from the documentation that the ARM NN SDK supports Cortex-A, Mali GPUs (ARM Compute Library).
I have below queries:

  1. Does this SDK version in Github support Cortex-M CPUs as well (using the CMSIS Library)?

  2. When we run the application (that makes use of ARM NN SDK), does it select the underlying hardware automatically (from Cortex-A/Mali GPU etc. available) and run on them?

  3. Could you please suggest the hardware platforms (on which you might have already verified)
    for testing functionality of applications using ARM NN SDK for

  • Cortex-A CPUs
  • Mali GPUs
  • Cortex-M CPUs

Could you please help clarify on the above.

Thanks
Kamesh

Porting armnn to android

Hello,
I am following the https://github.com/ARM-software/armnn/blob/master/BuildGuideAndroidNDK.md
to compile armnn on android. However, it does not work in last part ('Build ArmNN:")

Then I created bash files (based on https://github.com/sh1r0/caffe-android-lib)
and here is my cmake command line options in build_armnn.sh:

CXX_FLAGS="-fPIE -fPIC"
export CC=${PROJECT_DIR}/toolchain/aarch64-linux-android-ndk-r16b/bin/aarch64-linux-android-clang
export CXX=${PROJECT_DIR}/toolchain/aarch64-linux-android-ndk-r16b/bin/aarch64-linux-android-clang++

cmake \
-DCMAKE_TOOLCHAIN_FILE="/opt/android-ndk-r16b/build/cmake/android.toolchain.cmake" \
-DCMAKE_SYSTEM_NAME=Android \
-DBOOST_ROOT="${PROJECT_DIR}/boost/boost_1_64_0/install" \
-DBoost_LIBRARY_DIR="${PROJECT_DIR}/boost/boost_1_64_0/install/lib" \
-DBoost_INCLUDE_DIR="${PROJECT_DIR}/boost/boost_1_64_0/install/include" \
-DCMAKE_EXE_LINKER_FLAGS=-pie \
-DANDROID_ABI="${ANDROID_ABI}" \
-DANDROID_NDK="${NDK_ROOT}" \
-DANDROID_NATIVE_API_LEVEL="${API_LEVEL}" \
-DARMCOMPUTE_ROOT="{ACLDIR}" \
-DARMCOMPUTE_INCLUDE="${ACLDIR}" \
-DARMCOMPUTE_CORE_LIBRARY_RELEASE="${ACL_LIBS_DIR}/libarm_compute_core-static.a" \
-DARMCOMPUTE_LIBRARY_RELEASE="${ACL_LIBS_DIR}/libarm_compute-static.a" \
-DARMCOMPUTE_CORE_LIBRARY_DEBUG="${ACL_LIBS_DIR}/libarm_compute_core-static.a" \
-DARMCOMPUTE_LIBRARY_DEBUG="${ACL_LIBS_DIR}/libarm_compute-static.a" \
-DARMCOMPUTENEON=1 \
-DARMCOMPUTECL=1 \
-DBUILD_CAFFE_PARSER=0 \
-DBUILD_TF_PARSER=1 \
-DTF_GENERATED_SOURCES="${PROJECT_DIR}/google/tf_pb/" \
-DPROTOBUF_ROOT="${PROJECT_DIR}/google/arm64_pb_install/" \
-DOPENCL_INCLUDE="${ACLDIR}/include" \
-DOPENCL_LIBRARIES="${ACL_LIBS_DIR}/libOpenCL.so" \
-DHALF_INCLUDE="${ACLDIR}/include" \
-DBUILD_UNIT_TESTS=0 \
-DPROJECT_DIR="${PROJECT_DIR}" ..

make -j11

But compiler gives bunch of errors depending on cmake options (e.g., with and without *android.toolchain.cmake), for example:

armnn_android/armnn/src/armnn/SerializeLayerParameters.cpp:57:17: error: no member named
      'to_string' in namespace 'std'
    fn("A",std::to_string(desc.m_A));

Have you guys compiled like me?

Also, when I add -DBUILD_UNIT_TESTS=1, there are lot of undefined reference related linking errors on some cpp and libarmnn.so files.

How to compile armnn properly?

Arm NN SDK support for CMSIS-NN?

I'm trying to run the examples/tutorials for Arm NN SDK on a Cortex M7.

The landing page for Arm NN SDK suggests it is possible through the use of CMSIS-NN neural network kernels. However, from Arm NN SDK source code, I do not see how it is possible to do that.

The only functionality I want is the ability to parse Caffe models.

Can someone confirm if it is doable? If not, is it something that will be supported in the feature? Thanks a lot!

unsupported tensor op : InceptionResnetV1/Conv2d_1a_3x3/BatchNorm/cond/AssignMovingAvg

I'm converting our tensorflow pb file into armnn, I got following exception with the latest code:

terminate called after throwing an instance of 'armnn::ParseException'
  what():  Node 'InceptionResnetV1/Conv2d_1a_3x3/BatchNorm/cond/Identity_1' has Control Input '^InceptionResnetV1/Conv2d_1a_3x3/BatchNorm/cond/AssignMovingAvg' which is unsupported.

Please describe -DBUILD_TF_PARSER Tensorflow build options

Hello,
I successfully build ARM NN SDK on Odroid HC-2 with the Caffee Parser described here: https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/configuring-the-arm-nn-sdk-build-environment-for-caffe/testing-the-build
But I don't find any more detailed option what I need to enable and build for Tensorflow Parser Option -DBUILD_TF_PARSER. Could you share how you build Tensorflow on ARM for being used by ARM NN SDK please?

About Unit Test from default made binary(Without code change)

Hello,

What is the UnitTest binary entry point while running it? Where can we find the list of all test cases for the default UnitTest binary. And how the interface works between tensor flow and ARMNN? Can anyone provide a example to show the mechanism behind it?

Thanks a lot.

How to test TFMnist example on Android device

Hello,

I tried to test armnn-devenv/armnn/tests/TfMnist-Armnn example. However, it is not compiled even within UnitTests binaries. Could any one provide a way to compile and test it on android device?

Best,

Fangming

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.