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.17k stars 309 forks source link

Help wanted Armnn build failed for Android #634

Closed Saikatsaha1996 closed 1 year ago

Saikatsaha1996 commented 2 years ago

error: variable 'numOutputElements' set but not used [-Werror,-Wunused-but-set-variable]

Screenshot_2022-04-03-18-13-38-664_com termux

TeresaARM commented 2 years ago

Hi @Saikatsaha1996, which version of armnn and android-nn-driver are you using? Regards

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996, which version of armnn and android-nn-driver are you using? Regards

Hi @Saikatsaha1996, which version of armnn and android-nn-driver are you using? Regards

22.02 v i am using..

I am building in my own device.. compute library with OpenCL successfully build but i can't build ArmNN without tensorflow

Screenshot_2022-04-02-20-10-19-505_com termux Screenshot_2022-04-02-20-17-56-085_com termux

TeresaARM commented 2 years ago

Hi,

are you following this guide: https://github.com/ARM-software/armnn/blob/branches/armnn_22_02/BuildGuideAndroidNDK.md ?

Saikatsaha1996 commented 2 years ago

Hi,

are you following this guide: https://github.com/ARM-software/armnn/blob/branches/armnn_22_02/BuildGuideAndroidNDK.md ?

Yes i am following this guide

Saikatsaha1996 commented 2 years ago

Hi,

are you following this guide: https://github.com/ARM-software/armnn/blob/branches/armnn_22_02/BuildGuideAndroidNDK.md ?

Can you tell me exactly why i am getting this error ? Any dependency problem ?

Saikatsaha1996 commented 2 years ago

Hi,

are you following this guide: https://github.com/ARM-software/armnn/blob/branches/armnn_22_02/BuildGuideAndroidNDK.md ?

@TeresaARM waiting for solution.. any solution please

TeresaARM commented 2 years ago

Hi,

please try this patch: https://review.mlplatform.org/c/ml/armnn/+/7393

Regards

Saikatsaha1996 commented 2 years ago

Hi,

please try this patch: https://review.mlplatform.org/c/ml/armnn/+/7393

Regards

Okay trying thank you for your response!

Saikatsaha1996 commented 2 years ago

Hi,

please try this patch: https://review.mlplatform.org/c/ml/armnn/+/7393

Regards

@TeresaARM Fast error solved thank you for your help 😃

Getting new error ArmNN && ComputeLibrary v22.02

cmake .. -DARMCOMPUTE_ROOT=$HOME/armnn-devenv/ComputeLibrary -DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary/build -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 -DCMAKE_SYSTEM_NAME=Android -DCMAKE_EXE_LINKER_FLAGS="-pie -llog -lz"

make -j(nrproc)

Screenshot_2022-04-11-18-13-51-190_com termux

TeresaARM commented 2 years ago

Hi, that got fixed here: https://review.mlplatform.org/c/ml/armnn/+/7336 (this is already merged in the main branch, but not part of 22.02, it will be part of 22.05)

Could you please apply that patch as well?

Regards

Saikatsaha1996 commented 2 years ago

Hi, that got fixed here: https://review.mlplatform.org/c/ml/armnn/+/7336

Could you please apply that patch as well?

Regards

Okay 👌👌 trying

Saikatsaha1996 commented 2 years ago

Hi, that got fixed here: https://review.mlplatform.org/c/ml/armnn/+/7336 (this is already merged in master, but not part of 22.02, it will be part of 22.05)

Could you please apply that patch as well?

Regards

How to build without tensorflow ? -DTENSORFLOW=0 ?

TeresaARM commented 2 years ago

Hi @Saikatsaha1996 ,

to build without tensorflow, you should do what you are doing, it is the default. to build with tensorflow, you could use the script get_tensorflow.sh and set the -DTENSORFLOW_ROOT= to the path where tensorflow is.

could you send us a log/show us the error message you are seeing now?

Regards

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996 ,

to build without tensorflow, you should do what you are doing, it is the default. to build with tensorflow, you could use the script get_tensorflow.sh and set the -DTENSORFLOW_ROOT= to the path where tensorflow is.

could you send us a log/show us the error message you are seeing now?

Regards

Hello @TeresaARM

getting this error

Screenshot_2022-04-11-20-29-17-292_com termux

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996 ,

to build without tensorflow, you should do what you are doing, it is the default. to build with tensorflow, you could use the script get_tensorflow.sh and set the -DTENSORFLOW_ROOT= to the path where tensorflow is.

could you send us a log/show us the error message you are seeing now?

Regards

Screenshot_2022-04-11-20-38-07-240_com termux

TeresaARM commented 2 years ago

Hi @Saikatsaha1996,

so, your last screenshot is setting -DTENSORFLOW_ROOT= and your second last, uses the same command but without setting -DTENSORFLOW_ROOT= ? or you changed something different?

are you unblocked now?

Regards

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996,

so, your last screenshot is setting -DTENSORFLOW_ROOT= and your second last, uses the same command but without setting -DTENSORFLOW_ROOT= ? or you changed something different?

are you unblocked now?

Regards

No same error getting with tensorflow root ..i already mentioned tensorflow root path...

Getting error like this Screenshot_2022-04-11-21-11-44-329_com termux

TeresaARM commented 2 years ago

Hi,

Please have a look at BuildGuideAndroidNDK.md and search for -fpic

The error message is asking you to recompile with -fPIC

please let us know how it goes

Thank you for your messages Kind Regards

Saikatsaha1996 commented 2 years ago

Hi,

Please have a look at BuildGuideAndroidNDK.md and search for -fpic

The error message is asking you to recompile with -fPIC

please let us know how it goes

Thank you for your messages Kind Regards

CFLAGS="-fPIE -fPIC" cmake .. -DCMAKE_SYSTEM_NAME=Android -DARMCOMPUTE_ROOT=$HOME/armnn-devenv/ComputeLibrary -DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary/build -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 -DCMAKE_SYSTEM_NAME=Android -DCMAKE_EXE_LINKER_FLAGS="-pie -llog -lz" -DTENSORFLOW_ROOT=$HOME/armnn-devenv/tensorflow

make -j8

Getting same error

Screenshot_2022-04-11-21-11-44-329_com termux

Saikatsaha1996 commented 2 years ago

@TeresaARM tried to build with , but same error..

cmake .. -DARMCOMPUTE_ROOT=$HOME/armnn-devenv/ComputeLibrary -DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary/build -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 -DCMAKE_SYSTEM_NAME=Android -DCMAKE_EXE_LINKER_FLAGS="-pie -llog -lz" -DTENSORFLOW_ROOT=$HOME/armnn-devenv/tensorflow-protobuf/tensorflow -DCMAKE_CXX_FLAGS="-fPIE -fPIC" -DCMAKE_POSITION_INDEPENDENT_CODE=ON

TeresaARM commented 2 years ago

Hi @Saikatsaha1996,

which command have you used to build Compute Library?

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996,

which command have you used to build Compute Library?

@TeresaARM hi!

scons Werror=0 -j8 debug=0 neon=1 opencl=1 os=android arch=arm64-v8a asserts=0 extra_link_flags=" -fPIC -fopenmp -static-openmp" benchmark_tests=0

Saikatsaha1996 commented 2 years ago

@TeresaARM scons build complete without any error..

But you should edit "SConstruct" after that you can able to compile Computlibrary

line 325 and 326

env['CC'] = env['compiler_cache'] + c_compiler env['CXX'] = env['compiler_cache'] + cpp_compiler

Build done..

TeresaARM commented 2 years ago

Hi @Saikatsaha1996 ,

could you please try to build with a command more similar to the one in the guide?

scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" \
 benchmark_tests=0 validation_tests=0 os=android -j16

You are using, extra_link_flags, instead of extra_cxx_flags="-fPIC"

SConstruct file is correct, I checked with the Compute Library team, who are the owners of the file. But removing the part you have removed, instead of giving a prefix should be ok as well.

Regards

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996 ,

could you please try to build with a command more similar to the one in the guide?

scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" \
 benchmark_tests=0 validation_tests=0 os=android -j16

You are using, extra_link_flags, instead of extra_cxx_flags="-fPIC"

SConstruct file is correct, I checked with the Compute Library team, who are the owners of the file. But removing the part you have removed, instead of giving a prefix should be ok as well.

Regards

Okay trying..

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996 ,

could you please try to build with a command more similar to the one in the guide?

scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" \
 benchmark_tests=0 validation_tests=0 os=android -j16

You are using, extra_link_flags, instead of extra_cxx_flags="-fPIC"

SConstruct file is correct, I checked with the Compute Library team, who are the owners of the file. But removing the part you have removed, instead of giving a prefix should be ok as well.

Regards

@TeresaARM Hi!

😃👌🤩

Ultimately build done without warning, errors full green build with cmake and without android ndk && with your , @Computelibrary team's support..

Build complete with Android mobile, not used any pc desktop...

Thank you so much!

Screenshot_2022-04-13-21-22-40-999_com termux

Saikatsaha1996 commented 2 years ago

Solution is if you are build with mobile..

scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" benchmark_tests=0 validation_tests=0 os=android extra_link_flags="-fopenmp -static-openmp" Werror=0 asserts=0 -j8

Saikatsaha1996 commented 2 years ago

Solution is if you are build with mobile..

scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" benchmark_tests=0 validation_tests=0 os=android extra_link_flags="-fopenmp -static-openmp" Werror=0 asserts=0 -j8

@TeresaARM

UnitTests faild because it is tensorflow problem.. when you clone tensorflow with get-tensoflow.sh please use chrrypik patch.. i am not use this patch that's why getting segmentation fault.. but it is ok .. i will re-compile with tensorflow patch version r2.5

Screenshot_2022-04-13-21-37-54-992_com termux

TeresaARM commented 2 years ago

Hi @Saikatsaha1996,

glad you hear it is working now. Here you can find the versions of the build dependencies for Arm NN: https://github.com/ARM-software/armnn/releases/tag/v22.02

Tensorflow needs to be 2.5.

Please let me know how it goes.

Kind Regards

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996,

glad you hear it is working now. Here you can find the versions of the build dependencies for Arm NN: https://github.com/ARM-software/armnn/releases/tag/v22.02

Tensorflow needs to be 2.5.

Please let me know how it goes.

Kind Regards

Full build done .. with termux.. and now i need to test but my pc GPU gone for RMA so i can't test with adb push && pull for 2 or 3 days ..

Screenshot_2022-04-14-02-39-13-548_com termux

Saikatsaha1996 commented 2 years ago

How to test ? Help wanted @TeresaARM Which command i should use? Screenshot_2022-05-24-15-05-46-451_com termux

TeresaARM commented 2 years ago

Hi @Saikatsaha1996

could you please try to do a clean build, and then run the UnitTest the same way you have run them?

Regards

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996

could you please try to do a clean build, and then run the UnitTest the same way you have run them?

Regards

Okay trying

Saikatsaha1996 commented 2 years ago

@TeresaARM No same problem happened .. compute library working properly.. but ArmNN not working.. Screenshot_2022-05-24-21-24-06-697_com termux

xiaotongnii commented 2 years ago

Hi @Saikatsaha1996 , could you please try to build with a command more similar to the one in the guide?

scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" \
 benchmark_tests=0 validation_tests=0 os=android -j16

You are using, extra_link_flags, instead of extra_cxx_flags="-fPIC" SConstruct file is correct, I checked with the Compute Library team, who are the owners of the file. But removing the part you have removed, instead of giving a prefix should be ok as well. Regards

@TeresaARM Hi!

😃👌🤩

Ultimately build done without warning, errors full green build with cmake and without android ndk && with your , @Computelibrary team's support..

Build complete with Android mobile, not used any pc desktop...

Thank you so much!

Screenshot_2022-04-13-21-22-40-999_com termux

Hi @Saikatsaha1996 I meet the same erros, when build armnn using ndk-r25 in pc,How to deal with its build erros , looking forward your replay!

Saikatsaha1996 commented 2 years ago

Hi @Saikatsaha1996 , could you please try to build with a command more similar to the one in the guide?

scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" \
 benchmark_tests=0 validation_tests=0 os=android -j16

You are using, extra_link_flags, instead of extra_cxx_flags="-fPIC" SConstruct file is correct, I checked with the Compute Library team, who are the owners of the file. But removing the part you have removed, instead of giving a prefix should be ok as well. Regards

@TeresaARM Hi! 😃👌🤩 Ultimately build done without warning, errors full green build with cmake and without android ndk && with your , @Computelibrary team's support.. Build complete with Android mobile, not used any pc desktop... Thank you so much! Screenshot_2022-04-13-21-22-40-999_com termux

Hi @Saikatsaha1996 I meet the same erros, when build armnn using ndk-r25 in pc,How to deal with its build erros , looking forward your replay!

please share more details about the error..

xiaotongnii commented 2 years ago

@Saikatsaha1996 for details: armnn22.02 android-ndk-r25 build follow:https://github.com/ARM-software/armnn/blob/branches/armnn_22_02/BuildGuideAndroidNDK.md when building ,appears link erro: ...

ld error:relocation R_AARCH64_ADD_ABS_L012_NC can not be used against symbol "google:protobuf::internal::NullLogHander(google::protobuf::LogLevel, char const*,int ,sting ...) ::ndk1::allocator const&) ';recompile with -fPIC "

defined in ../../third-party/prebuild/protobuf/android/lib/libprotobuf.a(common.o) referenced by common.cc::273 (../../src/google/protobuf/stubs/common.cc:273)

Saikatsaha1996 commented 2 years ago

@Shelton-N Re compile google:protobuf with -fPIC

Than try agan

FrancisMurtagh-arm commented 1 year ago

Closing due to age of issue, please reopen if you are still having problems.

Thanks, Francis.

Saikatsaha1996 commented 1 year ago

Closing due to age of issue, please reopen if you are still having problems.

Thanks, Francis.

Sorry for asking here..!

I have Mali G-610 MC6 GPU I am facing some issues.. and i was tried to login Arm community forum but i am unable to login from 40 days.. i was created support tickets 1 month ago but not a single reply received from #ARM so i understood #ARM don't care about it.. okay that's very fine..

But i have a question about ARM MALI G-610 MC6

I want Mali 3rd generation Valhall open-source driver link 🔗 but i am unable to find proper ARM MALI G-610 MC6 GPU driver..

Can it possible to share with me 🙂.. I hope i can receive atleast reply positive or negative..

Thanking you Regards Saikat Saha

FrancisMurtagh-arm commented 1 year ago

Hi @Saikatsaha1996,

This is a bit outside ArmNN's domain but the latest 5 releases on this download page should support G610: https://developer.arm.com/downloads/-/mali-drivers/valhall-kernel

However:

Note that these components are not a complete driver stack. To build a functional OpenGL ES you need access to the full source code of the Mali GPU DDK, which is provided under the standard Arm commercial licence to all Mali GPU customers.

These open source kernel drivers are intended to be used along side the user-space binary releases we provide. https://developer.arm.com/downloads/-/mali-drivers/user-space

These binaries are only for a select number of boards, otherwise the device should come with them already included or should be able to be obtained from the device vendor.

Regards, Francis.

Saikatsaha1996 commented 1 year ago

Hi @Saikatsaha1996,

This is a bit outside ArmNN's domain but the latest 5 releases on this download page should support G610: https://developer.arm.com/downloads/-/mali-drivers/valhall-kernel

However:

Note that these components are not a complete driver stack. To build a functional OpenGL ES you need access to the full source code of the Mali GPU DDK, which is provided under the standard Arm commercial licence to all Mali GPU customers.

These open source kernel drivers are intended to be used along side the user-space binary releases we provide. https://developer.arm.com/downloads/-/mali-drivers/user-space

These binaries are only for a select number of boards, otherwise the device should come with them already included or should be able to be obtained from the device vendor.

Regards, Francis.

Yes sir i already have my vendor GPU driver inbuilt.. my device Xiaomi k50i I am useing proot linux.. but GPU driver not available because mesa driver not available for Mali G-610 MC6 Valhall generation 3rd.. i mean not supported that's why i can't use proot linux with gui desktop..

And i am really sorry.. for asking here.. actually i was snapdragon user but new generation mediatek chipset cpu & GPU are just awesome .. so my fast device from ARM family.. so i am newbe in Arm.. that's why facing problem..

But thank you so much for your response.. Mey be Kernel driver will only work if i am build os.. because i am using proot linux.. don't have root permission..