ARM-software / armnn

Arm NN ML Software. The code here is a read-only mirror of https://review.mlplatform.org/admin/repos/ml/armnn
https://developer.arm.com/products/processors/machine-learning/arm-nn
MIT License
1.14k stars 307 forks source link

Profiler service warnings seen in ArmNN v24.02 #766

Closed aymanchaudhry closed 9 hours ago

aymanchaudhry commented 2 months ago

Hi, On ArmNN v24.02, I am currently seeing the below profiler warnings when using ExecuteNetwork from the pre-built ArmNN binaries found in the release assets:

~/armnn-prebuilt-2402# LD_LIBRARY_PATH=. ./ExecuteNetwork -c CpuAcc -a -m ~/mobilenet_v1_1.0_224_quant.tflite
Warning: No input files provided, input tensors will be filled with 0s.
Info: ArmNN v33.1.0
Warning: An error has occurred when creating the profiling connection [SocketProfilingConnection: Cannot connect to stream socket: Connection refused] on socket [0].
Warning: Timed out waiting on profiling service activation for 3000.09 ms
Info: Initialization time: 3053.97 ms.
Info: Optimization time: 35.59 ms

Warning: The input data was generated, note that the output will not be useful
===== Network Info =====
Inputs in order:
input, [1,224,224,3], QAsymmU8 Quantization Offset: 128 Quantization scale: 0.0078125
Outputs in order:
MobilenetV1/Predictions/Reshape_1, [1,1001], QAsymmU8 Quantization Offset: 0 Quantization scale: 0.00390625

Info: Inferences began at: 1600598709755494075 ns

Info: Execution time: 240.29 ms.
MobilenetV1/Predictions/Reshape_1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 23 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Info: Inference time: 240.40 ms

Info: Inferences ended at: 1600598709996610784 ns

Info: Shutdown time: 14.77 ms.

I was also able to see this when I built ArmNN v24.02 using CMake for both UnitTests and ExecuteNetwork when profiling.

[Steps to replicate]:

[Expected warnings]:

Warning: An error has occurred when creating the profiling connection [SocketProfilingConnection: Cannot connect to stream socket: Connection refused] on socket [0].
Warning: Timed out waiting on profiling service activation for 3000.09 ms

Kind Regards, Ayman

Colm-in-Arm commented 2 months ago

Hello Ayman.

You've specified the "-a" command line parameter which will:

-a, --enable-external-profiling If enabled external profiling will be switched on

By specifying this parameter execute network will attempt to connect to a Streamline server to send profiling data. The warnings are indicating that there's no server to connect to.

Colm.

aymanchaudhry commented 2 months ago

Hi Colm, Thanks for the explanation, but what about for UnitTests?

I have built ArmNN using CMake with the following options:

BUILD_TF_LITE_PARSER=1
BUILD_ONNX_PARSER=1
ARMCOMPUTENEON=1
BUILD_TESTS=1
BUILD_SAMPLE_APP=1
PROFILING=1
BUILD_DELEGATE_JNI_INTERFACE=0
BUILD_ARMNN_EXAMPLES=1
BUILD_CLASSIC_DELEGATE=1

When I run UnitTests, I get similar profiler warnings - I have attached the full log.

I used the same CMake options for building ArmNN v22.02** and I did not get any profiler warnings. Looking at cmake/GlobalConfig.cmake for both versions, PROFILING_BACKEND_STREAMLINE is set to OFF by default for both.

** Did not use BUILD_DELEGATE_JNI_INTERFACE and used the older option for BUILD_CLASSIC_DELEGATE

armnn-24-04-unit-tests-log.txt

Colm-in-Arm commented 2 months ago

Hello Ayman.

There are unit tests that specifically test the external profiling interface. For example ProfilingEnableCpuRef in RuntimeTests.cpp. These will print some output but the tests will pass. This is expected output.

Colm.

aymanchaudhry commented 9 hours ago

Sorry for the late response, Thanks Colm!

We can close this issue.